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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

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

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

154:                                              ; preds = %25
  %155 = load ptr, ptr %48, align 8, !tbaa !5
  %156 = getelementptr inbounds float, ptr %155, i64 1
  %157 = load float, ptr %156, align 4, !tbaa !11
  %158 = fcmp olt float %157, 0.000000e+00
  br i1 %158, label %159, label %162

159:                                              ; preds = %154
  %160 = load ptr, ptr %48, align 8, !tbaa !5
  %161 = getelementptr inbounds float, ptr %160, i64 1
  store float 1.000000e+00, ptr %161, align 4, !tbaa !11
  br label %167

162:                                              ; preds = %154
  %163 = load ptr, ptr %48, align 8, !tbaa !5
  %164 = getelementptr inbounds float, ptr %163, i64 1
  %165 = load float, ptr %164, align 4, !tbaa !11
  %166 = fptosi float %165 to i64
  store i64 %166, ptr %70, align 8, !tbaa !9
  br label %167

167:                                              ; preds = %162, %159
  br label %168

168:                                              ; preds = %167, %25
  %169 = load ptr, ptr %29, align 8, !tbaa !5
  %170 = load i64, ptr %169, align 8, !tbaa !9
  %171 = sitofp i64 %170 to float
  %172 = fpext float %171 to double
  %173 = call double @slamch_(ptr noundef @.str)
  %174 = fmul double %172, %173
  %175 = fptrunc double %174 to float
  store float %175, ptr %67, align 4, !tbaa !11
  store i64 10, ptr %82, align 8, !tbaa !9
  store float 5.000000e-01, ptr %84, align 4, !tbaa !11
  store float 2.500000e-01, ptr %68, align 4, !tbaa !11
  store i64 0, ptr %77, align 8, !tbaa !9
  %176 = load ptr, ptr %47, align 8, !tbaa !5
  %177 = load i64, ptr %176, align 8, !tbaa !9
  %178 = icmp sge i64 %177, 2
  br i1 %178, label %179, label %195

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

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

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

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

195:                                              ; preds = %194, %168
  %196 = load ptr, ptr %47, align 8, !tbaa !5
  %197 = load i64, ptr %196, align 8, !tbaa !9
  %198 = icmp sge i64 %197, 3
  br i1 %198, label %199, label %222

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

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

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

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

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

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

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

222:                                              ; preds = %221, %195
  %223 = load i64, ptr %70, align 8, !tbaa !9
  %224 = icmp eq i64 %223, 0
  br i1 %224, label %229, label %225

225:                                              ; preds = %222
  %226 = load ptr, ptr %44, align 8, !tbaa !5
  %227 = load i64, ptr %226, align 8, !tbaa !9
  %228 = icmp eq i64 %227, 0
  br i1 %228, label %229, label %230

229:                                              ; preds = %225, %222
  store i64 0, ptr %83, align 8, !tbaa !9
  br label %236

230:                                              ; preds = %225
  %231 = load i64, ptr %77, align 8, !tbaa !9
  %232 = icmp ne i64 %231, 0
  br i1 %232, label %233, label %234

233:                                              ; preds = %230
  store i64 1, ptr %83, align 8, !tbaa !9
  br label %235

234:                                              ; preds = %230
  store i64 2, ptr %83, align 8, !tbaa !9
  br label %235

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

236:                                              ; preds = %235, %229
  %237 = load ptr, ptr %27, align 8, !tbaa !5
  %238 = call i64 @lsame_(ptr noundef %237, ptr noundef @.str.1)
  store i64 %238, ptr %80, align 8, !tbaa !9
  %239 = load ptr, ptr %28, align 8, !tbaa !5
  %240 = call i64 @lsame_(ptr noundef %239, ptr noundef @.str.2)
  %241 = icmp ne i64 %240, 0
  br i1 %241, label %246, label %242

242:                                              ; preds = %236
  %243 = load ptr, ptr %28, align 8, !tbaa !5
  %244 = call i64 @lsame_(ptr noundef %243, ptr noundef @.str.3)
  %245 = icmp ne i64 %244, 0
  br label %246

246:                                              ; preds = %242, %236
  %247 = phi i1 [ true, %236 ], [ %245, %242 ]
  %248 = zext i1 %247 to i32
  %249 = sext i32 %248 to i64
  store i64 %249, ptr %81, align 8, !tbaa !9
  %250 = load ptr, ptr %28, align 8, !tbaa !5
  %251 = call i64 @lsame_(ptr noundef %250, ptr noundef @.str.4)
  %252 = icmp ne i64 %251, 0
  br i1 %252, label %257, label %253

253:                                              ; preds = %246
  %254 = load ptr, ptr %28, align 8, !tbaa !5
  %255 = call i64 @lsame_(ptr noundef %254, ptr noundef @.str.3)
  %256 = icmp ne i64 %255, 0
  br label %257

257:                                              ; preds = %253, %246
  %258 = phi i1 [ true, %246 ], [ %256, %253 ]
  %259 = zext i1 %258 to i32
  %260 = sext i32 %259 to i64
  store i64 %260, ptr %79, align 8, !tbaa !9
  %261 = load i64, ptr %74, align 8, !tbaa !9
  %262 = icmp eq i64 %261, -1
  br i1 %262, label %263, label %265

263:                                              ; preds = %257
  %264 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -1, ptr %264, align 8, !tbaa !9
  br label %356

265:                                              ; preds = %257
  %266 = load i64, ptr %81, align 8, !tbaa !9
  %267 = icmp ne i64 %266, 0
  br i1 %267, label %277, label %268

268:                                              ; preds = %265
  %269 = load i64, ptr %79, align 8, !tbaa !9
  %270 = icmp ne i64 %269, 0
  br i1 %270, label %277, label %271

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

275:                                              ; preds = %271
  %276 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -2, ptr %276, align 8, !tbaa !9
  br label %355

277:                                              ; preds = %271, %268, %265
  %278 = load ptr, ptr %29, align 8, !tbaa !5
  %279 = load i64, ptr %278, align 8, !tbaa !9
  %280 = icmp slt i64 %279, 0
  br i1 %280, label %281, label %283

281:                                              ; preds = %277
  %282 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -3, ptr %282, align 8, !tbaa !9
  br label %354

283:                                              ; preds = %277
  %284 = load ptr, ptr %30, align 8, !tbaa !5
  %285 = load i64, ptr %284, align 8, !tbaa !9
  %286 = icmp slt i64 %285, 0
  br i1 %286, label %287, label %289

287:                                              ; preds = %283
  %288 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -4, ptr %288, align 8, !tbaa !9
  br label %353

289:                                              ; preds = %283
  %290 = load ptr, ptr %32, align 8, !tbaa !5
  %291 = load i64, ptr %290, align 8, !tbaa !9
  %292 = load ptr, ptr %29, align 8, !tbaa !5
  %293 = load i64, ptr %292, align 8, !tbaa !9
  %294 = icmp sge i64 1, %293
  br i1 %294, label %295, label %296

295:                                              ; preds = %289
  br label %299

296:                                              ; preds = %289
  %297 = load ptr, ptr %29, align 8, !tbaa !5
  %298 = load i64, ptr %297, align 8, !tbaa !9
  br label %299

299:                                              ; preds = %296, %295
  %300 = phi i64 [ 1, %295 ], [ %298, %296 ]
  %301 = icmp slt i64 %291, %300
  br i1 %301, label %302, label %304

302:                                              ; preds = %299
  %303 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -6, ptr %303, align 8, !tbaa !9
  br label %352

304:                                              ; preds = %299
  %305 = load ptr, ptr %34, align 8, !tbaa !5
  %306 = load i64, ptr %305, align 8, !tbaa !9
  %307 = load ptr, ptr %29, align 8, !tbaa !5
  %308 = load i64, ptr %307, align 8, !tbaa !9
  %309 = icmp sge i64 1, %308
  br i1 %309, label %310, label %311

310:                                              ; preds = %304
  br label %314

311:                                              ; preds = %304
  %312 = load ptr, ptr %29, align 8, !tbaa !5
  %313 = load i64, ptr %312, align 8, !tbaa !9
  br label %314

314:                                              ; preds = %311, %310
  %315 = phi i64 [ 1, %310 ], [ %313, %311 ]
  %316 = icmp slt i64 %306, %315
  br i1 %316, label %317, label %319

317:                                              ; preds = %314
  %318 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -8, ptr %318, align 8, !tbaa !9
  br label %351

319:                                              ; preds = %314
  %320 = load ptr, ptr %39, align 8, !tbaa !5
  %321 = load i64, ptr %320, align 8, !tbaa !9
  %322 = load ptr, ptr %29, align 8, !tbaa !5
  %323 = load i64, ptr %322, align 8, !tbaa !9
  %324 = icmp sge i64 1, %323
  br i1 %324, label %325, label %326

325:                                              ; preds = %319
  br label %329

326:                                              ; preds = %319
  %327 = load ptr, ptr %29, align 8, !tbaa !5
  %328 = load i64, ptr %327, align 8, !tbaa !9
  br label %329

329:                                              ; preds = %326, %325
  %330 = phi i64 [ 1, %325 ], [ %328, %326 ]
  %331 = icmp slt i64 %321, %330
  br i1 %331, label %332, label %334

332:                                              ; preds = %329
  %333 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -13, ptr %333, align 8, !tbaa !9
  br label %350

334:                                              ; preds = %329
  %335 = load ptr, ptr %41, align 8, !tbaa !5
  %336 = load i64, ptr %335, align 8, !tbaa !9
  %337 = load ptr, ptr %29, align 8, !tbaa !5
  %338 = load i64, ptr %337, align 8, !tbaa !9
  %339 = icmp sge i64 1, %338
  br i1 %339, label %340, label %341

340:                                              ; preds = %334
  br label %344

341:                                              ; preds = %334
  %342 = load ptr, ptr %29, align 8, !tbaa !5
  %343 = load i64, ptr %342, align 8, !tbaa !9
  br label %344

344:                                              ; preds = %341, %340
  %345 = phi i64 [ 1, %340 ], [ %343, %341 ]
  %346 = icmp slt i64 %336, %345
  br i1 %346, label %347, label %349

347:                                              ; preds = %344
  %348 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -15, ptr %348, align 8, !tbaa !9
  br label %349

349:                                              ; preds = %347, %344
  br label %350

350:                                              ; preds = %349, %332
  br label %351

351:                                              ; preds = %350, %317
  br label %352

352:                                              ; preds = %351, %302
  br label %353

353:                                              ; preds = %352, %287
  br label %354

354:                                              ; preds = %353, %281
  br label %355

355:                                              ; preds = %354, %275
  br label %356

356:                                              ; preds = %355, %263
  %357 = load ptr, ptr %51, align 8, !tbaa !5
  %358 = load i64, ptr %357, align 8, !tbaa !9
  %359 = icmp ne i64 %358, 0
  br i1 %359, label %360, label %365

360:                                              ; preds = %356
  %361 = load ptr, ptr %51, align 8, !tbaa !5
  %362 = load i64, ptr %361, align 8, !tbaa !9
  %363 = sub nsw i64 0, %362
  store i64 %363, ptr %64, align 8, !tbaa !9
  %364 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %64)
  store i32 0, ptr %26, align 4
  store i32 1, ptr %85, align 4
  br label %995

365:                                              ; preds = %356
  %366 = load ptr, ptr %29, align 8, !tbaa !5
  %367 = load i64, ptr %366, align 8, !tbaa !9
  %368 = icmp eq i64 %367, 0
  br i1 %368, label %373, label %369

369:                                              ; preds = %365
  %370 = load ptr, ptr %30, align 8, !tbaa !5
  %371 = load i64, ptr %370, align 8, !tbaa !9
  %372 = icmp eq i64 %371, 0
  br i1 %372, label %373, label %440

373:                                              ; preds = %369, %365
  %374 = load ptr, ptr %42, align 8, !tbaa !5
  store float 1.000000e+00, ptr %374, align 4, !tbaa !11
  %375 = load ptr, ptr %30, align 8, !tbaa !5
  %376 = load i64, ptr %375, align 8, !tbaa !9
  store i64 %376, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %71, align 8, !tbaa !9
  br label %377

377:                                              ; preds = %436, %373
  %378 = load i64, ptr %71, align 8, !tbaa !9
  %379 = load i64, ptr %64, align 8, !tbaa !9
  %380 = icmp sle i64 %378, %379
  br i1 %380, label %381, label %439

381:                                              ; preds = %377
  %382 = load ptr, ptr %43, align 8, !tbaa !5
  %383 = load i64, ptr %71, align 8, !tbaa !9
  %384 = getelementptr inbounds float, ptr %382, i64 %383
  store float 0.000000e+00, ptr %384, align 4, !tbaa !11
  %385 = load ptr, ptr %44, align 8, !tbaa !5
  %386 = load i64, ptr %385, align 8, !tbaa !9
  %387 = icmp sge i64 %386, 1
  br i1 %387, label %388, label %399

388:                                              ; preds = %381
  %389 = load ptr, ptr %45, align 8, !tbaa !5
  %390 = load i64, ptr %71, align 8, !tbaa !9
  %391 = load i64, ptr %60, align 8, !tbaa !9
  %392 = add nsw i64 %390, %391
  %393 = getelementptr inbounds float, ptr %389, i64 %392
  store float 1.000000e+00, ptr %393, align 4, !tbaa !11
  %394 = load ptr, ptr %46, align 8, !tbaa !5
  %395 = load i64, ptr %71, align 8, !tbaa !9
  %396 = load i64, ptr %62, align 8, !tbaa !9
  %397 = add nsw i64 %395, %396
  %398 = getelementptr inbounds float, ptr %394, i64 %397
  store float 1.000000e+00, ptr %398, align 4, !tbaa !11
  br label %435

399:                                              ; preds = %381
  %400 = load ptr, ptr %44, align 8, !tbaa !5
  %401 = load i64, ptr %400, align 8, !tbaa !9
  %402 = icmp sge i64 %401, 2
  br i1 %402, label %403, label %416

403:                                              ; preds = %399
  %404 = load ptr, ptr %45, align 8, !tbaa !5
  %405 = load i64, ptr %71, align 8, !tbaa !9
  %406 = load i64, ptr %60, align 8, !tbaa !9
  %407 = shl i64 %406, 1
  %408 = add nsw i64 %405, %407
  %409 = getelementptr inbounds float, ptr %404, i64 %408
  store float 0.000000e+00, ptr %409, align 4, !tbaa !11
  %410 = load ptr, ptr %46, align 8, !tbaa !5
  %411 = load i64, ptr %71, align 8, !tbaa !9
  %412 = load i64, ptr %62, align 8, !tbaa !9
  %413 = shl i64 %412, 1
  %414 = add nsw i64 %411, %413
  %415 = getelementptr inbounds float, ptr %410, i64 %414
  store float 0.000000e+00, ptr %415, align 4, !tbaa !11
  br label %434

416:                                              ; preds = %399
  %417 = load ptr, ptr %44, align 8, !tbaa !5
  %418 = load i64, ptr %417, align 8, !tbaa !9
  %419 = icmp sge i64 %418, 3
  br i1 %419, label %420, label %433

420:                                              ; preds = %416
  %421 = load ptr, ptr %45, align 8, !tbaa !5
  %422 = load i64, ptr %71, align 8, !tbaa !9
  %423 = load i64, ptr %60, align 8, !tbaa !9
  %424 = mul nsw i64 %423, 3
  %425 = add nsw i64 %422, %424
  %426 = getelementptr inbounds float, ptr %421, i64 %425
  store float 1.000000e+00, ptr %426, align 4, !tbaa !11
  %427 = load ptr, ptr %46, align 8, !tbaa !5
  %428 = load i64, ptr %71, align 8, !tbaa !9
  %429 = load i64, ptr %62, align 8, !tbaa !9
  %430 = mul nsw i64 %429, 3
  %431 = add nsw i64 %428, %430
  %432 = getelementptr inbounds float, ptr %427, i64 %431
  store float 1.000000e+00, ptr %432, align 4, !tbaa !11
  br label %433

433:                                              ; preds = %420, %416
  br label %434

434:                                              ; preds = %433, %403
  br label %435

435:                                              ; preds = %434, %388
  br label %436

436:                                              ; preds = %435
  %437 = load i64, ptr %71, align 8, !tbaa !9
  %438 = add nsw i64 %437, 1
  store i64 %438, ptr %71, align 8, !tbaa !9
  br label %377, !llvm.loop !13

439:                                              ; preds = %377
  store i32 0, ptr %26, align 4
  store i32 1, ptr %85, align 4
  br label %995

440:                                              ; preds = %369
  %441 = load ptr, ptr %42, align 8, !tbaa !5
  store float 0.000000e+00, ptr %441, align 4, !tbaa !11
  %442 = load ptr, ptr %30, align 8, !tbaa !5
  %443 = load i64, ptr %442, align 8, !tbaa !9
  store i64 %443, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %71, align 8, !tbaa !9
  br label %444

444:                                              ; preds = %503, %440
  %445 = load i64, ptr %71, align 8, !tbaa !9
  %446 = load i64, ptr %64, align 8, !tbaa !9
  %447 = icmp sle i64 %445, %446
  br i1 %447, label %448, label %506

448:                                              ; preds = %444
  %449 = load ptr, ptr %43, align 8, !tbaa !5
  %450 = load i64, ptr %71, align 8, !tbaa !9
  %451 = getelementptr inbounds float, ptr %449, i64 %450
  store float 1.000000e+00, ptr %451, align 4, !tbaa !11
  %452 = load ptr, ptr %44, align 8, !tbaa !5
  %453 = load i64, ptr %452, align 8, !tbaa !9
  %454 = icmp sge i64 %453, 1
  br i1 %454, label %455, label %466

455:                                              ; preds = %448
  %456 = load ptr, ptr %45, align 8, !tbaa !5
  %457 = load i64, ptr %71, align 8, !tbaa !9
  %458 = load i64, ptr %60, align 8, !tbaa !9
  %459 = add nsw i64 %457, %458
  %460 = getelementptr inbounds float, ptr %456, i64 %459
  store float 1.000000e+00, ptr %460, align 4, !tbaa !11
  %461 = load ptr, ptr %46, align 8, !tbaa !5
  %462 = load i64, ptr %71, align 8, !tbaa !9
  %463 = load i64, ptr %62, align 8, !tbaa !9
  %464 = add nsw i64 %462, %463
  %465 = getelementptr inbounds float, ptr %461, i64 %464
  store float 1.000000e+00, ptr %465, align 4, !tbaa !11
  br label %502

466:                                              ; preds = %448
  %467 = load ptr, ptr %44, align 8, !tbaa !5
  %468 = load i64, ptr %467, align 8, !tbaa !9
  %469 = icmp sge i64 %468, 2
  br i1 %469, label %470, label %483

470:                                              ; preds = %466
  %471 = load ptr, ptr %45, align 8, !tbaa !5
  %472 = load i64, ptr %71, align 8, !tbaa !9
  %473 = load i64, ptr %60, align 8, !tbaa !9
  %474 = shl i64 %473, 1
  %475 = add nsw i64 %472, %474
  %476 = getelementptr inbounds float, ptr %471, i64 %475
  store float 1.000000e+00, ptr %476, align 4, !tbaa !11
  %477 = load ptr, ptr %46, align 8, !tbaa !5
  %478 = load i64, ptr %71, align 8, !tbaa !9
  %479 = load i64, ptr %62, align 8, !tbaa !9
  %480 = shl i64 %479, 1
  %481 = add nsw i64 %478, %480
  %482 = getelementptr inbounds float, ptr %477, i64 %481
  store float 1.000000e+00, ptr %482, align 4, !tbaa !11
  br label %501

483:                                              ; preds = %466
  %484 = load ptr, ptr %44, align 8, !tbaa !5
  %485 = load i64, ptr %484, align 8, !tbaa !9
  %486 = icmp sge i64 %485, 3
  br i1 %486, label %487, label %500

487:                                              ; preds = %483
  %488 = load ptr, ptr %45, align 8, !tbaa !5
  %489 = load i64, ptr %71, align 8, !tbaa !9
  %490 = load i64, ptr %60, align 8, !tbaa !9
  %491 = mul nsw i64 %490, 3
  %492 = add nsw i64 %489, %491
  %493 = getelementptr inbounds float, ptr %488, i64 %492
  store float 0.000000e+00, ptr %493, align 4, !tbaa !11
  %494 = load ptr, ptr %46, align 8, !tbaa !5
  %495 = load i64, ptr %71, align 8, !tbaa !9
  %496 = load i64, ptr %62, align 8, !tbaa !9
  %497 = mul nsw i64 %496, 3
  %498 = add nsw i64 %495, %497
  %499 = getelementptr inbounds float, ptr %494, i64 %498
  store float 0.000000e+00, ptr %499, align 4, !tbaa !11
  br label %500

500:                                              ; preds = %487, %483
  br label %501

501:                                              ; preds = %500, %470
  br label %502

502:                                              ; preds = %501, %455
  br label %503

503:                                              ; preds = %502
  %504 = load i64, ptr %71, align 8, !tbaa !9
  %505 = add nsw i64 %504, 1
  store i64 %505, ptr %71, align 8, !tbaa !9
  br label %444, !llvm.loop !15

506:                                              ; preds = %444
  %507 = load i64, ptr %80, align 8, !tbaa !9
  %508 = icmp ne i64 %507, 0
  br i1 %508, label %509, label %511

509:                                              ; preds = %506
  %510 = getelementptr inbounds [1 x i8], ptr %76, i64 0, i64 0
  store i8 73, ptr %510, align 1, !tbaa !16
  br label %513

511:                                              ; preds = %506
  %512 = getelementptr inbounds [1 x i8], ptr %76, i64 0, i64 0
  store i8 49, ptr %512, align 1, !tbaa !16
  br label %513

513:                                              ; preds = %511, %509
  %514 = getelementptr inbounds [1 x i8], ptr %76, i64 0, i64 0
  %515 = load ptr, ptr %29, align 8, !tbaa !5
  %516 = load ptr, ptr %29, align 8, !tbaa !5
  %517 = load ptr, ptr %31, align 8, !tbaa !5
  %518 = load i64, ptr %53, align 8, !tbaa !9
  %519 = getelementptr inbounds float, ptr %517, i64 %518
  %520 = load ptr, ptr %32, align 8, !tbaa !5
  %521 = load ptr, ptr %49, align 8, !tbaa !5
  %522 = getelementptr inbounds float, ptr %521, i64 1
  %523 = call double @slange_(ptr noundef %514, ptr noundef %515, ptr noundef %516, ptr noundef %519, ptr noundef %520, ptr noundef %522)
  %524 = fptrunc double %523 to float
  store float %524, ptr %78, align 4, !tbaa !11
  %525 = getelementptr inbounds [1 x i8], ptr %76, i64 0, i64 0
  %526 = load ptr, ptr %29, align 8, !tbaa !5
  %527 = load ptr, ptr %33, align 8, !tbaa !5
  %528 = load i64, ptr %55, align 8, !tbaa !9
  %529 = getelementptr inbounds float, ptr %527, i64 %528
  %530 = load ptr, ptr %34, align 8, !tbaa !5
  %531 = load ptr, ptr %42, align 8, !tbaa !5
  %532 = load ptr, ptr %49, align 8, !tbaa !5
  %533 = getelementptr inbounds float, ptr %532, i64 1
  %534 = load ptr, ptr %50, align 8, !tbaa !5
  %535 = getelementptr inbounds i64, ptr %534, i64 1
  %536 = load ptr, ptr %51, align 8, !tbaa !5
  %537 = call i32 @sgecon_(ptr noundef %525, ptr noundef %526, ptr noundef %529, ptr noundef %530, ptr noundef %78, ptr noundef %531, ptr noundef %533, ptr noundef %535, ptr noundef %536)
  %538 = load i64, ptr %70, align 8, !tbaa !9
  %539 = icmp ne i64 %538, 0
  br i1 %539, label %540, label %643

540:                                              ; preds = %513
  %541 = call i64 @ilaprec_(ptr noundef @.str.6)
  store i64 %541, ptr %73, align 8, !tbaa !9
  %542 = load i64, ptr %80, align 8, !tbaa !9
  %543 = icmp ne i64 %542, 0
  br i1 %543, label %544, label %593

544:                                              ; preds = %540
  %545 = load ptr, ptr %29, align 8, !tbaa !5
  %546 = load ptr, ptr %30, align 8, !tbaa !5
  %547 = load ptr, ptr %31, align 8, !tbaa !5
  %548 = load i64, ptr %53, align 8, !tbaa !9
  %549 = getelementptr inbounds float, ptr %547, i64 %548
  %550 = load ptr, ptr %32, align 8, !tbaa !5
  %551 = load ptr, ptr %33, align 8, !tbaa !5
  %552 = load i64, ptr %55, align 8, !tbaa !9
  %553 = getelementptr inbounds float, ptr %551, i64 %552
  %554 = load ptr, ptr %34, align 8, !tbaa !5
  %555 = load ptr, ptr %35, align 8, !tbaa !5
  %556 = getelementptr inbounds i64, ptr %555, i64 1
  %557 = load ptr, ptr %37, align 8, !tbaa !5
  %558 = getelementptr inbounds float, ptr %557, i64 1
  %559 = load ptr, ptr %38, align 8, !tbaa !5
  %560 = load i64, ptr %57, align 8, !tbaa !9
  %561 = getelementptr inbounds float, ptr %559, i64 %560
  %562 = load ptr, ptr %39, align 8, !tbaa !5
  %563 = load ptr, ptr %40, align 8, !tbaa !5
  %564 = load i64, ptr %59, align 8, !tbaa !9
  %565 = getelementptr inbounds float, ptr %563, i64 %564
  %566 = load ptr, ptr %41, align 8, !tbaa !5
  %567 = load ptr, ptr %43, align 8, !tbaa !5
  %568 = getelementptr inbounds float, ptr %567, i64 1
  %569 = load ptr, ptr %45, align 8, !tbaa !5
  %570 = load i64, ptr %61, align 8, !tbaa !9
  %571 = getelementptr inbounds float, ptr %569, i64 %570
  %572 = load ptr, ptr %46, align 8, !tbaa !5
  %573 = load i64, ptr %63, align 8, !tbaa !9
  %574 = getelementptr inbounds float, ptr %572, i64 %573
  %575 = load ptr, ptr %49, align 8, !tbaa !5
  %576 = load ptr, ptr %29, align 8, !tbaa !5
  %577 = load i64, ptr %576, align 8, !tbaa !9
  %578 = add nsw i64 %577, 1
  %579 = getelementptr inbounds float, ptr %575, i64 %578
  %580 = load ptr, ptr %49, align 8, !tbaa !5
  %581 = getelementptr inbounds float, ptr %580, i64 1
  %582 = load ptr, ptr %49, align 8, !tbaa !5
  %583 = load ptr, ptr %29, align 8, !tbaa !5
  %584 = load i64, ptr %583, align 8, !tbaa !9
  %585 = shl i64 %584, 1
  %586 = add nsw i64 %585, 1
  %587 = getelementptr inbounds float, ptr %582, i64 %586
  %588 = load ptr, ptr %49, align 8, !tbaa !5
  %589 = getelementptr inbounds float, ptr %588, i64 1
  %590 = load ptr, ptr %42, align 8, !tbaa !5
  %591 = load ptr, ptr %51, align 8, !tbaa !5
  %592 = call i32 @sla_gerfsx_extended__(ptr noundef %73, ptr noundef %74, ptr noundef %545, ptr noundef %546, ptr noundef %549, ptr noundef %550, ptr noundef %553, ptr noundef %554, ptr noundef %556, ptr noundef %79, ptr noundef %558, ptr noundef %561, ptr noundef %562, ptr noundef %565, ptr noundef %566, ptr noundef %568, ptr noundef %83, ptr noundef %571, ptr noundef %574, ptr noundef %579, ptr noundef %581, ptr noundef %587, ptr noundef %589, ptr noundef %590, ptr noundef %82, ptr noundef %84, ptr noundef %68, ptr noundef %77, ptr noundef %591)
  br label %642

593:                                              ; preds = %540
  %594 = load ptr, ptr %29, align 8, !tbaa !5
  %595 = load ptr, ptr %30, align 8, !tbaa !5
  %596 = load ptr, ptr %31, align 8, !tbaa !5
  %597 = load i64, ptr %53, align 8, !tbaa !9
  %598 = getelementptr inbounds float, ptr %596, i64 %597
  %599 = load ptr, ptr %32, align 8, !tbaa !5
  %600 = load ptr, ptr %33, align 8, !tbaa !5
  %601 = load i64, ptr %55, align 8, !tbaa !9
  %602 = getelementptr inbounds float, ptr %600, i64 %601
  %603 = load ptr, ptr %34, align 8, !tbaa !5
  %604 = load ptr, ptr %35, align 8, !tbaa !5
  %605 = getelementptr inbounds i64, ptr %604, i64 1
  %606 = load ptr, ptr %36, align 8, !tbaa !5
  %607 = getelementptr inbounds float, ptr %606, i64 1
  %608 = load ptr, ptr %38, align 8, !tbaa !5
  %609 = load i64, ptr %57, align 8, !tbaa !9
  %610 = getelementptr inbounds float, ptr %608, i64 %609
  %611 = load ptr, ptr %39, align 8, !tbaa !5
  %612 = load ptr, ptr %40, align 8, !tbaa !5
  %613 = load i64, ptr %59, align 8, !tbaa !9
  %614 = getelementptr inbounds float, ptr %612, i64 %613
  %615 = load ptr, ptr %41, align 8, !tbaa !5
  %616 = load ptr, ptr %43, align 8, !tbaa !5
  %617 = getelementptr inbounds float, ptr %616, i64 1
  %618 = load ptr, ptr %45, align 8, !tbaa !5
  %619 = load i64, ptr %61, align 8, !tbaa !9
  %620 = getelementptr inbounds float, ptr %618, i64 %619
  %621 = load ptr, ptr %46, align 8, !tbaa !5
  %622 = load i64, ptr %63, align 8, !tbaa !9
  %623 = getelementptr inbounds float, ptr %621, i64 %622
  %624 = load ptr, ptr %49, align 8, !tbaa !5
  %625 = load ptr, ptr %29, align 8, !tbaa !5
  %626 = load i64, ptr %625, align 8, !tbaa !9
  %627 = add nsw i64 %626, 1
  %628 = getelementptr inbounds float, ptr %624, i64 %627
  %629 = load ptr, ptr %49, align 8, !tbaa !5
  %630 = getelementptr inbounds float, ptr %629, i64 1
  %631 = load ptr, ptr %49, align 8, !tbaa !5
  %632 = load ptr, ptr %29, align 8, !tbaa !5
  %633 = load i64, ptr %632, align 8, !tbaa !9
  %634 = shl i64 %633, 1
  %635 = add nsw i64 %634, 1
  %636 = getelementptr inbounds float, ptr %631, i64 %635
  %637 = load ptr, ptr %49, align 8, !tbaa !5
  %638 = getelementptr inbounds float, ptr %637, i64 1
  %639 = load ptr, ptr %42, align 8, !tbaa !5
  %640 = load ptr, ptr %51, align 8, !tbaa !5
  %641 = call i32 @sla_gerfsx_extended__(ptr noundef %73, ptr noundef %74, ptr noundef %594, ptr noundef %595, ptr noundef %598, ptr noundef %599, ptr noundef %602, ptr noundef %603, ptr noundef %605, ptr noundef %81, ptr noundef %607, ptr noundef %610, ptr noundef %611, ptr noundef %614, ptr noundef %615, ptr noundef %617, ptr noundef %83, ptr noundef %620, ptr noundef %623, ptr noundef %628, ptr noundef %630, ptr noundef %636, ptr noundef %638, ptr noundef %639, ptr noundef %82, ptr noundef %84, ptr noundef %68, ptr noundef %77, ptr noundef %640)
  br label %642

642:                                              ; preds = %593, %544
  br label %643

643:                                              ; preds = %642, %513
  store float 1.000000e+01, ptr %65, align 4, !tbaa !11
  %644 = load ptr, ptr %29, align 8, !tbaa !5
  %645 = load i64, ptr %644, align 8, !tbaa !9
  %646 = sitofp i64 %645 to float
  %647 = fpext float %646 to double
  %648 = call double @sqrt(double noundef %647) #4
  %649 = fptrunc double %648 to float
  store float %649, ptr %66, align 4, !tbaa !11
  %650 = load float, ptr %65, align 4, !tbaa !11
  %651 = load float, ptr %66, align 4, !tbaa !11
  %652 = fcmp oge float %650, %651
  br i1 %652, label %653, label %655

653:                                              ; preds = %643
  %654 = load float, ptr %65, align 4, !tbaa !11
  br label %657

655:                                              ; preds = %643
  %656 = load float, ptr %66, align 4, !tbaa !11
  br label %657

657:                                              ; preds = %655, %653
  %658 = phi float [ %654, %653 ], [ %656, %655 ]
  %659 = fpext float %658 to double
  %660 = call double @slamch_(ptr noundef @.str)
  %661 = fmul double %659, %660
  %662 = fptrunc double %661 to float
  store float %662, ptr %69, align 4, !tbaa !11
  %663 = load ptr, ptr %44, align 8, !tbaa !5
  %664 = load i64, ptr %663, align 8, !tbaa !9
  %665 = icmp sge i64 %664, 1
  br i1 %665, label %666, label %844

666:                                              ; preds = %657
  %667 = load i64, ptr %83, align 8, !tbaa !9
  %668 = icmp sge i64 %667, 1
  br i1 %668, label %669, label %844

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

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

675:                                              ; preds = %672
  %676 = load ptr, ptr %27, align 8, !tbaa !5
  %677 = load ptr, ptr %29, align 8, !tbaa !5
  %678 = load ptr, ptr %31, align 8, !tbaa !5
  %679 = load i64, ptr %53, align 8, !tbaa !9
  %680 = getelementptr inbounds float, ptr %678, i64 %679
  %681 = load ptr, ptr %32, align 8, !tbaa !5
  %682 = load ptr, ptr %33, align 8, !tbaa !5
  %683 = load i64, ptr %55, align 8, !tbaa !9
  %684 = getelementptr inbounds float, ptr %682, i64 %683
  %685 = load ptr, ptr %34, align 8, !tbaa !5
  %686 = load ptr, ptr %35, align 8, !tbaa !5
  %687 = getelementptr inbounds i64, ptr %686, i64 1
  %688 = load ptr, ptr %37, align 8, !tbaa !5
  %689 = getelementptr inbounds float, ptr %688, i64 1
  %690 = load ptr, ptr %51, align 8, !tbaa !5
  %691 = load ptr, ptr %49, align 8, !tbaa !5
  %692 = getelementptr inbounds float, ptr %691, i64 1
  %693 = load ptr, ptr %50, align 8, !tbaa !5
  %694 = getelementptr inbounds i64, ptr %693, i64 1
  %695 = call double @sla_gercond__(ptr noundef %676, ptr noundef %677, ptr noundef %680, ptr noundef %681, ptr noundef %684, ptr noundef %685, ptr noundef %687, ptr noundef @c_n1, ptr noundef %689, ptr noundef %690, ptr noundef %692, ptr noundef %694, i64 noundef 1)
  %696 = fptrunc double %695 to float
  store float %696, ptr %72, align 4, !tbaa !11
  br label %748

697:                                              ; preds = %672, %669
  %698 = load i64, ptr %81, align 8, !tbaa !9
  %699 = icmp ne i64 %698, 0
  br i1 %699, label %700, label %725

700:                                              ; preds = %697
  %701 = load i64, ptr %80, align 8, !tbaa !9
  %702 = icmp ne i64 %701, 0
  br i1 %702, label %725, label %703

703:                                              ; preds = %700
  %704 = load ptr, ptr %27, align 8, !tbaa !5
  %705 = load ptr, ptr %29, align 8, !tbaa !5
  %706 = load ptr, ptr %31, align 8, !tbaa !5
  %707 = load i64, ptr %53, align 8, !tbaa !9
  %708 = getelementptr inbounds float, ptr %706, i64 %707
  %709 = load ptr, ptr %32, align 8, !tbaa !5
  %710 = load ptr, ptr %33, align 8, !tbaa !5
  %711 = load i64, ptr %55, align 8, !tbaa !9
  %712 = getelementptr inbounds float, ptr %710, i64 %711
  %713 = load ptr, ptr %34, align 8, !tbaa !5
  %714 = load ptr, ptr %35, align 8, !tbaa !5
  %715 = getelementptr inbounds i64, ptr %714, i64 1
  %716 = load ptr, ptr %36, align 8, !tbaa !5
  %717 = getelementptr inbounds float, ptr %716, i64 1
  %718 = load ptr, ptr %51, align 8, !tbaa !5
  %719 = load ptr, ptr %49, align 8, !tbaa !5
  %720 = getelementptr inbounds float, ptr %719, i64 1
  %721 = load ptr, ptr %50, align 8, !tbaa !5
  %722 = getelementptr inbounds i64, ptr %721, i64 1
  %723 = call double @sla_gercond__(ptr noundef %704, ptr noundef %705, ptr noundef %708, ptr noundef %709, ptr noundef %712, ptr noundef %713, ptr noundef %715, ptr noundef @c_n1, ptr noundef %717, ptr noundef %718, ptr noundef %720, ptr noundef %722, i64 noundef 1)
  %724 = fptrunc double %723 to float
  store float %724, ptr %72, align 4, !tbaa !11
  br label %747

725:                                              ; preds = %700, %697
  %726 = load ptr, ptr %27, align 8, !tbaa !5
  %727 = load ptr, ptr %29, align 8, !tbaa !5
  %728 = load ptr, ptr %31, align 8, !tbaa !5
  %729 = load i64, ptr %53, align 8, !tbaa !9
  %730 = getelementptr inbounds float, ptr %728, i64 %729
  %731 = load ptr, ptr %32, align 8, !tbaa !5
  %732 = load ptr, ptr %33, align 8, !tbaa !5
  %733 = load i64, ptr %55, align 8, !tbaa !9
  %734 = getelementptr inbounds float, ptr %732, i64 %733
  %735 = load ptr, ptr %34, align 8, !tbaa !5
  %736 = load ptr, ptr %35, align 8, !tbaa !5
  %737 = getelementptr inbounds i64, ptr %736, i64 1
  %738 = load ptr, ptr %36, align 8, !tbaa !5
  %739 = getelementptr inbounds float, ptr %738, i64 1
  %740 = load ptr, ptr %51, align 8, !tbaa !5
  %741 = load ptr, ptr %49, align 8, !tbaa !5
  %742 = getelementptr inbounds float, ptr %741, i64 1
  %743 = load ptr, ptr %50, align 8, !tbaa !5
  %744 = getelementptr inbounds i64, ptr %743, i64 1
  %745 = call double @sla_gercond__(ptr noundef %726, ptr noundef %727, ptr noundef %730, ptr noundef %731, ptr noundef %734, ptr noundef %735, ptr noundef %737, ptr noundef @c__0, ptr noundef %739, ptr noundef %740, ptr noundef %742, ptr noundef %744, i64 noundef 1)
  %746 = fptrunc double %745 to float
  store float %746, ptr %72, align 4, !tbaa !11
  br label %747

747:                                              ; preds = %725, %703
  br label %748

748:                                              ; preds = %747, %675
  %749 = load ptr, ptr %30, align 8, !tbaa !5
  %750 = load i64, ptr %749, align 8, !tbaa !9
  store i64 %750, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %71, align 8, !tbaa !9
  br label %751

751:                                              ; preds = %840, %748
  %752 = load i64, ptr %71, align 8, !tbaa !9
  %753 = load i64, ptr %64, align 8, !tbaa !9
  %754 = icmp sle i64 %752, %753
  br i1 %754, label %755, label %843

755:                                              ; preds = %751
  %756 = load ptr, ptr %44, align 8, !tbaa !5
  %757 = load i64, ptr %756, align 8, !tbaa !9
  %758 = icmp sge i64 %757, 2
  br i1 %758, label %759, label %775

759:                                              ; preds = %755
  %760 = load ptr, ptr %45, align 8, !tbaa !5
  %761 = load i64, ptr %71, align 8, !tbaa !9
  %762 = load i64, ptr %60, align 8, !tbaa !9
  %763 = shl i64 %762, 1
  %764 = add nsw i64 %761, %763
  %765 = getelementptr inbounds float, ptr %760, i64 %764
  %766 = load float, ptr %765, align 4, !tbaa !11
  %767 = fcmp ogt float %766, 1.000000e+00
  br i1 %767, label %768, label %775

768:                                              ; preds = %759
  %769 = load ptr, ptr %45, align 8, !tbaa !5
  %770 = load i64, ptr %71, align 8, !tbaa !9
  %771 = load i64, ptr %60, align 8, !tbaa !9
  %772 = shl i64 %771, 1
  %773 = add nsw i64 %770, %772
  %774 = getelementptr inbounds float, ptr %769, i64 %773
  store float 1.000000e+00, ptr %774, align 4, !tbaa !11
  br label %775

775:                                              ; preds = %768, %759, %755
  %776 = load float, ptr %72, align 4, !tbaa !11
  %777 = load float, ptr %67, align 4, !tbaa !11
  %778 = fcmp olt float %776, %777
  br i1 %778, label %779, label %803

779:                                              ; preds = %775
  %780 = load ptr, ptr %45, align 8, !tbaa !5
  %781 = load i64, ptr %71, align 8, !tbaa !9
  %782 = load i64, ptr %60, align 8, !tbaa !9
  %783 = shl i64 %782, 1
  %784 = add nsw i64 %781, %783
  %785 = getelementptr inbounds float, ptr %780, i64 %784
  store float 1.000000e+00, ptr %785, align 4, !tbaa !11
  %786 = load ptr, ptr %45, align 8, !tbaa !5
  %787 = load i64, ptr %71, align 8, !tbaa !9
  %788 = load i64, ptr %60, align 8, !tbaa !9
  %789 = add nsw i64 %787, %788
  %790 = getelementptr inbounds float, ptr %786, i64 %789
  store float 0.000000e+00, ptr %790, align 4, !tbaa !11
  %791 = load ptr, ptr %51, align 8, !tbaa !5
  %792 = load i64, ptr %791, align 8, !tbaa !9
  %793 = load ptr, ptr %29, align 8, !tbaa !5
  %794 = load i64, ptr %793, align 8, !tbaa !9
  %795 = icmp sle i64 %792, %794
  br i1 %795, label %796, label %802

796:                                              ; preds = %779
  %797 = load ptr, ptr %29, align 8, !tbaa !5
  %798 = load i64, ptr %797, align 8, !tbaa !9
  %799 = load i64, ptr %71, align 8, !tbaa !9
  %800 = add nsw i64 %798, %799
  %801 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 %800, ptr %801, align 8, !tbaa !9
  br label %802

802:                                              ; preds = %796, %779
  br label %827

803:                                              ; preds = %775
  %804 = load ptr, ptr %45, align 8, !tbaa !5
  %805 = load i64, ptr %71, align 8, !tbaa !9
  %806 = load i64, ptr %60, align 8, !tbaa !9
  %807 = shl i64 %806, 1
  %808 = add nsw i64 %805, %807
  %809 = getelementptr inbounds float, ptr %804, i64 %808
  %810 = load float, ptr %809, align 4, !tbaa !11
  %811 = load float, ptr %69, align 4, !tbaa !11
  %812 = fcmp olt float %810, %811
  br i1 %812, label %813, label %826

813:                                              ; preds = %803
  %814 = load float, ptr %69, align 4, !tbaa !11
  %815 = load ptr, ptr %45, align 8, !tbaa !5
  %816 = load i64, ptr %71, align 8, !tbaa !9
  %817 = load i64, ptr %60, align 8, !tbaa !9
  %818 = shl i64 %817, 1
  %819 = add nsw i64 %816, %818
  %820 = getelementptr inbounds float, ptr %815, i64 %819
  store float %814, ptr %820, align 4, !tbaa !11
  %821 = load ptr, ptr %45, align 8, !tbaa !5
  %822 = load i64, ptr %71, align 8, !tbaa !9
  %823 = load i64, ptr %60, align 8, !tbaa !9
  %824 = add nsw i64 %822, %823
  %825 = getelementptr inbounds float, ptr %821, i64 %824
  store float 1.000000e+00, ptr %825, align 4, !tbaa !11
  br label %826

826:                                              ; preds = %813, %803
  br label %827

827:                                              ; preds = %826, %802
  %828 = load ptr, ptr %44, align 8, !tbaa !5
  %829 = load i64, ptr %828, align 8, !tbaa !9
  %830 = icmp sge i64 %829, 3
  br i1 %830, label %831, label %839

831:                                              ; preds = %827
  %832 = load float, ptr %72, align 4, !tbaa !11
  %833 = load ptr, ptr %45, align 8, !tbaa !5
  %834 = load i64, ptr %71, align 8, !tbaa !9
  %835 = load i64, ptr %60, align 8, !tbaa !9
  %836 = mul nsw i64 %835, 3
  %837 = add nsw i64 %834, %836
  %838 = getelementptr inbounds float, ptr %833, i64 %837
  store float %832, ptr %838, align 4, !tbaa !11
  br label %839

839:                                              ; preds = %831, %827
  br label %840

840:                                              ; preds = %839
  %841 = load i64, ptr %71, align 8, !tbaa !9
  %842 = add nsw i64 %841, 1
  store i64 %842, ptr %71, align 8, !tbaa !9
  br label %751, !llvm.loop !17

843:                                              ; preds = %751
  br label %844

844:                                              ; preds = %843, %666, %657
  %845 = load ptr, ptr %44, align 8, !tbaa !5
  %846 = load i64, ptr %845, align 8, !tbaa !9
  %847 = icmp sge i64 %846, 1
  br i1 %847, label %848, label %994

848:                                              ; preds = %844
  %849 = load i64, ptr %83, align 8, !tbaa !9
  %850 = icmp sge i64 %849, 2
  br i1 %850, label %851, label %994

851:                                              ; preds = %848
  %852 = call double @slamch_(ptr noundef @.str)
  %853 = call double @sqrt(double noundef %852) #4
  %854 = fptrunc double %853 to float
  store float %854, ptr %75, align 4, !tbaa !11
  %855 = load ptr, ptr %30, align 8, !tbaa !5
  %856 = load i64, ptr %855, align 8, !tbaa !9
  store i64 %856, ptr %64, align 8, !tbaa !9
  store i64 1, ptr %71, align 8, !tbaa !9
  br label %857

857:                                              ; preds = %990, %851
  %858 = load i64, ptr %71, align 8, !tbaa !9
  %859 = load i64, ptr %64, align 8, !tbaa !9
  %860 = icmp sle i64 %858, %859
  br i1 %860, label %861, label %993

861:                                              ; preds = %857
  %862 = load ptr, ptr %46, align 8, !tbaa !5
  %863 = load i64, ptr %71, align 8, !tbaa !9
  %864 = load i64, ptr %62, align 8, !tbaa !9
  %865 = shl i64 %864, 1
  %866 = add nsw i64 %863, %865
  %867 = getelementptr inbounds float, ptr %862, i64 %866
  %868 = load float, ptr %867, align 4, !tbaa !11
  %869 = load float, ptr %75, align 4, !tbaa !11
  %870 = fcmp olt float %868, %869
  br i1 %870, label %871, label %897

871:                                              ; preds = %861
  %872 = load ptr, ptr %27, align 8, !tbaa !5
  %873 = load ptr, ptr %29, align 8, !tbaa !5
  %874 = load ptr, ptr %31, align 8, !tbaa !5
  %875 = load i64, ptr %53, align 8, !tbaa !9
  %876 = getelementptr inbounds float, ptr %874, i64 %875
  %877 = load ptr, ptr %32, align 8, !tbaa !5
  %878 = load ptr, ptr %33, align 8, !tbaa !5
  %879 = load i64, ptr %55, align 8, !tbaa !9
  %880 = getelementptr inbounds float, ptr %878, i64 %879
  %881 = load ptr, ptr %34, align 8, !tbaa !5
  %882 = load ptr, ptr %35, align 8, !tbaa !5
  %883 = getelementptr inbounds i64, ptr %882, i64 1
  %884 = load ptr, ptr %40, align 8, !tbaa !5
  %885 = load i64, ptr %71, align 8, !tbaa !9
  %886 = load i64, ptr %58, align 8, !tbaa !9
  %887 = mul nsw i64 %885, %886
  %888 = add nsw i64 %887, 1
  %889 = getelementptr inbounds float, ptr %884, i64 %888
  %890 = load ptr, ptr %51, align 8, !tbaa !5
  %891 = load ptr, ptr %49, align 8, !tbaa !5
  %892 = getelementptr inbounds float, ptr %891, i64 1
  %893 = load ptr, ptr %50, align 8, !tbaa !5
  %894 = getelementptr inbounds i64, ptr %893, i64 1
  %895 = call double @sla_gercond__(ptr noundef %872, ptr noundef %873, ptr noundef %876, ptr noundef %877, ptr noundef %880, ptr noundef %881, ptr noundef %883, ptr noundef @c__1, ptr noundef %889, ptr noundef %890, ptr noundef %892, ptr noundef %894, i64 noundef 1)
  %896 = fptrunc double %895 to float
  store float %896, ptr %72, align 4, !tbaa !11
  br label %898

897:                                              ; preds = %861
  store float 0.000000e+00, ptr %72, align 4, !tbaa !11
  br label %898

898:                                              ; preds = %897, %871
  %899 = load ptr, ptr %44, align 8, !tbaa !5
  %900 = load i64, ptr %899, align 8, !tbaa !9
  %901 = icmp sge i64 %900, 2
  br i1 %901, label %902, label %918

902:                                              ; preds = %898
  %903 = load ptr, ptr %46, align 8, !tbaa !5
  %904 = load i64, ptr %71, align 8, !tbaa !9
  %905 = load i64, ptr %62, align 8, !tbaa !9
  %906 = shl i64 %905, 1
  %907 = add nsw i64 %904, %906
  %908 = getelementptr inbounds float, ptr %903, i64 %907
  %909 = load float, ptr %908, align 4, !tbaa !11
  %910 = fcmp ogt float %909, 1.000000e+00
  br i1 %910, label %911, label %918

911:                                              ; preds = %902
  %912 = load ptr, ptr %46, align 8, !tbaa !5
  %913 = load i64, ptr %71, align 8, !tbaa !9
  %914 = load i64, ptr %62, align 8, !tbaa !9
  %915 = shl i64 %914, 1
  %916 = add nsw i64 %913, %915
  %917 = getelementptr inbounds float, ptr %912, i64 %916
  store float 1.000000e+00, ptr %917, align 4, !tbaa !11
  br label %918

918:                                              ; preds = %911, %902, %898
  %919 = load float, ptr %72, align 4, !tbaa !11
  %920 = load float, ptr %67, align 4, !tbaa !11
  %921 = fcmp olt float %919, %920
  br i1 %921, label %922, label %953

922:                                              ; preds = %918
  %923 = load ptr, ptr %46, align 8, !tbaa !5
  %924 = load i64, ptr %71, align 8, !tbaa !9
  %925 = load i64, ptr %62, align 8, !tbaa !9
  %926 = shl i64 %925, 1
  %927 = add nsw i64 %924, %926
  %928 = getelementptr inbounds float, ptr %923, i64 %927
  store float 1.000000e+00, ptr %928, align 4, !tbaa !11
  %929 = load ptr, ptr %46, align 8, !tbaa !5
  %930 = load i64, ptr %71, align 8, !tbaa !9
  %931 = load i64, ptr %62, align 8, !tbaa !9
  %932 = add nsw i64 %930, %931
  %933 = getelementptr inbounds float, ptr %929, i64 %932
  store float 0.000000e+00, ptr %933, align 4, !tbaa !11
  %934 = load ptr, ptr %48, align 8, !tbaa !5
  %935 = getelementptr inbounds float, ptr %934, i64 3
  %936 = load float, ptr %935, align 4, !tbaa !11
  %937 = fcmp oeq float %936, 1.000000e+00
  br i1 %937, label %938, label %952

938:                                              ; preds = %922
  %939 = load ptr, ptr %51, align 8, !tbaa !5
  %940 = load i64, ptr %939, align 8, !tbaa !9
  %941 = load ptr, ptr %29, align 8, !tbaa !5
  %942 = load i64, ptr %941, align 8, !tbaa !9
  %943 = load i64, ptr %71, align 8, !tbaa !9
  %944 = add nsw i64 %942, %943
  %945 = icmp slt i64 %940, %944
  br i1 %945, label %946, label %952

946:                                              ; preds = %938
  %947 = load ptr, ptr %29, align 8, !tbaa !5
  %948 = load i64, ptr %947, align 8, !tbaa !9
  %949 = load i64, ptr %71, align 8, !tbaa !9
  %950 = add nsw i64 %948, %949
  %951 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 %950, ptr %951, align 8, !tbaa !9
  br label %952

952:                                              ; preds = %946, %938, %922
  br label %977

953:                                              ; preds = %918
  %954 = load ptr, ptr %46, align 8, !tbaa !5
  %955 = load i64, ptr %71, align 8, !tbaa !9
  %956 = load i64, ptr %62, align 8, !tbaa !9
  %957 = shl i64 %956, 1
  %958 = add nsw i64 %955, %957
  %959 = getelementptr inbounds float, ptr %954, i64 %958
  %960 = load float, ptr %959, align 4, !tbaa !11
  %961 = load float, ptr %69, align 4, !tbaa !11
  %962 = fcmp olt float %960, %961
  br i1 %962, label %963, label %976

963:                                              ; preds = %953
  %964 = load float, ptr %69, align 4, !tbaa !11
  %965 = load ptr, ptr %46, align 8, !tbaa !5
  %966 = load i64, ptr %71, align 8, !tbaa !9
  %967 = load i64, ptr %62, align 8, !tbaa !9
  %968 = shl i64 %967, 1
  %969 = add nsw i64 %966, %968
  %970 = getelementptr inbounds float, ptr %965, i64 %969
  store float %964, ptr %970, align 4, !tbaa !11
  %971 = load ptr, ptr %46, align 8, !tbaa !5
  %972 = load i64, ptr %71, align 8, !tbaa !9
  %973 = load i64, ptr %62, align 8, !tbaa !9
  %974 = add nsw i64 %972, %973
  %975 = getelementptr inbounds float, ptr %971, i64 %974
  store float 1.000000e+00, ptr %975, align 4, !tbaa !11
  br label %976

976:                                              ; preds = %963, %953
  br label %977

977:                                              ; preds = %976, %952
  %978 = load ptr, ptr %44, align 8, !tbaa !5
  %979 = load i64, ptr %978, align 8, !tbaa !9
  %980 = icmp sge i64 %979, 3
  br i1 %980, label %981, label %989

981:                                              ; preds = %977
  %982 = load float, ptr %72, align 4, !tbaa !11
  %983 = load ptr, ptr %46, align 8, !tbaa !5
  %984 = load i64, ptr %71, align 8, !tbaa !9
  %985 = load i64, ptr %62, align 8, !tbaa !9
  %986 = mul nsw i64 %985, 3
  %987 = add nsw i64 %984, %986
  %988 = getelementptr inbounds float, ptr %983, i64 %987
  store float %982, ptr %988, align 4, !tbaa !11
  br label %989

989:                                              ; preds = %981, %977
  br label %990

990:                                              ; preds = %989
  %991 = load i64, ptr %71, align 8, !tbaa !9
  %992 = add nsw i64 %991, 1
  store i64 %992, ptr %71, align 8, !tbaa !9
  br label %857, !llvm.loop !18

993:                                              ; preds = %857
  br label %994

994:                                              ; preds = %993, %848, %844
  store i32 0, ptr %26, align 4
  store i32 1, ptr %85, align 4
  br label %995

995:                                              ; preds = %994, %439, %360
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  %996 = load i32, ptr %26, align 4
  ret i32 %996
}

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

declare i64 @ilatrans_(ptr noundef) #2

declare double @slamch_(ptr noundef) #2

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

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

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

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

declare i64 @ilaprec_(ptr noundef) #2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = !{!7, !7, i64 0}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

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

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

55:                                               ; preds = %25
  %56 = load float, ptr %21, align 4, !tbaa !9
  %57 = fcmp olt float %56, 0.000000e+00
  br i1 %57, label %58, label %59

58:                                               ; preds = %55
  store float 1.000000e+00, ptr %21, align 4, !tbaa !9
  br label %61

59:                                               ; preds = %55
  %60 = fptosi float %56 to i64
  br label %61

61:                                               ; preds = %58, %59, %25
  %.0369 = phi i64 [ 1, %58 ], [ %60, %59 ], [ 1, %25 ]
  %62 = load i64, ptr %2, align 8, !tbaa !5
  %63 = sitofp i64 %62 to float
  %64 = fpext float %63 to double
  %65 = tail call double @slamch_(ptr noundef nonnull @.str) #6
  %66 = fmul double %65, %64
  %67 = fptrunc double %66 to float
  store i64 10, ptr %41, align 8, !tbaa !5
  store float 5.000000e-01, ptr %43, align 4, !tbaa !9
  store float 2.500000e-01, ptr %33, align 4, !tbaa !9
  store i64 0, ptr %37, align 8, !tbaa !5
  %68 = load i64, ptr %20, align 8, !tbaa !5
  %69 = icmp sgt i64 %68, 1
  br i1 %69, label %70, label %.thread

70:                                               ; preds = %61
  %71 = getelementptr inbounds i8, ptr %21, i64 4
  %72 = load float, ptr %71, align 4, !tbaa !9
  %73 = fcmp olt float %72, 0.000000e+00
  br i1 %73, label %74, label %75

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

121:                                              ; preds = %118
  %122 = load i64, ptr %5, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %116, i64 1)
  %123 = icmp slt i64 %122, %spec.select
  br i1 %123, label %.thread404.sink.split, label %124

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

127:                                              ; preds = %124
  %128 = load i64, ptr %12, align 8, !tbaa !5
  %129 = icmp slt i64 %128, %spec.select
  br i1 %129, label %.thread404.sink.split, label %130

130:                                              ; preds = %127
  %131 = load i64, ptr %14, align 8, !tbaa !5
  %132 = icmp slt i64 %131, %spec.select
  br i1 %132, label %.thread404.sink.split, label %133

133:                                              ; preds = %130
  %.pr = load i64, ptr %24, align 8, !tbaa !5
  %.not387 = icmp eq i64 %.pr, 0
  br i1 %.not387, label %137, label %.thread404

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

.thread404:                                       ; preds = %.thread404.sink.split, %133
  %134 = phi i64 [ %.pr, %133 ], [ %.sink, %.thread404.sink.split ]
  %135 = sub nsw i64 0, %134
  store i64 %135, ptr %32, align 8, !tbaa !5
  %136 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %32) #6
  br label %.loopexit

137:                                              ; preds = %133
  %138 = icmp eq i64 %116, 0
  br i1 %138, label %141, label %139

139:                                              ; preds = %137
  %140 = icmp eq i64 %119, 0
  br i1 %140, label %.thread440, label %.lr.ph

.thread440:                                       ; preds = %139
  store float 1.000000e+00, ptr %15, align 4, !tbaa !9
  br label %.loopexit

141:                                              ; preds = %137
  store float 1.000000e+00, ptr %15, align 4, !tbaa !9
  %.not400422 = icmp eq i64 %119, 0
  br i1 %.not400422, label %.loopexit, label %.lr.ph425

.lr.ph425:                                        ; preds = %141
  %142 = load i64, ptr %17, align 8, !tbaa !5
  %143 = icmp sgt i64 %142, 0
  br i1 %143, label %.lr.ph425.split.us.preheader, label %.lr.ph425.split.preheader

.lr.ph425.split.us.preheader:                     ; preds = %.lr.ph425
  %min.iters.check474 = icmp ult i64 %119, 12
  br i1 %min.iters.check474, label %.lr.ph425.split.us.preheader485, label %vector.memcheck466

.lr.ph425.split.us.preheader485:                  ; preds = %middle.block472, %vector.memcheck466, %.lr.ph425.split.us.preheader
  %.0367423.us.ph = phi i64 [ 1, %vector.memcheck466 ], [ 1, %.lr.ph425.split.us.preheader ], [ %ind.end478, %middle.block472 ]
  %xtraiter491 = and i64 %119, 1
  %lcmp.mod492.not = icmp eq i64 %xtraiter491, 0
  br i1 %lcmp.mod492.not, label %.lr.ph425.split.us.prol.loopexit, label %.lr.ph425.split.us.prol

.lr.ph425.split.us.prol:                          ; preds = %.lr.ph425.split.us.preheader485
  %144 = getelementptr inbounds float, ptr %51, i64 %.0367423.us.ph
  store float 0.000000e+00, ptr %144, align 4, !tbaa !9
  %145 = add nsw i64 %.0367423.us.ph, %44
  %146 = getelementptr inbounds float, ptr %47, i64 %145
  store float 1.000000e+00, ptr %146, align 4, !tbaa !9
  %147 = getelementptr inbounds float, ptr %46, i64 %145
  store float 1.000000e+00, ptr %147, align 4, !tbaa !9
  %148 = add nuw i64 %.0367423.us.ph, 1
  br label %.lr.ph425.split.us.prol.loopexit

.lr.ph425.split.us.prol.loopexit:                 ; preds = %.lr.ph425.split.us.prol, %.lr.ph425.split.us.preheader485
  %.0367423.us.unr = phi i64 [ %.0367423.us.ph, %.lr.ph425.split.us.preheader485 ], [ %148, %.lr.ph425.split.us.prol ]
  %149 = icmp eq i64 %119, %.0367423.us.ph
  br i1 %149, label %.loopexit, label %.lr.ph425.split.us

vector.memcheck466:                               ; preds = %.lr.ph425.split.us.preheader
  %150 = sub i64 %28, %27
  %diff.check467 = icmp ult i64 %150, 32
  %151 = sub i64 %26, %27
  %diff.check468 = icmp ult i64 %151, 32
  %conflict.rdx469 = or i1 %diff.check467, %diff.check468
  %152 = sub i64 %26, %28
  %diff.check470 = icmp ult i64 %152, 32
  %conflict.rdx471 = or i1 %conflict.rdx469, %diff.check470
  br i1 %conflict.rdx471, label %.lr.ph425.split.us.preheader485, label %vector.ph475

vector.ph475:                                     ; preds = %vector.memcheck466
  %n.vec477 = and i64 %119, 9223372036854775800
  %ind.end478 = or disjoint i64 %n.vec477, 1
  br label %vector.body480

vector.body480:                                   ; preds = %vector.body480, %vector.ph475
  %index481 = phi i64 [ 0, %vector.ph475 ], [ %index.next483, %vector.body480 ]
  %offset.idx482 = or disjoint i64 %index481, 1
  %153 = getelementptr float, ptr %16, i64 %index481
  %154 = getelementptr inbounds i8, ptr %153, i64 16
  store <4 x float> zeroinitializer, ptr %153, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %154, align 4, !tbaa !9
  %155 = add nsw i64 %offset.idx482, %44
  %156 = getelementptr inbounds float, ptr %47, i64 %155
  %157 = getelementptr inbounds i8, ptr %156, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %156, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %157, align 4, !tbaa !9
  %158 = getelementptr inbounds float, ptr %46, i64 %155
  %159 = getelementptr inbounds i8, ptr %158, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %158, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %159, align 4, !tbaa !9
  %index.next483 = add nuw i64 %index481, 8
  %160 = icmp eq i64 %index.next483, %n.vec477
  br i1 %160, label %middle.block472, label %vector.body480, !llvm.loop !11

middle.block472:                                  ; preds = %vector.body480
  %cmp.n484 = icmp eq i64 %119, %n.vec477
  br i1 %cmp.n484, label %.loopexit, label %.lr.ph425.split.us.preheader485

.lr.ph425.split.preheader:                        ; preds = %.lr.ph425
  %161 = shl nuw i64 %119, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %16, i8 0, i64 %161, i1 false), !tbaa !9
  br label %.loopexit

.lr.ph425.split.us:                               ; preds = %.lr.ph425.split.us.prol.loopexit, %.lr.ph425.split.us
  %.0367423.us = phi i64 [ %170, %.lr.ph425.split.us ], [ %.0367423.us.unr, %.lr.ph425.split.us.prol.loopexit ]
  %162 = getelementptr inbounds float, ptr %51, i64 %.0367423.us
  store float 0.000000e+00, ptr %162, align 4, !tbaa !9
  %163 = add nsw i64 %.0367423.us, %44
  %164 = getelementptr inbounds float, ptr %47, i64 %163
  store float 1.000000e+00, ptr %164, align 4, !tbaa !9
  %165 = getelementptr inbounds float, ptr %46, i64 %163
  store float 1.000000e+00, ptr %165, align 4, !tbaa !9
  %166 = add nuw i64 %.0367423.us, 1
  %167 = getelementptr float, ptr %16, i64 %.0367423.us
  store float 0.000000e+00, ptr %167, align 4, !tbaa !9
  %168 = getelementptr inbounds float, ptr %18, i64 %.0367423.us
  store float 1.000000e+00, ptr %168, align 4, !tbaa !9
  %169 = getelementptr inbounds float, ptr %19, i64 %.0367423.us
  store float 1.000000e+00, ptr %169, align 4, !tbaa !9
  %170 = add nuw i64 %.0367423.us, 2
  %exitcond433.not.1 = icmp eq i64 %166, %119
  br i1 %exitcond433.not.1, label %.loopexit, label %.lr.ph425.split.us, !llvm.loop !15

.lr.ph:                                           ; preds = %139
  store float 0.000000e+00, ptr %15, align 4, !tbaa !9
  %171 = load i64, ptr %17, align 8, !tbaa !5
  %172 = icmp sgt i64 %171, 0
  br i1 %172, label %.lr.ph.split.us.preheader, label %.lr.ph.split.preheader

.lr.ph.split.preheader:                           ; preds = %.lr.ph
  %min.iters.check = icmp ult i64 %119, 8
  br i1 %min.iters.check, label %.lr.ph.split.preheader489, label %vector.ph

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

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

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

.lr.ph.split.us.preheader:                        ; preds = %.lr.ph
  %min.iters.check455 = icmp ult i64 %119, 12
  br i1 %min.iters.check455, label %.lr.ph.split.us.preheader488, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph.split.us.preheader
  %176 = sub i64 %31, %30
  %diff.check = icmp ult i64 %176, 32
  %177 = sub i64 %29, %30
  %diff.check450 = icmp ult i64 %177, 32
  %conflict.rdx = or i1 %diff.check, %diff.check450
  %178 = sub i64 %29, %31
  %diff.check451 = icmp ult i64 %178, 32
  %conflict.rdx452 = or i1 %conflict.rdx, %diff.check451
  br i1 %conflict.rdx452, label %.lr.ph.split.us.preheader488, label %vector.ph456

vector.ph456:                                     ; preds = %vector.memcheck
  %n.vec458 = and i64 %119, 9223372036854775800
  %ind.end459 = or disjoint i64 %n.vec458, 1
  br label %vector.body461

vector.body461:                                   ; preds = %vector.body461, %vector.ph456
  %index462 = phi i64 [ 0, %vector.ph456 ], [ %index.next464, %vector.body461 ]
  %offset.idx463 = or disjoint i64 %index462, 1
  %179 = getelementptr float, ptr %16, i64 %index462
  %180 = getelementptr inbounds i8, ptr %179, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %179, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %180, align 4, !tbaa !9
  %181 = add nsw i64 %offset.idx463, %44
  %182 = getelementptr inbounds float, ptr %47, i64 %181
  %183 = getelementptr inbounds i8, ptr %182, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %182, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %183, align 4, !tbaa !9
  %184 = getelementptr inbounds float, ptr %46, i64 %181
  %185 = getelementptr inbounds i8, ptr %184, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %184, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %185, align 4, !tbaa !9
  %index.next464 = add nuw i64 %index462, 8
  %186 = icmp eq i64 %index.next464, %n.vec458
  br i1 %186, label %middle.block453, label %vector.body461, !llvm.loop !17

middle.block453:                                  ; preds = %vector.body461
  %cmp.n465 = icmp eq i64 %119, %n.vec458
  br i1 %cmp.n465, label %._crit_edge, label %.lr.ph.split.us.preheader488

.lr.ph.split.us.preheader488:                     ; preds = %middle.block453, %vector.memcheck, %.lr.ph.split.us.preheader
  %.1368409.us.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph.split.us.preheader ], [ %ind.end459, %middle.block453 ]
  %xtraiter = and i64 %119, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph.split.us.prol.loopexit, label %.lr.ph.split.us.prol

.lr.ph.split.us.prol:                             ; preds = %.lr.ph.split.us.preheader488
  %187 = getelementptr inbounds float, ptr %51, i64 %.1368409.us.ph
  store float 1.000000e+00, ptr %187, align 4, !tbaa !9
  %188 = add nsw i64 %.1368409.us.ph, %44
  %189 = getelementptr inbounds float, ptr %47, i64 %188
  store float 1.000000e+00, ptr %189, align 4, !tbaa !9
  %190 = getelementptr inbounds float, ptr %46, i64 %188
  store float 1.000000e+00, ptr %190, align 4, !tbaa !9
  %191 = add nuw i64 %.1368409.us.ph, 1
  br label %.lr.ph.split.us.prol.loopexit

.lr.ph.split.us.prol.loopexit:                    ; preds = %.lr.ph.split.us.prol, %.lr.ph.split.us.preheader488
  %.1368409.us.unr = phi i64 [ %.1368409.us.ph, %.lr.ph.split.us.preheader488 ], [ %191, %.lr.ph.split.us.prol ]
  %192 = icmp eq i64 %119, %.1368409.us.ph
  br i1 %192, label %._crit_edge, label %.lr.ph.split.us

.lr.ph.split.us:                                  ; preds = %.lr.ph.split.us.prol.loopexit, %.lr.ph.split.us
  %.1368409.us = phi i64 [ %201, %.lr.ph.split.us ], [ %.1368409.us.unr, %.lr.ph.split.us.prol.loopexit ]
  %193 = getelementptr inbounds float, ptr %51, i64 %.1368409.us
  store float 1.000000e+00, ptr %193, align 4, !tbaa !9
  %194 = add nsw i64 %.1368409.us, %44
  %195 = getelementptr inbounds float, ptr %47, i64 %194
  store float 1.000000e+00, ptr %195, align 4, !tbaa !9
  %196 = getelementptr inbounds float, ptr %46, i64 %194
  store float 1.000000e+00, ptr %196, align 4, !tbaa !9
  %197 = add nuw i64 %.1368409.us, 1
  %198 = getelementptr float, ptr %16, i64 %.1368409.us
  store float 1.000000e+00, ptr %198, align 4, !tbaa !9
  %199 = getelementptr inbounds float, ptr %18, i64 %.1368409.us
  store float 1.000000e+00, ptr %199, align 4, !tbaa !9
  %200 = getelementptr inbounds float, ptr %19, i64 %.1368409.us
  store float 1.000000e+00, ptr %200, align 4, !tbaa !9
  %201 = add nuw i64 %.1368409.us, 2
  %exitcond430.not.1 = icmp eq i64 %197, %119
  br i1 %exitcond430.not.1, label %._crit_edge, label %.lr.ph.split.us, !llvm.loop !18

.lr.ph.split:                                     ; preds = %.lr.ph.split.preheader489, %.lr.ph.split
  %.1368409 = phi i64 [ %203, %.lr.ph.split ], [ %.1368409.ph, %.lr.ph.split.preheader489 ]
  %202 = getelementptr inbounds float, ptr %51, i64 %.1368409
  store float 1.000000e+00, ptr %202, align 4, !tbaa !9
  %203 = add nuw i64 %.1368409, 1
  %exitcond.not = icmp eq i64 %.1368409, %119
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph.split, !llvm.loop !19

._crit_edge:                                      ; preds = %.lr.ph.split, %.lr.ph.split.us.prol.loopexit, %.lr.ph.split.us, %middle.block, %middle.block453
  %204 = icmp ne i64 %96, 0
  %. = select i1 %204, i8 73, i8 49
  store i8 %., ptr %36, align 1, !tbaa !20
  %205 = call double @slange_(ptr noundef nonnull %36, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %22) #6
  %206 = fptrunc double %205 to float
  store float %206, ptr %38, align 4, !tbaa !9
  %207 = call i32 @sgecon_(ptr noundef nonnull %36, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %38, ptr noundef nonnull %15, ptr noundef %22, ptr noundef %23, ptr noundef nonnull %24) #6
  br i1 %87, label %217, label %208

208:                                              ; preds = %._crit_edge
  %209 = call i64 @ilaprec_(ptr noundef nonnull @.str.6) #6
  store i64 %209, ptr %34, align 8, !tbaa !5
  %210 = load i64, ptr %2, align 8, !tbaa !5
  %211 = getelementptr float, ptr %22, i64 %210
  %.idx390 = shl i64 %210, 3
  %212 = getelementptr i8, ptr %22, i64 %.idx390
  br i1 %204, label %213, label %215

213:                                              ; preds = %208
  %214 = call i32 @sla_gerfsx_extended__(ptr noundef nonnull %34, ptr noundef nonnull %35, 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 %39, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef nonnull %42, ptr noundef %18, ptr noundef %19, ptr noundef %211, ptr noundef %22, ptr noundef %212, ptr noundef %22, ptr noundef nonnull %15, ptr noundef nonnull %41, ptr noundef nonnull %43, ptr noundef nonnull %33, ptr noundef nonnull %37, ptr noundef nonnull %24) #6
  br label %217

215:                                              ; preds = %208
  %216 = call i32 @sla_gerfsx_extended__(ptr noundef nonnull %34, ptr noundef nonnull %35, 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 %40, ptr noundef %9, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef nonnull %42, ptr noundef %18, ptr noundef %19, ptr noundef %211, ptr noundef %22, ptr noundef %212, ptr noundef %22, ptr noundef nonnull %15, ptr noundef nonnull %41, ptr noundef nonnull %43, ptr noundef nonnull %33, ptr noundef nonnull %37, ptr noundef nonnull %24) #6
  br label %217

217:                                              ; preds = %213, %215, %._crit_edge
  %218 = load i64, ptr %2, align 8, !tbaa !5
  %219 = sitofp i64 %218 to float
  %sqrtf = call float @sqrtf(float noundef %219) #3
  %220 = fcmp ole float %sqrtf, 1.000000e+01
  %221 = select i1 %220, float 1.000000e+01, float %sqrtf
  %222 = fpext float %221 to double
  %223 = call double @slamch_(ptr noundef nonnull @.str) #6
  %224 = fmul double %223, %222
  %225 = fptrunc double %224 to float
  %226 = load i64, ptr %17, align 8, !tbaa !5
  %227 = icmp sgt i64 %226, 0
  %228 = load i64, ptr %42, align 8
  %229 = icmp sgt i64 %228, 0
  %or.cond3 = select i1 %227, i1 %229, i1 false
  br i1 %or.cond3, label %230, label %.loopexit407

230:                                              ; preds = %217
  %231 = load i64, ptr %39, align 8, !tbaa !5
  %232 = icmp ne i64 %231, 0
  %or.cond5 = and i1 %204, %232
  br i1 %or.cond5, label %233, label %235

233:                                              ; preds = %230
  %234 = call double @sla_gercond__(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_n1, ptr noundef %10, ptr noundef nonnull %24, ptr noundef %22, ptr noundef %23, i64 noundef 1) #6
  br label %242

235:                                              ; preds = %230
  %236 = load i64, ptr %40, align 8, !tbaa !5
  %237 = icmp eq i64 %236, 0
  %or.cond7 = or i1 %204, %237
  br i1 %or.cond7, label %240, label %238

238:                                              ; preds = %235
  %239 = call double @sla_gercond__(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_n1, ptr noundef %9, ptr noundef nonnull %24, ptr noundef %22, ptr noundef %23, i64 noundef 1) #6
  br label %242

240:                                              ; preds = %235
  %241 = call double @sla_gercond__(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, ptr noundef %9, ptr noundef nonnull %24, ptr noundef %22, ptr noundef %23, i64 noundef 1) #6
  br label %242

242:                                              ; preds = %238, %240, %233
  %.0366.in = phi double [ %234, %233 ], [ %241, %240 ], [ %239, %238 ]
  %.0366 = fptrunc double %.0366.in to float
  %243 = load i64, ptr %3, align 8, !tbaa !5
  %.not391410 = icmp slt i64 %243, 1
  br i1 %.not391410, label %..loopexit407_crit_edge, label %.lr.ph413

..loopexit407_crit_edge:                          ; preds = %242
  %.pre438 = load i64, ptr %17, align 8, !tbaa !5
  br label %.loopexit407

.lr.ph413:                                        ; preds = %242
  %.idx395 = shl i64 %44, 3
  %invariant.gep = getelementptr i8, ptr %47, i64 %.idx395
  %244 = fcmp olt float %.0366, %67
  %.idx399 = mul i64 %44, 12
  %invariant.gep414 = getelementptr i8, ptr %47, i64 %.idx399
  %.pre436 = load i64, ptr %17, align 8, !tbaa !5
  br i1 %244, label %.lr.ph413.split.us, label %.lr.ph413.split.preheader

.lr.ph413.split.preheader:                        ; preds = %.lr.ph413
  %245 = icmp sgt i64 %.pre436, 1
  %invariant.gep445 = getelementptr i8, ptr %47, i64 %.idx395
  %246 = icmp sgt i64 %.pre436, 2
  br label %.lr.ph413.split

.lr.ph413.split.us:                               ; preds = %.lr.ph413, %259
  %247 = phi i64 [ %256, %259 ], [ %.pre436, %.lr.ph413 ]
  %.2411.us = phi i64 [ %260, %259 ], [ 1, %.lr.ph413 ]
  %248 = getelementptr float, ptr %47, i64 %.2411.us
  %249 = getelementptr i8, ptr %248, i64 %.idx395
  store float 1.000000e+00, ptr %249, align 4, !tbaa !9
  %250 = getelementptr float, ptr %248, i64 %44
  store float 0.000000e+00, ptr %250, align 4, !tbaa !9
  %251 = load i64, ptr %24, align 8, !tbaa !5
  %252 = load i64, ptr %2, align 8, !tbaa !5
  %.not398.us = icmp sgt i64 %251, %252
  br i1 %.not398.us, label %255, label %253

253:                                              ; preds = %.lr.ph413.split.us
  %254 = add nsw i64 %252, %.2411.us
  store i64 %254, ptr %24, align 8, !tbaa !5
  %.pre437 = load i64, ptr %17, align 8, !tbaa !5
  br label %255

255:                                              ; preds = %253, %.lr.ph413.split.us
  %256 = phi i64 [ %.pre437, %253 ], [ %247, %.lr.ph413.split.us ]
  %257 = icmp sgt i64 %256, 2
  br i1 %257, label %258, label %259

258:                                              ; preds = %255
  %gep415.us = getelementptr float, ptr %invariant.gep414, i64 %.2411.us
  store float %.0366, ptr %gep415.us, align 4, !tbaa !9
  br label %259

259:                                              ; preds = %258, %255
  %260 = add nuw i64 %.2411.us, 1
  %exitcond432.not = icmp eq i64 %.2411.us, %243
  br i1 %exitcond432.not, label %.loopexit407, label %.lr.ph413.split.us, !llvm.loop !21

.lr.ph413.split:                                  ; preds = %.lr.ph413.split.preheader, %274
  %.2411 = phi i64 [ %275, %274 ], [ 1, %.lr.ph413.split.preheader ]
  br i1 %245, label %261, label %.lr.ph413.split._crit_edge

.lr.ph413.split._crit_edge:                       ; preds = %.lr.ph413.split
  %gep446 = getelementptr float, ptr %invariant.gep445, i64 %.2411
  %.pre435 = load float, ptr %gep446, align 4, !tbaa !9
  br label %265

261:                                              ; preds = %.lr.ph413.split
  %gep = getelementptr float, ptr %invariant.gep, i64 %.2411
  %262 = load float, ptr %gep, align 4, !tbaa !9
  %263 = fcmp ogt float %262, 1.000000e+00
  br i1 %263, label %264, label %265

264:                                              ; preds = %261
  store float 1.000000e+00, ptr %gep, align 4, !tbaa !9
  br label %265

265:                                              ; preds = %.lr.ph413.split._crit_edge, %264, %261
  %266 = phi float [ %.pre435, %.lr.ph413.split._crit_edge ], [ 1.000000e+00, %264 ], [ %262, %261 ]
  %267 = fcmp olt float %266, %225
  br i1 %267, label %268, label %272

268:                                              ; preds = %265
  %269 = getelementptr float, ptr %47, i64 %.2411
  %270 = getelementptr i8, ptr %269, i64 %.idx395
  store float %225, ptr %270, align 4, !tbaa !9
  %271 = getelementptr float, ptr %269, i64 %44
  store float 1.000000e+00, ptr %271, align 4, !tbaa !9
  br label %272

272:                                              ; preds = %265, %268
  br i1 %246, label %273, label %274

273:                                              ; preds = %272
  %gep415 = getelementptr float, ptr %invariant.gep414, i64 %.2411
  store float %.0366, ptr %gep415, align 4, !tbaa !9
  br label %274

274:                                              ; preds = %272, %273
  %275 = add nuw i64 %.2411, 1
  %exitcond431.not = icmp eq i64 %.2411, %243
  br i1 %exitcond431.not, label %.loopexit407, label %.lr.ph413.split, !llvm.loop !21

.loopexit407:                                     ; preds = %274, %259, %..loopexit407_crit_edge, %217
  %276 = phi i64 [ %.pre438, %..loopexit407_crit_edge ], [ %226, %217 ], [ %256, %259 ], [ %.pre436, %274 ]
  %277 = icmp sgt i64 %276, 0
  %278 = load i64, ptr %42, align 8
  %279 = icmp sgt i64 %278, 1
  %or.cond9 = select i1 %277, i1 %279, i1 false
  br i1 %or.cond9, label %280, label %.loopexit

280:                                              ; preds = %.loopexit407
  %281 = call double @slamch_(ptr noundef nonnull @.str) #6
  %282 = call double @sqrt(double noundef %281) #6
  %283 = fptrunc double %282 to float
  %284 = load i64, ptr %3, align 8, !tbaa !5
  %invariant.gep416 = getelementptr i8, ptr %50, i64 4
  %.not392418 = icmp slt i64 %284, 1
  br i1 %.not392418, label %.loopexit, label %.lr.ph421

.lr.ph421:                                        ; preds = %280
  %.idx393 = shl i64 %44, 3
  %285 = getelementptr inbounds i8, ptr %21, i64 8
  %.idx394 = mul i64 %44, 12
  br label %286

286:                                              ; preds = %.lr.ph421, %324
  %.3419 = phi i64 [ 1, %.lr.ph421 ], [ %325, %324 ]
  %287 = getelementptr float, ptr %46, i64 %.3419
  %288 = getelementptr i8, ptr %287, i64 %.idx393
  %289 = load float, ptr %288, align 4, !tbaa !9
  %290 = fcmp olt float %289, %283
  br i1 %290, label %291, label %295

291:                                              ; preds = %286
  %292 = mul nsw i64 %.3419, %48
  %gep417 = getelementptr float, ptr %invariant.gep416, i64 %292
  %293 = call double @sla_gercond__(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 %gep417, ptr noundef nonnull %24, ptr noundef %22, ptr noundef %23, i64 noundef 1) #6
  %294 = fptrunc double %293 to float
  br label %295

295:                                              ; preds = %286, %291
  %.1 = phi float [ %294, %291 ], [ 0.000000e+00, %286 ]
  %296 = load i64, ptr %17, align 8, !tbaa !5
  %297 = icmp sgt i64 %296, 1
  br i1 %297, label %298, label %302

298:                                              ; preds = %295
  %299 = load float, ptr %288, align 4, !tbaa !9
  %300 = fcmp ogt float %299, 1.000000e+00
  br i1 %300, label %301, label %302

301:                                              ; preds = %298
  store float 1.000000e+00, ptr %288, align 4, !tbaa !9
  br label %302

302:                                              ; preds = %301, %298, %295
  %303 = fcmp olt float %.1, %67
  br i1 %303, label %304, label %314

304:                                              ; preds = %302
  store float 1.000000e+00, ptr %288, align 4, !tbaa !9
  %305 = getelementptr float, ptr %287, i64 %44
  store float 0.000000e+00, ptr %305, align 4, !tbaa !9
  %306 = load float, ptr %285, align 4, !tbaa !9
  %307 = fcmp oeq float %306, 1.000000e+00
  br i1 %307, label %308, label %319

308:                                              ; preds = %304
  %309 = load i64, ptr %24, align 8, !tbaa !5
  %310 = load i64, ptr %2, align 8, !tbaa !5
  %311 = add nsw i64 %310, %.3419
  %312 = icmp slt i64 %309, %311
  br i1 %312, label %313, label %319

313:                                              ; preds = %308
  store i64 %311, ptr %24, align 8, !tbaa !5
  %.pre439 = load i64, ptr %17, align 8, !tbaa !5
  br label %319

314:                                              ; preds = %302
  %315 = load float, ptr %288, align 4, !tbaa !9
  %316 = fcmp olt float %315, %225
  br i1 %316, label %317, label %319

317:                                              ; preds = %314
  store float %225, ptr %288, align 4, !tbaa !9
  %318 = getelementptr float, ptr %287, i64 %44
  store float 1.000000e+00, ptr %318, align 4, !tbaa !9
  br label %319

319:                                              ; preds = %314, %317, %304, %308, %313
  %320 = phi i64 [ %296, %314 ], [ %296, %317 ], [ %296, %304 ], [ %296, %308 ], [ %.pre439, %313 ]
  %321 = icmp sgt i64 %320, 2
  br i1 %321, label %322, label %324

322:                                              ; preds = %319
  %323 = getelementptr i8, ptr %287, i64 %.idx394
  store float %.1, ptr %323, align 4, !tbaa !9
  br label %324

324:                                              ; preds = %319, %322
  %325 = add nuw nsw i64 %.3419, 1
  %.not392.not = icmp slt i64 %.3419, %284
  br i1 %.not392.not, label %286, label %.loopexit, !llvm.loop !22

.loopexit:                                        ; preds = %324, %.lr.ph425.split.us.prol.loopexit, %.lr.ph425.split.us, %middle.block472, %.thread440, %.lr.ph425.split.preheader, %280, %141, %.loopexit407, %.thread404
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #6
  ret i32 0
}

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

declare i64 @ilatrans_(ptr noundef) local_unnamed_addr #2

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

declare i64 @ilaprec_(ptr noundef) local_unnamed_addr #2

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

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

declare float @sqrtf(float) local_unnamed_addr

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12, !13, !14}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!"llvm.loop.isvectorized", i32 1}
!14 = !{!"llvm.loop.unroll.runtime.disable"}
!15 = distinct !{!15, !12, !13}
!16 = distinct !{!16, !12, !13, !14}
!17 = distinct !{!17, !12, !13, !14}
!18 = distinct !{!18, !12, !13}
!19 = distinct !{!19, !12, !14, !13}
!20 = !{!7, !7, i64 0}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}


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