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

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

141:                                              ; preds = %23
  %142 = load ptr, ptr %44, align 8, !tbaa !5
  %143 = getelementptr inbounds float, ptr %142, i64 1
  %144 = load float, ptr %143, align 4, !tbaa !11
  %145 = fcmp olt float %144, 0.000000e+00
  br i1 %145, label %146, label %149

146:                                              ; preds = %141
  %147 = load ptr, ptr %44, align 8, !tbaa !5
  %148 = getelementptr inbounds float, ptr %147, i64 1
  store float 1.000000e+00, ptr %148, align 4, !tbaa !11
  br label %154

149:                                              ; preds = %141
  %150 = load ptr, ptr %44, align 8, !tbaa !5
  %151 = getelementptr inbounds float, ptr %150, i64 1
  %152 = load float, ptr %151, align 4, !tbaa !11
  %153 = fptosi float %152 to i64
  store i64 %153, ptr %66, align 8, !tbaa !9
  br label %154

154:                                              ; preds = %149, %146
  br label %155

155:                                              ; preds = %154, %23
  %156 = load ptr, ptr %27, align 8, !tbaa !5
  %157 = load i64, ptr %156, align 8, !tbaa !9
  %158 = sitofp i64 %157 to float
  %159 = fpext float %158 to double
  %160 = call double @slamch_(ptr noundef @.str)
  %161 = fmul double %159, %160
  %162 = fptrunc double %161 to float
  store float %162, ptr %63, align 4, !tbaa !11
  store i64 10, ptr %75, align 8, !tbaa !9
  store float 5.000000e-01, ptr %77, align 4, !tbaa !11
  store float 2.500000e-01, ptr %64, align 4, !tbaa !11
  store i64 0, ptr %72, align 8, !tbaa !9
  %163 = load ptr, ptr %43, align 8, !tbaa !5
  %164 = load i64, ptr %163, align 8, !tbaa !9
  %165 = icmp sge i64 %164, 2
  br i1 %165, label %166, label %182

166:                                              ; preds = %155
  %167 = load ptr, ptr %44, align 8, !tbaa !5
  %168 = getelementptr inbounds float, ptr %167, i64 2
  %169 = load float, ptr %168, align 4, !tbaa !11
  %170 = fcmp olt float %169, 0.000000e+00
  br i1 %170, label %171, label %176

171:                                              ; preds = %166
  %172 = load i64, ptr %75, align 8, !tbaa !9
  %173 = sitofp i64 %172 to float
  %174 = load ptr, ptr %44, align 8, !tbaa !5
  %175 = getelementptr inbounds float, ptr %174, i64 2
  store float %173, ptr %175, align 4, !tbaa !11
  br label %181

176:                                              ; preds = %166
  %177 = load ptr, ptr %44, align 8, !tbaa !5
  %178 = getelementptr inbounds float, ptr %177, i64 2
  %179 = load float, ptr %178, align 4, !tbaa !11
  %180 = fptosi float %179 to i64
  store i64 %180, ptr %75, align 8, !tbaa !9
  br label %181

181:                                              ; preds = %176, %171
  br label %182

182:                                              ; preds = %181, %155
  %183 = load ptr, ptr %43, align 8, !tbaa !5
  %184 = load i64, ptr %183, align 8, !tbaa !9
  %185 = icmp sge i64 %184, 3
  br i1 %185, label %186, label %209

186:                                              ; preds = %182
  %187 = load ptr, ptr %44, align 8, !tbaa !5
  %188 = getelementptr inbounds float, ptr %187, i64 3
  %189 = load float, ptr %188, align 4, !tbaa !11
  %190 = fcmp olt float %189, 0.000000e+00
  br i1 %190, label %191, label %201

191:                                              ; preds = %186
  %192 = load i64, ptr %72, align 8, !tbaa !9
  %193 = icmp ne i64 %192, 0
  br i1 %193, label %194, label %197

194:                                              ; preds = %191
  %195 = load ptr, ptr %44, align 8, !tbaa !5
  %196 = getelementptr inbounds float, ptr %195, i64 3
  store float 0.000000e+00, ptr %196, align 4, !tbaa !11
  br label %200

197:                                              ; preds = %191
  %198 = load ptr, ptr %44, align 8, !tbaa !5
  %199 = getelementptr inbounds float, ptr %198, i64 3
  store float 1.000000e+00, ptr %199, align 4, !tbaa !11
  br label %200

200:                                              ; preds = %197, %194
  br label %208

201:                                              ; preds = %186
  %202 = load ptr, ptr %44, align 8, !tbaa !5
  %203 = getelementptr inbounds float, ptr %202, i64 3
  %204 = load float, ptr %203, align 4, !tbaa !11
  %205 = fcmp oeq float %204, 0.000000e+00
  %206 = zext i1 %205 to i32
  %207 = sext i32 %206 to i64
  store i64 %207, ptr %72, align 8, !tbaa !9
  br label %208

208:                                              ; preds = %201, %200
  br label %209

209:                                              ; preds = %208, %182
  %210 = load i64, ptr %66, align 8, !tbaa !9
  %211 = icmp eq i64 %210, 0
  br i1 %211, label %216, label %212

212:                                              ; preds = %209
  %213 = load ptr, ptr %40, align 8, !tbaa !5
  %214 = load i64, ptr %213, align 8, !tbaa !9
  %215 = icmp eq i64 %214, 0
  br i1 %215, label %216, label %217

216:                                              ; preds = %212, %209
  store i64 0, ptr %76, align 8, !tbaa !9
  br label %223

217:                                              ; preds = %212
  %218 = load i64, ptr %72, align 8, !tbaa !9
  %219 = icmp ne i64 %218, 0
  br i1 %219, label %220, label %221

220:                                              ; preds = %217
  store i64 1, ptr %76, align 8, !tbaa !9
  br label %222

221:                                              ; preds = %217
  store i64 2, ptr %76, align 8, !tbaa !9
  br label %222

222:                                              ; preds = %221, %220
  br label %223

223:                                              ; preds = %222, %216
  %224 = load ptr, ptr %26, align 8, !tbaa !5
  %225 = call i64 @lsame_(ptr noundef %224, ptr noundef @.str.1)
  store i64 %225, ptr %74, align 8, !tbaa !9
  %226 = load ptr, ptr %25, align 8, !tbaa !5
  %227 = call i64 @lsame_(ptr noundef %226, ptr noundef @.str.2)
  %228 = icmp ne i64 %227, 0
  br i1 %228, label %235, label %229

229:                                              ; preds = %223
  %230 = load ptr, ptr %25, align 8, !tbaa !5
  %231 = call i64 @lsame_(ptr noundef %230, ptr noundef @.str.3)
  %232 = icmp ne i64 %231, 0
  br i1 %232, label %235, label %233

233:                                              ; preds = %229
  %234 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -1, ptr %234, align 8, !tbaa !9
  br label %323

235:                                              ; preds = %229, %223
  %236 = load i64, ptr %74, align 8, !tbaa !9
  %237 = icmp ne i64 %236, 0
  br i1 %237, label %244, label %238

238:                                              ; preds = %235
  %239 = load ptr, ptr %26, align 8, !tbaa !5
  %240 = call i64 @lsame_(ptr noundef %239, ptr noundef @.str.4)
  %241 = icmp ne i64 %240, 0
  br i1 %241, label %244, label %242

242:                                              ; preds = %238
  %243 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -2, ptr %243, align 8, !tbaa !9
  br label %322

244:                                              ; preds = %238, %235
  %245 = load ptr, ptr %27, align 8, !tbaa !5
  %246 = load i64, ptr %245, align 8, !tbaa !9
  %247 = icmp slt i64 %246, 0
  br i1 %247, label %248, label %250

248:                                              ; preds = %244
  %249 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -3, ptr %249, align 8, !tbaa !9
  br label %321

250:                                              ; preds = %244
  %251 = load ptr, ptr %28, align 8, !tbaa !5
  %252 = load i64, ptr %251, align 8, !tbaa !9
  %253 = icmp slt i64 %252, 0
  br i1 %253, label %254, label %256

254:                                              ; preds = %250
  %255 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -4, ptr %255, align 8, !tbaa !9
  br label %320

256:                                              ; preds = %250
  %257 = load ptr, ptr %30, align 8, !tbaa !5
  %258 = load i64, ptr %257, align 8, !tbaa !9
  %259 = load ptr, ptr %27, align 8, !tbaa !5
  %260 = load i64, ptr %259, align 8, !tbaa !9
  %261 = icmp sge i64 1, %260
  br i1 %261, label %262, label %263

262:                                              ; preds = %256
  br label %266

263:                                              ; preds = %256
  %264 = load ptr, ptr %27, align 8, !tbaa !5
  %265 = load i64, ptr %264, align 8, !tbaa !9
  br label %266

266:                                              ; preds = %263, %262
  %267 = phi i64 [ 1, %262 ], [ %265, %263 ]
  %268 = icmp slt i64 %258, %267
  br i1 %268, label %269, label %271

269:                                              ; preds = %266
  %270 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -6, ptr %270, align 8, !tbaa !9
  br label %319

271:                                              ; preds = %266
  %272 = load ptr, ptr %32, align 8, !tbaa !5
  %273 = load i64, ptr %272, align 8, !tbaa !9
  %274 = load ptr, ptr %27, align 8, !tbaa !5
  %275 = load i64, ptr %274, align 8, !tbaa !9
  %276 = icmp sge i64 1, %275
  br i1 %276, label %277, label %278

277:                                              ; preds = %271
  br label %281

278:                                              ; preds = %271
  %279 = load ptr, ptr %27, align 8, !tbaa !5
  %280 = load i64, ptr %279, align 8, !tbaa !9
  br label %281

281:                                              ; preds = %278, %277
  %282 = phi i64 [ 1, %277 ], [ %280, %278 ]
  %283 = icmp slt i64 %273, %282
  br i1 %283, label %284, label %286

284:                                              ; preds = %281
  %285 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -8, ptr %285, align 8, !tbaa !9
  br label %318

286:                                              ; preds = %281
  %287 = load ptr, ptr %35, align 8, !tbaa !5
  %288 = load i64, ptr %287, align 8, !tbaa !9
  %289 = load ptr, ptr %27, align 8, !tbaa !5
  %290 = load i64, ptr %289, align 8, !tbaa !9
  %291 = icmp sge i64 1, %290
  br i1 %291, label %292, label %293

292:                                              ; preds = %286
  br label %296

293:                                              ; preds = %286
  %294 = load ptr, ptr %27, align 8, !tbaa !5
  %295 = load i64, ptr %294, align 8, !tbaa !9
  br label %296

296:                                              ; preds = %293, %292
  %297 = phi i64 [ 1, %292 ], [ %295, %293 ]
  %298 = icmp slt i64 %288, %297
  br i1 %298, label %299, label %301

299:                                              ; preds = %296
  %300 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -11, ptr %300, align 8, !tbaa !9
  br label %317

301:                                              ; preds = %296
  %302 = load ptr, ptr %37, align 8, !tbaa !5
  %303 = load i64, ptr %302, align 8, !tbaa !9
  %304 = load ptr, ptr %27, align 8, !tbaa !5
  %305 = load i64, ptr %304, align 8, !tbaa !9
  %306 = icmp sge i64 1, %305
  br i1 %306, label %307, label %308

307:                                              ; preds = %301
  br label %311

308:                                              ; preds = %301
  %309 = load ptr, ptr %27, align 8, !tbaa !5
  %310 = load i64, ptr %309, align 8, !tbaa !9
  br label %311

311:                                              ; preds = %308, %307
  %312 = phi i64 [ 1, %307 ], [ %310, %308 ]
  %313 = icmp slt i64 %303, %312
  br i1 %313, label %314, label %316

314:                                              ; preds = %311
  %315 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 -13, ptr %315, align 8, !tbaa !9
  br label %316

316:                                              ; preds = %314, %311
  br label %317

317:                                              ; preds = %316, %299
  br label %318

318:                                              ; preds = %317, %284
  br label %319

319:                                              ; preds = %318, %269
  br label %320

320:                                              ; preds = %319, %254
  br label %321

321:                                              ; preds = %320, %248
  br label %322

322:                                              ; preds = %321, %242
  br label %323

323:                                              ; preds = %322, %233
  %324 = load ptr, ptr %47, align 8, !tbaa !5
  %325 = load i64, ptr %324, align 8, !tbaa !9
  %326 = icmp ne i64 %325, 0
  br i1 %326, label %327, label %332

327:                                              ; preds = %323
  %328 = load ptr, ptr %47, align 8, !tbaa !5
  %329 = load i64, ptr %328, align 8, !tbaa !9
  %330 = sub nsw i64 0, %329
  store i64 %330, ptr %60, align 8, !tbaa !9
  %331 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %60)
  store i32 0, ptr %24, align 4
  store i32 1, ptr %78, align 4
  br label %864

332:                                              ; preds = %323
  %333 = load ptr, ptr %27, align 8, !tbaa !5
  %334 = load i64, ptr %333, align 8, !tbaa !9
  %335 = icmp eq i64 %334, 0
  br i1 %335, label %340, label %336

336:                                              ; preds = %332
  %337 = load ptr, ptr %28, align 8, !tbaa !5
  %338 = load i64, ptr %337, align 8, !tbaa !9
  %339 = icmp eq i64 %338, 0
  br i1 %339, label %340, label %407

340:                                              ; preds = %336, %332
  %341 = load ptr, ptr %38, align 8, !tbaa !5
  store float 1.000000e+00, ptr %341, align 4, !tbaa !11
  %342 = load ptr, ptr %28, align 8, !tbaa !5
  %343 = load i64, ptr %342, align 8, !tbaa !9
  store i64 %343, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %344

344:                                              ; preds = %403, %340
  %345 = load i64, ptr %67, align 8, !tbaa !9
  %346 = load i64, ptr %60, align 8, !tbaa !9
  %347 = icmp sle i64 %345, %346
  br i1 %347, label %348, label %406

348:                                              ; preds = %344
  %349 = load ptr, ptr %39, align 8, !tbaa !5
  %350 = load i64, ptr %67, align 8, !tbaa !9
  %351 = getelementptr inbounds float, ptr %349, i64 %350
  store float 0.000000e+00, ptr %351, align 4, !tbaa !11
  %352 = load ptr, ptr %40, align 8, !tbaa !5
  %353 = load i64, ptr %352, align 8, !tbaa !9
  %354 = icmp sge i64 %353, 1
  br i1 %354, label %355, label %366

355:                                              ; preds = %348
  %356 = load ptr, ptr %41, align 8, !tbaa !5
  %357 = load i64, ptr %67, align 8, !tbaa !9
  %358 = load i64, ptr %56, align 8, !tbaa !9
  %359 = add nsw i64 %357, %358
  %360 = getelementptr inbounds float, ptr %356, i64 %359
  store float 1.000000e+00, ptr %360, align 4, !tbaa !11
  %361 = load ptr, ptr %42, align 8, !tbaa !5
  %362 = load i64, ptr %67, align 8, !tbaa !9
  %363 = load i64, ptr %58, align 8, !tbaa !9
  %364 = add nsw i64 %362, %363
  %365 = getelementptr inbounds float, ptr %361, i64 %364
  store float 1.000000e+00, ptr %365, align 4, !tbaa !11
  br label %402

366:                                              ; preds = %348
  %367 = load ptr, ptr %40, align 8, !tbaa !5
  %368 = load i64, ptr %367, align 8, !tbaa !9
  %369 = icmp sge i64 %368, 2
  br i1 %369, label %370, label %383

370:                                              ; preds = %366
  %371 = load ptr, ptr %41, align 8, !tbaa !5
  %372 = load i64, ptr %67, align 8, !tbaa !9
  %373 = load i64, ptr %56, align 8, !tbaa !9
  %374 = shl i64 %373, 1
  %375 = add nsw i64 %372, %374
  %376 = getelementptr inbounds float, ptr %371, i64 %375
  store float 0.000000e+00, ptr %376, align 4, !tbaa !11
  %377 = load ptr, ptr %42, align 8, !tbaa !5
  %378 = load i64, ptr %67, align 8, !tbaa !9
  %379 = load i64, ptr %58, align 8, !tbaa !9
  %380 = shl i64 %379, 1
  %381 = add nsw i64 %378, %380
  %382 = getelementptr inbounds float, ptr %377, i64 %381
  store float 0.000000e+00, ptr %382, align 4, !tbaa !11
  br label %401

383:                                              ; preds = %366
  %384 = load ptr, ptr %40, align 8, !tbaa !5
  %385 = load i64, ptr %384, align 8, !tbaa !9
  %386 = icmp sge i64 %385, 3
  br i1 %386, label %387, label %400

387:                                              ; preds = %383
  %388 = load ptr, ptr %41, align 8, !tbaa !5
  %389 = load i64, ptr %67, align 8, !tbaa !9
  %390 = load i64, ptr %56, align 8, !tbaa !9
  %391 = mul nsw i64 %390, 3
  %392 = add nsw i64 %389, %391
  %393 = getelementptr inbounds float, ptr %388, i64 %392
  store float 1.000000e+00, ptr %393, align 4, !tbaa !11
  %394 = load ptr, ptr %42, align 8, !tbaa !5
  %395 = load i64, ptr %67, align 8, !tbaa !9
  %396 = load i64, ptr %58, align 8, !tbaa !9
  %397 = mul nsw i64 %396, 3
  %398 = add nsw i64 %395, %397
  %399 = getelementptr inbounds float, ptr %394, i64 %398
  store float 1.000000e+00, ptr %399, align 4, !tbaa !11
  br label %400

400:                                              ; preds = %387, %383
  br label %401

401:                                              ; preds = %400, %370
  br label %402

402:                                              ; preds = %401, %355
  br label %403

403:                                              ; preds = %402
  %404 = load i64, ptr %67, align 8, !tbaa !9
  %405 = add nsw i64 %404, 1
  store i64 %405, ptr %67, align 8, !tbaa !9
  br label %344, !llvm.loop !13

406:                                              ; preds = %344
  store i32 0, ptr %24, align 4
  store i32 1, ptr %78, align 4
  br label %864

407:                                              ; preds = %336
  %408 = load ptr, ptr %38, align 8, !tbaa !5
  store float 0.000000e+00, ptr %408, align 4, !tbaa !11
  %409 = load ptr, ptr %28, align 8, !tbaa !5
  %410 = load i64, ptr %409, align 8, !tbaa !9
  store i64 %410, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %411

411:                                              ; preds = %470, %407
  %412 = load i64, ptr %67, align 8, !tbaa !9
  %413 = load i64, ptr %60, align 8, !tbaa !9
  %414 = icmp sle i64 %412, %413
  br i1 %414, label %415, label %473

415:                                              ; preds = %411
  %416 = load ptr, ptr %39, align 8, !tbaa !5
  %417 = load i64, ptr %67, align 8, !tbaa !9
  %418 = getelementptr inbounds float, ptr %416, i64 %417
  store float 1.000000e+00, ptr %418, align 4, !tbaa !11
  %419 = load ptr, ptr %40, align 8, !tbaa !5
  %420 = load i64, ptr %419, align 8, !tbaa !9
  %421 = icmp sge i64 %420, 1
  br i1 %421, label %422, label %433

422:                                              ; preds = %415
  %423 = load ptr, ptr %41, align 8, !tbaa !5
  %424 = load i64, ptr %67, align 8, !tbaa !9
  %425 = load i64, ptr %56, align 8, !tbaa !9
  %426 = add nsw i64 %424, %425
  %427 = getelementptr inbounds float, ptr %423, i64 %426
  store float 1.000000e+00, ptr %427, align 4, !tbaa !11
  %428 = load ptr, ptr %42, align 8, !tbaa !5
  %429 = load i64, ptr %67, align 8, !tbaa !9
  %430 = load i64, ptr %58, align 8, !tbaa !9
  %431 = add nsw i64 %429, %430
  %432 = getelementptr inbounds float, ptr %428, i64 %431
  store float 1.000000e+00, ptr %432, align 4, !tbaa !11
  br label %469

433:                                              ; preds = %415
  %434 = load ptr, ptr %40, align 8, !tbaa !5
  %435 = load i64, ptr %434, align 8, !tbaa !9
  %436 = icmp sge i64 %435, 2
  br i1 %436, label %437, label %450

437:                                              ; preds = %433
  %438 = load ptr, ptr %41, align 8, !tbaa !5
  %439 = load i64, ptr %67, align 8, !tbaa !9
  %440 = load i64, ptr %56, align 8, !tbaa !9
  %441 = shl i64 %440, 1
  %442 = add nsw i64 %439, %441
  %443 = getelementptr inbounds float, ptr %438, i64 %442
  store float 1.000000e+00, ptr %443, align 4, !tbaa !11
  %444 = load ptr, ptr %42, align 8, !tbaa !5
  %445 = load i64, ptr %67, align 8, !tbaa !9
  %446 = load i64, ptr %58, align 8, !tbaa !9
  %447 = shl i64 %446, 1
  %448 = add nsw i64 %445, %447
  %449 = getelementptr inbounds float, ptr %444, i64 %448
  store float 1.000000e+00, ptr %449, align 4, !tbaa !11
  br label %468

450:                                              ; preds = %433
  %451 = load ptr, ptr %40, align 8, !tbaa !5
  %452 = load i64, ptr %451, align 8, !tbaa !9
  %453 = icmp sge i64 %452, 3
  br i1 %453, label %454, label %467

454:                                              ; preds = %450
  %455 = load ptr, ptr %41, align 8, !tbaa !5
  %456 = load i64, ptr %67, align 8, !tbaa !9
  %457 = load i64, ptr %56, align 8, !tbaa !9
  %458 = mul nsw i64 %457, 3
  %459 = add nsw i64 %456, %458
  %460 = getelementptr inbounds float, ptr %455, i64 %459
  store float 0.000000e+00, ptr %460, align 4, !tbaa !11
  %461 = load ptr, ptr %42, align 8, !tbaa !5
  %462 = load i64, ptr %67, align 8, !tbaa !9
  %463 = load i64, ptr %58, align 8, !tbaa !9
  %464 = mul nsw i64 %463, 3
  %465 = add nsw i64 %462, %464
  %466 = getelementptr inbounds float, ptr %461, i64 %465
  store float 0.000000e+00, ptr %466, align 4, !tbaa !11
  br label %467

467:                                              ; preds = %454, %450
  br label %468

468:                                              ; preds = %467, %437
  br label %469

469:                                              ; preds = %468, %422
  br label %470

470:                                              ; preds = %469
  %471 = load i64, ptr %67, align 8, !tbaa !9
  %472 = add nsw i64 %471, 1
  store i64 %472, ptr %67, align 8, !tbaa !9
  br label %411, !llvm.loop !15

473:                                              ; preds = %411
  %474 = getelementptr inbounds [1 x i8], ptr %71, i64 0, i64 0
  store i8 73, ptr %474, align 1, !tbaa !16
  %475 = getelementptr inbounds [1 x i8], ptr %71, i64 0, i64 0
  %476 = load ptr, ptr %25, align 8, !tbaa !5
  %477 = load ptr, ptr %27, align 8, !tbaa !5
  %478 = load ptr, ptr %29, align 8, !tbaa !5
  %479 = load i64, ptr %49, align 8, !tbaa !9
  %480 = getelementptr inbounds float, ptr %478, i64 %479
  %481 = load ptr, ptr %30, align 8, !tbaa !5
  %482 = load ptr, ptr %45, align 8, !tbaa !5
  %483 = getelementptr inbounds float, ptr %482, i64 1
  %484 = call double @slansy_(ptr noundef %475, ptr noundef %476, ptr noundef %477, ptr noundef %480, ptr noundef %481, ptr noundef %483)
  %485 = fptrunc double %484 to float
  store float %485, ptr %73, align 4, !tbaa !11
  %486 = load ptr, ptr %25, align 8, !tbaa !5
  %487 = load ptr, ptr %27, align 8, !tbaa !5
  %488 = load ptr, ptr %31, align 8, !tbaa !5
  %489 = load i64, ptr %51, align 8, !tbaa !9
  %490 = getelementptr inbounds float, ptr %488, i64 %489
  %491 = load ptr, ptr %32, align 8, !tbaa !5
  %492 = load ptr, ptr %38, align 8, !tbaa !5
  %493 = load ptr, ptr %45, align 8, !tbaa !5
  %494 = getelementptr inbounds float, ptr %493, i64 1
  %495 = load ptr, ptr %46, align 8, !tbaa !5
  %496 = getelementptr inbounds i64, ptr %495, i64 1
  %497 = load ptr, ptr %47, align 8, !tbaa !5
  %498 = call i32 @spocon_(ptr noundef %486, ptr noundef %487, ptr noundef %490, ptr noundef %491, ptr noundef %73, ptr noundef %492, ptr noundef %494, ptr noundef %496, ptr noundef %497)
  %499 = load i64, ptr %66, align 8, !tbaa !9
  %500 = icmp ne i64 %499, 0
  br i1 %500, label %501, label %550

501:                                              ; preds = %473
  %502 = call i64 @ilaprec_(ptr noundef @.str.6)
  store i64 %502, ptr %69, align 8, !tbaa !9
  %503 = load ptr, ptr %25, align 8, !tbaa !5
  %504 = load ptr, ptr %27, align 8, !tbaa !5
  %505 = load ptr, ptr %28, align 8, !tbaa !5
  %506 = load ptr, ptr %29, align 8, !tbaa !5
  %507 = load i64, ptr %49, align 8, !tbaa !9
  %508 = getelementptr inbounds float, ptr %506, i64 %507
  %509 = load ptr, ptr %30, align 8, !tbaa !5
  %510 = load ptr, ptr %31, align 8, !tbaa !5
  %511 = load i64, ptr %51, align 8, !tbaa !9
  %512 = getelementptr inbounds float, ptr %510, i64 %511
  %513 = load ptr, ptr %32, align 8, !tbaa !5
  %514 = load ptr, ptr %33, align 8, !tbaa !5
  %515 = getelementptr inbounds float, ptr %514, i64 1
  %516 = load ptr, ptr %34, align 8, !tbaa !5
  %517 = load i64, ptr %53, align 8, !tbaa !9
  %518 = getelementptr inbounds float, ptr %516, i64 %517
  %519 = load ptr, ptr %35, align 8, !tbaa !5
  %520 = load ptr, ptr %36, align 8, !tbaa !5
  %521 = load i64, ptr %55, align 8, !tbaa !9
  %522 = getelementptr inbounds float, ptr %520, i64 %521
  %523 = load ptr, ptr %37, align 8, !tbaa !5
  %524 = load ptr, ptr %39, align 8, !tbaa !5
  %525 = getelementptr inbounds float, ptr %524, i64 1
  %526 = load ptr, ptr %41, align 8, !tbaa !5
  %527 = load i64, ptr %57, align 8, !tbaa !9
  %528 = getelementptr inbounds float, ptr %526, i64 %527
  %529 = load ptr, ptr %42, align 8, !tbaa !5
  %530 = load i64, ptr %59, align 8, !tbaa !9
  %531 = getelementptr inbounds float, ptr %529, i64 %530
  %532 = load ptr, ptr %45, align 8, !tbaa !5
  %533 = load ptr, ptr %27, align 8, !tbaa !5
  %534 = load i64, ptr %533, align 8, !tbaa !9
  %535 = add nsw i64 %534, 1
  %536 = getelementptr inbounds float, ptr %532, i64 %535
  %537 = load ptr, ptr %45, align 8, !tbaa !5
  %538 = getelementptr inbounds float, ptr %537, i64 1
  %539 = load ptr, ptr %45, align 8, !tbaa !5
  %540 = load ptr, ptr %27, align 8, !tbaa !5
  %541 = load i64, ptr %540, align 8, !tbaa !9
  %542 = shl i64 %541, 1
  %543 = add nsw i64 %542, 1
  %544 = getelementptr inbounds float, ptr %539, i64 %543
  %545 = load ptr, ptr %45, align 8, !tbaa !5
  %546 = getelementptr inbounds float, ptr %545, i64 1
  %547 = load ptr, ptr %38, align 8, !tbaa !5
  %548 = load ptr, ptr %47, align 8, !tbaa !5
  %549 = call i32 @sla_porfsx_extended__(ptr noundef %69, ptr noundef %503, ptr noundef %504, ptr noundef %505, ptr noundef %508, ptr noundef %509, ptr noundef %512, ptr noundef %513, ptr noundef %74, ptr noundef %515, ptr noundef %518, ptr noundef %519, ptr noundef %522, ptr noundef %523, ptr noundef %525, ptr noundef %76, ptr noundef %528, ptr noundef %531, ptr noundef %536, ptr noundef %538, ptr noundef %544, ptr noundef %546, ptr noundef %547, ptr noundef %75, ptr noundef %77, ptr noundef %64, ptr noundef %72, ptr noundef %548, i64 noundef 1)
  br label %550

550:                                              ; preds = %501, %473
  store float 1.000000e+01, ptr %61, align 4, !tbaa !11
  %551 = load ptr, ptr %27, align 8, !tbaa !5
  %552 = load i64, ptr %551, align 8, !tbaa !9
  %553 = sitofp i64 %552 to float
  %554 = fpext float %553 to double
  %555 = call double @sqrt(double noundef %554) #4
  %556 = fptrunc double %555 to float
  store float %556, ptr %62, align 4, !tbaa !11
  %557 = load float, ptr %61, align 4, !tbaa !11
  %558 = load float, ptr %62, align 4, !tbaa !11
  %559 = fcmp oge float %557, %558
  br i1 %559, label %560, label %562

560:                                              ; preds = %550
  %561 = load float, ptr %61, align 4, !tbaa !11
  br label %564

562:                                              ; preds = %550
  %563 = load float, ptr %62, align 4, !tbaa !11
  br label %564

564:                                              ; preds = %562, %560
  %565 = phi float [ %561, %560 ], [ %563, %562 ]
  %566 = fpext float %565 to double
  %567 = call double @slamch_(ptr noundef @.str)
  %568 = fmul double %566, %567
  %569 = fptrunc double %568 to float
  store float %569, ptr %65, align 4, !tbaa !11
  %570 = load ptr, ptr %40, align 8, !tbaa !5
  %571 = load i64, ptr %570, align 8, !tbaa !9
  %572 = icmp sge i64 %571, 1
  br i1 %572, label %573, label %715

573:                                              ; preds = %564
  %574 = load i64, ptr %76, align 8, !tbaa !9
  %575 = icmp sge i64 %574, 1
  br i1 %575, label %576, label %715

576:                                              ; preds = %573
  %577 = load i64, ptr %74, align 8, !tbaa !9
  %578 = icmp ne i64 %577, 0
  br i1 %578, label %579, label %599

579:                                              ; preds = %576
  %580 = load ptr, ptr %25, align 8, !tbaa !5
  %581 = load ptr, ptr %27, align 8, !tbaa !5
  %582 = load ptr, ptr %29, align 8, !tbaa !5
  %583 = load i64, ptr %49, align 8, !tbaa !9
  %584 = getelementptr inbounds float, ptr %582, i64 %583
  %585 = load ptr, ptr %30, align 8, !tbaa !5
  %586 = load ptr, ptr %31, align 8, !tbaa !5
  %587 = load i64, ptr %51, align 8, !tbaa !9
  %588 = getelementptr inbounds float, ptr %586, i64 %587
  %589 = load ptr, ptr %32, align 8, !tbaa !5
  %590 = load ptr, ptr %33, align 8, !tbaa !5
  %591 = getelementptr inbounds float, ptr %590, i64 1
  %592 = load ptr, ptr %47, align 8, !tbaa !5
  %593 = load ptr, ptr %45, align 8, !tbaa !5
  %594 = getelementptr inbounds float, ptr %593, i64 1
  %595 = load ptr, ptr %46, align 8, !tbaa !5
  %596 = getelementptr inbounds i64, ptr %595, i64 1
  %597 = call double @sla_porcond__(ptr noundef %580, ptr noundef %581, ptr noundef %584, ptr noundef %585, ptr noundef %588, ptr noundef %589, ptr noundef @c_n1, ptr noundef %591, ptr noundef %592, ptr noundef %594, ptr noundef %596, i64 noundef 1)
  %598 = fptrunc double %597 to float
  store float %598, ptr %68, align 4, !tbaa !11
  br label %619

599:                                              ; preds = %576
  %600 = load ptr, ptr %25, align 8, !tbaa !5
  %601 = load ptr, ptr %27, align 8, !tbaa !5
  %602 = load ptr, ptr %29, align 8, !tbaa !5
  %603 = load i64, ptr %49, align 8, !tbaa !9
  %604 = getelementptr inbounds float, ptr %602, i64 %603
  %605 = load ptr, ptr %30, align 8, !tbaa !5
  %606 = load ptr, ptr %31, align 8, !tbaa !5
  %607 = load i64, ptr %51, align 8, !tbaa !9
  %608 = getelementptr inbounds float, ptr %606, i64 %607
  %609 = load ptr, ptr %32, align 8, !tbaa !5
  %610 = load ptr, ptr %33, align 8, !tbaa !5
  %611 = getelementptr inbounds float, ptr %610, i64 1
  %612 = load ptr, ptr %47, align 8, !tbaa !5
  %613 = load ptr, ptr %45, align 8, !tbaa !5
  %614 = getelementptr inbounds float, ptr %613, i64 1
  %615 = load ptr, ptr %46, align 8, !tbaa !5
  %616 = getelementptr inbounds i64, ptr %615, i64 1
  %617 = call double @sla_porcond__(ptr noundef %600, ptr noundef %601, ptr noundef %604, ptr noundef %605, ptr noundef %608, ptr noundef %609, ptr noundef @c__0, ptr noundef %611, ptr noundef %612, ptr noundef %614, ptr noundef %616, i64 noundef 1)
  %618 = fptrunc double %617 to float
  store float %618, ptr %68, align 4, !tbaa !11
  br label %619

619:                                              ; preds = %599, %579
  %620 = load ptr, ptr %28, align 8, !tbaa !5
  %621 = load i64, ptr %620, align 8, !tbaa !9
  store i64 %621, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %622

622:                                              ; preds = %711, %619
  %623 = load i64, ptr %67, align 8, !tbaa !9
  %624 = load i64, ptr %60, align 8, !tbaa !9
  %625 = icmp sle i64 %623, %624
  br i1 %625, label %626, label %714

626:                                              ; preds = %622
  %627 = load ptr, ptr %40, align 8, !tbaa !5
  %628 = load i64, ptr %627, align 8, !tbaa !9
  %629 = icmp sge i64 %628, 2
  br i1 %629, label %630, label %646

630:                                              ; preds = %626
  %631 = load ptr, ptr %41, align 8, !tbaa !5
  %632 = load i64, ptr %67, align 8, !tbaa !9
  %633 = load i64, ptr %56, align 8, !tbaa !9
  %634 = shl i64 %633, 1
  %635 = add nsw i64 %632, %634
  %636 = getelementptr inbounds float, ptr %631, i64 %635
  %637 = load float, ptr %636, align 4, !tbaa !11
  %638 = fcmp ogt float %637, 1.000000e+00
  br i1 %638, label %639, label %646

639:                                              ; preds = %630
  %640 = load ptr, ptr %41, align 8, !tbaa !5
  %641 = load i64, ptr %67, align 8, !tbaa !9
  %642 = load i64, ptr %56, align 8, !tbaa !9
  %643 = shl i64 %642, 1
  %644 = add nsw i64 %641, %643
  %645 = getelementptr inbounds float, ptr %640, i64 %644
  store float 1.000000e+00, ptr %645, align 4, !tbaa !11
  br label %646

646:                                              ; preds = %639, %630, %626
  %647 = load float, ptr %68, align 4, !tbaa !11
  %648 = load float, ptr %63, align 4, !tbaa !11
  %649 = fcmp olt float %647, %648
  br i1 %649, label %650, label %674

650:                                              ; preds = %646
  %651 = load ptr, ptr %41, align 8, !tbaa !5
  %652 = load i64, ptr %67, align 8, !tbaa !9
  %653 = load i64, ptr %56, align 8, !tbaa !9
  %654 = shl i64 %653, 1
  %655 = add nsw i64 %652, %654
  %656 = getelementptr inbounds float, ptr %651, i64 %655
  store float 1.000000e+00, ptr %656, align 4, !tbaa !11
  %657 = load ptr, ptr %41, align 8, !tbaa !5
  %658 = load i64, ptr %67, align 8, !tbaa !9
  %659 = load i64, ptr %56, align 8, !tbaa !9
  %660 = add nsw i64 %658, %659
  %661 = getelementptr inbounds float, ptr %657, i64 %660
  store float 0.000000e+00, ptr %661, align 4, !tbaa !11
  %662 = load ptr, ptr %47, align 8, !tbaa !5
  %663 = load i64, ptr %662, align 8, !tbaa !9
  %664 = load ptr, ptr %27, align 8, !tbaa !5
  %665 = load i64, ptr %664, align 8, !tbaa !9
  %666 = icmp sle i64 %663, %665
  br i1 %666, label %667, label %673

667:                                              ; preds = %650
  %668 = load ptr, ptr %27, align 8, !tbaa !5
  %669 = load i64, ptr %668, align 8, !tbaa !9
  %670 = load i64, ptr %67, align 8, !tbaa !9
  %671 = add nsw i64 %669, %670
  %672 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 %671, ptr %672, align 8, !tbaa !9
  br label %673

673:                                              ; preds = %667, %650
  br label %698

674:                                              ; preds = %646
  %675 = load ptr, ptr %41, align 8, !tbaa !5
  %676 = load i64, ptr %67, align 8, !tbaa !9
  %677 = load i64, ptr %56, align 8, !tbaa !9
  %678 = shl i64 %677, 1
  %679 = add nsw i64 %676, %678
  %680 = getelementptr inbounds float, ptr %675, i64 %679
  %681 = load float, ptr %680, align 4, !tbaa !11
  %682 = load float, ptr %65, align 4, !tbaa !11
  %683 = fcmp olt float %681, %682
  br i1 %683, label %684, label %697

684:                                              ; preds = %674
  %685 = load float, ptr %65, align 4, !tbaa !11
  %686 = load ptr, ptr %41, align 8, !tbaa !5
  %687 = load i64, ptr %67, align 8, !tbaa !9
  %688 = load i64, ptr %56, align 8, !tbaa !9
  %689 = shl i64 %688, 1
  %690 = add nsw i64 %687, %689
  %691 = getelementptr inbounds float, ptr %686, i64 %690
  store float %685, ptr %691, align 4, !tbaa !11
  %692 = load ptr, ptr %41, align 8, !tbaa !5
  %693 = load i64, ptr %67, align 8, !tbaa !9
  %694 = load i64, ptr %56, align 8, !tbaa !9
  %695 = add nsw i64 %693, %694
  %696 = getelementptr inbounds float, ptr %692, i64 %695
  store float 1.000000e+00, ptr %696, align 4, !tbaa !11
  br label %697

697:                                              ; preds = %684, %674
  br label %698

698:                                              ; preds = %697, %673
  %699 = load ptr, ptr %40, align 8, !tbaa !5
  %700 = load i64, ptr %699, align 8, !tbaa !9
  %701 = icmp sge i64 %700, 3
  br i1 %701, label %702, label %710

702:                                              ; preds = %698
  %703 = load float, ptr %68, align 4, !tbaa !11
  %704 = load ptr, ptr %41, align 8, !tbaa !5
  %705 = load i64, ptr %67, align 8, !tbaa !9
  %706 = load i64, ptr %56, align 8, !tbaa !9
  %707 = mul nsw i64 %706, 3
  %708 = add nsw i64 %705, %707
  %709 = getelementptr inbounds float, ptr %704, i64 %708
  store float %703, ptr %709, align 4, !tbaa !11
  br label %710

710:                                              ; preds = %702, %698
  br label %711

711:                                              ; preds = %710
  %712 = load i64, ptr %67, align 8, !tbaa !9
  %713 = add nsw i64 %712, 1
  store i64 %713, ptr %67, align 8, !tbaa !9
  br label %622, !llvm.loop !17

714:                                              ; preds = %622
  br label %715

715:                                              ; preds = %714, %573, %564
  %716 = load ptr, ptr %40, align 8, !tbaa !5
  %717 = load i64, ptr %716, align 8, !tbaa !9
  %718 = icmp sge i64 %717, 1
  br i1 %718, label %719, label %863

719:                                              ; preds = %715
  %720 = load i64, ptr %76, align 8, !tbaa !9
  %721 = icmp sge i64 %720, 2
  br i1 %721, label %722, label %863

722:                                              ; preds = %719
  %723 = call double @slamch_(ptr noundef @.str)
  %724 = call double @sqrt(double noundef %723) #4
  %725 = fptrunc double %724 to float
  store float %725, ptr %70, align 4, !tbaa !11
  %726 = load ptr, ptr %28, align 8, !tbaa !5
  %727 = load i64, ptr %726, align 8, !tbaa !9
  store i64 %727, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %67, align 8, !tbaa !9
  br label %728

728:                                              ; preds = %859, %722
  %729 = load i64, ptr %67, align 8, !tbaa !9
  %730 = load i64, ptr %60, align 8, !tbaa !9
  %731 = icmp sle i64 %729, %730
  br i1 %731, label %732, label %862

732:                                              ; preds = %728
  %733 = load ptr, ptr %42, align 8, !tbaa !5
  %734 = load i64, ptr %67, align 8, !tbaa !9
  %735 = load i64, ptr %58, align 8, !tbaa !9
  %736 = shl i64 %735, 1
  %737 = add nsw i64 %734, %736
  %738 = getelementptr inbounds float, ptr %733, i64 %737
  %739 = load float, ptr %738, align 4, !tbaa !11
  %740 = load float, ptr %70, align 4, !tbaa !11
  %741 = fcmp olt float %739, %740
  br i1 %741, label %742, label %766

742:                                              ; preds = %732
  %743 = load ptr, ptr %25, align 8, !tbaa !5
  %744 = load ptr, ptr %27, align 8, !tbaa !5
  %745 = load ptr, ptr %29, align 8, !tbaa !5
  %746 = load i64, ptr %49, align 8, !tbaa !9
  %747 = getelementptr inbounds float, ptr %745, i64 %746
  %748 = load ptr, ptr %30, align 8, !tbaa !5
  %749 = load ptr, ptr %31, align 8, !tbaa !5
  %750 = load i64, ptr %51, align 8, !tbaa !9
  %751 = getelementptr inbounds float, ptr %749, i64 %750
  %752 = load ptr, ptr %32, align 8, !tbaa !5
  %753 = load ptr, ptr %36, align 8, !tbaa !5
  %754 = load i64, ptr %67, align 8, !tbaa !9
  %755 = load i64, ptr %54, align 8, !tbaa !9
  %756 = mul nsw i64 %754, %755
  %757 = add nsw i64 %756, 1
  %758 = getelementptr inbounds float, ptr %753, i64 %757
  %759 = load ptr, ptr %47, align 8, !tbaa !5
  %760 = load ptr, ptr %45, align 8, !tbaa !5
  %761 = getelementptr inbounds float, ptr %760, i64 1
  %762 = load ptr, ptr %46, align 8, !tbaa !5
  %763 = getelementptr inbounds i64, ptr %762, i64 1
  %764 = call double @sla_porcond__(ptr noundef %743, ptr noundef %744, ptr noundef %747, ptr noundef %748, ptr noundef %751, ptr noundef %752, ptr noundef @c__1, ptr noundef %758, ptr noundef %759, ptr noundef %761, ptr noundef %763, i64 noundef 1)
  %765 = fptrunc double %764 to float
  store float %765, ptr %68, align 4, !tbaa !11
  br label %767

766:                                              ; preds = %732
  store float 0.000000e+00, ptr %68, align 4, !tbaa !11
  br label %767

767:                                              ; preds = %766, %742
  %768 = load ptr, ptr %40, align 8, !tbaa !5
  %769 = load i64, ptr %768, align 8, !tbaa !9
  %770 = icmp sge i64 %769, 2
  br i1 %770, label %771, label %787

771:                                              ; preds = %767
  %772 = load ptr, ptr %42, align 8, !tbaa !5
  %773 = load i64, ptr %67, align 8, !tbaa !9
  %774 = load i64, ptr %58, align 8, !tbaa !9
  %775 = shl i64 %774, 1
  %776 = add nsw i64 %773, %775
  %777 = getelementptr inbounds float, ptr %772, i64 %776
  %778 = load float, ptr %777, align 4, !tbaa !11
  %779 = fcmp ogt float %778, 1.000000e+00
  br i1 %779, label %780, label %787

780:                                              ; preds = %771
  %781 = load ptr, ptr %42, align 8, !tbaa !5
  %782 = load i64, ptr %67, align 8, !tbaa !9
  %783 = load i64, ptr %58, align 8, !tbaa !9
  %784 = shl i64 %783, 1
  %785 = add nsw i64 %782, %784
  %786 = getelementptr inbounds float, ptr %781, i64 %785
  store float 1.000000e+00, ptr %786, align 4, !tbaa !11
  br label %787

787:                                              ; preds = %780, %771, %767
  %788 = load float, ptr %68, align 4, !tbaa !11
  %789 = load float, ptr %63, align 4, !tbaa !11
  %790 = fcmp olt float %788, %789
  br i1 %790, label %791, label %822

791:                                              ; preds = %787
  %792 = load ptr, ptr %42, align 8, !tbaa !5
  %793 = load i64, ptr %67, align 8, !tbaa !9
  %794 = load i64, ptr %58, align 8, !tbaa !9
  %795 = shl i64 %794, 1
  %796 = add nsw i64 %793, %795
  %797 = getelementptr inbounds float, ptr %792, i64 %796
  store float 1.000000e+00, ptr %797, align 4, !tbaa !11
  %798 = load ptr, ptr %42, align 8, !tbaa !5
  %799 = load i64, ptr %67, align 8, !tbaa !9
  %800 = load i64, ptr %58, align 8, !tbaa !9
  %801 = add nsw i64 %799, %800
  %802 = getelementptr inbounds float, ptr %798, i64 %801
  store float 0.000000e+00, ptr %802, align 4, !tbaa !11
  %803 = load ptr, ptr %44, align 8, !tbaa !5
  %804 = getelementptr inbounds float, ptr %803, i64 3
  %805 = load float, ptr %804, align 4, !tbaa !11
  %806 = fcmp oeq float %805, 1.000000e+00
  br i1 %806, label %807, label %821

807:                                              ; preds = %791
  %808 = load ptr, ptr %47, align 8, !tbaa !5
  %809 = load i64, ptr %808, align 8, !tbaa !9
  %810 = load ptr, ptr %27, align 8, !tbaa !5
  %811 = load i64, ptr %810, align 8, !tbaa !9
  %812 = load i64, ptr %67, align 8, !tbaa !9
  %813 = add nsw i64 %811, %812
  %814 = icmp slt i64 %809, %813
  br i1 %814, label %815, label %821

815:                                              ; preds = %807
  %816 = load ptr, ptr %27, align 8, !tbaa !5
  %817 = load i64, ptr %816, align 8, !tbaa !9
  %818 = load i64, ptr %67, align 8, !tbaa !9
  %819 = add nsw i64 %817, %818
  %820 = load ptr, ptr %47, align 8, !tbaa !5
  store i64 %819, ptr %820, align 8, !tbaa !9
  br label %821

821:                                              ; preds = %815, %807, %791
  br label %846

822:                                              ; preds = %787
  %823 = load ptr, ptr %42, align 8, !tbaa !5
  %824 = load i64, ptr %67, align 8, !tbaa !9
  %825 = load i64, ptr %58, align 8, !tbaa !9
  %826 = shl i64 %825, 1
  %827 = add nsw i64 %824, %826
  %828 = getelementptr inbounds float, ptr %823, i64 %827
  %829 = load float, ptr %828, align 4, !tbaa !11
  %830 = load float, ptr %65, align 4, !tbaa !11
  %831 = fcmp olt float %829, %830
  br i1 %831, label %832, label %845

832:                                              ; preds = %822
  %833 = load float, ptr %65, align 4, !tbaa !11
  %834 = load ptr, ptr %42, align 8, !tbaa !5
  %835 = load i64, ptr %67, align 8, !tbaa !9
  %836 = load i64, ptr %58, align 8, !tbaa !9
  %837 = shl i64 %836, 1
  %838 = add nsw i64 %835, %837
  %839 = getelementptr inbounds float, ptr %834, i64 %838
  store float %833, ptr %839, align 4, !tbaa !11
  %840 = load ptr, ptr %42, align 8, !tbaa !5
  %841 = load i64, ptr %67, align 8, !tbaa !9
  %842 = load i64, ptr %58, align 8, !tbaa !9
  %843 = add nsw i64 %841, %842
  %844 = getelementptr inbounds float, ptr %840, i64 %843
  store float 1.000000e+00, ptr %844, align 4, !tbaa !11
  br label %845

845:                                              ; preds = %832, %822
  br label %846

846:                                              ; preds = %845, %821
  %847 = load ptr, ptr %40, align 8, !tbaa !5
  %848 = load i64, ptr %847, align 8, !tbaa !9
  %849 = icmp sge i64 %848, 3
  br i1 %849, label %850, label %858

850:                                              ; preds = %846
  %851 = load float, ptr %68, align 4, !tbaa !11
  %852 = load ptr, ptr %42, align 8, !tbaa !5
  %853 = load i64, ptr %67, align 8, !tbaa !9
  %854 = load i64, ptr %58, align 8, !tbaa !9
  %855 = mul nsw i64 %854, 3
  %856 = add nsw i64 %853, %855
  %857 = getelementptr inbounds float, ptr %852, i64 %856
  store float %851, ptr %857, align 4, !tbaa !11
  br label %858

858:                                              ; preds = %850, %846
  br label %859

859:                                              ; preds = %858
  %860 = load i64, ptr %67, align 8, !tbaa !9
  %861 = add nsw i64 %860, 1
  store i64 %861, ptr %67, align 8, !tbaa !9
  br label %728, !llvm.loop !18

862:                                              ; preds = %728
  br label %863

863:                                              ; preds = %862, %719, %715
  store i32 0, ptr %24, align 4
  store i32 1, ptr %78, align 4
  br label %864

864:                                              ; preds = %863, %406, %327
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, 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
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  %865 = load i32, ptr %24, align 4
  ret i32 %865
}

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

declare double @slamch_(ptr noundef) #2

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

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

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

declare i32 @spocon_(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_porfsx_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, i64 noundef) #2

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

declare double @sla_porcond__(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 @sporfsx_(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 nocapture noundef readonly %15, ptr noundef %16, ptr noundef %17, ptr nocapture noundef readonly %18, ptr nocapture noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22) local_unnamed_addr #0 {
  %24 = ptrtoint ptr %17 to i64
  %25 = ptrtoint ptr %14 to i64
  %26 = ptrtoint ptr %16 to i64
  %27 = ptrtoint ptr %17 to i64
  %28 = ptrtoint ptr %14 to i64
  %29 = ptrtoint ptr %16 to i64
  %30 = alloca i64, align 8
  %31 = alloca float, align 4
  %32 = alloca i64, align 8
  %33 = alloca [1 x i8], align 1
  %34 = alloca i64, align 8
  %35 = alloca float, align 4
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #6
  %40 = load i64, ptr %3, align 8, !tbaa !5
  %41 = xor i64 %40, -1
  %42 = getelementptr inbounds float, ptr %17, i64 %41
  %43 = getelementptr inbounds float, ptr %16, i64 %41
  %44 = load i64, ptr %12, align 8, !tbaa !5
  %45 = xor i64 %44, -1
  %46 = getelementptr inbounds float, ptr %11, i64 %45
  %47 = getelementptr inbounds i8, ptr %14, i64 -4
  store i64 0, ptr %22, align 8, !tbaa !5
  %48 = load i64, ptr %18, align 8, !tbaa !5
  %49 = icmp sgt i64 %48, 0
  br i1 %49, label %50, label %56

50:                                               ; preds = %23
  %51 = load float, ptr %19, align 4, !tbaa !9
  %52 = fcmp olt float %51, 0.000000e+00
  br i1 %52, label %53, label %54

53:                                               ; preds = %50
  store float 1.000000e+00, ptr %19, align 4, !tbaa !9
  br label %56

54:                                               ; preds = %50
  %55 = fptosi float %51 to i64
  br label %56

56:                                               ; preds = %53, %54, %23
  %.0310 = phi i64 [ 1, %53 ], [ %55, %54 ], [ 1, %23 ]
  %57 = load i64, ptr %2, align 8, !tbaa !5
  %58 = sitofp i64 %57 to float
  %59 = fpext float %58 to double
  %60 = tail call double @slamch_(ptr noundef nonnull @.str) #6
  %61 = fmul double %60, %59
  %62 = fptrunc double %61 to float
  store i64 10, ptr %37, align 8, !tbaa !5
  store float 5.000000e-01, ptr %39, align 4, !tbaa !9
  store float 2.500000e-01, ptr %31, align 4, !tbaa !9
  store i64 0, ptr %34, align 8, !tbaa !5
  %63 = load i64, ptr %18, align 8, !tbaa !5
  %64 = icmp sgt i64 %63, 1
  br i1 %64, label %65, label %.thread

65:                                               ; preds = %56
  %66 = getelementptr inbounds i8, ptr %19, i64 4
  %67 = load float, ptr %66, align 4, !tbaa !9
  %68 = fcmp olt float %67, 0.000000e+00
  br i1 %68, label %69, label %70

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

70:                                               ; preds = %65
  %71 = fptosi float %67 to i64
  store i64 %71, ptr %37, align 8, !tbaa !5
  br label %72

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

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

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

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

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

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

86:                                               ; preds = %83, %.thread
  store i64 0, ptr %38, align 8, !tbaa !5
  br label %90

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

88:                                               ; preds = %87
  store i64 1, ptr %38, align 8, !tbaa !5
  br label %90

89:                                               ; preds = %87
  store i64 2, ptr %38, align 8, !tbaa !5
  br label %90

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

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

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

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

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

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

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

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

110:                                              ; preds = %107
  %111 = load i64, ptr %10, align 8, !tbaa !5
  %112 = icmp slt i64 %111, %spec.select
  br i1 %112, label %.thread346.sink.split, label %113

113:                                              ; preds = %110
  %114 = load i64, ptr %12, align 8, !tbaa !5
  %115 = icmp slt i64 %114, %spec.select
  br i1 %115, label %.thread346.sink.split, label %116

116:                                              ; preds = %113
  %.pr = load i64, ptr %22, align 8, !tbaa !5
  %.not329 = icmp eq i64 %.pr, 0
  br i1 %.not329, label %120, label %.thread346

.thread346.sink.split:                            ; preds = %113, %110, %107, %104, %101, %98, %96, %93
  %.sink = phi i64 [ -1, %93 ], [ -2, %96 ], [ -3, %98 ], [ -4, %101 ], [ -6, %104 ], [ -8, %107 ], [ -11, %110 ], [ -13, %113 ]
  store i64 %.sink, ptr %22, align 8, !tbaa !5
  br label %.thread346

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

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

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

.thread382:                                       ; preds = %122
  store float 1.000000e+00, ptr %13, align 4, !tbaa !9
  br label %.loopexit

124:                                              ; preds = %120
  store float 1.000000e+00, ptr %13, align 4, !tbaa !9
  %.not342364 = icmp eq i64 %102, 0
  br i1 %.not342364, label %.loopexit, label %.lr.ph367

.lr.ph367:                                        ; preds = %124
  %125 = load i64, ptr %15, align 8, !tbaa !5
  %126 = icmp sgt i64 %125, 0
  br i1 %126, label %.lr.ph367.split.us.preheader, label %.lr.ph367.split.preheader

.lr.ph367.split.us.preheader:                     ; preds = %.lr.ph367
  %min.iters.check416 = icmp ult i64 %102, 12
  br i1 %min.iters.check416, label %.lr.ph367.split.us.preheader427, label %vector.memcheck408

.lr.ph367.split.us.preheader427:                  ; preds = %middle.block414, %vector.memcheck408, %.lr.ph367.split.us.preheader
  %.0308365.us.ph = phi i64 [ 1, %vector.memcheck408 ], [ 1, %.lr.ph367.split.us.preheader ], [ %ind.end420, %middle.block414 ]
  %xtraiter433 = and i64 %102, 1
  %lcmp.mod434.not = icmp eq i64 %xtraiter433, 0
  br i1 %lcmp.mod434.not, label %.lr.ph367.split.us.prol.loopexit, label %.lr.ph367.split.us.prol

.lr.ph367.split.us.prol:                          ; preds = %.lr.ph367.split.us.preheader427
  %127 = getelementptr inbounds float, ptr %47, i64 %.0308365.us.ph
  store float 0.000000e+00, ptr %127, align 4, !tbaa !9
  %128 = add nsw i64 %.0308365.us.ph, %40
  %129 = getelementptr inbounds float, ptr %43, i64 %128
  store float 1.000000e+00, ptr %129, align 4, !tbaa !9
  %130 = getelementptr inbounds float, ptr %42, i64 %128
  store float 1.000000e+00, ptr %130, align 4, !tbaa !9
  %131 = add nuw i64 %.0308365.us.ph, 1
  br label %.lr.ph367.split.us.prol.loopexit

.lr.ph367.split.us.prol.loopexit:                 ; preds = %.lr.ph367.split.us.prol, %.lr.ph367.split.us.preheader427
  %.0308365.us.unr = phi i64 [ %.0308365.us.ph, %.lr.ph367.split.us.preheader427 ], [ %131, %.lr.ph367.split.us.prol ]
  %132 = icmp eq i64 %102, %.0308365.us.ph
  br i1 %132, label %.loopexit, label %.lr.ph367.split.us

vector.memcheck408:                               ; preds = %.lr.ph367.split.us.preheader
  %133 = sub i64 %26, %25
  %diff.check409 = icmp ult i64 %133, 32
  %134 = sub i64 %24, %25
  %diff.check410 = icmp ult i64 %134, 32
  %conflict.rdx411 = or i1 %diff.check409, %diff.check410
  %135 = sub i64 %24, %26
  %diff.check412 = icmp ult i64 %135, 32
  %conflict.rdx413 = or i1 %conflict.rdx411, %diff.check412
  br i1 %conflict.rdx413, label %.lr.ph367.split.us.preheader427, label %vector.ph417

vector.ph417:                                     ; preds = %vector.memcheck408
  %n.vec419 = and i64 %102, 9223372036854775800
  %ind.end420 = or disjoint i64 %n.vec419, 1
  br label %vector.body422

vector.body422:                                   ; preds = %vector.body422, %vector.ph417
  %index423 = phi i64 [ 0, %vector.ph417 ], [ %index.next425, %vector.body422 ]
  %offset.idx424 = or disjoint i64 %index423, 1
  %136 = getelementptr float, ptr %14, i64 %index423
  %137 = getelementptr inbounds i8, ptr %136, i64 16
  store <4 x float> zeroinitializer, ptr %136, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %137, align 4, !tbaa !9
  %138 = add nsw i64 %offset.idx424, %40
  %139 = getelementptr inbounds float, ptr %43, i64 %138
  %140 = getelementptr inbounds i8, ptr %139, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %139, 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 %140, align 4, !tbaa !9
  %141 = getelementptr inbounds float, ptr %42, i64 %138
  %142 = getelementptr inbounds i8, ptr %141, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %141, 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 %142, align 4, !tbaa !9
  %index.next425 = add nuw i64 %index423, 8
  %143 = icmp eq i64 %index.next425, %n.vec419
  br i1 %143, label %middle.block414, label %vector.body422, !llvm.loop !11

middle.block414:                                  ; preds = %vector.body422
  %cmp.n426 = icmp eq i64 %102, %n.vec419
  br i1 %cmp.n426, label %.loopexit, label %.lr.ph367.split.us.preheader427

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

.lr.ph367.split.us:                               ; preds = %.lr.ph367.split.us.prol.loopexit, %.lr.ph367.split.us
  %.0308365.us = phi i64 [ %153, %.lr.ph367.split.us ], [ %.0308365.us.unr, %.lr.ph367.split.us.prol.loopexit ]
  %145 = getelementptr inbounds float, ptr %47, i64 %.0308365.us
  store float 0.000000e+00, ptr %145, align 4, !tbaa !9
  %146 = add nsw i64 %.0308365.us, %40
  %147 = getelementptr inbounds float, ptr %43, i64 %146
  store float 1.000000e+00, ptr %147, align 4, !tbaa !9
  %148 = getelementptr inbounds float, ptr %42, i64 %146
  store float 1.000000e+00, ptr %148, align 4, !tbaa !9
  %149 = add nuw i64 %.0308365.us, 1
  %150 = getelementptr float, ptr %14, i64 %.0308365.us
  store float 0.000000e+00, ptr %150, align 4, !tbaa !9
  %151 = getelementptr inbounds float, ptr %16, i64 %.0308365.us
  store float 1.000000e+00, ptr %151, align 4, !tbaa !9
  %152 = getelementptr inbounds float, ptr %17, i64 %.0308365.us
  store float 1.000000e+00, ptr %152, align 4, !tbaa !9
  %153 = add nuw i64 %.0308365.us, 2
  %exitcond375.not.1 = icmp eq i64 %149, %102
  br i1 %exitcond375.not.1, label %.loopexit, label %.lr.ph367.split.us, !llvm.loop !15

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

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

.lr.ph.split.preheader431:                        ; preds = %middle.block, %.lr.ph.split.preheader
  %.1309351.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 %102, 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 ]
  %156 = getelementptr float, ptr %14, i64 %index
  %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
  %index.next = add nuw i64 %index, 8
  %158 = icmp eq i64 %index.next, %n.vec
  br i1 %158, label %middle.block, label %vector.body, !llvm.loop !16

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

.lr.ph.split.us.preheader:                        ; preds = %.lr.ph
  %min.iters.check397 = icmp ult i64 %102, 12
  br i1 %min.iters.check397, label %.lr.ph.split.us.preheader430, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph.split.us.preheader
  %159 = sub i64 %29, %28
  %diff.check = icmp ult i64 %159, 32
  %160 = sub i64 %27, %28
  %diff.check392 = icmp ult i64 %160, 32
  %conflict.rdx = or i1 %diff.check, %diff.check392
  %161 = sub i64 %27, %29
  %diff.check393 = icmp ult i64 %161, 32
  %conflict.rdx394 = or i1 %conflict.rdx, %diff.check393
  br i1 %conflict.rdx394, label %.lr.ph.split.us.preheader430, label %vector.ph398

vector.ph398:                                     ; preds = %vector.memcheck
  %n.vec400 = and i64 %102, 9223372036854775800
  %ind.end401 = or disjoint i64 %n.vec400, 1
  br label %vector.body403

vector.body403:                                   ; preds = %vector.body403, %vector.ph398
  %index404 = phi i64 [ 0, %vector.ph398 ], [ %index.next406, %vector.body403 ]
  %offset.idx405 = or disjoint i64 %index404, 1
  %162 = getelementptr float, ptr %14, i64 %index404
  %163 = getelementptr inbounds i8, ptr %162, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %162, 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 %163, align 4, !tbaa !9
  %164 = add nsw i64 %offset.idx405, %40
  %165 = getelementptr inbounds float, ptr %43, i64 %164
  %166 = getelementptr inbounds i8, ptr %165, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %165, 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 %166, align 4, !tbaa !9
  %167 = getelementptr inbounds float, ptr %42, i64 %164
  %168 = getelementptr inbounds i8, ptr %167, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %167, 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 %168, align 4, !tbaa !9
  %index.next406 = add nuw i64 %index404, 8
  %169 = icmp eq i64 %index.next406, %n.vec400
  br i1 %169, label %middle.block395, label %vector.body403, !llvm.loop !17

middle.block395:                                  ; preds = %vector.body403
  %cmp.n407 = icmp eq i64 %102, %n.vec400
  br i1 %cmp.n407, label %._crit_edge, label %.lr.ph.split.us.preheader430

.lr.ph.split.us.preheader430:                     ; preds = %middle.block395, %vector.memcheck, %.lr.ph.split.us.preheader
  %.1309351.us.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph.split.us.preheader ], [ %ind.end401, %middle.block395 ]
  %xtraiter = and i64 %102, 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.preheader430
  %170 = getelementptr inbounds float, ptr %47, i64 %.1309351.us.ph
  store float 1.000000e+00, ptr %170, align 4, !tbaa !9
  %171 = add nsw i64 %.1309351.us.ph, %40
  %172 = getelementptr inbounds float, ptr %43, i64 %171
  store float 1.000000e+00, ptr %172, align 4, !tbaa !9
  %173 = getelementptr inbounds float, ptr %42, i64 %171
  store float 1.000000e+00, ptr %173, align 4, !tbaa !9
  %174 = add nuw i64 %.1309351.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.preheader430
  %.1309351.us.unr = phi i64 [ %.1309351.us.ph, %.lr.ph.split.us.preheader430 ], [ %174, %.lr.ph.split.us.prol ]
  %175 = icmp eq i64 %102, %.1309351.us.ph
  br i1 %175, label %._crit_edge, label %.lr.ph.split.us

.lr.ph.split.us:                                  ; preds = %.lr.ph.split.us.prol.loopexit, %.lr.ph.split.us
  %.1309351.us = phi i64 [ %184, %.lr.ph.split.us ], [ %.1309351.us.unr, %.lr.ph.split.us.prol.loopexit ]
  %176 = getelementptr inbounds float, ptr %47, i64 %.1309351.us
  store float 1.000000e+00, ptr %176, align 4, !tbaa !9
  %177 = add nsw i64 %.1309351.us, %40
  %178 = getelementptr inbounds float, ptr %43, i64 %177
  store float 1.000000e+00, ptr %178, align 4, !tbaa !9
  %179 = getelementptr inbounds float, ptr %42, i64 %177
  store float 1.000000e+00, ptr %179, align 4, !tbaa !9
  %180 = add nuw i64 %.1309351.us, 1
  %181 = getelementptr float, ptr %14, i64 %.1309351.us
  store float 1.000000e+00, ptr %181, align 4, !tbaa !9
  %182 = getelementptr inbounds float, ptr %16, i64 %.1309351.us
  store float 1.000000e+00, ptr %182, align 4, !tbaa !9
  %183 = getelementptr inbounds float, ptr %17, i64 %.1309351.us
  store float 1.000000e+00, ptr %183, align 4, !tbaa !9
  %184 = add nuw i64 %.1309351.us, 2
  %exitcond372.not.1 = icmp eq i64 %180, %102
  br i1 %exitcond372.not.1, label %._crit_edge, label %.lr.ph.split.us, !llvm.loop !18

.lr.ph.split:                                     ; preds = %.lr.ph.split.preheader431, %.lr.ph.split
  %.1309351 = phi i64 [ %186, %.lr.ph.split ], [ %.1309351.ph, %.lr.ph.split.preheader431 ]
  %185 = getelementptr inbounds float, ptr %47, i64 %.1309351
  store float 1.000000e+00, ptr %185, align 4, !tbaa !9
  %186 = add nuw i64 %.1309351, 1
  %exitcond.not = icmp eq i64 %.1309351, %102
  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.block395
  store i8 73, ptr %33, align 1, !tbaa !20
  %187 = call double @slansy_(ptr noundef nonnull %33, ptr noundef %0, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %20) #6
  %188 = fptrunc double %187 to float
  store float %188, ptr %35, align 4, !tbaa !9
  %189 = call i32 @spocon_(ptr noundef %0, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %35, ptr noundef nonnull %13, ptr noundef %20, ptr noundef %21, ptr noundef nonnull %22) #6
  br i1 %82, label %196, label %190

190:                                              ; preds = %._crit_edge
  %191 = call i64 @ilaprec_(ptr noundef nonnull @.str.6) #6
  store i64 %191, ptr %32, align 8, !tbaa !5
  %192 = load i64, ptr %2, align 8, !tbaa !5
  %193 = getelementptr float, ptr %20, i64 %192
  %.idx = shl i64 %192, 3
  %194 = getelementptr i8, ptr %20, i64 %.idx
  %195 = call i32 @sla_porfsx_extended__(ptr noundef nonnull %32, ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %36, ptr noundef %8, ptr noundef %9, ptr noundef nonnull %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef nonnull %38, ptr noundef %16, ptr noundef %17, ptr noundef %193, ptr noundef %20, ptr noundef %194, ptr noundef %20, ptr noundef nonnull %13, ptr noundef nonnull %37, ptr noundef nonnull %39, ptr noundef nonnull %31, ptr noundef nonnull %34, ptr noundef nonnull %22, i64 noundef 1) #6
  br label %196

196:                                              ; preds = %190, %._crit_edge
  %197 = load i64, ptr %2, align 8, !tbaa !5
  %198 = sitofp i64 %197 to float
  %sqrtf = call float @sqrtf(float noundef %198) #3
  %199 = fcmp ole float %sqrtf, 1.000000e+01
  %200 = select i1 %199, float 1.000000e+01, float %sqrtf
  %201 = fpext float %200 to double
  %202 = call double @slamch_(ptr noundef nonnull @.str) #6
  %203 = fmul double %202, %201
  %204 = fptrunc double %203 to float
  %205 = load i64, ptr %15, align 8, !tbaa !5
  %206 = icmp sgt i64 %205, 0
  %207 = load i64, ptr %38, align 8
  %208 = icmp sgt i64 %207, 0
  %or.cond = select i1 %206, i1 %208, i1 false
  br i1 %or.cond, label %209, label %.loopexit349

209:                                              ; preds = %196
  %210 = load i64, ptr %36, align 8, !tbaa !5
  %.not332 = icmp eq i64 %210, 0
  %c__0.c_n1 = select i1 %.not332, ptr @c__0, ptr @c_n1
  %211 = call double @sla_porcond__(ptr noundef %0, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull %c__0.c_n1, ptr noundef %8, ptr noundef nonnull %22, ptr noundef %20, ptr noundef %21, i64 noundef 1) #6
  %.0307 = fptrunc double %211 to float
  %212 = load i64, ptr %3, align 8, !tbaa !5
  %.not333352 = icmp slt i64 %212, 1
  br i1 %.not333352, label %..loopexit349_crit_edge, label %.lr.ph355

..loopexit349_crit_edge:                          ; preds = %209
  %.pre380 = load i64, ptr %15, align 8, !tbaa !5
  br label %.loopexit349

.lr.ph355:                                        ; preds = %209
  %.idx337 = shl i64 %40, 3
  %invariant.gep = getelementptr i8, ptr %43, i64 %.idx337
  %213 = fcmp olt float %.0307, %62
  %.idx341 = mul i64 %40, 12
  %invariant.gep356 = getelementptr i8, ptr %43, i64 %.idx341
  %.pre378 = load i64, ptr %15, align 8, !tbaa !5
  br i1 %213, label %.lr.ph355.split.us, label %.lr.ph355.split.preheader

.lr.ph355.split.preheader:                        ; preds = %.lr.ph355
  %214 = icmp sgt i64 %.pre378, 1
  %invariant.gep387 = getelementptr i8, ptr %43, i64 %.idx337
  %215 = icmp sgt i64 %.pre378, 2
  br label %.lr.ph355.split

.lr.ph355.split.us:                               ; preds = %.lr.ph355, %228
  %216 = phi i64 [ %225, %228 ], [ %.pre378, %.lr.ph355 ]
  %.2353.us = phi i64 [ %229, %228 ], [ 1, %.lr.ph355 ]
  %217 = getelementptr float, ptr %43, i64 %.2353.us
  %218 = getelementptr i8, ptr %217, i64 %.idx337
  store float 1.000000e+00, ptr %218, align 4, !tbaa !9
  %219 = getelementptr float, ptr %217, i64 %40
  store float 0.000000e+00, ptr %219, align 4, !tbaa !9
  %220 = load i64, ptr %22, align 8, !tbaa !5
  %221 = load i64, ptr %2, align 8, !tbaa !5
  %.not340.us = icmp sgt i64 %220, %221
  br i1 %.not340.us, label %224, label %222

222:                                              ; preds = %.lr.ph355.split.us
  %223 = add nsw i64 %221, %.2353.us
  store i64 %223, ptr %22, align 8, !tbaa !5
  %.pre379 = load i64, ptr %15, align 8, !tbaa !5
  br label %224

224:                                              ; preds = %222, %.lr.ph355.split.us
  %225 = phi i64 [ %.pre379, %222 ], [ %216, %.lr.ph355.split.us ]
  %226 = icmp sgt i64 %225, 2
  br i1 %226, label %227, label %228

227:                                              ; preds = %224
  %gep357.us = getelementptr float, ptr %invariant.gep356, i64 %.2353.us
  store float %.0307, ptr %gep357.us, align 4, !tbaa !9
  br label %228

228:                                              ; preds = %227, %224
  %229 = add nuw i64 %.2353.us, 1
  %exitcond374.not = icmp eq i64 %.2353.us, %212
  br i1 %exitcond374.not, label %.loopexit349, label %.lr.ph355.split.us, !llvm.loop !21

.lr.ph355.split:                                  ; preds = %.lr.ph355.split.preheader, %243
  %.2353 = phi i64 [ %244, %243 ], [ 1, %.lr.ph355.split.preheader ]
  br i1 %214, label %230, label %.lr.ph355.split._crit_edge

.lr.ph355.split._crit_edge:                       ; preds = %.lr.ph355.split
  %gep388 = getelementptr float, ptr %invariant.gep387, i64 %.2353
  %.pre377 = load float, ptr %gep388, align 4, !tbaa !9
  br label %234

230:                                              ; preds = %.lr.ph355.split
  %gep = getelementptr float, ptr %invariant.gep, i64 %.2353
  %231 = load float, ptr %gep, align 4, !tbaa !9
  %232 = fcmp ogt float %231, 1.000000e+00
  br i1 %232, label %233, label %234

233:                                              ; preds = %230
  store float 1.000000e+00, ptr %gep, align 4, !tbaa !9
  br label %234

234:                                              ; preds = %.lr.ph355.split._crit_edge, %233, %230
  %235 = phi float [ %.pre377, %.lr.ph355.split._crit_edge ], [ 1.000000e+00, %233 ], [ %231, %230 ]
  %236 = fcmp olt float %235, %204
  br i1 %236, label %237, label %241

237:                                              ; preds = %234
  %238 = getelementptr float, ptr %43, i64 %.2353
  %239 = getelementptr i8, ptr %238, i64 %.idx337
  store float %204, ptr %239, align 4, !tbaa !9
  %240 = getelementptr float, ptr %238, i64 %40
  store float 1.000000e+00, ptr %240, align 4, !tbaa !9
  br label %241

241:                                              ; preds = %234, %237
  br i1 %215, label %242, label %243

242:                                              ; preds = %241
  %gep357 = getelementptr float, ptr %invariant.gep356, i64 %.2353
  store float %.0307, ptr %gep357, align 4, !tbaa !9
  br label %243

243:                                              ; preds = %241, %242
  %244 = add nuw i64 %.2353, 1
  %exitcond373.not = icmp eq i64 %.2353, %212
  br i1 %exitcond373.not, label %.loopexit349, label %.lr.ph355.split, !llvm.loop !21

.loopexit349:                                     ; preds = %243, %228, %..loopexit349_crit_edge, %196
  %245 = phi i64 [ %.pre380, %..loopexit349_crit_edge ], [ %205, %196 ], [ %225, %228 ], [ %.pre378, %243 ]
  %246 = icmp sgt i64 %245, 0
  %247 = load i64, ptr %38, align 8
  %248 = icmp sgt i64 %247, 1
  %or.cond3 = select i1 %246, i1 %248, i1 false
  br i1 %or.cond3, label %249, label %.loopexit

249:                                              ; preds = %.loopexit349
  %250 = call double @slamch_(ptr noundef nonnull @.str) #6
  %251 = call double @sqrt(double noundef %250) #6
  %252 = fptrunc double %251 to float
  %253 = load i64, ptr %3, align 8, !tbaa !5
  %invariant.gep358 = getelementptr i8, ptr %46, i64 4
  %.not334360 = icmp slt i64 %253, 1
  br i1 %.not334360, label %.loopexit, label %.lr.ph363

.lr.ph363:                                        ; preds = %249
  %.idx335 = shl i64 %40, 3
  %254 = getelementptr inbounds i8, ptr %19, i64 8
  %.idx336 = mul i64 %40, 12
  br label %255

255:                                              ; preds = %.lr.ph363, %293
  %.3361 = phi i64 [ 1, %.lr.ph363 ], [ %294, %293 ]
  %256 = getelementptr float, ptr %42, i64 %.3361
  %257 = getelementptr i8, ptr %256, i64 %.idx335
  %258 = load float, ptr %257, align 4, !tbaa !9
  %259 = fcmp olt float %258, %252
  br i1 %259, label %260, label %264

260:                                              ; preds = %255
  %261 = mul nsw i64 %.3361, %44
  %gep359 = getelementptr float, ptr %invariant.gep358, i64 %261
  %262 = call double @sla_porcond__(ptr noundef %0, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef nonnull @c__1, ptr noundef %gep359, ptr noundef nonnull %22, ptr noundef %20, ptr noundef %21, i64 noundef 1) #6
  %263 = fptrunc double %262 to float
  br label %264

264:                                              ; preds = %255, %260
  %.1 = phi float [ %263, %260 ], [ 0.000000e+00, %255 ]
  %265 = load i64, ptr %15, align 8, !tbaa !5
  %266 = icmp sgt i64 %265, 1
  br i1 %266, label %267, label %271

267:                                              ; preds = %264
  %268 = load float, ptr %257, align 4, !tbaa !9
  %269 = fcmp ogt float %268, 1.000000e+00
  br i1 %269, label %270, label %271

270:                                              ; preds = %267
  store float 1.000000e+00, ptr %257, align 4, !tbaa !9
  br label %271

271:                                              ; preds = %270, %267, %264
  %272 = fcmp olt float %.1, %62
  br i1 %272, label %273, label %283

273:                                              ; preds = %271
  store float 1.000000e+00, ptr %257, align 4, !tbaa !9
  %274 = getelementptr float, ptr %256, i64 %40
  store float 0.000000e+00, ptr %274, align 4, !tbaa !9
  %275 = load float, ptr %254, align 4, !tbaa !9
  %276 = fcmp oeq float %275, 1.000000e+00
  br i1 %276, label %277, label %288

277:                                              ; preds = %273
  %278 = load i64, ptr %22, align 8, !tbaa !5
  %279 = load i64, ptr %2, align 8, !tbaa !5
  %280 = add nsw i64 %279, %.3361
  %281 = icmp slt i64 %278, %280
  br i1 %281, label %282, label %288

282:                                              ; preds = %277
  store i64 %280, ptr %22, align 8, !tbaa !5
  %.pre381 = load i64, ptr %15, align 8, !tbaa !5
  br label %288

283:                                              ; preds = %271
  %284 = load float, ptr %257, align 4, !tbaa !9
  %285 = fcmp olt float %284, %204
  br i1 %285, label %286, label %288

286:                                              ; preds = %283
  store float %204, ptr %257, align 4, !tbaa !9
  %287 = getelementptr float, ptr %256, i64 %40
  store float 1.000000e+00, ptr %287, align 4, !tbaa !9
  br label %288

288:                                              ; preds = %283, %286, %273, %277, %282
  %289 = phi i64 [ %265, %283 ], [ %265, %286 ], [ %265, %273 ], [ %265, %277 ], [ %.pre381, %282 ]
  %290 = icmp sgt i64 %289, 2
  br i1 %290, label %291, label %293

291:                                              ; preds = %288
  %292 = getelementptr i8, ptr %256, i64 %.idx336
  store float %.1, ptr %292, align 4, !tbaa !9
  br label %293

293:                                              ; preds = %288, %291
  %294 = add nuw nsw i64 %.3361, 1
  %.not334.not = icmp slt i64 %.3361, %253
  br i1 %.not334.not, label %255, label %.loopexit, !llvm.loop !22

.loopexit:                                        ; preds = %293, %.lr.ph367.split.us.prol.loopexit, %.lr.ph367.split.us, %middle.block414, %.thread382, %.lr.ph367.split.preheader, %249, %124, %.loopexit349, %.thread346
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #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 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 @slansy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @spocon_(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_porfsx_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, i64 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_porcond__(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,SROAPass,SimplifyCFGPass,TailCallElimPass