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

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

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

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

169:                                              ; preds = %27
  %170 = load ptr, ptr %51, align 8, !tbaa !5
  %171 = getelementptr inbounds float, ptr %170, i64 1
  %172 = load float, ptr %171, align 4, !tbaa !11
  %173 = fcmp olt float %172, 0.000000e+00
  br i1 %173, label %174, label %177

174:                                              ; preds = %169
  %175 = load ptr, ptr %51, align 8, !tbaa !5
  %176 = getelementptr inbounds float, ptr %175, i64 1
  store float 1.000000e+00, ptr %176, align 4, !tbaa !11
  br label %182

177:                                              ; preds = %169
  %178 = load ptr, ptr %51, align 8, !tbaa !5
  %179 = getelementptr inbounds float, ptr %178, i64 1
  %180 = load float, ptr %179, align 4, !tbaa !11
  %181 = fptosi float %180 to i32
  store i32 %181, ptr %74, align 4, !tbaa !9
  br label %182

182:                                              ; preds = %177, %174
  br label %183

183:                                              ; preds = %182, %27
  %184 = load ptr, ptr %30, align 8, !tbaa !5
  %185 = load i32, ptr %184, align 4, !tbaa !9
  %186 = sitofp i32 %185 to float
  %187 = call float @slamch_(ptr noundef @.str)
  %188 = fmul float %186, %187
  store float %188, ptr %70, align 4, !tbaa !11
  store i32 10, ptr %84, align 4, !tbaa !9
  store float 5.000000e-01, ptr %86, align 4, !tbaa !11
  store float 2.500000e-01, ptr %71, align 4, !tbaa !11
  store i32 0, ptr %75, align 4, !tbaa !9
  %189 = load ptr, ptr %50, align 8, !tbaa !5
  %190 = load i32, ptr %189, align 4, !tbaa !9
  %191 = icmp sge i32 %190, 2
  br i1 %191, label %192, label %208

192:                                              ; preds = %183
  %193 = load ptr, ptr %51, align 8, !tbaa !5
  %194 = getelementptr inbounds float, ptr %193, i64 2
  %195 = load float, ptr %194, align 4, !tbaa !11
  %196 = fcmp olt float %195, 0.000000e+00
  br i1 %196, label %197, label %202

197:                                              ; preds = %192
  %198 = load i32, ptr %84, align 4, !tbaa !9
  %199 = sitofp i32 %198 to float
  %200 = load ptr, ptr %51, align 8, !tbaa !5
  %201 = getelementptr inbounds float, ptr %200, i64 2
  store float %199, ptr %201, align 4, !tbaa !11
  br label %207

202:                                              ; preds = %192
  %203 = load ptr, ptr %51, align 8, !tbaa !5
  %204 = getelementptr inbounds float, ptr %203, i64 2
  %205 = load float, ptr %204, align 4, !tbaa !11
  %206 = fptosi float %205 to i32
  store i32 %206, ptr %84, align 4, !tbaa !9
  br label %207

207:                                              ; preds = %202, %197
  br label %208

208:                                              ; preds = %207, %183
  %209 = load ptr, ptr %50, align 8, !tbaa !5
  %210 = load i32, ptr %209, align 4, !tbaa !9
  %211 = icmp sge i32 %210, 3
  br i1 %211, label %212, label %234

212:                                              ; preds = %208
  %213 = load ptr, ptr %51, align 8, !tbaa !5
  %214 = getelementptr inbounds float, ptr %213, i64 3
  %215 = load float, ptr %214, align 4, !tbaa !11
  %216 = fcmp olt float %215, 0.000000e+00
  br i1 %216, label %217, label %227

217:                                              ; preds = %212
  %218 = load i32, ptr %75, align 4, !tbaa !9
  %219 = icmp ne i32 %218, 0
  br i1 %219, label %220, label %223

220:                                              ; preds = %217
  %221 = load ptr, ptr %51, align 8, !tbaa !5
  %222 = getelementptr inbounds float, ptr %221, i64 3
  store float 0.000000e+00, ptr %222, align 4, !tbaa !11
  br label %226

223:                                              ; preds = %217
  %224 = load ptr, ptr %51, align 8, !tbaa !5
  %225 = getelementptr inbounds float, ptr %224, i64 3
  store float 1.000000e+00, ptr %225, align 4, !tbaa !11
  br label %226

226:                                              ; preds = %223, %220
  br label %233

227:                                              ; preds = %212
  %228 = load ptr, ptr %51, align 8, !tbaa !5
  %229 = getelementptr inbounds float, ptr %228, i64 3
  %230 = load float, ptr %229, align 4, !tbaa !11
  %231 = fcmp oeq float %230, 0.000000e+00
  %232 = zext i1 %231 to i32
  store i32 %232, ptr %75, align 4, !tbaa !9
  br label %233

233:                                              ; preds = %227, %226
  br label %234

234:                                              ; preds = %233, %208
  %235 = load i32, ptr %74, align 4, !tbaa !9
  %236 = icmp eq i32 %235, 0
  br i1 %236, label %241, label %237

237:                                              ; preds = %234
  %238 = load ptr, ptr %47, align 8, !tbaa !5
  %239 = load i32, ptr %238, align 4, !tbaa !9
  %240 = icmp eq i32 %239, 0
  br i1 %240, label %241, label %242

241:                                              ; preds = %237, %234
  store i32 0, ptr %85, align 4, !tbaa !9
  br label %248

242:                                              ; preds = %237
  %243 = load i32, ptr %75, align 4, !tbaa !9
  %244 = icmp ne i32 %243, 0
  br i1 %244, label %245, label %246

245:                                              ; preds = %242
  store i32 1, ptr %85, align 4, !tbaa !9
  br label %247

246:                                              ; preds = %242
  store i32 2, ptr %85, align 4, !tbaa !9
  br label %247

247:                                              ; preds = %246, %245
  br label %248

248:                                              ; preds = %247, %241
  %249 = load ptr, ptr %28, align 8, !tbaa !5
  %250 = call i32 @lsame_(ptr noundef %249, ptr noundef @.str.1)
  store i32 %250, ptr %81, align 4, !tbaa !9
  %251 = load ptr, ptr %29, align 8, !tbaa !5
  %252 = call i32 @lsame_(ptr noundef %251, ptr noundef @.str.2)
  %253 = icmp ne i32 %252, 0
  br i1 %253, label %258, label %254

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

258:                                              ; preds = %254, %248
  %259 = phi i1 [ true, %248 ], [ %257, %254 ]
  %260 = zext i1 %259 to i32
  store i32 %260, ptr %82, align 4, !tbaa !9
  %261 = load ptr, ptr %29, align 8, !tbaa !5
  %262 = call i32 @lsame_(ptr noundef %261, ptr noundef @.str.4)
  %263 = icmp ne i32 %262, 0
  br i1 %263, label %268, label %264

264:                                              ; preds = %258
  %265 = load ptr, ptr %29, align 8, !tbaa !5
  %266 = call i32 @lsame_(ptr noundef %265, ptr noundef @.str.3)
  %267 = icmp ne i32 %266, 0
  br label %268

268:                                              ; preds = %264, %258
  %269 = phi i1 [ true, %258 ], [ %267, %264 ]
  %270 = zext i1 %269 to i32
  store i32 %270, ptr %80, align 4, !tbaa !9
  %271 = load i32, ptr %83, align 4, !tbaa !9
  %272 = icmp eq i32 %271, -1
  br i1 %272, label %273, label %275

273:                                              ; preds = %268
  %274 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -1, ptr %274, align 4, !tbaa !9
  br label %375

275:                                              ; preds = %268
  %276 = load i32, ptr %82, align 4, !tbaa !9
  %277 = icmp ne i32 %276, 0
  br i1 %277, label %287, label %278

278:                                              ; preds = %275
  %279 = load i32, ptr %80, align 4, !tbaa !9
  %280 = icmp ne i32 %279, 0
  br i1 %280, label %287, label %281

281:                                              ; preds = %278
  %282 = load ptr, ptr %29, align 8, !tbaa !5
  %283 = call i32 @lsame_(ptr noundef %282, ptr noundef @.str.1)
  %284 = icmp ne i32 %283, 0
  br i1 %284, label %287, label %285

285:                                              ; preds = %281
  %286 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -2, ptr %286, align 4, !tbaa !9
  br label %374

287:                                              ; preds = %281, %278, %275
  %288 = load ptr, ptr %30, align 8, !tbaa !5
  %289 = load i32, ptr %288, align 4, !tbaa !9
  %290 = icmp slt i32 %289, 0
  br i1 %290, label %291, label %293

291:                                              ; preds = %287
  %292 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -3, ptr %292, align 4, !tbaa !9
  br label %373

293:                                              ; preds = %287
  %294 = load ptr, ptr %31, align 8, !tbaa !5
  %295 = load i32, ptr %294, align 4, !tbaa !9
  %296 = icmp slt i32 %295, 0
  br i1 %296, label %297, label %299

297:                                              ; preds = %293
  %298 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -4, ptr %298, align 4, !tbaa !9
  br label %372

299:                                              ; preds = %293
  %300 = load ptr, ptr %32, align 8, !tbaa !5
  %301 = load i32, ptr %300, align 4, !tbaa !9
  %302 = icmp slt i32 %301, 0
  br i1 %302, label %303, label %305

303:                                              ; preds = %299
  %304 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -5, ptr %304, align 4, !tbaa !9
  br label %371

305:                                              ; preds = %299
  %306 = load ptr, ptr %33, align 8, !tbaa !5
  %307 = load i32, ptr %306, align 4, !tbaa !9
  %308 = icmp slt i32 %307, 0
  br i1 %308, label %309, label %311

309:                                              ; preds = %305
  %310 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -6, ptr %310, align 4, !tbaa !9
  br label %370

311:                                              ; preds = %305
  %312 = load ptr, ptr %35, align 8, !tbaa !5
  %313 = load i32, ptr %312, align 4, !tbaa !9
  %314 = load ptr, ptr %31, align 8, !tbaa !5
  %315 = load i32, ptr %314, align 4, !tbaa !9
  %316 = load ptr, ptr %32, align 8, !tbaa !5
  %317 = load i32, ptr %316, align 4, !tbaa !9
  %318 = add nsw i32 %315, %317
  %319 = add nsw i32 %318, 1
  %320 = icmp slt i32 %313, %319
  br i1 %320, label %321, label %323

321:                                              ; preds = %311
  %322 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -8, ptr %322, align 4, !tbaa !9
  br label %369

323:                                              ; preds = %311
  %324 = load ptr, ptr %37, align 8, !tbaa !5
  %325 = load i32, ptr %324, align 4, !tbaa !9
  %326 = load ptr, ptr %31, align 8, !tbaa !5
  %327 = load i32, ptr %326, align 4, !tbaa !9
  %328 = shl i32 %327, 1
  %329 = load ptr, ptr %32, align 8, !tbaa !5
  %330 = load i32, ptr %329, align 4, !tbaa !9
  %331 = add nsw i32 %328, %330
  %332 = add nsw i32 %331, 1
  %333 = icmp slt i32 %325, %332
  br i1 %333, label %334, label %336

334:                                              ; preds = %323
  %335 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -10, ptr %335, align 4, !tbaa !9
  br label %368

336:                                              ; preds = %323
  %337 = load ptr, ptr %42, align 8, !tbaa !5
  %338 = load i32, ptr %337, align 4, !tbaa !9
  %339 = load ptr, ptr %30, align 8, !tbaa !5
  %340 = load i32, ptr %339, align 4, !tbaa !9
  %341 = icmp sge i32 1, %340
  br i1 %341, label %342, label %343

342:                                              ; preds = %336
  br label %346

343:                                              ; preds = %336
  %344 = load ptr, ptr %30, align 8, !tbaa !5
  %345 = load i32, ptr %344, align 4, !tbaa !9
  br label %346

346:                                              ; preds = %343, %342
  %347 = phi i32 [ 1, %342 ], [ %345, %343 ]
  %348 = icmp slt i32 %338, %347
  br i1 %348, label %349, label %351

349:                                              ; preds = %346
  %350 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -13, ptr %350, align 4, !tbaa !9
  br label %367

351:                                              ; preds = %346
  %352 = load ptr, ptr %44, align 8, !tbaa !5
  %353 = load i32, ptr %352, align 4, !tbaa !9
  %354 = load ptr, ptr %30, align 8, !tbaa !5
  %355 = load i32, ptr %354, align 4, !tbaa !9
  %356 = icmp sge i32 1, %355
  br i1 %356, label %357, label %358

357:                                              ; preds = %351
  br label %361

358:                                              ; preds = %351
  %359 = load ptr, ptr %30, align 8, !tbaa !5
  %360 = load i32, ptr %359, align 4, !tbaa !9
  br label %361

361:                                              ; preds = %358, %357
  %362 = phi i32 [ 1, %357 ], [ %360, %358 ]
  %363 = icmp slt i32 %353, %362
  br i1 %363, label %364, label %366

364:                                              ; preds = %361
  %365 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 -15, ptr %365, align 4, !tbaa !9
  br label %366

366:                                              ; preds = %364, %361
  br label %367

367:                                              ; preds = %366, %349
  br label %368

368:                                              ; preds = %367, %334
  br label %369

369:                                              ; preds = %368, %321
  br label %370

370:                                              ; preds = %369, %309
  br label %371

371:                                              ; preds = %370, %303
  br label %372

372:                                              ; preds = %371, %297
  br label %373

373:                                              ; preds = %372, %291
  br label %374

374:                                              ; preds = %373, %285
  br label %375

375:                                              ; preds = %374, %273
  %376 = load ptr, ptr %54, align 8, !tbaa !5
  %377 = load i32, ptr %376, align 4, !tbaa !9
  %378 = icmp ne i32 %377, 0
  br i1 %378, label %379, label %384

379:                                              ; preds = %375
  %380 = load ptr, ptr %54, align 8, !tbaa !5
  %381 = load i32, ptr %380, align 4, !tbaa !9
  %382 = sub nsw i32 0, %381
  store i32 %382, ptr %67, align 4, !tbaa !9
  %383 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %67, i32 noundef 7)
  store i32 1, ptr %88, align 4
  br label %1080

384:                                              ; preds = %375
  %385 = load ptr, ptr %30, align 8, !tbaa !5
  %386 = load i32, ptr %385, align 4, !tbaa !9
  %387 = icmp eq i32 %386, 0
  br i1 %387, label %392, label %388

388:                                              ; preds = %384
  %389 = load ptr, ptr %33, align 8, !tbaa !5
  %390 = load i32, ptr %389, align 4, !tbaa !9
  %391 = icmp eq i32 %390, 0
  br i1 %391, label %392, label %464

392:                                              ; preds = %388, %384
  %393 = load ptr, ptr %45, align 8, !tbaa !5
  store float 1.000000e+00, ptr %393, align 4, !tbaa !11
  %394 = load ptr, ptr %33, align 8, !tbaa !5
  %395 = load i32, ptr %394, align 4, !tbaa !9
  store i32 %395, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %396

396:                                              ; preds = %460, %392
  %397 = load i32, ptr %76, align 4, !tbaa !9
  %398 = load i32, ptr %67, align 4, !tbaa !9
  %399 = icmp sle i32 %397, %398
  br i1 %399, label %400, label %463

400:                                              ; preds = %396
  %401 = load ptr, ptr %46, align 8, !tbaa !5
  %402 = load i32, ptr %76, align 4, !tbaa !9
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds float, ptr %401, i64 %403
  store float 0.000000e+00, ptr %404, align 4, !tbaa !11
  %405 = load ptr, ptr %47, align 8, !tbaa !5
  %406 = load i32, ptr %405, align 4, !tbaa !9
  %407 = icmp sge i32 %406, 1
  br i1 %407, label %408, label %421

408:                                              ; preds = %400
  %409 = load ptr, ptr %48, align 8, !tbaa !5
  %410 = load i32, ptr %76, align 4, !tbaa !9
  %411 = load i32, ptr %63, align 4, !tbaa !9
  %412 = add nsw i32 %410, %411
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds float, ptr %409, i64 %413
  store float 1.000000e+00, ptr %414, align 4, !tbaa !11
  %415 = load ptr, ptr %49, align 8, !tbaa !5
  %416 = load i32, ptr %76, align 4, !tbaa !9
  %417 = load i32, ptr %65, align 4, !tbaa !9
  %418 = add nsw i32 %416, %417
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds float, ptr %415, i64 %419
  store float 1.000000e+00, ptr %420, align 4, !tbaa !11
  br label %421

421:                                              ; preds = %408, %400
  %422 = load ptr, ptr %47, align 8, !tbaa !5
  %423 = load i32, ptr %422, align 4, !tbaa !9
  %424 = icmp sge i32 %423, 2
  br i1 %424, label %425, label %440

425:                                              ; preds = %421
  %426 = load ptr, ptr %48, align 8, !tbaa !5
  %427 = load i32, ptr %76, align 4, !tbaa !9
  %428 = load i32, ptr %63, align 4, !tbaa !9
  %429 = shl i32 %428, 1
  %430 = add nsw i32 %427, %429
  %431 = sext i32 %430 to i64
  %432 = getelementptr inbounds float, ptr %426, i64 %431
  store float 0.000000e+00, ptr %432, align 4, !tbaa !11
  %433 = load ptr, ptr %49, align 8, !tbaa !5
  %434 = load i32, ptr %76, align 4, !tbaa !9
  %435 = load i32, ptr %65, align 4, !tbaa !9
  %436 = shl i32 %435, 1
  %437 = add nsw i32 %434, %436
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds float, ptr %433, i64 %438
  store float 0.000000e+00, ptr %439, align 4, !tbaa !11
  br label %440

440:                                              ; preds = %425, %421
  %441 = load ptr, ptr %47, align 8, !tbaa !5
  %442 = load i32, ptr %441, align 4, !tbaa !9
  %443 = icmp sge i32 %442, 3
  br i1 %443, label %444, label %459

444:                                              ; preds = %440
  %445 = load ptr, ptr %48, align 8, !tbaa !5
  %446 = load i32, ptr %76, align 4, !tbaa !9
  %447 = load i32, ptr %63, align 4, !tbaa !9
  %448 = mul nsw i32 %447, 3
  %449 = add nsw i32 %446, %448
  %450 = sext i32 %449 to i64
  %451 = getelementptr inbounds float, ptr %445, i64 %450
  store float 1.000000e+00, ptr %451, align 4, !tbaa !11
  %452 = load ptr, ptr %49, align 8, !tbaa !5
  %453 = load i32, ptr %76, align 4, !tbaa !9
  %454 = load i32, ptr %65, align 4, !tbaa !9
  %455 = mul nsw i32 %454, 3
  %456 = add nsw i32 %453, %455
  %457 = sext i32 %456 to i64
  %458 = getelementptr inbounds float, ptr %452, i64 %457
  store float 1.000000e+00, ptr %458, align 4, !tbaa !11
  br label %459

459:                                              ; preds = %444, %440
  br label %460

460:                                              ; preds = %459
  %461 = load i32, ptr %76, align 4, !tbaa !9
  %462 = add nsw i32 %461, 1
  store i32 %462, ptr %76, align 4, !tbaa !9
  br label %396, !llvm.loop !13

463:                                              ; preds = %396
  store i32 1, ptr %88, align 4
  br label %1080

464:                                              ; preds = %388
  %465 = load ptr, ptr %45, align 8, !tbaa !5
  store float 0.000000e+00, ptr %465, align 4, !tbaa !11
  %466 = load ptr, ptr %33, align 8, !tbaa !5
  %467 = load i32, ptr %466, align 4, !tbaa !9
  store i32 %467, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %468

468:                                              ; preds = %532, %464
  %469 = load i32, ptr %76, align 4, !tbaa !9
  %470 = load i32, ptr %67, align 4, !tbaa !9
  %471 = icmp sle i32 %469, %470
  br i1 %471, label %472, label %535

472:                                              ; preds = %468
  %473 = load ptr, ptr %46, align 8, !tbaa !5
  %474 = load i32, ptr %76, align 4, !tbaa !9
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds float, ptr %473, i64 %475
  store float 1.000000e+00, ptr %476, align 4, !tbaa !11
  %477 = load ptr, ptr %47, align 8, !tbaa !5
  %478 = load i32, ptr %477, align 4, !tbaa !9
  %479 = icmp sge i32 %478, 1
  br i1 %479, label %480, label %493

480:                                              ; preds = %472
  %481 = load ptr, ptr %48, align 8, !tbaa !5
  %482 = load i32, ptr %76, align 4, !tbaa !9
  %483 = load i32, ptr %63, align 4, !tbaa !9
  %484 = add nsw i32 %482, %483
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds float, ptr %481, i64 %485
  store float 1.000000e+00, ptr %486, align 4, !tbaa !11
  %487 = load ptr, ptr %49, align 8, !tbaa !5
  %488 = load i32, ptr %76, align 4, !tbaa !9
  %489 = load i32, ptr %65, align 4, !tbaa !9
  %490 = add nsw i32 %488, %489
  %491 = sext i32 %490 to i64
  %492 = getelementptr inbounds float, ptr %487, i64 %491
  store float 1.000000e+00, ptr %492, align 4, !tbaa !11
  br label %493

493:                                              ; preds = %480, %472
  %494 = load ptr, ptr %47, align 8, !tbaa !5
  %495 = load i32, ptr %494, align 4, !tbaa !9
  %496 = icmp sge i32 %495, 2
  br i1 %496, label %497, label %512

497:                                              ; preds = %493
  %498 = load ptr, ptr %48, align 8, !tbaa !5
  %499 = load i32, ptr %76, align 4, !tbaa !9
  %500 = load i32, ptr %63, align 4, !tbaa !9
  %501 = shl i32 %500, 1
  %502 = add nsw i32 %499, %501
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds float, ptr %498, i64 %503
  store float 1.000000e+00, ptr %504, align 4, !tbaa !11
  %505 = load ptr, ptr %49, align 8, !tbaa !5
  %506 = load i32, ptr %76, align 4, !tbaa !9
  %507 = load i32, ptr %65, align 4, !tbaa !9
  %508 = shl i32 %507, 1
  %509 = add nsw i32 %506, %508
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds float, ptr %505, i64 %510
  store float 1.000000e+00, ptr %511, align 4, !tbaa !11
  br label %512

512:                                              ; preds = %497, %493
  %513 = load ptr, ptr %47, align 8, !tbaa !5
  %514 = load i32, ptr %513, align 4, !tbaa !9
  %515 = icmp sge i32 %514, 3
  br i1 %515, label %516, label %531

516:                                              ; preds = %512
  %517 = load ptr, ptr %48, align 8, !tbaa !5
  %518 = load i32, ptr %76, align 4, !tbaa !9
  %519 = load i32, ptr %63, align 4, !tbaa !9
  %520 = mul nsw i32 %519, 3
  %521 = add nsw i32 %518, %520
  %522 = sext i32 %521 to i64
  %523 = getelementptr inbounds float, ptr %517, i64 %522
  store float 0.000000e+00, ptr %523, align 4, !tbaa !11
  %524 = load ptr, ptr %49, align 8, !tbaa !5
  %525 = load i32, ptr %76, align 4, !tbaa !9
  %526 = load i32, ptr %65, align 4, !tbaa !9
  %527 = mul nsw i32 %526, 3
  %528 = add nsw i32 %525, %527
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds float, ptr %524, i64 %529
  store float 0.000000e+00, ptr %530, align 4, !tbaa !11
  br label %531

531:                                              ; preds = %516, %512
  br label %532

532:                                              ; preds = %531
  %533 = load i32, ptr %76, align 4, !tbaa !9
  %534 = add nsw i32 %533, 1
  store i32 %534, ptr %76, align 4, !tbaa !9
  br label %468, !llvm.loop !15

535:                                              ; preds = %468
  %536 = load i32, ptr %81, align 4, !tbaa !9
  %537 = icmp ne i32 %536, 0
  br i1 %537, label %538, label %540

538:                                              ; preds = %535
  %539 = getelementptr inbounds [1 x i8], ptr %73, i64 0, i64 0
  store i8 73, ptr %539, align 1, !tbaa !16
  br label %542

540:                                              ; preds = %535
  %541 = getelementptr inbounds [1 x i8], ptr %73, i64 0, i64 0
  store i8 49, ptr %541, align 1, !tbaa !16
  br label %542

542:                                              ; preds = %540, %538
  %543 = getelementptr inbounds [1 x i8], ptr %73, i64 0, i64 0
  %544 = load ptr, ptr %30, align 8, !tbaa !5
  %545 = load ptr, ptr %31, align 8, !tbaa !5
  %546 = load ptr, ptr %32, align 8, !tbaa !5
  %547 = load ptr, ptr %34, align 8, !tbaa !5
  %548 = load i32, ptr %56, align 4, !tbaa !9
  %549 = sext i32 %548 to i64
  %550 = getelementptr inbounds float, ptr %547, i64 %549
  %551 = load ptr, ptr %35, align 8, !tbaa !5
  %552 = load ptr, ptr %52, align 8, !tbaa !5
  %553 = getelementptr inbounds float, ptr %552, i64 1
  %554 = call float @slangb_(ptr noundef %543, ptr noundef %544, ptr noundef %545, ptr noundef %546, ptr noundef %550, ptr noundef %551, ptr noundef %553)
  store float %554, ptr %77, align 4, !tbaa !11
  %555 = getelementptr inbounds [1 x i8], ptr %73, i64 0, i64 0
  %556 = load ptr, ptr %30, align 8, !tbaa !5
  %557 = load ptr, ptr %31, align 8, !tbaa !5
  %558 = load ptr, ptr %32, align 8, !tbaa !5
  %559 = load ptr, ptr %36, align 8, !tbaa !5
  %560 = load i32, ptr %58, align 4, !tbaa !9
  %561 = sext i32 %560 to i64
  %562 = getelementptr inbounds float, ptr %559, i64 %561
  %563 = load ptr, ptr %37, align 8, !tbaa !5
  %564 = load ptr, ptr %38, align 8, !tbaa !5
  %565 = getelementptr inbounds i32, ptr %564, i64 1
  %566 = load ptr, ptr %45, align 8, !tbaa !5
  %567 = load ptr, ptr %52, align 8, !tbaa !5
  %568 = getelementptr inbounds float, ptr %567, i64 1
  %569 = load ptr, ptr %53, align 8, !tbaa !5
  %570 = getelementptr inbounds i32, ptr %569, i64 1
  %571 = load ptr, ptr %54, align 8, !tbaa !5
  call void @sgbcon_(ptr noundef %555, ptr noundef %556, ptr noundef %557, ptr noundef %558, ptr noundef %562, ptr noundef %563, ptr noundef %565, ptr noundef %77, ptr noundef %566, ptr noundef %568, ptr noundef %570, ptr noundef %571)
  %572 = load i32, ptr %74, align 4, !tbaa !9
  %573 = icmp ne i32 %572, 0
  br i1 %573, label %574, label %699

574:                                              ; preds = %542
  %575 = load ptr, ptr %54, align 8, !tbaa !5
  %576 = load i32, ptr %575, align 4, !tbaa !9
  %577 = icmp eq i32 %576, 0
  br i1 %577, label %578, label %699

578:                                              ; preds = %574
  %579 = call i32 @ilaprec_(ptr noundef @.str.6)
  store i32 %579, ptr %79, align 4, !tbaa !9
  %580 = load i32, ptr %81, align 4, !tbaa !9
  %581 = icmp ne i32 %580, 0
  br i1 %581, label %582, label %640

582:                                              ; preds = %578
  %583 = load ptr, ptr %30, align 8, !tbaa !5
  %584 = load ptr, ptr %31, align 8, !tbaa !5
  %585 = load ptr, ptr %32, align 8, !tbaa !5
  %586 = load ptr, ptr %33, align 8, !tbaa !5
  %587 = load ptr, ptr %34, align 8, !tbaa !5
  %588 = load i32, ptr %56, align 4, !tbaa !9
  %589 = sext i32 %588 to i64
  %590 = getelementptr inbounds float, ptr %587, i64 %589
  %591 = load ptr, ptr %35, align 8, !tbaa !5
  %592 = load ptr, ptr %36, align 8, !tbaa !5
  %593 = load i32, ptr %58, align 4, !tbaa !9
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds float, ptr %592, i64 %594
  %596 = load ptr, ptr %37, align 8, !tbaa !5
  %597 = load ptr, ptr %38, align 8, !tbaa !5
  %598 = getelementptr inbounds i32, ptr %597, i64 1
  %599 = load ptr, ptr %40, align 8, !tbaa !5
  %600 = getelementptr inbounds float, ptr %599, i64 1
  %601 = load ptr, ptr %41, align 8, !tbaa !5
  %602 = load i32, ptr %60, align 4, !tbaa !9
  %603 = sext i32 %602 to i64
  %604 = getelementptr inbounds float, ptr %601, i64 %603
  %605 = load ptr, ptr %42, align 8, !tbaa !5
  %606 = load ptr, ptr %43, align 8, !tbaa !5
  %607 = load i32, ptr %62, align 4, !tbaa !9
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds float, ptr %606, i64 %608
  %610 = load ptr, ptr %44, align 8, !tbaa !5
  %611 = load ptr, ptr %46, align 8, !tbaa !5
  %612 = getelementptr inbounds float, ptr %611, i64 1
  %613 = load ptr, ptr %48, align 8, !tbaa !5
  %614 = load i32, ptr %64, align 4, !tbaa !9
  %615 = sext i32 %614 to i64
  %616 = getelementptr inbounds float, ptr %613, i64 %615
  %617 = load ptr, ptr %49, align 8, !tbaa !5
  %618 = load i32, ptr %66, align 4, !tbaa !9
  %619 = sext i32 %618 to i64
  %620 = getelementptr inbounds float, ptr %617, i64 %619
  %621 = load ptr, ptr %52, align 8, !tbaa !5
  %622 = load ptr, ptr %30, align 8, !tbaa !5
  %623 = load i32, ptr %622, align 4, !tbaa !9
  %624 = add nsw i32 %623, 1
  %625 = sext i32 %624 to i64
  %626 = getelementptr inbounds float, ptr %621, i64 %625
  %627 = load ptr, ptr %52, align 8, !tbaa !5
  %628 = getelementptr inbounds float, ptr %627, i64 1
  %629 = load ptr, ptr %52, align 8, !tbaa !5
  %630 = load ptr, ptr %30, align 8, !tbaa !5
  %631 = load i32, ptr %630, align 4, !tbaa !9
  %632 = shl i32 %631, 1
  %633 = add nsw i32 %632, 1
  %634 = sext i32 %633 to i64
  %635 = getelementptr inbounds float, ptr %629, i64 %634
  %636 = load ptr, ptr %52, align 8, !tbaa !5
  %637 = getelementptr inbounds float, ptr %636, i64 1
  %638 = load ptr, ptr %45, align 8, !tbaa !5
  %639 = load ptr, ptr %54, align 8, !tbaa !5
  call void @sla_gbrfsx_extended_(ptr noundef %79, ptr noundef %83, ptr noundef %583, ptr noundef %584, ptr noundef %585, ptr noundef %586, ptr noundef %590, ptr noundef %591, ptr noundef %595, ptr noundef %596, ptr noundef %598, ptr noundef %80, ptr noundef %600, ptr noundef %604, ptr noundef %605, ptr noundef %609, ptr noundef %610, ptr noundef %612, ptr noundef %85, ptr noundef %616, ptr noundef %620, ptr noundef %626, ptr noundef %628, ptr noundef %635, ptr noundef %637, ptr noundef %638, ptr noundef %84, ptr noundef %86, ptr noundef %71, ptr noundef %75, ptr noundef %639)
  br label %698

640:                                              ; preds = %578
  %641 = load ptr, ptr %30, align 8, !tbaa !5
  %642 = load ptr, ptr %31, align 8, !tbaa !5
  %643 = load ptr, ptr %32, align 8, !tbaa !5
  %644 = load ptr, ptr %33, align 8, !tbaa !5
  %645 = load ptr, ptr %34, align 8, !tbaa !5
  %646 = load i32, ptr %56, align 4, !tbaa !9
  %647 = sext i32 %646 to i64
  %648 = getelementptr inbounds float, ptr %645, i64 %647
  %649 = load ptr, ptr %35, align 8, !tbaa !5
  %650 = load ptr, ptr %36, align 8, !tbaa !5
  %651 = load i32, ptr %58, align 4, !tbaa !9
  %652 = sext i32 %651 to i64
  %653 = getelementptr inbounds float, ptr %650, i64 %652
  %654 = load ptr, ptr %37, align 8, !tbaa !5
  %655 = load ptr, ptr %38, align 8, !tbaa !5
  %656 = getelementptr inbounds i32, ptr %655, i64 1
  %657 = load ptr, ptr %39, align 8, !tbaa !5
  %658 = getelementptr inbounds float, ptr %657, i64 1
  %659 = load ptr, ptr %41, align 8, !tbaa !5
  %660 = load i32, ptr %60, align 4, !tbaa !9
  %661 = sext i32 %660 to i64
  %662 = getelementptr inbounds float, ptr %659, i64 %661
  %663 = load ptr, ptr %42, align 8, !tbaa !5
  %664 = load ptr, ptr %43, align 8, !tbaa !5
  %665 = load i32, ptr %62, align 4, !tbaa !9
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds float, ptr %664, i64 %666
  %668 = load ptr, ptr %44, align 8, !tbaa !5
  %669 = load ptr, ptr %46, align 8, !tbaa !5
  %670 = getelementptr inbounds float, ptr %669, i64 1
  %671 = load ptr, ptr %48, align 8, !tbaa !5
  %672 = load i32, ptr %64, align 4, !tbaa !9
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds float, ptr %671, i64 %673
  %675 = load ptr, ptr %49, align 8, !tbaa !5
  %676 = load i32, ptr %66, align 4, !tbaa !9
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds float, ptr %675, i64 %677
  %679 = load ptr, ptr %52, align 8, !tbaa !5
  %680 = load ptr, ptr %30, align 8, !tbaa !5
  %681 = load i32, ptr %680, align 4, !tbaa !9
  %682 = add nsw i32 %681, 1
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds float, ptr %679, i64 %683
  %685 = load ptr, ptr %52, align 8, !tbaa !5
  %686 = getelementptr inbounds float, ptr %685, i64 1
  %687 = load ptr, ptr %52, align 8, !tbaa !5
  %688 = load ptr, ptr %30, align 8, !tbaa !5
  %689 = load i32, ptr %688, align 4, !tbaa !9
  %690 = shl i32 %689, 1
  %691 = add nsw i32 %690, 1
  %692 = sext i32 %691 to i64
  %693 = getelementptr inbounds float, ptr %687, i64 %692
  %694 = load ptr, ptr %52, align 8, !tbaa !5
  %695 = getelementptr inbounds float, ptr %694, i64 1
  %696 = load ptr, ptr %45, align 8, !tbaa !5
  %697 = load ptr, ptr %54, align 8, !tbaa !5
  call void @sla_gbrfsx_extended_(ptr noundef %79, ptr noundef %83, ptr noundef %641, ptr noundef %642, ptr noundef %643, ptr noundef %644, ptr noundef %648, ptr noundef %649, ptr noundef %653, ptr noundef %654, ptr noundef %656, ptr noundef %82, ptr noundef %658, ptr noundef %662, ptr noundef %663, ptr noundef %667, ptr noundef %668, ptr noundef %670, ptr noundef %85, ptr noundef %674, ptr noundef %678, ptr noundef %684, ptr noundef %686, ptr noundef %693, ptr noundef %695, ptr noundef %696, ptr noundef %84, ptr noundef %86, ptr noundef %71, ptr noundef %75, ptr noundef %697)
  br label %698

698:                                              ; preds = %640, %582
  br label %699

699:                                              ; preds = %698, %574, %542
  store float 1.000000e+01, ptr %68, align 4, !tbaa !11
  %700 = load ptr, ptr %30, align 8, !tbaa !5
  %701 = load i32, ptr %700, align 4, !tbaa !9
  %702 = sitofp i32 %701 to float
  %703 = fpext float %702 to double
  %704 = call double @sqrt(double noundef %703) #4
  %705 = fptrunc double %704 to float
  store float %705, ptr %69, align 4, !tbaa !11
  %706 = load float, ptr %68, align 4, !tbaa !11
  %707 = load float, ptr %69, align 4, !tbaa !11
  %708 = fcmp oge float %706, %707
  br i1 %708, label %709, label %711

709:                                              ; preds = %699
  %710 = load float, ptr %68, align 4, !tbaa !11
  br label %713

711:                                              ; preds = %699
  %712 = load float, ptr %69, align 4, !tbaa !11
  br label %713

713:                                              ; preds = %711, %709
  %714 = phi float [ %710, %709 ], [ %712, %711 ]
  %715 = call float @slamch_(ptr noundef @.str)
  %716 = fmul float %714, %715
  store float %716, ptr %72, align 4, !tbaa !11
  %717 = load ptr, ptr %47, align 8, !tbaa !5
  %718 = load i32, ptr %717, align 4, !tbaa !9
  %719 = icmp sge i32 %718, 1
  br i1 %719, label %720, label %915

720:                                              ; preds = %713
  %721 = load i32, ptr %85, align 4, !tbaa !9
  %722 = icmp sge i32 %721, 1
  br i1 %722, label %723, label %915

723:                                              ; preds = %720
  %724 = load i32, ptr %80, align 4, !tbaa !9
  %725 = icmp ne i32 %724, 0
  br i1 %725, label %726, label %754

726:                                              ; preds = %723
  %727 = load i32, ptr %81, align 4, !tbaa !9
  %728 = icmp ne i32 %727, 0
  br i1 %728, label %729, label %754

729:                                              ; preds = %726
  %730 = load ptr, ptr %28, align 8, !tbaa !5
  %731 = load ptr, ptr %30, align 8, !tbaa !5
  %732 = load ptr, ptr %31, align 8, !tbaa !5
  %733 = load ptr, ptr %32, align 8, !tbaa !5
  %734 = load ptr, ptr %34, align 8, !tbaa !5
  %735 = load i32, ptr %56, align 4, !tbaa !9
  %736 = sext i32 %735 to i64
  %737 = getelementptr inbounds float, ptr %734, i64 %736
  %738 = load ptr, ptr %35, align 8, !tbaa !5
  %739 = load ptr, ptr %36, align 8, !tbaa !5
  %740 = load i32, ptr %58, align 4, !tbaa !9
  %741 = sext i32 %740 to i64
  %742 = getelementptr inbounds float, ptr %739, i64 %741
  %743 = load ptr, ptr %37, align 8, !tbaa !5
  %744 = load ptr, ptr %38, align 8, !tbaa !5
  %745 = getelementptr inbounds i32, ptr %744, i64 1
  %746 = load ptr, ptr %40, align 8, !tbaa !5
  %747 = getelementptr inbounds float, ptr %746, i64 1
  %748 = load ptr, ptr %54, align 8, !tbaa !5
  %749 = load ptr, ptr %52, align 8, !tbaa !5
  %750 = getelementptr inbounds float, ptr %749, i64 1
  %751 = load ptr, ptr %53, align 8, !tbaa !5
  %752 = getelementptr inbounds i32, ptr %751, i64 1
  %753 = call float @sla_gbrcond_(ptr noundef %730, ptr noundef %731, ptr noundef %732, ptr noundef %733, ptr noundef %737, ptr noundef %738, ptr noundef %742, ptr noundef %743, ptr noundef %745, ptr noundef @c_n1, ptr noundef %747, ptr noundef %748, ptr noundef %750, ptr noundef %752)
  store float %753, ptr %78, align 4, !tbaa !11
  br label %811

754:                                              ; preds = %726, %723
  %755 = load i32, ptr %82, align 4, !tbaa !9
  %756 = icmp ne i32 %755, 0
  br i1 %756, label %757, label %785

757:                                              ; preds = %754
  %758 = load i32, ptr %81, align 4, !tbaa !9
  %759 = icmp ne i32 %758, 0
  br i1 %759, label %785, label %760

760:                                              ; preds = %757
  %761 = load ptr, ptr %28, align 8, !tbaa !5
  %762 = load ptr, ptr %30, align 8, !tbaa !5
  %763 = load ptr, ptr %31, align 8, !tbaa !5
  %764 = load ptr, ptr %32, align 8, !tbaa !5
  %765 = load ptr, ptr %34, align 8, !tbaa !5
  %766 = load i32, ptr %56, align 4, !tbaa !9
  %767 = sext i32 %766 to i64
  %768 = getelementptr inbounds float, ptr %765, i64 %767
  %769 = load ptr, ptr %35, align 8, !tbaa !5
  %770 = load ptr, ptr %36, align 8, !tbaa !5
  %771 = load i32, ptr %58, align 4, !tbaa !9
  %772 = sext i32 %771 to i64
  %773 = getelementptr inbounds float, ptr %770, i64 %772
  %774 = load ptr, ptr %37, align 8, !tbaa !5
  %775 = load ptr, ptr %38, align 8, !tbaa !5
  %776 = getelementptr inbounds i32, ptr %775, i64 1
  %777 = load ptr, ptr %39, align 8, !tbaa !5
  %778 = getelementptr inbounds float, ptr %777, i64 1
  %779 = load ptr, ptr %54, align 8, !tbaa !5
  %780 = load ptr, ptr %52, align 8, !tbaa !5
  %781 = getelementptr inbounds float, ptr %780, i64 1
  %782 = load ptr, ptr %53, align 8, !tbaa !5
  %783 = getelementptr inbounds i32, ptr %782, i64 1
  %784 = call float @sla_gbrcond_(ptr noundef %761, ptr noundef %762, ptr noundef %763, ptr noundef %764, ptr noundef %768, ptr noundef %769, ptr noundef %773, ptr noundef %774, ptr noundef %776, ptr noundef @c_n1, ptr noundef %778, ptr noundef %779, ptr noundef %781, ptr noundef %783)
  store float %784, ptr %78, align 4, !tbaa !11
  br label %810

785:                                              ; preds = %757, %754
  %786 = load ptr, ptr %28, align 8, !tbaa !5
  %787 = load ptr, ptr %30, align 8, !tbaa !5
  %788 = load ptr, ptr %31, align 8, !tbaa !5
  %789 = load ptr, ptr %32, align 8, !tbaa !5
  %790 = load ptr, ptr %34, align 8, !tbaa !5
  %791 = load i32, ptr %56, align 4, !tbaa !9
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds float, ptr %790, i64 %792
  %794 = load ptr, ptr %35, align 8, !tbaa !5
  %795 = load ptr, ptr %36, align 8, !tbaa !5
  %796 = load i32, ptr %58, align 4, !tbaa !9
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds float, ptr %795, i64 %797
  %799 = load ptr, ptr %37, align 8, !tbaa !5
  %800 = load ptr, ptr %38, align 8, !tbaa !5
  %801 = getelementptr inbounds i32, ptr %800, i64 1
  %802 = load ptr, ptr %39, align 8, !tbaa !5
  %803 = getelementptr inbounds float, ptr %802, i64 1
  %804 = load ptr, ptr %54, align 8, !tbaa !5
  %805 = load ptr, ptr %52, align 8, !tbaa !5
  %806 = getelementptr inbounds float, ptr %805, i64 1
  %807 = load ptr, ptr %53, align 8, !tbaa !5
  %808 = getelementptr inbounds i32, ptr %807, i64 1
  %809 = call float @sla_gbrcond_(ptr noundef %786, ptr noundef %787, ptr noundef %788, ptr noundef %789, ptr noundef %793, ptr noundef %794, ptr noundef %798, ptr noundef %799, ptr noundef %801, ptr noundef @c__0, ptr noundef %803, ptr noundef %804, ptr noundef %806, ptr noundef %808)
  store float %809, ptr %78, align 4, !tbaa !11
  br label %810

810:                                              ; preds = %785, %760
  br label %811

811:                                              ; preds = %810, %729
  %812 = load ptr, ptr %33, align 8, !tbaa !5
  %813 = load i32, ptr %812, align 4, !tbaa !9
  store i32 %813, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %814

814:                                              ; preds = %911, %811
  %815 = load i32, ptr %76, align 4, !tbaa !9
  %816 = load i32, ptr %67, align 4, !tbaa !9
  %817 = icmp sle i32 %815, %816
  br i1 %817, label %818, label %914

818:                                              ; preds = %814
  %819 = load ptr, ptr %47, align 8, !tbaa !5
  %820 = load i32, ptr %819, align 4, !tbaa !9
  %821 = icmp sge i32 %820, 2
  br i1 %821, label %822, label %840

822:                                              ; preds = %818
  %823 = load ptr, ptr %48, align 8, !tbaa !5
  %824 = load i32, ptr %76, align 4, !tbaa !9
  %825 = load i32, ptr %63, align 4, !tbaa !9
  %826 = shl i32 %825, 1
  %827 = add nsw i32 %824, %826
  %828 = sext i32 %827 to i64
  %829 = getelementptr inbounds float, ptr %823, i64 %828
  %830 = load float, ptr %829, align 4, !tbaa !11
  %831 = fcmp ogt float %830, 1.000000e+00
  br i1 %831, label %832, label %840

832:                                              ; preds = %822
  %833 = load ptr, ptr %48, align 8, !tbaa !5
  %834 = load i32, ptr %76, align 4, !tbaa !9
  %835 = load i32, ptr %63, align 4, !tbaa !9
  %836 = shl i32 %835, 1
  %837 = add nsw i32 %834, %836
  %838 = sext i32 %837 to i64
  %839 = getelementptr inbounds float, ptr %833, i64 %838
  store float 1.000000e+00, ptr %839, align 4, !tbaa !11
  br label %840

840:                                              ; preds = %832, %822, %818
  %841 = load float, ptr %78, align 4, !tbaa !11
  %842 = load float, ptr %70, align 4, !tbaa !11
  %843 = fcmp olt float %841, %842
  br i1 %843, label %844, label %870

844:                                              ; preds = %840
  %845 = load ptr, ptr %48, align 8, !tbaa !5
  %846 = load i32, ptr %76, align 4, !tbaa !9
  %847 = load i32, ptr %63, align 4, !tbaa !9
  %848 = shl i32 %847, 1
  %849 = add nsw i32 %846, %848
  %850 = sext i32 %849 to i64
  %851 = getelementptr inbounds float, ptr %845, i64 %850
  store float 1.000000e+00, ptr %851, align 4, !tbaa !11
  %852 = load ptr, ptr %48, align 8, !tbaa !5
  %853 = load i32, ptr %76, align 4, !tbaa !9
  %854 = load i32, ptr %63, align 4, !tbaa !9
  %855 = add nsw i32 %853, %854
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds float, ptr %852, i64 %856
  store float 0.000000e+00, ptr %857, align 4, !tbaa !11
  %858 = load ptr, ptr %54, align 8, !tbaa !5
  %859 = load i32, ptr %858, align 4, !tbaa !9
  %860 = load ptr, ptr %30, align 8, !tbaa !5
  %861 = load i32, ptr %860, align 4, !tbaa !9
  %862 = icmp sle i32 %859, %861
  br i1 %862, label %863, label %869

863:                                              ; preds = %844
  %864 = load ptr, ptr %30, align 8, !tbaa !5
  %865 = load i32, ptr %864, align 4, !tbaa !9
  %866 = load i32, ptr %76, align 4, !tbaa !9
  %867 = add nsw i32 %865, %866
  %868 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 %867, ptr %868, align 4, !tbaa !9
  br label %869

869:                                              ; preds = %863, %844
  br label %897

870:                                              ; preds = %840
  %871 = load ptr, ptr %48, align 8, !tbaa !5
  %872 = load i32, ptr %76, align 4, !tbaa !9
  %873 = load i32, ptr %63, align 4, !tbaa !9
  %874 = shl i32 %873, 1
  %875 = add nsw i32 %872, %874
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds float, ptr %871, i64 %876
  %878 = load float, ptr %877, align 4, !tbaa !11
  %879 = load float, ptr %72, align 4, !tbaa !11
  %880 = fcmp olt float %878, %879
  br i1 %880, label %881, label %896

881:                                              ; preds = %870
  %882 = load float, ptr %72, align 4, !tbaa !11
  %883 = load ptr, ptr %48, align 8, !tbaa !5
  %884 = load i32, ptr %76, align 4, !tbaa !9
  %885 = load i32, ptr %63, align 4, !tbaa !9
  %886 = shl i32 %885, 1
  %887 = add nsw i32 %884, %886
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds float, ptr %883, i64 %888
  store float %882, ptr %889, align 4, !tbaa !11
  %890 = load ptr, ptr %48, align 8, !tbaa !5
  %891 = load i32, ptr %76, align 4, !tbaa !9
  %892 = load i32, ptr %63, align 4, !tbaa !9
  %893 = add nsw i32 %891, %892
  %894 = sext i32 %893 to i64
  %895 = getelementptr inbounds float, ptr %890, i64 %894
  store float 1.000000e+00, ptr %895, align 4, !tbaa !11
  br label %896

896:                                              ; preds = %881, %870
  br label %897

897:                                              ; preds = %896, %869
  %898 = load ptr, ptr %47, align 8, !tbaa !5
  %899 = load i32, ptr %898, align 4, !tbaa !9
  %900 = icmp sge i32 %899, 3
  br i1 %900, label %901, label %910

901:                                              ; preds = %897
  %902 = load float, ptr %78, align 4, !tbaa !11
  %903 = load ptr, ptr %48, align 8, !tbaa !5
  %904 = load i32, ptr %76, align 4, !tbaa !9
  %905 = load i32, ptr %63, align 4, !tbaa !9
  %906 = mul nsw i32 %905, 3
  %907 = add nsw i32 %904, %906
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds float, ptr %903, i64 %908
  store float %902, ptr %909, align 4, !tbaa !11
  br label %910

910:                                              ; preds = %901, %897
  br label %911

911:                                              ; preds = %910
  %912 = load i32, ptr %76, align 4, !tbaa !9
  %913 = add nsw i32 %912, 1
  store i32 %913, ptr %76, align 4, !tbaa !9
  br label %814, !llvm.loop !17

914:                                              ; preds = %814
  br label %915

915:                                              ; preds = %914, %720, %713
  %916 = load ptr, ptr %47, align 8, !tbaa !5
  %917 = load i32, ptr %916, align 4, !tbaa !9
  %918 = icmp sge i32 %917, 1
  br i1 %918, label %919, label %1079

919:                                              ; preds = %915
  %920 = load i32, ptr %85, align 4, !tbaa !9
  %921 = icmp sge i32 %920, 2
  br i1 %921, label %922, label %1079

922:                                              ; preds = %919
  %923 = call float @slamch_(ptr noundef @.str)
  %924 = fpext float %923 to double
  %925 = call double @sqrt(double noundef %924) #4
  %926 = fptrunc double %925 to float
  store float %926, ptr %87, align 4, !tbaa !11
  %927 = load ptr, ptr %33, align 8, !tbaa !5
  %928 = load i32, ptr %927, align 4, !tbaa !9
  store i32 %928, ptr %67, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %929

929:                                              ; preds = %1075, %922
  %930 = load i32, ptr %76, align 4, !tbaa !9
  %931 = load i32, ptr %67, align 4, !tbaa !9
  %932 = icmp sle i32 %930, %931
  br i1 %932, label %933, label %1078

933:                                              ; preds = %929
  %934 = load ptr, ptr %49, align 8, !tbaa !5
  %935 = load i32, ptr %76, align 4, !tbaa !9
  %936 = load i32, ptr %65, align 4, !tbaa !9
  %937 = shl i32 %936, 1
  %938 = add nsw i32 %935, %937
  %939 = sext i32 %938 to i64
  %940 = getelementptr inbounds float, ptr %934, i64 %939
  %941 = load float, ptr %940, align 4, !tbaa !11
  %942 = load float, ptr %87, align 4, !tbaa !11
  %943 = fcmp olt float %941, %942
  br i1 %943, label %944, label %974

944:                                              ; preds = %933
  %945 = load ptr, ptr %28, align 8, !tbaa !5
  %946 = load ptr, ptr %30, align 8, !tbaa !5
  %947 = load ptr, ptr %31, align 8, !tbaa !5
  %948 = load ptr, ptr %32, align 8, !tbaa !5
  %949 = load ptr, ptr %34, align 8, !tbaa !5
  %950 = load i32, ptr %56, align 4, !tbaa !9
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds float, ptr %949, i64 %951
  %953 = load ptr, ptr %35, align 8, !tbaa !5
  %954 = load ptr, ptr %36, align 8, !tbaa !5
  %955 = load i32, ptr %58, align 4, !tbaa !9
  %956 = sext i32 %955 to i64
  %957 = getelementptr inbounds float, ptr %954, i64 %956
  %958 = load ptr, ptr %37, align 8, !tbaa !5
  %959 = load ptr, ptr %38, align 8, !tbaa !5
  %960 = getelementptr inbounds i32, ptr %959, i64 1
  %961 = load ptr, ptr %43, align 8, !tbaa !5
  %962 = load i32, ptr %76, align 4, !tbaa !9
  %963 = load i32, ptr %61, align 4, !tbaa !9
  %964 = mul nsw i32 %962, %963
  %965 = add nsw i32 %964, 1
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds float, ptr %961, i64 %966
  %968 = load ptr, ptr %54, align 8, !tbaa !5
  %969 = load ptr, ptr %52, align 8, !tbaa !5
  %970 = getelementptr inbounds float, ptr %969, i64 1
  %971 = load ptr, ptr %53, align 8, !tbaa !5
  %972 = getelementptr inbounds i32, ptr %971, i64 1
  %973 = call float @sla_gbrcond_(ptr noundef %945, ptr noundef %946, ptr noundef %947, ptr noundef %948, ptr noundef %952, ptr noundef %953, ptr noundef %957, ptr noundef %958, ptr noundef %960, ptr noundef @c__1, ptr noundef %967, ptr noundef %968, ptr noundef %970, ptr noundef %972)
  store float %973, ptr %78, align 4, !tbaa !11
  br label %975

974:                                              ; preds = %933
  store float 0.000000e+00, ptr %78, align 4, !tbaa !11
  br label %975

975:                                              ; preds = %974, %944
  %976 = load ptr, ptr %47, align 8, !tbaa !5
  %977 = load i32, ptr %976, align 4, !tbaa !9
  %978 = icmp sge i32 %977, 2
  br i1 %978, label %979, label %997

979:                                              ; preds = %975
  %980 = load ptr, ptr %49, align 8, !tbaa !5
  %981 = load i32, ptr %76, align 4, !tbaa !9
  %982 = load i32, ptr %65, align 4, !tbaa !9
  %983 = shl i32 %982, 1
  %984 = add nsw i32 %981, %983
  %985 = sext i32 %984 to i64
  %986 = getelementptr inbounds float, ptr %980, i64 %985
  %987 = load float, ptr %986, align 4, !tbaa !11
  %988 = fcmp ogt float %987, 1.000000e+00
  br i1 %988, label %989, label %997

989:                                              ; preds = %979
  %990 = load ptr, ptr %49, align 8, !tbaa !5
  %991 = load i32, ptr %76, align 4, !tbaa !9
  %992 = load i32, ptr %65, align 4, !tbaa !9
  %993 = shl i32 %992, 1
  %994 = add nsw i32 %991, %993
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds float, ptr %990, i64 %995
  store float 1.000000e+00, ptr %996, align 4, !tbaa !11
  br label %997

997:                                              ; preds = %989, %979, %975
  %998 = load float, ptr %78, align 4, !tbaa !11
  %999 = load float, ptr %70, align 4, !tbaa !11
  %1000 = fcmp olt float %998, %999
  br i1 %1000, label %1001, label %1034

1001:                                             ; preds = %997
  %1002 = load ptr, ptr %49, align 8, !tbaa !5
  %1003 = load i32, ptr %76, align 4, !tbaa !9
  %1004 = load i32, ptr %65, align 4, !tbaa !9
  %1005 = shl i32 %1004, 1
  %1006 = add nsw i32 %1003, %1005
  %1007 = sext i32 %1006 to i64
  %1008 = getelementptr inbounds float, ptr %1002, i64 %1007
  store float 1.000000e+00, ptr %1008, align 4, !tbaa !11
  %1009 = load ptr, ptr %49, align 8, !tbaa !5
  %1010 = load i32, ptr %76, align 4, !tbaa !9
  %1011 = load i32, ptr %65, align 4, !tbaa !9
  %1012 = add nsw i32 %1010, %1011
  %1013 = sext i32 %1012 to i64
  %1014 = getelementptr inbounds float, ptr %1009, i64 %1013
  store float 0.000000e+00, ptr %1014, align 4, !tbaa !11
  %1015 = load ptr, ptr %51, align 8, !tbaa !5
  %1016 = getelementptr inbounds float, ptr %1015, i64 3
  %1017 = load float, ptr %1016, align 4, !tbaa !11
  %1018 = fcmp oeq float %1017, 1.000000e+00
  br i1 %1018, label %1019, label %1033

1019:                                             ; preds = %1001
  %1020 = load ptr, ptr %54, align 8, !tbaa !5
  %1021 = load i32, ptr %1020, align 4, !tbaa !9
  %1022 = load ptr, ptr %30, align 8, !tbaa !5
  %1023 = load i32, ptr %1022, align 4, !tbaa !9
  %1024 = load i32, ptr %76, align 4, !tbaa !9
  %1025 = add nsw i32 %1023, %1024
  %1026 = icmp slt i32 %1021, %1025
  br i1 %1026, label %1027, label %1033

1027:                                             ; preds = %1019
  %1028 = load ptr, ptr %30, align 8, !tbaa !5
  %1029 = load i32, ptr %1028, align 4, !tbaa !9
  %1030 = load i32, ptr %76, align 4, !tbaa !9
  %1031 = add nsw i32 %1029, %1030
  %1032 = load ptr, ptr %54, align 8, !tbaa !5
  store i32 %1031, ptr %1032, align 4, !tbaa !9
  br label %1033

1033:                                             ; preds = %1027, %1019, %1001
  br label %1061

1034:                                             ; preds = %997
  %1035 = load ptr, ptr %49, align 8, !tbaa !5
  %1036 = load i32, ptr %76, align 4, !tbaa !9
  %1037 = load i32, ptr %65, align 4, !tbaa !9
  %1038 = shl i32 %1037, 1
  %1039 = add nsw i32 %1036, %1038
  %1040 = sext i32 %1039 to i64
  %1041 = getelementptr inbounds float, ptr %1035, i64 %1040
  %1042 = load float, ptr %1041, align 4, !tbaa !11
  %1043 = load float, ptr %72, align 4, !tbaa !11
  %1044 = fcmp olt float %1042, %1043
  br i1 %1044, label %1045, label %1060

1045:                                             ; preds = %1034
  %1046 = load float, ptr %72, align 4, !tbaa !11
  %1047 = load ptr, ptr %49, align 8, !tbaa !5
  %1048 = load i32, ptr %76, align 4, !tbaa !9
  %1049 = load i32, ptr %65, align 4, !tbaa !9
  %1050 = shl i32 %1049, 1
  %1051 = add nsw i32 %1048, %1050
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds float, ptr %1047, i64 %1052
  store float %1046, ptr %1053, align 4, !tbaa !11
  %1054 = load ptr, ptr %49, align 8, !tbaa !5
  %1055 = load i32, ptr %76, align 4, !tbaa !9
  %1056 = load i32, ptr %65, align 4, !tbaa !9
  %1057 = add nsw i32 %1055, %1056
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds float, ptr %1054, i64 %1058
  store float 1.000000e+00, ptr %1059, align 4, !tbaa !11
  br label %1060

1060:                                             ; preds = %1045, %1034
  br label %1061

1061:                                             ; preds = %1060, %1033
  %1062 = load ptr, ptr %47, align 8, !tbaa !5
  %1063 = load i32, ptr %1062, align 4, !tbaa !9
  %1064 = icmp sge i32 %1063, 3
  br i1 %1064, label %1065, label %1074

1065:                                             ; preds = %1061
  %1066 = load float, ptr %78, align 4, !tbaa !11
  %1067 = load ptr, ptr %49, align 8, !tbaa !5
  %1068 = load i32, ptr %76, align 4, !tbaa !9
  %1069 = load i32, ptr %65, align 4, !tbaa !9
  %1070 = mul nsw i32 %1069, 3
  %1071 = add nsw i32 %1068, %1070
  %1072 = sext i32 %1071 to i64
  %1073 = getelementptr inbounds float, ptr %1067, i64 %1072
  store float %1066, ptr %1073, align 4, !tbaa !11
  br label %1074

1074:                                             ; preds = %1065, %1061
  br label %1075

1075:                                             ; preds = %1074
  %1076 = load i32, ptr %76, align 4, !tbaa !9
  %1077 = add nsw i32 %1076, 1
  store i32 %1077, ptr %76, align 4, !tbaa !9
  br label %929, !llvm.loop !18

1078:                                             ; preds = %929
  br label %1079

1079:                                             ; preds = %1078, %919, %915
  store i32 1, ptr %88, align 4
  br label %1080

1080:                                             ; preds = %1079, %463, %379
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 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 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  ret void
}

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

declare i32 @ilatrans_(ptr noundef) #2

declare float @slamch_(ptr noundef) #2

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

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

declare float @slangb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare i32 @ilaprec_(ptr noundef) #2

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

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

declare float @sla_gbrcond_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"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 i32, align 4
@c__0 = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4

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

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

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

62:                                               ; preds = %58
  %63 = fptosi float %59 to i32
  br label %64

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

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

75:                                               ; preds = %71
  store float 1.000000e+01, ptr %72, align 4, !tbaa !9
  br label %78

76:                                               ; preds = %71
  %77 = fptosi float %73 to i32
  store i32 %77, ptr %43, align 4, !tbaa !5
  br label %78

78:                                               ; preds = %75, %76
  %.not = icmp eq i32 %69, 2
  br i1 %.not, label %.thread, label %79

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

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

84:                                               ; preds = %79
  %85 = fcmp oeq float %81, 0.000000e+00
  %86 = zext i1 %85 to i32
  store i32 %86, ptr %37, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %64, %84, %83, %78
  %87 = phi i32 [ 0, %64 ], [ %86, %84 ], [ 0, %83 ], [ 0, %78 ]
  %88 = icmp eq i32 %.0388, 0
  br i1 %88, label %92, label %89

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

92:                                               ; preds = %89, %.thread
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %96

93:                                               ; preds = %89
  %.not401 = icmp eq i32 %87, 0
  br i1 %.not401, label %95, label %94

94:                                               ; preds = %93
  store i32 1, ptr %44, align 4, !tbaa !5
  br label %96

95:                                               ; preds = %93
  store i32 2, ptr %44, align 4, !tbaa !5
  br label %96

96:                                               ; preds = %94, %95, %92
  %97 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %98 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #5
  %.not402 = icmp eq i32 %98, 0
  br i1 %.not402, label %99, label %102

99:                                               ; preds = %96
  %100 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #5
  %101 = icmp ne i32 %100, 0
  br label %102

102:                                              ; preds = %99, %96
  %103 = phi i1 [ true, %96 ], [ %101, %99 ]
  %104 = zext i1 %103 to i32
  store i32 %104, ptr %41, align 4, !tbaa !5
  %105 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #5
  %.not403 = icmp eq i32 %105, 0
  br i1 %.not403, label %106, label %109

106:                                              ; preds = %102
  %107 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #5
  %108 = icmp ne i32 %107, 0
  br label %109

109:                                              ; preds = %106, %102
  %110 = phi i1 [ true, %102 ], [ %108, %106 ]
  %111 = zext i1 %110 to i32
  store i32 %111, ptr %40, align 4, !tbaa !5
  %112 = icmp eq i32 %55, -1
  br i1 %112, label %.thread417.sink.split, label %113

113:                                              ; preds = %109
  %or.cond = select i1 %103, i1 true, i1 %110
  br i1 %or.cond, label %116, label %114

114:                                              ; preds = %113
  %115 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #5
  %.not404 = icmp eq i32 %115, 0
  br i1 %.not404, label %.thread417.sink.split, label %116

116:                                              ; preds = %114, %113
  %117 = load i32, ptr %2, align 4, !tbaa !5
  %118 = icmp slt i32 %117, 0
  br i1 %118, label %.thread417.sink.split, label %119

119:                                              ; preds = %116
  %120 = load i32, ptr %3, align 4, !tbaa !5
  %121 = icmp slt i32 %120, 0
  br i1 %121, label %.thread417.sink.split, label %122

122:                                              ; preds = %119
  %123 = load i32, ptr %4, align 4, !tbaa !5
  %124 = icmp slt i32 %123, 0
  br i1 %124, label %.thread417.sink.split, label %125

125:                                              ; preds = %122
  %126 = load i32, ptr %5, align 4, !tbaa !5
  %127 = icmp slt i32 %126, 0
  br i1 %127, label %.thread417.sink.split, label %128

128:                                              ; preds = %125
  %129 = load i32, ptr %7, align 4, !tbaa !5
  %130 = add nuw nsw i32 %123, %120
  %.not405 = icmp sgt i32 %129, %130
  br i1 %.not405, label %131, label %.thread417.sink.split

131:                                              ; preds = %128
  %132 = load i32, ptr %9, align 4, !tbaa !5
  %133 = shl nuw i32 %120, 1
  %134 = add nsw i32 %123, %133
  %.not406 = icmp sgt i32 %132, %134
  br i1 %.not406, label %135, label %.thread417.sink.split

135:                                              ; preds = %131
  %136 = load i32, ptr %14, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %117, i32 1)
  %137 = icmp slt i32 %136, %spec.select
  br i1 %137, label %.thread417.sink.split, label %138

138:                                              ; preds = %135
  %139 = load i32, ptr %16, align 4, !tbaa !5
  %140 = icmp slt i32 %139, %spec.select
  br i1 %140, label %.thread417.sink.split, label %141

141:                                              ; preds = %138
  %.pr = load i32, ptr %26, align 4, !tbaa !5
  %.not407 = icmp eq i32 %.pr, 0
  br i1 %.not407, label %145, label %.thread417

.thread417.sink.split:                            ; preds = %138, %135, %131, %128, %125, %122, %119, %116, %114, %109
  %.sink = phi i32 [ -1, %109 ], [ -2, %114 ], [ -3, %116 ], [ -4, %119 ], [ -5, %122 ], [ -6, %125 ], [ -8, %128 ], [ -10, %131 ], [ -13, %135 ], [ -15, %138 ]
  store i32 %.sink, ptr %26, align 4, !tbaa !5
  br label %.thread417

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

145:                                              ; preds = %141
  %146 = icmp eq i32 %117, 0
  br i1 %146, label %149, label %147

147:                                              ; preds = %145
  %148 = icmp eq i32 %126, 0
  br i1 %148, label %.thread482, label %.lr.ph

.thread482:                                       ; preds = %147
  store float 1.000000e+00, ptr %17, align 4, !tbaa !9
  br label %.loopexit

149:                                              ; preds = %145
  store float 1.000000e+00, ptr %17, align 4, !tbaa !9
  %.not415439 = icmp eq i32 %126, 0
  br i1 %.not415439, label %.loopexit, label %.lr.ph442

.lr.ph442:                                        ; preds = %149
  %150 = load i32, ptr %19, align 4, !tbaa !5
  %151 = icmp sgt i32 %150, 0
  %152 = shl i32 %46, 1
  %153 = icmp ugt i32 %150, 2
  %154 = mul nsw i32 %46, 3
  br i1 %151, label %.lr.ph442.split.us, label %.thread421.preheader

.thread421.preheader:                             ; preds = %.lr.ph442
  %155 = zext nneg i32 %126 to i64
  %156 = shl nuw nsw i64 %155, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %18, i8 0, i64 %156, i1 false), !tbaa !9
  br label %.loopexit

.lr.ph442.split.us:                               ; preds = %.lr.ph442
  %.not426 = icmp eq i32 %150, 1
  %157 = sext i32 %46 to i64
  br i1 %.not426, label %.thread421.us.us.preheader, label %.lr.ph442.split.us.split.preheader

.lr.ph442.split.us.split.preheader:               ; preds = %.lr.ph442.split.us
  %158 = sext i32 %152 to i64
  %159 = sext i32 %154 to i64
  %160 = add nuw i32 %126, 1
  %wide.trip.count473 = zext i32 %160 to i64
  br label %.lr.ph442.split.us.split

.thread421.us.us.preheader:                       ; preds = %.lr.ph442.split.us
  %161 = add nuw i32 %126, 1
  %wide.trip.count478 = zext i32 %161 to i64
  %162 = zext nneg i32 %126 to i64
  %min.iters.check536 = icmp ult i32 %126, 20
  br i1 %min.iters.check536, label %.thread421.us.us.preheader547, label %vector.memcheck528

vector.memcheck528:                               ; preds = %.thread421.us.us.preheader
  %163 = shl nsw i64 %157, 2
  %164 = add i64 %163, %30
  %165 = shl nsw i64 %47, 2
  %166 = add i64 %164, %165
  %167 = add i64 %166, 4
  %168 = sub i64 %167, %29
  %diff.check529 = icmp ult i64 %168, 32
  %169 = add i64 %163, %28
  %170 = add i64 %169, %165
  %171 = add i64 %170, 4
  %172 = sub i64 %171, %29
  %diff.check530 = icmp ult i64 %172, 32
  %conflict.rdx531 = or i1 %diff.check529, %diff.check530
  %173 = sub i64 %28, %30
  %diff.check532 = icmp ult i64 %173, 32
  %conflict.rdx533 = or i1 %conflict.rdx531, %diff.check532
  br i1 %conflict.rdx533, label %.thread421.us.us.preheader547, label %vector.ph537

vector.ph537:                                     ; preds = %vector.memcheck528
  %n.vec539 = and i64 %162, 2147483640
  %ind.end540 = or disjoint i64 %n.vec539, 1
  br label %vector.body542

vector.body542:                                   ; preds = %vector.body542, %vector.ph537
  %index543 = phi i64 [ 0, %vector.ph537 ], [ %index.next545, %vector.body542 ]
  %offset.idx544 = or disjoint i64 %index543, 1
  %174 = getelementptr float, ptr %18, i64 %index543
  %175 = getelementptr inbounds i8, ptr %174, i64 16
  store <4 x float> zeroinitializer, ptr %174, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %175, align 4, !tbaa !9
  %176 = add nsw i64 %offset.idx544, %157
  %177 = getelementptr inbounds float, ptr %49, i64 %176
  %178 = getelementptr inbounds i8, ptr %177, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %177, 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 %178, align 4, !tbaa !9
  %179 = getelementptr inbounds float, ptr %48, i64 %176
  %180 = getelementptr inbounds i8, ptr %179, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %179, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %180, align 4, !tbaa !9
  %index.next545 = add nuw i64 %index543, 8
  %181 = icmp eq i64 %index.next545, %n.vec539
  br i1 %181, label %middle.block534, label %vector.body542, !llvm.loop !11

middle.block534:                                  ; preds = %vector.body542
  %cmp.n546 = icmp eq i64 %n.vec539, %162
  br i1 %cmp.n546, label %.loopexit, label %.thread421.us.us.preheader547

.thread421.us.us.preheader547:                    ; preds = %middle.block534, %vector.memcheck528, %.thread421.us.us.preheader
  %indvars.iv475.ph = phi i64 [ 1, %vector.memcheck528 ], [ 1, %.thread421.us.us.preheader ], [ %ind.end540, %middle.block534 ]
  %182 = zext nneg i32 %126 to i64
  %183 = and i32 %126, 1
  %lcmp.mod555.not = icmp eq i32 %183, 0
  br i1 %lcmp.mod555.not, label %.thread421.us.us.prol.loopexit, label %.thread421.us.us.prol

.thread421.us.us.prol:                            ; preds = %.thread421.us.us.preheader547
  %184 = getelementptr inbounds float, ptr %53, i64 %indvars.iv475.ph
  store float 0.000000e+00, ptr %184, align 4, !tbaa !9
  %185 = add nsw i64 %indvars.iv475.ph, %157
  %186 = getelementptr inbounds float, ptr %49, i64 %185
  store float 1.000000e+00, ptr %186, align 4, !tbaa !9
  %187 = getelementptr inbounds float, ptr %48, i64 %185
  store float 1.000000e+00, ptr %187, align 4, !tbaa !9
  %indvars.iv.next476.prol = add nuw nsw i64 %indvars.iv475.ph, 1
  br label %.thread421.us.us.prol.loopexit

.thread421.us.us.prol.loopexit:                   ; preds = %.thread421.us.us.prol, %.thread421.us.us.preheader547
  %indvars.iv475.unr = phi i64 [ %indvars.iv475.ph, %.thread421.us.us.preheader547 ], [ %indvars.iv.next476.prol, %.thread421.us.us.prol ]
  %188 = icmp eq i64 %indvars.iv475.ph, %182
  br i1 %188, label %.loopexit, label %.thread421.us.us

.thread421.us.us:                                 ; preds = %.thread421.us.us.prol.loopexit, %.thread421.us.us
  %indvars.iv475 = phi i64 [ %indvars.iv.next476.1, %.thread421.us.us ], [ %indvars.iv475.unr, %.thread421.us.us.prol.loopexit ]
  %189 = getelementptr inbounds float, ptr %53, i64 %indvars.iv475
  store float 0.000000e+00, ptr %189, align 4, !tbaa !9
  %190 = add nsw i64 %indvars.iv475, %157
  %191 = getelementptr inbounds float, ptr %49, i64 %190
  store float 1.000000e+00, ptr %191, align 4, !tbaa !9
  %192 = getelementptr inbounds float, ptr %48, i64 %190
  store float 1.000000e+00, ptr %192, align 4, !tbaa !9
  %indvars.iv.next476 = add nuw nsw i64 %indvars.iv475, 1
  %193 = getelementptr float, ptr %18, i64 %indvars.iv475
  store float 0.000000e+00, ptr %193, align 4, !tbaa !9
  %194 = add nsw i64 %indvars.iv.next476, %157
  %195 = getelementptr inbounds float, ptr %49, i64 %194
  store float 1.000000e+00, ptr %195, align 4, !tbaa !9
  %196 = getelementptr inbounds float, ptr %48, i64 %194
  store float 1.000000e+00, ptr %196, align 4, !tbaa !9
  %indvars.iv.next476.1 = add nuw nsw i64 %indvars.iv475, 2
  %exitcond479.not.1 = icmp eq i64 %indvars.iv.next476.1, %wide.trip.count478
  br i1 %exitcond479.not.1, label %.loopexit, label %.thread421.us.us, !llvm.loop !15

.lr.ph442.split.us.split:                         ; preds = %.lr.ph442.split.us.split.preheader, %.thread421.us
  %indvars.iv470 = phi i64 [ 1, %.lr.ph442.split.us.split.preheader ], [ %indvars.iv.next471, %.thread421.us ]
  %197 = getelementptr inbounds float, ptr %53, i64 %indvars.iv470
  store float 0.000000e+00, ptr %197, align 4, !tbaa !9
  %198 = add nsw i64 %indvars.iv470, %157
  %199 = getelementptr inbounds float, ptr %49, i64 %198
  store float 1.000000e+00, ptr %199, align 4, !tbaa !9
  %200 = getelementptr inbounds float, ptr %48, i64 %198
  store float 1.000000e+00, ptr %200, align 4, !tbaa !9
  %201 = add nsw i64 %indvars.iv470, %158
  %202 = getelementptr inbounds float, ptr %49, i64 %201
  store float 0.000000e+00, ptr %202, align 4, !tbaa !9
  %203 = getelementptr inbounds float, ptr %48, i64 %201
  store float 0.000000e+00, ptr %203, align 4, !tbaa !9
  br i1 %153, label %204, label %.thread421.us

204:                                              ; preds = %.lr.ph442.split.us.split
  %205 = add nsw i64 %indvars.iv470, %159
  %206 = getelementptr inbounds float, ptr %49, i64 %205
  store float 1.000000e+00, ptr %206, align 4, !tbaa !9
  %207 = getelementptr inbounds float, ptr %48, i64 %205
  store float 1.000000e+00, ptr %207, align 4, !tbaa !9
  br label %.thread421.us

.thread421.us:                                    ; preds = %204, %.lr.ph442.split.us.split
  %indvars.iv.next471 = add nuw nsw i64 %indvars.iv470, 1
  %exitcond474.not = icmp eq i64 %indvars.iv.next471, %wide.trip.count473
  br i1 %exitcond474.not, label %.loopexit, label %.lr.ph442.split.us.split, !llvm.loop !16

.lr.ph:                                           ; preds = %147
  store float 0.000000e+00, ptr %17, align 4, !tbaa !9
  %208 = load i32, ptr %19, align 4, !tbaa !5
  %209 = icmp sgt i32 %208, 0
  %210 = shl i32 %46, 1
  %211 = icmp ugt i32 %208, 2
  %212 = mul nsw i32 %46, 3
  br i1 %209, label %.lr.ph.split.us, label %.thread424.preheader

.thread424.preheader:                             ; preds = %.lr.ph
  %213 = add nuw i32 %126, 1
  %wide.trip.count = zext i32 %213 to i64
  %214 = zext nneg i32 %126 to i64
  %min.iters.check = icmp ult i32 %126, 8
  br i1 %min.iters.check, label %.thread424.preheader552, label %vector.ph

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

vector.ph:                                        ; preds = %.thread424.preheader
  %n.vec = and i64 %214, 2147483640
  %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 ]
  %215 = getelementptr float, ptr %18, i64 %index
  %216 = getelementptr inbounds i8, ptr %215, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %215, 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 %216, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %217 = icmp eq i64 %index.next, %n.vec
  br i1 %217, label %middle.block, label %vector.body, !llvm.loop !17

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %214
  br i1 %cmp.n, label %._crit_edge, label %.thread424.preheader552

.lr.ph.split.us:                                  ; preds = %.lr.ph
  %.not425 = icmp eq i32 %208, 1
  %218 = sext i32 %46 to i64
  br i1 %.not425, label %.thread424.us.us.preheader, label %.lr.ph.split.us.split.preheader

.lr.ph.split.us.split.preheader:                  ; preds = %.lr.ph.split.us
  %219 = sext i32 %210 to i64
  %220 = sext i32 %212 to i64
  %221 = add nuw i32 %126, 1
  %wide.trip.count452 = zext i32 %221 to i64
  br label %.lr.ph.split.us.split

.thread424.us.us.preheader:                       ; preds = %.lr.ph.split.us
  %222 = add nuw i32 %126, 1
  %wide.trip.count457 = zext i32 %222 to i64
  %223 = zext nneg i32 %126 to i64
  %min.iters.check517 = icmp ult i32 %126, 20
  br i1 %min.iters.check517, label %.thread424.us.us.preheader550, label %vector.memcheck

vector.memcheck:                                  ; preds = %.thread424.us.us.preheader
  %224 = shl nsw i64 %218, 2
  %225 = add i64 %224, %33
  %226 = shl nsw i64 %47, 2
  %227 = add i64 %225, %226
  %228 = add i64 %227, 4
  %229 = sub i64 %228, %32
  %diff.check = icmp ult i64 %229, 32
  %230 = add i64 %224, %31
  %231 = add i64 %230, %226
  %232 = add i64 %231, 4
  %233 = sub i64 %232, %32
  %diff.check512 = icmp ult i64 %233, 32
  %conflict.rdx = or i1 %diff.check, %diff.check512
  %234 = sub i64 %31, %33
  %diff.check513 = icmp ult i64 %234, 32
  %conflict.rdx514 = or i1 %conflict.rdx, %diff.check513
  br i1 %conflict.rdx514, label %.thread424.us.us.preheader550, label %vector.ph518

vector.ph518:                                     ; preds = %vector.memcheck
  %n.vec520 = and i64 %223, 2147483640
  %ind.end521 = or disjoint i64 %n.vec520, 1
  br label %vector.body523

vector.body523:                                   ; preds = %vector.body523, %vector.ph518
  %index524 = phi i64 [ 0, %vector.ph518 ], [ %index.next526, %vector.body523 ]
  %offset.idx525 = or disjoint i64 %index524, 1
  %235 = getelementptr float, ptr %18, i64 %index524
  %236 = getelementptr inbounds i8, ptr %235, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %235, 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 %236, align 4, !tbaa !9
  %237 = add nsw i64 %offset.idx525, %218
  %238 = getelementptr inbounds float, ptr %49, i64 %237
  %239 = getelementptr inbounds i8, ptr %238, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %238, 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 %239, align 4, !tbaa !9
  %240 = getelementptr inbounds float, ptr %48, i64 %237
  %241 = getelementptr inbounds i8, ptr %240, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %240, 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 %241, align 4, !tbaa !9
  %index.next526 = add nuw i64 %index524, 8
  %242 = icmp eq i64 %index.next526, %n.vec520
  br i1 %242, label %middle.block515, label %vector.body523, !llvm.loop !18

middle.block515:                                  ; preds = %vector.body523
  %cmp.n527 = icmp eq i64 %n.vec520, %223
  br i1 %cmp.n527, label %._crit_edge, label %.thread424.us.us.preheader550

.thread424.us.us.preheader550:                    ; preds = %middle.block515, %vector.memcheck, %.thread424.us.us.preheader
  %indvars.iv454.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.thread424.us.us.preheader ], [ %ind.end521, %middle.block515 ]
  %243 = zext nneg i32 %126 to i64
  %244 = and i32 %126, 1
  %lcmp.mod.not = icmp eq i32 %244, 0
  br i1 %lcmp.mod.not, label %.thread424.us.us.prol.loopexit, label %.thread424.us.us.prol

.thread424.us.us.prol:                            ; preds = %.thread424.us.us.preheader550
  %245 = getelementptr inbounds float, ptr %53, i64 %indvars.iv454.ph
  store float 1.000000e+00, ptr %245, align 4, !tbaa !9
  %246 = add nsw i64 %indvars.iv454.ph, %218
  %247 = getelementptr inbounds float, ptr %49, i64 %246
  store float 1.000000e+00, ptr %247, align 4, !tbaa !9
  %248 = getelementptr inbounds float, ptr %48, i64 %246
  store float 1.000000e+00, ptr %248, align 4, !tbaa !9
  %indvars.iv.next455.prol = add nuw nsw i64 %indvars.iv454.ph, 1
  br label %.thread424.us.us.prol.loopexit

.thread424.us.us.prol.loopexit:                   ; preds = %.thread424.us.us.prol, %.thread424.us.us.preheader550
  %indvars.iv454.unr = phi i64 [ %indvars.iv454.ph, %.thread424.us.us.preheader550 ], [ %indvars.iv.next455.prol, %.thread424.us.us.prol ]
  %249 = icmp eq i64 %indvars.iv454.ph, %243
  br i1 %249, label %._crit_edge, label %.thread424.us.us

.thread424.us.us:                                 ; preds = %.thread424.us.us.prol.loopexit, %.thread424.us.us
  %indvars.iv454 = phi i64 [ %indvars.iv.next455.1, %.thread424.us.us ], [ %indvars.iv454.unr, %.thread424.us.us.prol.loopexit ]
  %250 = getelementptr inbounds float, ptr %53, i64 %indvars.iv454
  store float 1.000000e+00, ptr %250, align 4, !tbaa !9
  %251 = add nsw i64 %indvars.iv454, %218
  %252 = getelementptr inbounds float, ptr %49, i64 %251
  store float 1.000000e+00, ptr %252, align 4, !tbaa !9
  %253 = getelementptr inbounds float, ptr %48, i64 %251
  store float 1.000000e+00, ptr %253, align 4, !tbaa !9
  %indvars.iv.next455 = add nuw nsw i64 %indvars.iv454, 1
  %254 = getelementptr float, ptr %18, i64 %indvars.iv454
  store float 1.000000e+00, ptr %254, align 4, !tbaa !9
  %255 = add nsw i64 %indvars.iv.next455, %218
  %256 = getelementptr inbounds float, ptr %49, i64 %255
  store float 1.000000e+00, ptr %256, align 4, !tbaa !9
  %257 = getelementptr inbounds float, ptr %48, i64 %255
  store float 1.000000e+00, ptr %257, align 4, !tbaa !9
  %indvars.iv.next455.1 = add nuw nsw i64 %indvars.iv454, 2
  %exitcond458.not.1 = icmp eq i64 %indvars.iv.next455.1, %wide.trip.count457
  br i1 %exitcond458.not.1, label %._crit_edge, label %.thread424.us.us, !llvm.loop !19

.lr.ph.split.us.split:                            ; preds = %.lr.ph.split.us.split.preheader, %.thread424.us
  %indvars.iv449 = phi i64 [ 1, %.lr.ph.split.us.split.preheader ], [ %indvars.iv.next450, %.thread424.us ]
  %258 = getelementptr inbounds float, ptr %53, i64 %indvars.iv449
  store float 1.000000e+00, ptr %258, align 4, !tbaa !9
  %259 = add nsw i64 %indvars.iv449, %218
  %260 = getelementptr inbounds float, ptr %49, i64 %259
  store float 1.000000e+00, ptr %260, align 4, !tbaa !9
  %261 = getelementptr inbounds float, ptr %48, i64 %259
  store float 1.000000e+00, ptr %261, align 4, !tbaa !9
  %262 = add nsw i64 %indvars.iv449, %219
  %263 = getelementptr inbounds float, ptr %49, i64 %262
  store float 1.000000e+00, ptr %263, align 4, !tbaa !9
  %264 = getelementptr inbounds float, ptr %48, i64 %262
  store float 1.000000e+00, ptr %264, align 4, !tbaa !9
  br i1 %211, label %265, label %.thread424.us

265:                                              ; preds = %.lr.ph.split.us.split
  %266 = add nsw i64 %indvars.iv449, %220
  %267 = getelementptr inbounds float, ptr %49, i64 %266
  store float 0.000000e+00, ptr %267, align 4, !tbaa !9
  %268 = getelementptr inbounds float, ptr %48, i64 %266
  store float 0.000000e+00, ptr %268, align 4, !tbaa !9
  br label %.thread424.us

.thread424.us:                                    ; preds = %265, %.lr.ph.split.us.split
  %indvars.iv.next450 = add nuw nsw i64 %indvars.iv449, 1
  %exitcond453.not = icmp eq i64 %indvars.iv.next450, %wide.trip.count452
  br i1 %exitcond453.not, label %._crit_edge, label %.lr.ph.split.us.split, !llvm.loop !20

.thread424:                                       ; preds = %.thread424.preheader552, %.thread424
  %indvars.iv = phi i64 [ %indvars.iv.next, %.thread424 ], [ %indvars.iv.ph, %.thread424.preheader552 ]
  %269 = getelementptr inbounds float, ptr %53, i64 %indvars.iv
  store float 1.000000e+00, ptr %269, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.thread424, !llvm.loop !21

._crit_edge:                                      ; preds = %.thread424, %.thread424.us, %.thread424.us.us.prol.loopexit, %.thread424.us.us, %middle.block, %middle.block515
  %270 = icmp ne i32 %97, 0
  %. = select i1 %270, i8 73, i8 49
  store i8 %., ptr %36, align 1, !tbaa !22
  %271 = call float @slangb_(ptr noundef nonnull %36, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %24) #5
  store float %271, ptr %38, align 4, !tbaa !9
  call void @sgbcon_(ptr noundef nonnull %36, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %38, ptr noundef nonnull %17, ptr noundef %24, ptr noundef %25, ptr noundef nonnull %26) #5
  br i1 %88, label %287, label %272

272:                                              ; preds = %._crit_edge
  %273 = load i32, ptr %26, align 4, !tbaa !5
  %274 = icmp eq i32 %273, 0
  br i1 %274, label %275, label %287

275:                                              ; preds = %272
  %276 = call i32 @ilaprec_(ptr noundef nonnull @.str.6) #5
  store i32 %276, ptr %39, align 4, !tbaa !5
  %277 = load i32, ptr %2, align 4, !tbaa !5
  %278 = sext i32 %277 to i64
  %279 = getelementptr float, ptr %54, i64 %278
  %280 = getelementptr i8, ptr %279, i64 4
  %281 = shl i32 %277, 1
  %282 = or disjoint i32 %281, 1
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds float, ptr %54, i64 %283
  br i1 %270, label %285, label %286

285:                                              ; preds = %275
  call void @sla_gbrfsx_extended_(ptr noundef nonnull %39, ptr noundef nonnull %42, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %40, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %18, ptr noundef nonnull %44, ptr noundef %20, ptr noundef %21, ptr noundef %280, ptr noundef %24, ptr noundef nonnull %284, ptr noundef %24, ptr noundef nonnull %17, ptr noundef nonnull %43, ptr noundef nonnull %45, ptr noundef nonnull %35, ptr noundef nonnull %37, ptr noundef nonnull %26) #5
  br label %287

286:                                              ; preds = %275
  call void @sla_gbrfsx_extended_(ptr noundef nonnull %39, ptr noundef nonnull %42, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %41, ptr noundef %11, ptr noundef %13, ptr noundef nonnull %14, ptr noundef %15, ptr noundef nonnull %16, ptr noundef nonnull %18, ptr noundef nonnull %44, ptr noundef %20, ptr noundef %21, ptr noundef %280, ptr noundef %24, ptr noundef nonnull %284, ptr noundef %24, ptr noundef nonnull %17, ptr noundef nonnull %43, ptr noundef nonnull %45, ptr noundef nonnull %35, ptr noundef nonnull %37, ptr noundef nonnull %26) #5
  br label %287

287:                                              ; preds = %285, %286, %272, %._crit_edge
  %288 = load i32, ptr %2, align 4, !tbaa !5
  %289 = sitofp i32 %288 to float
  %sqrtf = call float @sqrtf(float noundef %289) #6
  %290 = fcmp ole float %sqrtf, 1.000000e+01
  %291 = select i1 %290, float 1.000000e+01, float %sqrtf
  %292 = call float @slamch_(ptr noundef nonnull @.str) #5
  %293 = fmul float %292, %291
  %294 = load i32, ptr %19, align 4, !tbaa !5
  %295 = icmp sgt i32 %294, 0
  %296 = load i32, ptr %44, align 4
  %297 = icmp sgt i32 %296, 0
  %or.cond3 = select i1 %295, i1 %297, i1 false
  br i1 %or.cond3, label %298, label %.loopexit428

298:                                              ; preds = %287
  %299 = load i32, ptr %40, align 4, !tbaa !5
  %300 = icmp ne i32 %299, 0
  %or.cond5 = and i1 %270, %300
  br i1 %or.cond5, label %301, label %303

301:                                              ; preds = %298
  %302 = call float @sla_gbrcond_(ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull @c_n1, ptr noundef %12, ptr noundef nonnull %26, ptr noundef %24, ptr noundef %25) #5
  br label %310

303:                                              ; preds = %298
  %304 = load i32, ptr %41, align 4, !tbaa !5
  %305 = icmp eq i32 %304, 0
  %or.cond7 = or i1 %270, %305
  br i1 %or.cond7, label %308, label %306

306:                                              ; preds = %303
  %307 = call float @sla_gbrcond_(ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull @c_n1, ptr noundef %11, ptr noundef nonnull %26, ptr noundef %24, ptr noundef %25) #5
  br label %310

308:                                              ; preds = %303
  %309 = call float @sla_gbrcond_(ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull @c__0, ptr noundef %11, ptr noundef nonnull %26, ptr noundef %24, ptr noundef %25) #5
  br label %310

310:                                              ; preds = %306, %308, %301
  %.0 = phi float [ %302, %301 ], [ %309, %308 ], [ %307, %306 ]
  %311 = load i32, ptr %5, align 4, !tbaa !5
  %.not411431 = icmp slt i32 %311, 1
  %.pre481 = load i32, ptr %19, align 4, !tbaa !5
  br i1 %.not411431, label %.loopexit428, label %.lr.ph434

.lr.ph434:                                        ; preds = %310
  %312 = shl i32 %46, 1
  %313 = fcmp olt float %.0, %68
  %314 = mul nsw i32 %46, 3
  %315 = sext i32 %312 to i64
  %316 = sext i32 %46 to i64
  %317 = sext i32 %314 to i64
  %318 = add nuw i32 %311, 1
  %wide.trip.count462 = zext i32 %318 to i64
  %invariant.gep488 = getelementptr float, ptr %49, i64 %315
  %invariant.gep490 = getelementptr float, ptr %49, i64 %315
  %invariant.gep492 = getelementptr float, ptr %49, i64 %316
  %invariant.gep494 = getelementptr float, ptr %49, i64 %315
  %invariant.gep496 = getelementptr float, ptr %49, i64 %316
  %invariant.gep498 = getelementptr float, ptr %49, i64 %317
  br label %319

319:                                              ; preds = %.lr.ph434, %341
  %320 = phi i32 [ %.pre481, %.lr.ph434 ], [ %338, %341 ]
  %indvars.iv459 = phi i64 [ 1, %.lr.ph434 ], [ %indvars.iv.next460, %341 ]
  %321 = icmp sgt i32 %320, 1
  br i1 %321, label %322, label %326

322:                                              ; preds = %319
  %gep489 = getelementptr float, ptr %invariant.gep488, i64 %indvars.iv459
  %323 = load float, ptr %gep489, align 4, !tbaa !9
  %324 = fcmp ogt float %323, 1.000000e+00
  br i1 %324, label %325, label %326

325:                                              ; preds = %322
  store float 1.000000e+00, ptr %gep489, align 4, !tbaa !9
  br label %326

326:                                              ; preds = %325, %322, %319
  br i1 %313, label %327, label %333

327:                                              ; preds = %326
  %gep495 = getelementptr float, ptr %invariant.gep494, i64 %indvars.iv459
  store float 1.000000e+00, ptr %gep495, align 4, !tbaa !9
  %gep497 = getelementptr float, ptr %invariant.gep496, i64 %indvars.iv459
  store float 0.000000e+00, ptr %gep497, align 4, !tbaa !9
  %328 = load i32, ptr %26, align 4, !tbaa !5
  %329 = load i32, ptr %2, align 4, !tbaa !5
  %.not414 = icmp sgt i32 %328, %329
  br i1 %.not414, label %337, label %330

330:                                              ; preds = %327
  %331 = trunc nuw nsw i64 %indvars.iv459 to i32
  %332 = add nsw i32 %329, %331
  store i32 %332, ptr %26, align 4, !tbaa !5
  %.pre480 = load i32, ptr %19, align 4, !tbaa !5
  br label %337

333:                                              ; preds = %326
  %gep491 = getelementptr float, ptr %invariant.gep490, i64 %indvars.iv459
  %334 = load float, ptr %gep491, align 4, !tbaa !9
  %335 = fcmp olt float %334, %293
  br i1 %335, label %336, label %337

336:                                              ; preds = %333
  store float %293, ptr %gep491, align 4, !tbaa !9
  %gep493 = getelementptr float, ptr %invariant.gep492, i64 %indvars.iv459
  store float 1.000000e+00, ptr %gep493, align 4, !tbaa !9
  br label %337

337:                                              ; preds = %333, %336, %327, %330
  %338 = phi i32 [ %320, %333 ], [ %320, %336 ], [ %320, %327 ], [ %.pre480, %330 ]
  %339 = icmp sgt i32 %338, 2
  br i1 %339, label %340, label %341

340:                                              ; preds = %337
  %gep499 = getelementptr float, ptr %invariant.gep498, i64 %indvars.iv459
  store float %.0, ptr %gep499, align 4, !tbaa !9
  br label %341

341:                                              ; preds = %337, %340
  %indvars.iv.next460 = add nuw nsw i64 %indvars.iv459, 1
  %exitcond463.not = icmp eq i64 %indvars.iv.next460, %wide.trip.count462
  br i1 %exitcond463.not, label %.loopexit428, label %319, !llvm.loop !23

.loopexit428:                                     ; preds = %341, %310, %287
  %342 = phi i32 [ %.pre481, %310 ], [ %294, %287 ], [ %338, %341 ]
  %343 = icmp sgt i32 %342, 0
  %344 = load i32, ptr %44, align 4
  %345 = icmp sgt i32 %344, 1
  %or.cond9 = select i1 %343, i1 %345, i1 false
  br i1 %or.cond9, label %346, label %.loopexit

346:                                              ; preds = %.loopexit428
  %347 = call float @slamch_(ptr noundef nonnull @.str) #5
  %sqrtf412 = call float @sqrtf(float noundef %347) #6
  %348 = load i32, ptr %5, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %52, i64 4
  %.not413435 = icmp slt i32 %348, 1
  br i1 %.not413435, label %.loopexit, label %.lr.ph438

.lr.ph438:                                        ; preds = %346
  %349 = shl i32 %46, 1
  %350 = getelementptr inbounds i8, ptr %23, i64 8
  %351 = mul nsw i32 %46, 3
  %352 = sext i32 %349 to i64
  %353 = sext i32 %50 to i64
  %354 = sext i32 %46 to i64
  %355 = sext i32 %351 to i64
  %invariant.gep500 = getelementptr float, ptr %48, i64 %352
  %invariant.gep502 = getelementptr float, ptr %48, i64 %354
  %invariant.gep504 = getelementptr float, ptr %48, i64 %354
  %invariant.gep506 = getelementptr float, ptr %48, i64 %355
  %356 = zext nneg i32 %348 to i64
  br label %357

357:                                              ; preds = %.lr.ph438, %390
  %indvars.iv464 = phi i64 [ 1, %.lr.ph438 ], [ %indvars.iv.next465, %390 ]
  %gep501 = getelementptr float, ptr %invariant.gep500, i64 %indvars.iv464
  %358 = load float, ptr %gep501, align 4, !tbaa !9
  %359 = fcmp olt float %358, %sqrtf412
  br i1 %359, label %360, label %363

360:                                              ; preds = %357
  %361 = mul nsw i64 %indvars.iv464, %353
  %gep = getelementptr float, ptr %invariant.gep, i64 %361
  %362 = call float @sla_gbrcond_(ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull %26, ptr noundef %24, ptr noundef %25) #5
  br label %363

363:                                              ; preds = %357, %360
  %.1 = phi float [ %362, %360 ], [ 0.000000e+00, %357 ]
  %364 = load i32, ptr %19, align 4, !tbaa !5
  %365 = icmp sgt i32 %364, 1
  br i1 %365, label %366, label %370

366:                                              ; preds = %363
  %367 = load float, ptr %gep501, align 4, !tbaa !9
  %368 = fcmp ogt float %367, 1.000000e+00
  br i1 %368, label %369, label %370

369:                                              ; preds = %366
  store float 1.000000e+00, ptr %gep501, align 4, !tbaa !9
  br label %370

370:                                              ; preds = %369, %366, %363
  %371 = fcmp olt float %.1, %68
  br i1 %371, label %372, label %382

372:                                              ; preds = %370
  store float 1.000000e+00, ptr %gep501, align 4, !tbaa !9
  %gep505 = getelementptr float, ptr %invariant.gep504, i64 %indvars.iv464
  store float 0.000000e+00, ptr %gep505, align 4, !tbaa !9
  %373 = load float, ptr %350, align 4, !tbaa !9
  %374 = fcmp oeq float %373, 1.000000e+00
  br i1 %374, label %375, label %386

375:                                              ; preds = %372
  %376 = load i32, ptr %26, align 4, !tbaa !5
  %377 = load i32, ptr %2, align 4, !tbaa !5
  %378 = trunc nuw nsw i64 %indvars.iv464 to i32
  %379 = add nsw i32 %377, %378
  %380 = icmp slt i32 %376, %379
  br i1 %380, label %381, label %386

381:                                              ; preds = %375
  store i32 %379, ptr %26, align 4, !tbaa !5
  %.pre = load i32, ptr %19, align 4, !tbaa !5
  br label %386

382:                                              ; preds = %370
  %383 = load float, ptr %gep501, align 4, !tbaa !9
  %384 = fcmp olt float %383, %293
  br i1 %384, label %385, label %386

385:                                              ; preds = %382
  store float %293, ptr %gep501, align 4, !tbaa !9
  %gep503 = getelementptr float, ptr %invariant.gep502, i64 %indvars.iv464
  store float 1.000000e+00, ptr %gep503, align 4, !tbaa !9
  br label %386

386:                                              ; preds = %382, %385, %372, %375, %381
  %387 = phi i32 [ %364, %382 ], [ %364, %385 ], [ %364, %372 ], [ %364, %375 ], [ %.pre, %381 ]
  %388 = icmp sgt i32 %387, 2
  br i1 %388, label %389, label %390

389:                                              ; preds = %386
  %gep507 = getelementptr float, ptr %invariant.gep506, i64 %indvars.iv464
  store float %.1, ptr %gep507, align 4, !tbaa !9
  br label %390

390:                                              ; preds = %386, %389
  %indvars.iv.next465 = add nuw nsw i64 %indvars.iv464, 1
  %.not413.not = icmp ult i64 %indvars.iv464, %356
  br i1 %.not413.not, label %357, label %.loopexit, !llvm.loop !24

.loopexit:                                        ; preds = %390, %.thread421.us, %.thread421.us.us.prol.loopexit, %.thread421.us.us, %middle.block534, %.thread482, %.thread421.preheader, %346, %149, %.loopexit428, %.thread417
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #5
  ret void
}

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

declare i32 @ilatrans_(ptr noundef) local_unnamed_addr #2

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

declare float @slangb_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sgbcon_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @ilaprec_(ptr noundef) local_unnamed_addr #2

declare void @sla_gbrfsx_extended_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare float @sla_gbrcond_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) 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 i32 @llvm.umax.i32(i32, i32) #3

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

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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nounwind }
attributes #6 = { 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" }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"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}
!17 = distinct !{!17, !12, !13, !14}
!18 = distinct !{!18, !12, !13, !14}
!19 = distinct !{!19, !12, !13}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12, !14, !13}
!22 = !{!7, !7, i64 0}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}


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