; LLVM IR from niuyishuai/PDCABB :: LAPACK_BLAS/LAPACK (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 i64, align 8
@c__0 = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8

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

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

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

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

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

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

183:                                              ; preds = %172
  %184 = load ptr, ptr %52, align 8, !tbaa !5
  %185 = getelementptr inbounds float, ptr %184, i64 2
  %186 = load float, ptr %185, align 4, !tbaa !11
  %187 = fcmp olt float %186, 0.000000e+00
  br i1 %187, label %188, label %193

188:                                              ; preds = %183
  %189 = load i64, ptr %86, align 8, !tbaa !9
  %190 = sitofp i64 %189 to float
  %191 = load ptr, ptr %52, align 8, !tbaa !5
  %192 = getelementptr inbounds float, ptr %191, i64 2
  store float %190, ptr %192, align 4, !tbaa !11
  br label %198

193:                                              ; preds = %183
  %194 = load ptr, ptr %52, align 8, !tbaa !5
  %195 = getelementptr inbounds float, ptr %194, i64 2
  %196 = load float, ptr %195, align 4, !tbaa !11
  %197 = fptosi float %196 to i64
  store i64 %197, ptr %86, align 8, !tbaa !9
  br label %198

198:                                              ; preds = %193, %188
  br label %199

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

203:                                              ; preds = %199
  %204 = load ptr, ptr %52, align 8, !tbaa !5
  %205 = getelementptr inbounds float, ptr %204, i64 3
  %206 = load float, ptr %205, align 4, !tbaa !11
  %207 = fcmp olt float %206, 0.000000e+00
  br i1 %207, label %208, label %218

208:                                              ; preds = %203
  %209 = load i64, ptr %81, align 8, !tbaa !9
  %210 = icmp ne i64 %209, 0
  br i1 %210, label %211, label %214

211:                                              ; preds = %208
  %212 = load ptr, ptr %52, align 8, !tbaa !5
  %213 = getelementptr inbounds float, ptr %212, i64 3
  store float 0.000000e+00, ptr %213, align 4, !tbaa !11
  br label %217

214:                                              ; preds = %208
  %215 = load ptr, ptr %52, align 8, !tbaa !5
  %216 = getelementptr inbounds float, ptr %215, i64 3
  store float 1.000000e+00, ptr %216, align 4, !tbaa !11
  br label %217

217:                                              ; preds = %214, %211
  br label %225

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

225:                                              ; preds = %218, %217
  br label %226

226:                                              ; preds = %225, %199
  %227 = load i64, ptr %74, align 8, !tbaa !9
  %228 = icmp eq i64 %227, 0
  br i1 %228, label %233, label %229

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

233:                                              ; preds = %229, %226
  store i64 0, ptr %87, align 8, !tbaa !9
  br label %240

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

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

238:                                              ; preds = %234
  store i64 2, ptr %87, align 8, !tbaa !9
  br label %239

239:                                              ; preds = %238, %237
  br label %240

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

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

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

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

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

267:                                              ; preds = %261
  %268 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -1, ptr %268, align 8, !tbaa !9
  br label %369

269:                                              ; preds = %261
  %270 = load i64, ptr %85, align 8, !tbaa !9
  %271 = icmp ne i64 %270, 0
  br i1 %271, label %281, label %272

272:                                              ; preds = %269
  %273 = load i64, ptr %83, align 8, !tbaa !9
  %274 = icmp ne i64 %273, 0
  br i1 %274, label %281, label %275

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

279:                                              ; preds = %275
  %280 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -2, ptr %280, align 8, !tbaa !9
  br label %368

281:                                              ; preds = %275, %272, %269
  %282 = load ptr, ptr %31, align 8, !tbaa !5
  %283 = load i64, ptr %282, align 8, !tbaa !9
  %284 = icmp slt i64 %283, 0
  br i1 %284, label %285, label %287

285:                                              ; preds = %281
  %286 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -3, ptr %286, align 8, !tbaa !9
  br label %367

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

291:                                              ; preds = %287
  %292 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -4, ptr %292, align 8, !tbaa !9
  br label %366

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

297:                                              ; preds = %293
  %298 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -5, ptr %298, align 8, !tbaa !9
  br label %365

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

303:                                              ; preds = %299
  %304 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -6, ptr %304, align 8, !tbaa !9
  br label %364

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

315:                                              ; preds = %305
  %316 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -8, ptr %316, align 8, !tbaa !9
  br label %363

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

328:                                              ; preds = %317
  %329 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -10, ptr %329, align 8, !tbaa !9
  br label %362

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

336:                                              ; preds = %330
  br label %340

337:                                              ; preds = %330
  %338 = load ptr, ptr %31, align 8, !tbaa !5
  %339 = load i64, ptr %338, align 8, !tbaa !9
  br label %340

340:                                              ; preds = %337, %336
  %341 = phi i64 [ 1, %336 ], [ %339, %337 ]
  %342 = icmp slt i64 %332, %341
  br i1 %342, label %343, label %345

343:                                              ; preds = %340
  %344 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -13, ptr %344, align 8, !tbaa !9
  br label %361

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

351:                                              ; preds = %345
  br label %355

352:                                              ; preds = %345
  %353 = load ptr, ptr %31, align 8, !tbaa !5
  %354 = load i64, ptr %353, align 8, !tbaa !9
  br label %355

355:                                              ; preds = %352, %351
  %356 = phi i64 [ 1, %351 ], [ %354, %352 ]
  %357 = icmp slt i64 %347, %356
  br i1 %357, label %358, label %360

358:                                              ; preds = %355
  %359 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 -15, ptr %359, align 8, !tbaa !9
  br label %360

360:                                              ; preds = %358, %355
  br label %361

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

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

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

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

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

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

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

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

369:                                              ; preds = %368, %267
  %370 = load ptr, ptr %55, align 8, !tbaa !5
  %371 = load i64, ptr %370, align 8, !tbaa !9
  %372 = icmp ne i64 %371, 0
  br i1 %372, label %373, label %378

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

378:                                              ; preds = %369
  %379 = load ptr, ptr %31, align 8, !tbaa !5
  %380 = load i64, ptr %379, align 8, !tbaa !9
  %381 = icmp eq i64 %380, 0
  br i1 %381, label %386, label %382

382:                                              ; preds = %378
  %383 = load ptr, ptr %34, align 8, !tbaa !5
  %384 = load i64, ptr %383, align 8, !tbaa !9
  %385 = icmp eq i64 %384, 0
  br i1 %385, label %386, label %453

386:                                              ; preds = %382, %378
  %387 = load ptr, ptr %46, align 8, !tbaa !5
  store float 1.000000e+00, ptr %387, align 4, !tbaa !11
  %388 = load ptr, ptr %34, align 8, !tbaa !5
  %389 = load i64, ptr %388, align 8, !tbaa !9
  store i64 %389, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %390

390:                                              ; preds = %449, %386
  %391 = load i64, ptr %75, align 8, !tbaa !9
  %392 = load i64, ptr %68, align 8, !tbaa !9
  %393 = icmp sle i64 %391, %392
  br i1 %393, label %394, label %452

394:                                              ; preds = %390
  %395 = load ptr, ptr %47, align 8, !tbaa !5
  %396 = load i64, ptr %75, align 8, !tbaa !9
  %397 = getelementptr inbounds float, ptr %395, i64 %396
  store float 0.000000e+00, ptr %397, align 4, !tbaa !11
  %398 = load ptr, ptr %48, align 8, !tbaa !5
  %399 = load i64, ptr %398, align 8, !tbaa !9
  %400 = icmp sge i64 %399, 1
  br i1 %400, label %401, label %412

401:                                              ; preds = %394
  %402 = load ptr, ptr %49, align 8, !tbaa !5
  %403 = load i64, ptr %75, align 8, !tbaa !9
  %404 = load i64, ptr %64, align 8, !tbaa !9
  %405 = add nsw i64 %403, %404
  %406 = getelementptr inbounds float, ptr %402, i64 %405
  store float 1.000000e+00, ptr %406, align 4, !tbaa !11
  %407 = load ptr, ptr %50, align 8, !tbaa !5
  %408 = load i64, ptr %75, align 8, !tbaa !9
  %409 = load i64, ptr %66, align 8, !tbaa !9
  %410 = add nsw i64 %408, %409
  %411 = getelementptr inbounds float, ptr %407, i64 %410
  store float 1.000000e+00, ptr %411, align 4, !tbaa !11
  br label %448

412:                                              ; preds = %394
  %413 = load ptr, ptr %48, align 8, !tbaa !5
  %414 = load i64, ptr %413, align 8, !tbaa !9
  %415 = icmp sge i64 %414, 2
  br i1 %415, label %416, label %429

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

429:                                              ; preds = %412
  %430 = load ptr, ptr %48, align 8, !tbaa !5
  %431 = load i64, ptr %430, align 8, !tbaa !9
  %432 = icmp sge i64 %431, 3
  br i1 %432, label %433, label %446

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

446:                                              ; preds = %433, %429
  br label %447

447:                                              ; preds = %446, %416
  br label %448

448:                                              ; preds = %447, %401
  br label %449

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

452:                                              ; preds = %390
  store i32 0, ptr %28, align 4
  store i32 1, ptr %89, align 4
  br label %1025

453:                                              ; preds = %382
  %454 = load ptr, ptr %46, align 8, !tbaa !5
  store float 0.000000e+00, ptr %454, align 4, !tbaa !11
  %455 = load ptr, ptr %34, align 8, !tbaa !5
  %456 = load i64, ptr %455, align 8, !tbaa !9
  store i64 %456, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %457

457:                                              ; preds = %516, %453
  %458 = load i64, ptr %75, align 8, !tbaa !9
  %459 = load i64, ptr %68, align 8, !tbaa !9
  %460 = icmp sle i64 %458, %459
  br i1 %460, label %461, label %519

461:                                              ; preds = %457
  %462 = load ptr, ptr %47, align 8, !tbaa !5
  %463 = load i64, ptr %75, align 8, !tbaa !9
  %464 = getelementptr inbounds float, ptr %462, i64 %463
  store float 1.000000e+00, ptr %464, align 4, !tbaa !11
  %465 = load ptr, ptr %48, align 8, !tbaa !5
  %466 = load i64, ptr %465, align 8, !tbaa !9
  %467 = icmp sge i64 %466, 1
  br i1 %467, label %468, label %479

468:                                              ; preds = %461
  %469 = load ptr, ptr %49, align 8, !tbaa !5
  %470 = load i64, ptr %75, align 8, !tbaa !9
  %471 = load i64, ptr %64, align 8, !tbaa !9
  %472 = add nsw i64 %470, %471
  %473 = getelementptr inbounds float, ptr %469, i64 %472
  store float 1.000000e+00, ptr %473, align 4, !tbaa !11
  %474 = load ptr, ptr %50, align 8, !tbaa !5
  %475 = load i64, ptr %75, align 8, !tbaa !9
  %476 = load i64, ptr %66, align 8, !tbaa !9
  %477 = add nsw i64 %475, %476
  %478 = getelementptr inbounds float, ptr %474, i64 %477
  store float 1.000000e+00, ptr %478, align 4, !tbaa !11
  br label %515

479:                                              ; preds = %461
  %480 = load ptr, ptr %48, align 8, !tbaa !5
  %481 = load i64, ptr %480, align 8, !tbaa !9
  %482 = icmp sge i64 %481, 2
  br i1 %482, label %483, label %496

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

496:                                              ; preds = %479
  %497 = load ptr, ptr %48, align 8, !tbaa !5
  %498 = load i64, ptr %497, align 8, !tbaa !9
  %499 = icmp sge i64 %498, 3
  br i1 %499, label %500, label %513

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

513:                                              ; preds = %500, %496
  br label %514

514:                                              ; preds = %513, %483
  br label %515

515:                                              ; preds = %514, %468
  br label %516

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

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

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

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

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

558:                                              ; preds = %526
  %559 = call i64 @ilaprec_(ptr noundef @.str.6)
  store i64 %559, ptr %77, align 8, !tbaa !9
  %560 = load i64, ptr %84, align 8, !tbaa !9
  %561 = icmp ne i64 %560, 0
  br i1 %561, label %562, label %613

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

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

664:                                              ; preds = %613, %562
  br label %665

665:                                              ; preds = %664, %526
  store float 1.000000e+01, ptr %69, align 4, !tbaa !11
  %666 = load ptr, ptr %31, align 8, !tbaa !5
  %667 = load i64, ptr %666, align 8, !tbaa !9
  %668 = sitofp i64 %667 to float
  %669 = fpext float %668 to double
  %670 = call double @sqrt(double noundef %669) #4
  %671 = fptrunc double %670 to float
  store float %671, ptr %70, align 4, !tbaa !11
  %672 = load float, ptr %69, align 4, !tbaa !11
  %673 = load float, ptr %70, align 4, !tbaa !11
  %674 = fcmp oge float %672, %673
  br i1 %674, label %675, label %677

675:                                              ; preds = %665
  %676 = load float, ptr %69, align 4, !tbaa !11
  br label %679

677:                                              ; preds = %665
  %678 = load float, ptr %70, align 4, !tbaa !11
  br label %679

679:                                              ; preds = %677, %675
  %680 = phi float [ %676, %675 ], [ %678, %677 ]
  %681 = fpext float %680 to double
  %682 = call double @slamch_(ptr noundef @.str)
  %683 = fmul double %681, %682
  %684 = fptrunc double %683 to float
  store float %684, ptr %73, align 4, !tbaa !11
  %685 = load ptr, ptr %48, align 8, !tbaa !5
  %686 = load i64, ptr %685, align 8, !tbaa !9
  %687 = icmp sge i64 %686, 1
  br i1 %687, label %688, label %872

688:                                              ; preds = %679
  %689 = load i64, ptr %87, align 8, !tbaa !9
  %690 = icmp sge i64 %689, 1
  br i1 %690, label %691, label %872

691:                                              ; preds = %688
  %692 = load i64, ptr %83, align 8, !tbaa !9
  %693 = icmp ne i64 %692, 0
  br i1 %693, label %694, label %721

694:                                              ; preds = %691
  %695 = load i64, ptr %84, align 8, !tbaa !9
  %696 = icmp ne i64 %695, 0
  br i1 %696, label %697, label %721

697:                                              ; preds = %694
  %698 = load ptr, ptr %29, align 8, !tbaa !5
  %699 = load ptr, ptr %31, align 8, !tbaa !5
  %700 = load ptr, ptr %32, align 8, !tbaa !5
  %701 = load ptr, ptr %33, align 8, !tbaa !5
  %702 = load ptr, ptr %35, align 8, !tbaa !5
  %703 = load i64, ptr %57, align 8, !tbaa !9
  %704 = getelementptr inbounds float, ptr %702, i64 %703
  %705 = load ptr, ptr %36, align 8, !tbaa !5
  %706 = load ptr, ptr %37, align 8, !tbaa !5
  %707 = load i64, ptr %59, align 8, !tbaa !9
  %708 = getelementptr inbounds float, ptr %706, i64 %707
  %709 = load ptr, ptr %38, align 8, !tbaa !5
  %710 = load ptr, ptr %39, align 8, !tbaa !5
  %711 = getelementptr inbounds i64, ptr %710, i64 1
  %712 = load ptr, ptr %41, align 8, !tbaa !5
  %713 = getelementptr inbounds float, ptr %712, i64 1
  %714 = load ptr, ptr %55, align 8, !tbaa !5
  %715 = load ptr, ptr %53, align 8, !tbaa !5
  %716 = getelementptr inbounds float, ptr %715, i64 1
  %717 = load ptr, ptr %54, align 8, !tbaa !5
  %718 = getelementptr inbounds i64, ptr %717, i64 1
  %719 = call double @sla_gbrcond__(ptr noundef %698, ptr noundef %699, ptr noundef %700, ptr noundef %701, ptr noundef %704, ptr noundef %705, ptr noundef %708, ptr noundef %709, ptr noundef %711, ptr noundef @c_n1, ptr noundef %713, ptr noundef %714, ptr noundef %716, ptr noundef %718, i64 noundef 1)
  %720 = fptrunc double %719 to float
  store float %720, ptr %76, align 4, !tbaa !11
  br label %776

721:                                              ; preds = %694, %691
  %722 = load i64, ptr %85, align 8, !tbaa !9
  %723 = icmp ne i64 %722, 0
  br i1 %723, label %724, label %751

724:                                              ; preds = %721
  %725 = load i64, ptr %84, align 8, !tbaa !9
  %726 = icmp ne i64 %725, 0
  br i1 %726, label %751, label %727

727:                                              ; preds = %724
  %728 = load ptr, ptr %29, align 8, !tbaa !5
  %729 = load ptr, ptr %31, align 8, !tbaa !5
  %730 = load ptr, ptr %32, align 8, !tbaa !5
  %731 = load ptr, ptr %33, align 8, !tbaa !5
  %732 = load ptr, ptr %35, align 8, !tbaa !5
  %733 = load i64, ptr %57, align 8, !tbaa !9
  %734 = getelementptr inbounds float, ptr %732, i64 %733
  %735 = load ptr, ptr %36, align 8, !tbaa !5
  %736 = load ptr, ptr %37, align 8, !tbaa !5
  %737 = load i64, ptr %59, align 8, !tbaa !9
  %738 = getelementptr inbounds float, ptr %736, i64 %737
  %739 = load ptr, ptr %38, align 8, !tbaa !5
  %740 = load ptr, ptr %39, align 8, !tbaa !5
  %741 = getelementptr inbounds i64, ptr %740, i64 1
  %742 = load ptr, ptr %40, align 8, !tbaa !5
  %743 = getelementptr inbounds float, ptr %742, i64 1
  %744 = load ptr, ptr %55, align 8, !tbaa !5
  %745 = load ptr, ptr %53, align 8, !tbaa !5
  %746 = getelementptr inbounds float, ptr %745, i64 1
  %747 = load ptr, ptr %54, align 8, !tbaa !5
  %748 = getelementptr inbounds i64, ptr %747, i64 1
  %749 = call double @sla_gbrcond__(ptr noundef %728, ptr noundef %729, ptr noundef %730, ptr noundef %731, ptr noundef %734, ptr noundef %735, ptr noundef %738, ptr noundef %739, ptr noundef %741, ptr noundef @c_n1, ptr noundef %743, ptr noundef %744, ptr noundef %746, ptr noundef %748, i64 noundef 1)
  %750 = fptrunc double %749 to float
  store float %750, ptr %76, align 4, !tbaa !11
  br label %775

751:                                              ; preds = %724, %721
  %752 = load ptr, ptr %29, align 8, !tbaa !5
  %753 = load ptr, ptr %31, align 8, !tbaa !5
  %754 = load ptr, ptr %32, align 8, !tbaa !5
  %755 = load ptr, ptr %33, align 8, !tbaa !5
  %756 = load ptr, ptr %35, align 8, !tbaa !5
  %757 = load i64, ptr %57, align 8, !tbaa !9
  %758 = getelementptr inbounds float, ptr %756, i64 %757
  %759 = load ptr, ptr %36, align 8, !tbaa !5
  %760 = load ptr, ptr %37, align 8, !tbaa !5
  %761 = load i64, ptr %59, align 8, !tbaa !9
  %762 = getelementptr inbounds float, ptr %760, i64 %761
  %763 = load ptr, ptr %38, align 8, !tbaa !5
  %764 = load ptr, ptr %39, align 8, !tbaa !5
  %765 = getelementptr inbounds i64, ptr %764, i64 1
  %766 = load ptr, ptr %40, align 8, !tbaa !5
  %767 = getelementptr inbounds float, ptr %766, i64 1
  %768 = load ptr, ptr %55, align 8, !tbaa !5
  %769 = load ptr, ptr %53, align 8, !tbaa !5
  %770 = getelementptr inbounds float, ptr %769, i64 1
  %771 = load ptr, ptr %54, align 8, !tbaa !5
  %772 = getelementptr inbounds i64, ptr %771, i64 1
  %773 = call double @sla_gbrcond__(ptr noundef %752, ptr noundef %753, ptr noundef %754, ptr noundef %755, ptr noundef %758, ptr noundef %759, ptr noundef %762, ptr noundef %763, ptr noundef %765, ptr noundef @c__0, ptr noundef %767, ptr noundef %768, ptr noundef %770, ptr noundef %772, i64 noundef 1)
  %774 = fptrunc double %773 to float
  store float %774, ptr %76, align 4, !tbaa !11
  br label %775

775:                                              ; preds = %751, %727
  br label %776

776:                                              ; preds = %775, %697
  %777 = load ptr, ptr %34, align 8, !tbaa !5
  %778 = load i64, ptr %777, align 8, !tbaa !9
  store i64 %778, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %779

779:                                              ; preds = %868, %776
  %780 = load i64, ptr %75, align 8, !tbaa !9
  %781 = load i64, ptr %68, align 8, !tbaa !9
  %782 = icmp sle i64 %780, %781
  br i1 %782, label %783, label %871

783:                                              ; preds = %779
  %784 = load ptr, ptr %48, align 8, !tbaa !5
  %785 = load i64, ptr %784, align 8, !tbaa !9
  %786 = icmp sge i64 %785, 2
  br i1 %786, label %787, label %803

787:                                              ; preds = %783
  %788 = load ptr, ptr %49, align 8, !tbaa !5
  %789 = load i64, ptr %75, align 8, !tbaa !9
  %790 = load i64, ptr %64, align 8, !tbaa !9
  %791 = shl i64 %790, 1
  %792 = add nsw i64 %789, %791
  %793 = getelementptr inbounds float, ptr %788, i64 %792
  %794 = load float, ptr %793, align 4, !tbaa !11
  %795 = fcmp ogt float %794, 1.000000e+00
  br i1 %795, label %796, label %803

796:                                              ; preds = %787
  %797 = load ptr, ptr %49, align 8, !tbaa !5
  %798 = load i64, ptr %75, align 8, !tbaa !9
  %799 = load i64, ptr %64, align 8, !tbaa !9
  %800 = shl i64 %799, 1
  %801 = add nsw i64 %798, %800
  %802 = getelementptr inbounds float, ptr %797, i64 %801
  store float 1.000000e+00, ptr %802, align 4, !tbaa !11
  br label %803

803:                                              ; preds = %796, %787, %783
  %804 = load float, ptr %76, align 4, !tbaa !11
  %805 = load float, ptr %71, align 4, !tbaa !11
  %806 = fcmp olt float %804, %805
  br i1 %806, label %807, label %831

807:                                              ; preds = %803
  %808 = load ptr, ptr %49, align 8, !tbaa !5
  %809 = load i64, ptr %75, align 8, !tbaa !9
  %810 = load i64, ptr %64, align 8, !tbaa !9
  %811 = shl i64 %810, 1
  %812 = add nsw i64 %809, %811
  %813 = getelementptr inbounds float, ptr %808, i64 %812
  store float 1.000000e+00, ptr %813, align 4, !tbaa !11
  %814 = load ptr, ptr %49, align 8, !tbaa !5
  %815 = load i64, ptr %75, align 8, !tbaa !9
  %816 = load i64, ptr %64, align 8, !tbaa !9
  %817 = add nsw i64 %815, %816
  %818 = getelementptr inbounds float, ptr %814, i64 %817
  store float 0.000000e+00, ptr %818, align 4, !tbaa !11
  %819 = load ptr, ptr %55, align 8, !tbaa !5
  %820 = load i64, ptr %819, align 8, !tbaa !9
  %821 = load ptr, ptr %31, align 8, !tbaa !5
  %822 = load i64, ptr %821, align 8, !tbaa !9
  %823 = icmp sle i64 %820, %822
  br i1 %823, label %824, label %830

824:                                              ; preds = %807
  %825 = load ptr, ptr %31, align 8, !tbaa !5
  %826 = load i64, ptr %825, align 8, !tbaa !9
  %827 = load i64, ptr %75, align 8, !tbaa !9
  %828 = add nsw i64 %826, %827
  %829 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 %828, ptr %829, align 8, !tbaa !9
  br label %830

830:                                              ; preds = %824, %807
  br label %855

831:                                              ; preds = %803
  %832 = load ptr, ptr %49, align 8, !tbaa !5
  %833 = load i64, ptr %75, align 8, !tbaa !9
  %834 = load i64, ptr %64, align 8, !tbaa !9
  %835 = shl i64 %834, 1
  %836 = add nsw i64 %833, %835
  %837 = getelementptr inbounds float, ptr %832, i64 %836
  %838 = load float, ptr %837, align 4, !tbaa !11
  %839 = load float, ptr %73, align 4, !tbaa !11
  %840 = fcmp olt float %838, %839
  br i1 %840, label %841, label %854

841:                                              ; preds = %831
  %842 = load float, ptr %73, align 4, !tbaa !11
  %843 = load ptr, ptr %49, align 8, !tbaa !5
  %844 = load i64, ptr %75, align 8, !tbaa !9
  %845 = load i64, ptr %64, align 8, !tbaa !9
  %846 = shl i64 %845, 1
  %847 = add nsw i64 %844, %846
  %848 = getelementptr inbounds float, ptr %843, i64 %847
  store float %842, ptr %848, align 4, !tbaa !11
  %849 = load ptr, ptr %49, align 8, !tbaa !5
  %850 = load i64, ptr %75, align 8, !tbaa !9
  %851 = load i64, ptr %64, align 8, !tbaa !9
  %852 = add nsw i64 %850, %851
  %853 = getelementptr inbounds float, ptr %849, i64 %852
  store float 1.000000e+00, ptr %853, align 4, !tbaa !11
  br label %854

854:                                              ; preds = %841, %831
  br label %855

855:                                              ; preds = %854, %830
  %856 = load ptr, ptr %48, align 8, !tbaa !5
  %857 = load i64, ptr %856, align 8, !tbaa !9
  %858 = icmp sge i64 %857, 3
  br i1 %858, label %859, label %867

859:                                              ; preds = %855
  %860 = load float, ptr %76, align 4, !tbaa !11
  %861 = load ptr, ptr %49, align 8, !tbaa !5
  %862 = load i64, ptr %75, align 8, !tbaa !9
  %863 = load i64, ptr %64, align 8, !tbaa !9
  %864 = mul nsw i64 %863, 3
  %865 = add nsw i64 %862, %864
  %866 = getelementptr inbounds float, ptr %861, i64 %865
  store float %860, ptr %866, align 4, !tbaa !11
  br label %867

867:                                              ; preds = %859, %855
  br label %868

868:                                              ; preds = %867
  %869 = load i64, ptr %75, align 8, !tbaa !9
  %870 = add nsw i64 %869, 1
  store i64 %870, ptr %75, align 8, !tbaa !9
  br label %779, !llvm.loop !17

871:                                              ; preds = %779
  br label %872

872:                                              ; preds = %871, %688, %679
  %873 = load ptr, ptr %48, align 8, !tbaa !5
  %874 = load i64, ptr %873, align 8, !tbaa !9
  %875 = icmp sge i64 %874, 1
  br i1 %875, label %876, label %1024

876:                                              ; preds = %872
  %877 = load i64, ptr %87, align 8, !tbaa !9
  %878 = icmp sge i64 %877, 2
  br i1 %878, label %879, label %1024

879:                                              ; preds = %876
  %880 = call double @slamch_(ptr noundef @.str)
  %881 = call double @sqrt(double noundef %880) #4
  %882 = fptrunc double %881 to float
  store float %882, ptr %79, align 4, !tbaa !11
  %883 = load ptr, ptr %34, align 8, !tbaa !5
  %884 = load i64, ptr %883, align 8, !tbaa !9
  store i64 %884, ptr %68, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %885

885:                                              ; preds = %1020, %879
  %886 = load i64, ptr %75, align 8, !tbaa !9
  %887 = load i64, ptr %68, align 8, !tbaa !9
  %888 = icmp sle i64 %886, %887
  br i1 %888, label %889, label %1023

889:                                              ; preds = %885
  %890 = load ptr, ptr %50, align 8, !tbaa !5
  %891 = load i64, ptr %75, align 8, !tbaa !9
  %892 = load i64, ptr %66, align 8, !tbaa !9
  %893 = shl i64 %892, 1
  %894 = add nsw i64 %891, %893
  %895 = getelementptr inbounds float, ptr %890, i64 %894
  %896 = load float, ptr %895, align 4, !tbaa !11
  %897 = load float, ptr %79, align 4, !tbaa !11
  %898 = fcmp olt float %896, %897
  br i1 %898, label %899, label %927

899:                                              ; preds = %889
  %900 = load ptr, ptr %29, align 8, !tbaa !5
  %901 = load ptr, ptr %31, align 8, !tbaa !5
  %902 = load ptr, ptr %32, align 8, !tbaa !5
  %903 = load ptr, ptr %33, align 8, !tbaa !5
  %904 = load ptr, ptr %35, align 8, !tbaa !5
  %905 = load i64, ptr %57, align 8, !tbaa !9
  %906 = getelementptr inbounds float, ptr %904, i64 %905
  %907 = load ptr, ptr %36, align 8, !tbaa !5
  %908 = load ptr, ptr %37, align 8, !tbaa !5
  %909 = load i64, ptr %59, align 8, !tbaa !9
  %910 = getelementptr inbounds float, ptr %908, i64 %909
  %911 = load ptr, ptr %38, align 8, !tbaa !5
  %912 = load ptr, ptr %39, align 8, !tbaa !5
  %913 = getelementptr inbounds i64, ptr %912, i64 1
  %914 = load ptr, ptr %44, align 8, !tbaa !5
  %915 = load i64, ptr %75, align 8, !tbaa !9
  %916 = load i64, ptr %62, align 8, !tbaa !9
  %917 = mul nsw i64 %915, %916
  %918 = add nsw i64 %917, 1
  %919 = getelementptr inbounds float, ptr %914, i64 %918
  %920 = load ptr, ptr %55, align 8, !tbaa !5
  %921 = load ptr, ptr %53, align 8, !tbaa !5
  %922 = getelementptr inbounds float, ptr %921, i64 1
  %923 = load ptr, ptr %54, align 8, !tbaa !5
  %924 = getelementptr inbounds i64, ptr %923, i64 1
  %925 = call double @sla_gbrcond__(ptr noundef %900, ptr noundef %901, ptr noundef %902, ptr noundef %903, ptr noundef %906, ptr noundef %907, ptr noundef %910, ptr noundef %911, ptr noundef %913, ptr noundef @c__1, ptr noundef %919, ptr noundef %920, ptr noundef %922, ptr noundef %924, i64 noundef 1)
  %926 = fptrunc double %925 to float
  store float %926, ptr %76, align 4, !tbaa !11
  br label %928

927:                                              ; preds = %889
  store float 0.000000e+00, ptr %76, align 4, !tbaa !11
  br label %928

928:                                              ; preds = %927, %899
  %929 = load ptr, ptr %48, align 8, !tbaa !5
  %930 = load i64, ptr %929, align 8, !tbaa !9
  %931 = icmp sge i64 %930, 2
  br i1 %931, label %932, label %948

932:                                              ; preds = %928
  %933 = load ptr, ptr %50, align 8, !tbaa !5
  %934 = load i64, ptr %75, align 8, !tbaa !9
  %935 = load i64, ptr %66, align 8, !tbaa !9
  %936 = shl i64 %935, 1
  %937 = add nsw i64 %934, %936
  %938 = getelementptr inbounds float, ptr %933, i64 %937
  %939 = load float, ptr %938, align 4, !tbaa !11
  %940 = fcmp ogt float %939, 1.000000e+00
  br i1 %940, label %941, label %948

941:                                              ; preds = %932
  %942 = load ptr, ptr %50, align 8, !tbaa !5
  %943 = load i64, ptr %75, align 8, !tbaa !9
  %944 = load i64, ptr %66, align 8, !tbaa !9
  %945 = shl i64 %944, 1
  %946 = add nsw i64 %943, %945
  %947 = getelementptr inbounds float, ptr %942, i64 %946
  store float 1.000000e+00, ptr %947, align 4, !tbaa !11
  br label %948

948:                                              ; preds = %941, %932, %928
  %949 = load float, ptr %76, align 4, !tbaa !11
  %950 = load float, ptr %71, align 4, !tbaa !11
  %951 = fcmp olt float %949, %950
  br i1 %951, label %952, label %983

952:                                              ; preds = %948
  %953 = load ptr, ptr %50, align 8, !tbaa !5
  %954 = load i64, ptr %75, align 8, !tbaa !9
  %955 = load i64, ptr %66, align 8, !tbaa !9
  %956 = shl i64 %955, 1
  %957 = add nsw i64 %954, %956
  %958 = getelementptr inbounds float, ptr %953, i64 %957
  store float 1.000000e+00, ptr %958, align 4, !tbaa !11
  %959 = load ptr, ptr %50, align 8, !tbaa !5
  %960 = load i64, ptr %75, align 8, !tbaa !9
  %961 = load i64, ptr %66, align 8, !tbaa !9
  %962 = add nsw i64 %960, %961
  %963 = getelementptr inbounds float, ptr %959, i64 %962
  store float 0.000000e+00, ptr %963, align 4, !tbaa !11
  %964 = load ptr, ptr %52, align 8, !tbaa !5
  %965 = getelementptr inbounds float, ptr %964, i64 3
  %966 = load float, ptr %965, align 4, !tbaa !11
  %967 = fcmp oeq float %966, 1.000000e+00
  br i1 %967, label %968, label %982

968:                                              ; preds = %952
  %969 = load ptr, ptr %55, align 8, !tbaa !5
  %970 = load i64, ptr %969, align 8, !tbaa !9
  %971 = load ptr, ptr %31, align 8, !tbaa !5
  %972 = load i64, ptr %971, align 8, !tbaa !9
  %973 = load i64, ptr %75, align 8, !tbaa !9
  %974 = add nsw i64 %972, %973
  %975 = icmp slt i64 %970, %974
  br i1 %975, label %976, label %982

976:                                              ; preds = %968
  %977 = load ptr, ptr %31, align 8, !tbaa !5
  %978 = load i64, ptr %977, align 8, !tbaa !9
  %979 = load i64, ptr %75, align 8, !tbaa !9
  %980 = add nsw i64 %978, %979
  %981 = load ptr, ptr %55, align 8, !tbaa !5
  store i64 %980, ptr %981, align 8, !tbaa !9
  br label %982

982:                                              ; preds = %976, %968, %952
  br label %1007

983:                                              ; preds = %948
  %984 = load ptr, ptr %50, align 8, !tbaa !5
  %985 = load i64, ptr %75, align 8, !tbaa !9
  %986 = load i64, ptr %66, align 8, !tbaa !9
  %987 = shl i64 %986, 1
  %988 = add nsw i64 %985, %987
  %989 = getelementptr inbounds float, ptr %984, i64 %988
  %990 = load float, ptr %989, align 4, !tbaa !11
  %991 = load float, ptr %73, align 4, !tbaa !11
  %992 = fcmp olt float %990, %991
  br i1 %992, label %993, label %1006

993:                                              ; preds = %983
  %994 = load float, ptr %73, align 4, !tbaa !11
  %995 = load ptr, ptr %50, align 8, !tbaa !5
  %996 = load i64, ptr %75, align 8, !tbaa !9
  %997 = load i64, ptr %66, align 8, !tbaa !9
  %998 = shl i64 %997, 1
  %999 = add nsw i64 %996, %998
  %1000 = getelementptr inbounds float, ptr %995, i64 %999
  store float %994, ptr %1000, align 4, !tbaa !11
  %1001 = load ptr, ptr %50, align 8, !tbaa !5
  %1002 = load i64, ptr %75, align 8, !tbaa !9
  %1003 = load i64, ptr %66, align 8, !tbaa !9
  %1004 = add nsw i64 %1002, %1003
  %1005 = getelementptr inbounds float, ptr %1001, i64 %1004
  store float 1.000000e+00, ptr %1005, align 4, !tbaa !11
  br label %1006

1006:                                             ; preds = %993, %983
  br label %1007

1007:                                             ; preds = %1006, %982
  %1008 = load ptr, ptr %48, align 8, !tbaa !5
  %1009 = load i64, ptr %1008, align 8, !tbaa !9
  %1010 = icmp sge i64 %1009, 3
  br i1 %1010, label %1011, label %1019

1011:                                             ; preds = %1007
  %1012 = load float, ptr %76, align 4, !tbaa !11
  %1013 = load ptr, ptr %50, align 8, !tbaa !5
  %1014 = load i64, ptr %75, align 8, !tbaa !9
  %1015 = load i64, ptr %66, align 8, !tbaa !9
  %1016 = mul nsw i64 %1015, 3
  %1017 = add nsw i64 %1014, %1016
  %1018 = getelementptr inbounds float, ptr %1013, i64 %1017
  store float %1012, ptr %1018, align 4, !tbaa !11
  br label %1019

1019:                                             ; preds = %1011, %1007
  br label %1020

1020:                                             ; preds = %1019
  %1021 = load i64, ptr %75, align 8, !tbaa !9
  %1022 = add nsw i64 %1021, 1
  store i64 %1022, ptr %75, align 8, !tbaa !9
  br label %885, !llvm.loop !18

1023:                                             ; preds = %885
  br label %1024

1024:                                             ; preds = %1023, %876, %872
  store i32 0, ptr %28, align 4
  store i32 1, ptr %89, align 4
  br label %1025

1025:                                             ; preds = %1024, %452, %373
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 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 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  %1026 = load i32, ptr %28, align 4
  ret i32 %1026
}

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

declare i64 @ilatrans_(ptr noundef) #2

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

63:                                               ; preds = %60, %61, %27
  %.0389 = phi i64 [ 1, %60 ], [ %62, %61 ], [ 1, %27 ]
  %64 = load i64, ptr %2, align 8, !tbaa !5
  %65 = sitofp i64 %64 to float
  %66 = fpext float %65 to double
  %67 = tail call double @slamch_(ptr noundef nonnull @.str) #6
  %68 = fmul double %67, %66
  %69 = fptrunc double %68 to float
  store i64 10, ptr %43, align 8, !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 i64 0, ptr %39, align 8, !tbaa !5
  %70 = load i64, ptr %22, align 8, !tbaa !5
  %71 = icmp sgt i64 %70, 1
  br i1 %71, label %72, label %.thread

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

76:                                               ; preds = %72
  store float 1.000000e+01, ptr %73, align 4, !tbaa !9
  br label %79

77:                                               ; preds = %72
  %78 = fptosi float %74 to i64
  store i64 %78, ptr %43, align 8, !tbaa !5
  br label %79

79:                                               ; preds = %76, %77
  %.not = icmp eq i64 %70, 2
  br i1 %.not, label %.thread, label %80

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

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

85:                                               ; preds = %80
  %86 = fcmp oeq float %82, 0.000000e+00
  %87 = zext i1 %86 to i64
  store i64 %87, ptr %39, align 8, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %63, %85, %84, %79
  %88 = phi i64 [ 0, %63 ], [ %87, %85 ], [ 0, %84 ], [ 0, %79 ]
  %89 = icmp eq i64 %.0389, 0
  br i1 %89, label %93, label %90

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

93:                                               ; preds = %90, %.thread
  store i64 0, ptr %44, align 8, !tbaa !5
  br label %97

94:                                               ; preds = %90
  %.not403 = icmp eq i64 %88, 0
  br i1 %.not403, label %96, label %95

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

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

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

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

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

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

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

114:                                              ; preds = %110
  %or.cond = select i1 %104, i1 true, i1 %111
  br i1 %or.cond, label %117, label %115

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

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

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

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

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

129:                                              ; preds = %126
  %130 = load i64, ptr %7, align 8, !tbaa !5
  %131 = add nuw nsw i64 %124, %121
  %.not407 = icmp sgt i64 %130, %131
  br i1 %.not407, label %132, label %.thread424.sink.split

132:                                              ; preds = %129
  %133 = load i64, ptr %9, align 8, !tbaa !5
  %134 = shl nuw i64 %121, 1
  %135 = add nsw i64 %124, %134
  %.not408 = icmp sgt i64 %133, %135
  br i1 %.not408, label %136, label %.thread424.sink.split

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

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

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

.thread424.sink.split:                            ; preds = %139, %136, %132, %129, %126, %123, %120, %117, %115, %110
  %.sink = phi i64 [ -1, %110 ], [ -2, %115 ], [ -3, %117 ], [ -4, %120 ], [ -5, %123 ], [ -6, %126 ], [ -8, %129 ], [ -10, %132 ], [ -13, %136 ], [ -15, %139 ]
  store i64 %.sink, ptr %26, align 8, !tbaa !5
  br label %.thread424

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

146:                                              ; preds = %142
  %147 = icmp eq i64 %118, 0
  br i1 %147, label %150, label %148

148:                                              ; preds = %146
  %149 = icmp eq i64 %127, 0
  br i1 %149, label %.thread460, label %.lr.ph

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

150:                                              ; preds = %146
  store float 1.000000e+00, ptr %17, align 4, !tbaa !9
  %.not422442 = icmp eq i64 %127, 0
  br i1 %.not422442, label %.loopexit, label %.lr.ph445

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

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

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

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

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

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

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

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

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

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

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

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

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

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

vector.ph:                                        ; preds = %.lr.ph.split.preheader
  %n.vec = and i64 %127, 9223372036854775800
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %182 = getelementptr float, ptr %18, i64 %index
  %183 = getelementptr inbounds i8, ptr %182, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %182, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %183, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %184 = icmp eq i64 %index.next, %n.vec
  br i1 %184, label %middle.block, label %vector.body, !llvm.loop !16

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

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

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

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

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

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

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

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

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

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

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

._crit_edge:                                      ; preds = %.lr.ph.split, %.lr.ph.split.us.prol.loopexit, %.lr.ph.split.us, %middle.block, %middle.block473
  %213 = icmp ne i64 %98, 0
  %. = select i1 %213, i8 73, i8 49
  store i8 %., ptr %38, align 1, !tbaa !20
  %214 = call double @slangb_(ptr noundef nonnull %38, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %24) #6
  %215 = fptrunc double %214 to float
  store float %215, ptr %40, align 4, !tbaa !9
  %216 = call i32 @sgbcon_(ptr noundef nonnull %38, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %40, ptr noundef nonnull %17, ptr noundef %24, ptr noundef %25, ptr noundef nonnull %26) #6
  br i1 %89, label %226, label %217

217:                                              ; preds = %._crit_edge
  %218 = call i64 @ilaprec_(ptr noundef nonnull @.str.6) #6
  store i64 %218, ptr %36, align 8, !tbaa !5
  %219 = load i64, ptr %2, align 8, !tbaa !5
  %220 = getelementptr float, ptr %24, i64 %219
  %.idx412 = shl i64 %219, 3
  %221 = getelementptr i8, ptr %24, i64 %.idx412
  br i1 %213, label %222, label %224

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

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

226:                                              ; preds = %222, %224, %._crit_edge
  %227 = load i64, ptr %2, align 8, !tbaa !5
  %228 = sitofp i64 %227 to float
  %sqrtf = call float @sqrtf(float noundef %228) #3
  %229 = fcmp ole float %sqrtf, 1.000000e+01
  %230 = select i1 %229, float 1.000000e+01, float %sqrtf
  %231 = fpext float %230 to double
  %232 = call double @slamch_(ptr noundef nonnull @.str) #6
  %233 = fmul double %232, %231
  %234 = fptrunc double %233 to float
  %235 = load i64, ptr %19, align 8, !tbaa !5
  %236 = icmp sgt i64 %235, 0
  %237 = load i64, ptr %44, align 8
  %238 = icmp sgt i64 %237, 0
  %or.cond3 = select i1 %236, i1 %238, i1 false
  br i1 %or.cond3, label %239, label %.loopexit427

239:                                              ; preds = %226
  %240 = load i64, ptr %41, align 8, !tbaa !5
  %241 = icmp ne i64 %240, 0
  %or.cond5 = and i1 %213, %241
  br i1 %or.cond5, label %242, label %244

242:                                              ; preds = %239
  %243 = call double @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, i64 noundef 1) #6
  br label %251

244:                                              ; preds = %239
  %245 = load i64, ptr %42, align 8, !tbaa !5
  %246 = icmp eq i64 %245, 0
  %or.cond7 = or i1 %213, %246
  br i1 %or.cond7, label %249, label %247

247:                                              ; preds = %244
  %248 = call double @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, i64 noundef 1) #6
  br label %251

249:                                              ; preds = %244
  %250 = call double @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, i64 noundef 1) #6
  br label %251

251:                                              ; preds = %247, %249, %242
  %.0386.in = phi double [ %243, %242 ], [ %250, %249 ], [ %248, %247 ]
  %.0386 = fptrunc double %.0386.in to float
  %252 = load i64, ptr %5, align 8, !tbaa !5
  %.not413430 = icmp slt i64 %252, 1
  br i1 %.not413430, label %..loopexit427_crit_edge, label %.lr.ph433

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

.lr.ph433:                                        ; preds = %251
  %.idx417 = shl i64 %46, 3
  %invariant.gep = getelementptr i8, ptr %49, i64 %.idx417
  %253 = fcmp olt float %.0386, %69
  %.idx421 = mul i64 %46, 12
  %invariant.gep434 = getelementptr i8, ptr %49, i64 %.idx421
  %.pre456 = load i64, ptr %19, align 8, !tbaa !5
  br i1 %253, label %.lr.ph433.split.us, label %.lr.ph433.split.preheader

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

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

262:                                              ; preds = %.lr.ph433.split.us
  %263 = add nsw i64 %261, %.2431.us
  store i64 %263, ptr %26, align 8, !tbaa !5
  %.pre457 = load i64, ptr %19, align 8, !tbaa !5
  br label %264

264:                                              ; preds = %262, %.lr.ph433.split.us
  %265 = phi i64 [ %.pre457, %262 ], [ %256, %.lr.ph433.split.us ]
  %266 = icmp sgt i64 %265, 2
  br i1 %266, label %267, label %268

267:                                              ; preds = %264
  %gep435.us = getelementptr float, ptr %invariant.gep434, i64 %.2431.us
  store float %.0386, ptr %gep435.us, align 4, !tbaa !9
  br label %268

268:                                              ; preds = %267, %264
  %269 = add nuw i64 %.2431.us, 1
  %exitcond452.not = icmp eq i64 %.2431.us, %252
  br i1 %exitcond452.not, label %.loopexit427, label %.lr.ph433.split.us, !llvm.loop !21

.lr.ph433.split:                                  ; preds = %.lr.ph433.split.preheader, %283
  %.2431 = phi i64 [ %284, %283 ], [ 1, %.lr.ph433.split.preheader ]
  br i1 %254, label %270, label %.lr.ph433.split._crit_edge

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

270:                                              ; preds = %.lr.ph433.split
  %gep = getelementptr float, ptr %invariant.gep, i64 %.2431
  %271 = load float, ptr %gep, align 4, !tbaa !9
  %272 = fcmp ogt float %271, 1.000000e+00
  br i1 %272, label %273, label %274

273:                                              ; preds = %270
  store float 1.000000e+00, ptr %gep, align 4, !tbaa !9
  br label %274

274:                                              ; preds = %.lr.ph433.split._crit_edge, %273, %270
  %275 = phi float [ %.pre455, %.lr.ph433.split._crit_edge ], [ 1.000000e+00, %273 ], [ %271, %270 ]
  %276 = fcmp olt float %275, %234
  br i1 %276, label %277, label %281

277:                                              ; preds = %274
  %278 = getelementptr float, ptr %49, i64 %.2431
  %279 = getelementptr i8, ptr %278, i64 %.idx417
  store float %234, ptr %279, align 4, !tbaa !9
  %280 = getelementptr float, ptr %278, i64 %46
  store float 1.000000e+00, ptr %280, align 4, !tbaa !9
  br label %281

281:                                              ; preds = %274, %277
  br i1 %255, label %282, label %283

282:                                              ; preds = %281
  %gep435 = getelementptr float, ptr %invariant.gep434, i64 %.2431
  store float %.0386, ptr %gep435, align 4, !tbaa !9
  br label %283

283:                                              ; preds = %281, %282
  %284 = add nuw i64 %.2431, 1
  %exitcond451.not = icmp eq i64 %.2431, %252
  br i1 %exitcond451.not, label %.loopexit427, label %.lr.ph433.split, !llvm.loop !21

.loopexit427:                                     ; preds = %283, %268, %..loopexit427_crit_edge, %226
  %285 = phi i64 [ %.pre458, %..loopexit427_crit_edge ], [ %235, %226 ], [ %265, %268 ], [ %.pre456, %283 ]
  %286 = icmp sgt i64 %285, 0
  %287 = load i64, ptr %44, align 8
  %288 = icmp sgt i64 %287, 1
  %or.cond9 = select i1 %286, i1 %288, i1 false
  br i1 %or.cond9, label %289, label %.loopexit

289:                                              ; preds = %.loopexit427
  %290 = call double @slamch_(ptr noundef nonnull @.str) #6
  %291 = call double @sqrt(double noundef %290) #6
  %292 = fptrunc double %291 to float
  %293 = load i64, ptr %5, align 8, !tbaa !5
  %invariant.gep436 = getelementptr i8, ptr %52, i64 4
  %.not414438 = icmp slt i64 %293, 1
  br i1 %.not414438, label %.loopexit, label %.lr.ph441

.lr.ph441:                                        ; preds = %289
  %.idx415 = shl i64 %46, 3
  %294 = getelementptr inbounds i8, ptr %23, i64 8
  %.idx416 = mul i64 %46, 12
  br label %295

295:                                              ; preds = %.lr.ph441, %333
  %.3439 = phi i64 [ 1, %.lr.ph441 ], [ %334, %333 ]
  %296 = getelementptr float, ptr %48, i64 %.3439
  %297 = getelementptr i8, ptr %296, i64 %.idx415
  %298 = load float, ptr %297, align 4, !tbaa !9
  %299 = fcmp olt float %298, %292
  br i1 %299, label %300, label %304

300:                                              ; preds = %295
  %301 = mul nsw i64 %.3439, %50
  %gep437 = getelementptr float, ptr %invariant.gep436, i64 %301
  %302 = call double @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 %gep437, ptr noundef nonnull %26, ptr noundef %24, ptr noundef %25, i64 noundef 1) #6
  %303 = fptrunc double %302 to float
  br label %304

304:                                              ; preds = %295, %300
  %.1 = phi float [ %303, %300 ], [ 0.000000e+00, %295 ]
  %305 = load i64, ptr %19, align 8, !tbaa !5
  %306 = icmp sgt i64 %305, 1
  br i1 %306, label %307, label %311

307:                                              ; preds = %304
  %308 = load float, ptr %297, align 4, !tbaa !9
  %309 = fcmp ogt float %308, 1.000000e+00
  br i1 %309, label %310, label %311

310:                                              ; preds = %307
  store float 1.000000e+00, ptr %297, align 4, !tbaa !9
  br label %311

311:                                              ; preds = %310, %307, %304
  %312 = fcmp olt float %.1, %69
  br i1 %312, label %313, label %323

313:                                              ; preds = %311
  store float 1.000000e+00, ptr %297, align 4, !tbaa !9
  %314 = getelementptr float, ptr %296, i64 %46
  store float 0.000000e+00, ptr %314, align 4, !tbaa !9
  %315 = load float, ptr %294, align 4, !tbaa !9
  %316 = fcmp oeq float %315, 1.000000e+00
  br i1 %316, label %317, label %328

317:                                              ; preds = %313
  %318 = load i64, ptr %26, align 8, !tbaa !5
  %319 = load i64, ptr %2, align 8, !tbaa !5
  %320 = add nsw i64 %319, %.3439
  %321 = icmp slt i64 %318, %320
  br i1 %321, label %322, label %328

322:                                              ; preds = %317
  store i64 %320, ptr %26, align 8, !tbaa !5
  %.pre459 = load i64, ptr %19, align 8, !tbaa !5
  br label %328

323:                                              ; preds = %311
  %324 = load float, ptr %297, align 4, !tbaa !9
  %325 = fcmp olt float %324, %234
  br i1 %325, label %326, label %328

326:                                              ; preds = %323
  store float %234, ptr %297, align 4, !tbaa !9
  %327 = getelementptr float, ptr %296, i64 %46
  store float 1.000000e+00, ptr %327, align 4, !tbaa !9
  br label %328

328:                                              ; preds = %323, %326, %313, %317, %322
  %329 = phi i64 [ %305, %323 ], [ %305, %326 ], [ %305, %313 ], [ %305, %317 ], [ %.pre459, %322 ]
  %330 = icmp sgt i64 %329, 2
  br i1 %330, label %331, label %333

331:                                              ; preds = %328
  %332 = getelementptr i8, ptr %296, i64 %.idx416
  store float %.1, ptr %332, align 4, !tbaa !9
  br label %333

333:                                              ; preds = %328, %331
  %334 = add nuw nsw i64 %.3439, 1
  %.not414.not = icmp slt i64 %.3439, %293
  br i1 %.not414.not, label %295, label %.loopexit, !llvm.loop !22

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

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

declare i64 @ilatrans_(ptr noundef) local_unnamed_addr #2

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

declare i32 @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

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

declare double @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, i64 noundef) local_unnamed_addr #2

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

declare float @sqrtf(float) local_unnamed_addr

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

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

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

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

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


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