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

; 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 [2 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 [13 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c_b18 = external hidden global float, align 4

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

138:                                              ; preds = %21
  %139 = load ptr, ptr %42, align 8, !tbaa !5
  %140 = load i64, ptr %139, align 8, !tbaa !9
  %141 = icmp eq i64 %140, -1
  br label %142

142:                                              ; preds = %138, %21
  %143 = phi i1 [ true, %21 ], [ %141, %138 ]
  %144 = zext i1 %143 to i32
  %145 = sext i32 %144 to i64
  store i64 %145, ptr %104, align 8, !tbaa !9
  %146 = load ptr, ptr %36, align 8, !tbaa !5
  %147 = load i64, ptr %146, align 8, !tbaa !9
  %148 = icmp eq i64 %147, -1
  %149 = zext i1 %148 to i32
  %150 = sext i32 %149 to i64
  store i64 %150, ptr %105, align 8, !tbaa !9
  %151 = load i64, ptr %82, align 8, !tbaa !9
  %152 = icmp ne i64 %151, 0
  br i1 %152, label %153, label %160

153:                                              ; preds = %142
  %154 = load ptr, ptr %25, align 8, !tbaa !5
  %155 = load i64, ptr %154, align 8, !tbaa !9
  %156 = mul nsw i64 %155, 18
  store i64 %156, ptr %81, align 8, !tbaa !9
  %157 = load ptr, ptr %25, align 8, !tbaa !5
  %158 = load i64, ptr %157, align 8, !tbaa !9
  %159 = mul nsw i64 %158, 10
  store i64 %159, ptr %99, align 8, !tbaa !9
  br label %167

160:                                              ; preds = %142
  %161 = load ptr, ptr %25, align 8, !tbaa !5
  %162 = load i64, ptr %161, align 8, !tbaa !9
  %163 = mul nsw i64 %162, 12
  store i64 %163, ptr %81, align 8, !tbaa !9
  %164 = load ptr, ptr %25, align 8, !tbaa !5
  %165 = load i64, ptr %164, align 8, !tbaa !9
  %166 = shl i64 %165, 3
  store i64 %166, ptr %99, align 8, !tbaa !9
  br label %167

167:                                              ; preds = %160, %153
  store float 0.000000e+00, ptr %58, align 4, !tbaa !11
  store float 0.000000e+00, ptr %59, align 4, !tbaa !11
  store i64 0, ptr %60, align 8, !tbaa !9
  store i64 0, ptr %61, align 8, !tbaa !9
  %168 = load i64, ptr %87, align 8, !tbaa !9
  %169 = icmp ne i64 %168, 0
  br i1 %169, label %170, label %175

170:                                              ; preds = %167
  %171 = load ptr, ptr %28, align 8, !tbaa !5
  %172 = load float, ptr %171, align 4, !tbaa !11
  store float %172, ptr %58, align 4, !tbaa !11
  %173 = load ptr, ptr %29, align 8, !tbaa !5
  %174 = load float, ptr %173, align 4, !tbaa !11
  store float %174, ptr %59, align 4, !tbaa !11
  br label %184

175:                                              ; preds = %167
  %176 = load i64, ptr %85, align 8, !tbaa !9
  %177 = icmp ne i64 %176, 0
  br i1 %177, label %178, label %183

178:                                              ; preds = %175
  %179 = load ptr, ptr %30, align 8, !tbaa !5
  %180 = load i64, ptr %179, align 8, !tbaa !9
  store i64 %180, ptr %60, align 8, !tbaa !9
  %181 = load ptr, ptr %31, align 8, !tbaa !5
  %182 = load i64, ptr %181, align 8, !tbaa !9
  store i64 %182, ptr %61, align 8, !tbaa !9
  br label %183

183:                                              ; preds = %178, %175
  br label %184

184:                                              ; preds = %183, %170
  %185 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 0, ptr %185, align 8, !tbaa !9
  %186 = load i64, ptr %82, align 8, !tbaa !9
  %187 = icmp ne i64 %186, 0
  br i1 %187, label %194, label %188

188:                                              ; preds = %184
  %189 = load ptr, ptr %23, align 8, !tbaa !5
  %190 = call i64 @lsame_(ptr noundef %189, ptr noundef @.str.3)
  %191 = icmp ne i64 %190, 0
  br i1 %191, label %194, label %192

192:                                              ; preds = %188
  %193 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -1, ptr %193, align 8, !tbaa !9
  br label %294

194:                                              ; preds = %188, %184
  %195 = load i64, ptr %83, align 8, !tbaa !9
  %196 = icmp ne i64 %195, 0
  br i1 %196, label %205, label %197

197:                                              ; preds = %194
  %198 = load i64, ptr %87, align 8, !tbaa !9
  %199 = icmp ne i64 %198, 0
  br i1 %199, label %205, label %200

200:                                              ; preds = %197
  %201 = load i64, ptr %85, align 8, !tbaa !9
  %202 = icmp ne i64 %201, 0
  br i1 %202, label %205, label %203

203:                                              ; preds = %200
  %204 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -2, ptr %204, align 8, !tbaa !9
  br label %293

205:                                              ; preds = %200, %197, %194
  %206 = load ptr, ptr %25, align 8, !tbaa !5
  %207 = load i64, ptr %206, align 8, !tbaa !9
  %208 = icmp slt i64 %207, 0
  br i1 %208, label %209, label %211

209:                                              ; preds = %205
  %210 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -3, ptr %210, align 8, !tbaa !9
  br label %292

211:                                              ; preds = %205
  %212 = load i64, ptr %87, align 8, !tbaa !9
  %213 = icmp ne i64 %212, 0
  br i1 %213, label %214, label %224

214:                                              ; preds = %211
  %215 = load ptr, ptr %25, align 8, !tbaa !5
  %216 = load i64, ptr %215, align 8, !tbaa !9
  %217 = icmp sgt i64 %216, 0
  br i1 %217, label %218, label %224

218:                                              ; preds = %214
  %219 = load float, ptr %59, align 4, !tbaa !11
  %220 = load float, ptr %58, align 4, !tbaa !11
  %221 = fcmp ole float %219, %220
  br i1 %221, label %222, label %224

222:                                              ; preds = %218
  %223 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -7, ptr %223, align 8, !tbaa !9
  br label %291

224:                                              ; preds = %218, %214, %211
  %225 = load i64, ptr %85, align 8, !tbaa !9
  %226 = icmp ne i64 %225, 0
  br i1 %226, label %227, label %237

227:                                              ; preds = %224
  %228 = load i64, ptr %60, align 8, !tbaa !9
  %229 = icmp slt i64 %228, 1
  br i1 %229, label %235, label %230

230:                                              ; preds = %227
  %231 = load i64, ptr %60, align 8, !tbaa !9
  %232 = load ptr, ptr %25, align 8, !tbaa !5
  %233 = load i64, ptr %232, align 8, !tbaa !9
  %234 = icmp sgt i64 %231, %233
  br i1 %234, label %235, label %237

235:                                              ; preds = %230, %227
  %236 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -8, ptr %236, align 8, !tbaa !9
  br label %290

237:                                              ; preds = %230, %224
  %238 = load i64, ptr %85, align 8, !tbaa !9
  %239 = icmp ne i64 %238, 0
  br i1 %239, label %240, label %251

240:                                              ; preds = %237
  %241 = load i64, ptr %61, align 8, !tbaa !9
  %242 = load i64, ptr %60, align 8, !tbaa !9
  %243 = icmp slt i64 %241, %242
  br i1 %243, label %249, label %244

244:                                              ; preds = %240
  %245 = load i64, ptr %61, align 8, !tbaa !9
  %246 = load ptr, ptr %25, align 8, !tbaa !5
  %247 = load i64, ptr %246, align 8, !tbaa !9
  %248 = icmp sgt i64 %245, %247
  br i1 %248, label %249, label %251

249:                                              ; preds = %244, %240
  %250 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -9, ptr %250, align 8, !tbaa !9
  br label %289

251:                                              ; preds = %244, %237
  %252 = load ptr, ptr %35, align 8, !tbaa !5
  %253 = load i64, ptr %252, align 8, !tbaa !9
  %254 = icmp slt i64 %253, 1
  br i1 %254, label %264, label %255

255:                                              ; preds = %251
  %256 = load i64, ptr %82, align 8, !tbaa !9
  %257 = icmp ne i64 %256, 0
  br i1 %257, label %258, label %266

258:                                              ; preds = %255
  %259 = load ptr, ptr %35, align 8, !tbaa !5
  %260 = load i64, ptr %259, align 8, !tbaa !9
  %261 = load ptr, ptr %25, align 8, !tbaa !5
  %262 = load i64, ptr %261, align 8, !tbaa !9
  %263 = icmp slt i64 %260, %262
  br i1 %263, label %264, label %266

264:                                              ; preds = %258, %251
  %265 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -13, ptr %265, align 8, !tbaa !9
  br label %288

266:                                              ; preds = %258, %255
  %267 = load ptr, ptr %40, align 8, !tbaa !5
  %268 = load i64, ptr %267, align 8, !tbaa !9
  %269 = load i64, ptr %81, align 8, !tbaa !9
  %270 = icmp slt i64 %268, %269
  br i1 %270, label %271, label %276

271:                                              ; preds = %266
  %272 = load i64, ptr %104, align 8, !tbaa !9
  %273 = icmp ne i64 %272, 0
  br i1 %273, label %276, label %274

274:                                              ; preds = %271
  %275 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -17, ptr %275, align 8, !tbaa !9
  br label %287

276:                                              ; preds = %271, %266
  %277 = load ptr, ptr %42, align 8, !tbaa !5
  %278 = load i64, ptr %277, align 8, !tbaa !9
  %279 = load i64, ptr %99, align 8, !tbaa !9
  %280 = icmp slt i64 %278, %279
  br i1 %280, label %281, label %286

281:                                              ; preds = %276
  %282 = load i64, ptr %104, align 8, !tbaa !9
  %283 = icmp ne i64 %282, 0
  br i1 %283, label %286, label %284

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

286:                                              ; preds = %284, %281, %276
  br label %287

287:                                              ; preds = %286, %274
  br label %288

288:                                              ; preds = %287, %264
  br label %289

289:                                              ; preds = %288, %249
  br label %290

290:                                              ; preds = %289, %235
  br label %291

291:                                              ; preds = %290, %222
  br label %292

292:                                              ; preds = %291, %209
  br label %293

293:                                              ; preds = %292, %203
  br label %294

294:                                              ; preds = %293, %192
  %295 = call double @slamch_(ptr noundef @.str.4)
  %296 = fptrunc double %295 to float
  store float %296, ptr %89, align 4, !tbaa !11
  %297 = call double @slamch_(ptr noundef @.str.5)
  %298 = fptrunc double %297 to float
  store float %298, ptr %62, align 4, !tbaa !11
  %299 = load float, ptr %89, align 4, !tbaa !11
  %300 = load float, ptr %62, align 4, !tbaa !11
  %301 = fdiv float %299, %300
  store float %301, ptr %103, align 4, !tbaa !11
  %302 = load float, ptr %103, align 4, !tbaa !11
  %303 = fdiv float 1.000000e+00, %302
  store float %303, ptr %90, align 4, !tbaa !11
  %304 = load float, ptr %103, align 4, !tbaa !11
  %305 = fpext float %304 to double
  %306 = call double @sqrt(double noundef %305) #4
  %307 = fptrunc double %306 to float
  store float %307, ptr %68, align 4, !tbaa !11
  %308 = load float, ptr %90, align 4, !tbaa !11
  %309 = fpext float %308 to double
  %310 = call double @sqrt(double noundef %309) #4
  %311 = fptrunc double %310 to float
  store float %311, ptr %48, align 4, !tbaa !11
  %312 = load float, ptr %89, align 4, !tbaa !11
  %313 = fpext float %312 to double
  %314 = call double @sqrt(double noundef %313) #4
  %315 = call double @sqrt(double noundef %314) #4
  %316 = fdiv double 1.000000e+00, %315
  %317 = fptrunc double %316 to float
  store float %317, ptr %49, align 4, !tbaa !11
  %318 = load float, ptr %48, align 4, !tbaa !11
  %319 = load float, ptr %49, align 4, !tbaa !11
  %320 = fcmp ole float %318, %319
  br i1 %320, label %321, label %323

321:                                              ; preds = %294
  %322 = load float, ptr %48, align 4, !tbaa !11
  br label %325

323:                                              ; preds = %294
  %324 = load float, ptr %49, align 4, !tbaa !11
  br label %325

325:                                              ; preds = %323, %321
  %326 = phi float [ %322, %321 ], [ %324, %323 ]
  %327 = fpext float %326 to double
  %328 = fptrunc double %327 to float
  store float %328, ptr %69, align 4, !tbaa !11
  %329 = load ptr, ptr %43, align 8, !tbaa !5
  %330 = load i64, ptr %329, align 8, !tbaa !9
  %331 = icmp eq i64 %330, 0
  br i1 %331, label %332, label %404

332:                                              ; preds = %325
  %333 = load i64, ptr %81, align 8, !tbaa !9
  %334 = sitofp i64 %333 to float
  %335 = load ptr, ptr %39, align 8, !tbaa !5
  %336 = getelementptr inbounds float, ptr %335, i64 1
  store float %334, ptr %336, align 4, !tbaa !11
  %337 = load i64, ptr %99, align 8, !tbaa !9
  %338 = load ptr, ptr %41, align 8, !tbaa !5
  %339 = getelementptr inbounds i64, ptr %338, i64 1
  store i64 %337, ptr %339, align 8, !tbaa !9
  %340 = load i64, ptr %82, align 8, !tbaa !9
  %341 = icmp ne i64 %340, 0
  br i1 %341, label %342, label %348

342:                                              ; preds = %332
  %343 = load i64, ptr %83, align 8, !tbaa !9
  %344 = icmp ne i64 %343, 0
  br i1 %344, label %345, label %348

345:                                              ; preds = %342
  %346 = load ptr, ptr %25, align 8, !tbaa !5
  %347 = load i64, ptr %346, align 8, !tbaa !9
  store i64 %347, ptr %100, align 8, !tbaa !9
  br label %378

348:                                              ; preds = %342, %332
  %349 = load i64, ptr %82, align 8, !tbaa !9
  %350 = icmp ne i64 %349, 0
  br i1 %350, label %351, label %364

351:                                              ; preds = %348
  %352 = load i64, ptr %87, align 8, !tbaa !9
  %353 = icmp ne i64 %352, 0
  br i1 %353, label %354, label %364

354:                                              ; preds = %351
  %355 = load ptr, ptr %25, align 8, !tbaa !5
  %356 = load ptr, ptr %28, align 8, !tbaa !5
  %357 = load ptr, ptr %29, align 8, !tbaa !5
  %358 = load ptr, ptr %26, align 8, !tbaa !5
  %359 = getelementptr inbounds float, ptr %358, i64 1
  %360 = load ptr, ptr %27, align 8, !tbaa !5
  %361 = getelementptr inbounds float, ptr %360, i64 1
  %362 = load ptr, ptr %43, align 8, !tbaa !5
  %363 = call i32 @slarrc_(ptr noundef @.str.6, ptr noundef %355, ptr noundef %356, ptr noundef %357, ptr noundef %359, ptr noundef %361, ptr noundef %89, ptr noundef %100, ptr noundef %70, ptr noundef %73, ptr noundef %362)
  br label %377

364:                                              ; preds = %351, %348
  %365 = load i64, ptr %82, align 8, !tbaa !9
  %366 = icmp ne i64 %365, 0
  br i1 %366, label %367, label %375

367:                                              ; preds = %364
  %368 = load i64, ptr %85, align 8, !tbaa !9
  %369 = icmp ne i64 %368, 0
  br i1 %369, label %370, label %375

370:                                              ; preds = %367
  %371 = load i64, ptr %61, align 8, !tbaa !9
  %372 = load i64, ptr %60, align 8, !tbaa !9
  %373 = sub nsw i64 %371, %372
  %374 = add nsw i64 %373, 1
  store i64 %374, ptr %100, align 8, !tbaa !9
  br label %376

375:                                              ; preds = %367, %364
  store i64 0, ptr %100, align 8, !tbaa !9
  br label %376

376:                                              ; preds = %375, %370
  br label %377

377:                                              ; preds = %376, %354
  br label %378

378:                                              ; preds = %377, %345
  %379 = load i64, ptr %105, align 8, !tbaa !9
  %380 = icmp ne i64 %379, 0
  br i1 %380, label %381, label %392

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

385:                                              ; preds = %381
  %386 = load i64, ptr %100, align 8, !tbaa !9
  %387 = sitofp i64 %386 to float
  %388 = load ptr, ptr %34, align 8, !tbaa !5
  %389 = load i64, ptr %44, align 8, !tbaa !9
  %390 = add nsw i64 %389, 1
  %391 = getelementptr inbounds float, ptr %388, i64 %390
  store float %387, ptr %391, align 4, !tbaa !11
  br label %403

392:                                              ; preds = %381, %378
  %393 = load ptr, ptr %36, align 8, !tbaa !5
  %394 = load i64, ptr %393, align 8, !tbaa !9
  %395 = load i64, ptr %100, align 8, !tbaa !9
  %396 = icmp slt i64 %394, %395
  br i1 %396, label %397, label %402

397:                                              ; preds = %392
  %398 = load i64, ptr %105, align 8, !tbaa !9
  %399 = icmp ne i64 %398, 0
  br i1 %399, label %402, label %400

400:                                              ; preds = %397
  %401 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -14, ptr %401, align 8, !tbaa !9
  br label %402

402:                                              ; preds = %400, %397, %392
  br label %403

403:                                              ; preds = %402, %385
  br label %404

404:                                              ; preds = %403, %325
  %405 = load ptr, ptr %43, align 8, !tbaa !5
  %406 = load i64, ptr %405, align 8, !tbaa !9
  %407 = icmp ne i64 %406, 0
  br i1 %407, label %408, label %413

408:                                              ; preds = %404
  %409 = load ptr, ptr %43, align 8, !tbaa !5
  %410 = load i64, ptr %409, align 8, !tbaa !9
  %411 = sub nsw i64 0, %410
  store i64 %411, ptr %46, align 8, !tbaa !9
  %412 = call i32 @xerbla_(ptr noundef @.str.7, ptr noundef %46)
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1310

413:                                              ; preds = %404
  %414 = load i64, ptr %104, align 8, !tbaa !9
  %415 = icmp ne i64 %414, 0
  br i1 %415, label %419, label %416

416:                                              ; preds = %413
  %417 = load i64, ptr %105, align 8, !tbaa !9
  %418 = icmp ne i64 %417, 0
  br i1 %418, label %419, label %420

419:                                              ; preds = %416, %413
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1310

420:                                              ; preds = %416
  br label %421

421:                                              ; preds = %420
  %422 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 0, ptr %422, align 8, !tbaa !9
  %423 = load ptr, ptr %25, align 8, !tbaa !5
  %424 = load i64, ptr %423, align 8, !tbaa !9
  %425 = icmp eq i64 %424, 0
  br i1 %425, label %426, label %427

426:                                              ; preds = %421
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1310

427:                                              ; preds = %421
  %428 = load ptr, ptr %25, align 8, !tbaa !5
  %429 = load i64, ptr %428, align 8, !tbaa !9
  %430 = icmp eq i64 %429, 1
  br i1 %430, label %431, label %480

431:                                              ; preds = %427
  %432 = load i64, ptr %83, align 8, !tbaa !9
  %433 = icmp ne i64 %432, 0
  br i1 %433, label %437, label %434

434:                                              ; preds = %431
  %435 = load i64, ptr %85, align 8, !tbaa !9
  %436 = icmp ne i64 %435, 0
  br i1 %436, label %437, label %444

437:                                              ; preds = %434, %431
  %438 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %438, align 8, !tbaa !9
  %439 = load ptr, ptr %26, align 8, !tbaa !5
  %440 = getelementptr inbounds float, ptr %439, i64 1
  %441 = load float, ptr %440, align 4, !tbaa !11
  %442 = load ptr, ptr %33, align 8, !tbaa !5
  %443 = getelementptr inbounds float, ptr %442, i64 1
  store float %441, ptr %443, align 4, !tbaa !11
  br label %464

444:                                              ; preds = %434
  %445 = load float, ptr %58, align 4, !tbaa !11
  %446 = load ptr, ptr %26, align 8, !tbaa !5
  %447 = getelementptr inbounds float, ptr %446, i64 1
  %448 = load float, ptr %447, align 4, !tbaa !11
  %449 = fcmp olt float %445, %448
  br i1 %449, label %450, label %463

450:                                              ; preds = %444
  %451 = load float, ptr %59, align 4, !tbaa !11
  %452 = load ptr, ptr %26, align 8, !tbaa !5
  %453 = getelementptr inbounds float, ptr %452, i64 1
  %454 = load float, ptr %453, align 4, !tbaa !11
  %455 = fcmp oge float %451, %454
  br i1 %455, label %456, label %463

456:                                              ; preds = %450
  %457 = load ptr, ptr %32, align 8, !tbaa !5
  store i64 1, ptr %457, align 8, !tbaa !9
  %458 = load ptr, ptr %26, align 8, !tbaa !5
  %459 = getelementptr inbounds float, ptr %458, i64 1
  %460 = load float, ptr %459, align 4, !tbaa !11
  %461 = load ptr, ptr %33, align 8, !tbaa !5
  %462 = getelementptr inbounds float, ptr %461, i64 1
  store float %460, ptr %462, align 4, !tbaa !11
  br label %463

463:                                              ; preds = %456, %450, %444
  br label %464

464:                                              ; preds = %463, %437
  %465 = load i64, ptr %82, align 8, !tbaa !9
  %466 = icmp ne i64 %465, 0
  br i1 %466, label %467, label %479

467:                                              ; preds = %464
  %468 = load i64, ptr %105, align 8, !tbaa !9
  %469 = icmp ne i64 %468, 0
  br i1 %469, label %479, label %470

470:                                              ; preds = %467
  %471 = load ptr, ptr %34, align 8, !tbaa !5
  %472 = load i64, ptr %44, align 8, !tbaa !9
  %473 = add nsw i64 %472, 1
  %474 = getelementptr inbounds float, ptr %471, i64 %473
  store float 1.000000e+00, ptr %474, align 4, !tbaa !11
  %475 = load ptr, ptr %37, align 8, !tbaa !5
  %476 = getelementptr inbounds i64, ptr %475, i64 1
  store i64 1, ptr %476, align 8, !tbaa !9
  %477 = load ptr, ptr %37, align 8, !tbaa !5
  %478 = getelementptr inbounds i64, ptr %477, i64 2
  store i64 1, ptr %478, align 8, !tbaa !9
  br label %479

479:                                              ; preds = %470, %467, %464
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1310

480:                                              ; preds = %427
  %481 = load ptr, ptr %25, align 8, !tbaa !5
  %482 = load i64, ptr %481, align 8, !tbaa !9
  %483 = icmp eq i64 %482, 2
  br i1 %483, label %484, label %706

484:                                              ; preds = %480
  %485 = load i64, ptr %82, align 8, !tbaa !9
  %486 = icmp ne i64 %485, 0
  br i1 %486, label %495, label %487

487:                                              ; preds = %484
  %488 = load ptr, ptr %26, align 8, !tbaa !5
  %489 = getelementptr inbounds float, ptr %488, i64 1
  %490 = load ptr, ptr %27, align 8, !tbaa !5
  %491 = getelementptr inbounds float, ptr %490, i64 1
  %492 = load ptr, ptr %26, align 8, !tbaa !5
  %493 = getelementptr inbounds float, ptr %492, i64 2
  %494 = call i32 @slae2_(ptr noundef %489, ptr noundef %491, ptr noundef %493, ptr noundef %52, ptr noundef %53)
  br label %510

495:                                              ; preds = %484
  %496 = load i64, ptr %82, align 8, !tbaa !9
  %497 = icmp ne i64 %496, 0
  br i1 %497, label %498, label %509

498:                                              ; preds = %495
  %499 = load i64, ptr %105, align 8, !tbaa !9
  %500 = icmp ne i64 %499, 0
  br i1 %500, label %509, label %501

501:                                              ; preds = %498
  %502 = load ptr, ptr %26, align 8, !tbaa !5
  %503 = getelementptr inbounds float, ptr %502, i64 1
  %504 = load ptr, ptr %27, align 8, !tbaa !5
  %505 = getelementptr inbounds float, ptr %504, i64 1
  %506 = load ptr, ptr %26, align 8, !tbaa !5
  %507 = getelementptr inbounds float, ptr %506, i64 2
  %508 = call i32 @slaev2_(ptr noundef %503, ptr noundef %505, ptr noundef %507, ptr noundef %52, ptr noundef %53, ptr noundef %55, ptr noundef %57)
  br label %509

509:                                              ; preds = %501, %498, %495
  br label %510

510:                                              ; preds = %509, %487
  %511 = load i64, ptr %83, align 8, !tbaa !9
  %512 = icmp ne i64 %511, 0
  br i1 %512, label %530, label %513

513:                                              ; preds = %510
  %514 = load i64, ptr %87, align 8, !tbaa !9
  %515 = icmp ne i64 %514, 0
  br i1 %515, label %516, label %524

516:                                              ; preds = %513
  %517 = load float, ptr %53, align 4, !tbaa !11
  %518 = load float, ptr %58, align 4, !tbaa !11
  %519 = fcmp ogt float %517, %518
  br i1 %519, label %520, label %524

520:                                              ; preds = %516
  %521 = load float, ptr %53, align 4, !tbaa !11
  %522 = load float, ptr %59, align 4, !tbaa !11
  %523 = fcmp ole float %521, %522
  br i1 %523, label %530, label %524

524:                                              ; preds = %520, %516, %513
  %525 = load i64, ptr %85, align 8, !tbaa !9
  %526 = icmp ne i64 %525, 0
  br i1 %526, label %527, label %608

527:                                              ; preds = %524
  %528 = load i64, ptr %60, align 8, !tbaa !9
  %529 = icmp eq i64 %528, 1
  br i1 %529, label %530, label %608

530:                                              ; preds = %527, %520, %510
  %531 = load ptr, ptr %32, align 8, !tbaa !5
  %532 = load i64, ptr %531, align 8, !tbaa !9
  %533 = add nsw i64 %532, 1
  store i64 %533, ptr %531, align 8, !tbaa !9
  %534 = load float, ptr %53, align 4, !tbaa !11
  %535 = load ptr, ptr %33, align 8, !tbaa !5
  %536 = load ptr, ptr %32, align 8, !tbaa !5
  %537 = load i64, ptr %536, align 8, !tbaa !9
  %538 = getelementptr inbounds float, ptr %535, i64 %537
  store float %534, ptr %538, align 4, !tbaa !11
  %539 = load i64, ptr %82, align 8, !tbaa !9
  %540 = icmp ne i64 %539, 0
  br i1 %540, label %541, label %607

541:                                              ; preds = %530
  %542 = load i64, ptr %105, align 8, !tbaa !9
  %543 = icmp ne i64 %542, 0
  br i1 %543, label %607, label %544

544:                                              ; preds = %541
  %545 = load float, ptr %57, align 4, !tbaa !11
  %546 = fneg float %545
  %547 = load ptr, ptr %34, align 8, !tbaa !5
  %548 = load ptr, ptr %32, align 8, !tbaa !5
  %549 = load i64, ptr %548, align 8, !tbaa !9
  %550 = load i64, ptr %44, align 8, !tbaa !9
  %551 = mul nsw i64 %549, %550
  %552 = add nsw i64 %551, 1
  %553 = getelementptr inbounds float, ptr %547, i64 %552
  store float %546, ptr %553, align 4, !tbaa !11
  %554 = load float, ptr %55, align 4, !tbaa !11
  %555 = load ptr, ptr %34, align 8, !tbaa !5
  %556 = load ptr, ptr %32, align 8, !tbaa !5
  %557 = load i64, ptr %556, align 8, !tbaa !9
  %558 = load i64, ptr %44, align 8, !tbaa !9
  %559 = mul nsw i64 %557, %558
  %560 = add nsw i64 %559, 2
  %561 = getelementptr inbounds float, ptr %555, i64 %560
  store float %554, ptr %561, align 4, !tbaa !11
  %562 = load float, ptr %57, align 4, !tbaa !11
  %563 = fcmp une float %562, 0.000000e+00
  br i1 %563, label %564, label %594

564:                                              ; preds = %544
  %565 = load float, ptr %55, align 4, !tbaa !11
  %566 = fcmp une float %565, 0.000000e+00
  br i1 %566, label %567, label %580

567:                                              ; preds = %564
  %568 = load ptr, ptr %37, align 8, !tbaa !5
  %569 = load ptr, ptr %32, align 8, !tbaa !5
  %570 = load i64, ptr %569, align 8, !tbaa !9
  %571 = shl i64 %570, 1
  %572 = sub nsw i64 %571, 1
  %573 = getelementptr inbounds i64, ptr %568, i64 %572
  store i64 1, ptr %573, align 8, !tbaa !9
  %574 = load ptr, ptr %37, align 8, !tbaa !5
  %575 = load ptr, ptr %32, align 8, !tbaa !5
  %576 = load i64, ptr %575, align 8, !tbaa !9
  %577 = shl i64 %576, 1
  %578 = sub nsw i64 %577, 1
  %579 = getelementptr inbounds i64, ptr %574, i64 %578
  store i64 2, ptr %579, align 8, !tbaa !9
  br label %593

580:                                              ; preds = %564
  %581 = load ptr, ptr %37, align 8, !tbaa !5
  %582 = load ptr, ptr %32, align 8, !tbaa !5
  %583 = load i64, ptr %582, align 8, !tbaa !9
  %584 = shl i64 %583, 1
  %585 = sub nsw i64 %584, 1
  %586 = getelementptr inbounds i64, ptr %581, i64 %585
  store i64 1, ptr %586, align 8, !tbaa !9
  %587 = load ptr, ptr %37, align 8, !tbaa !5
  %588 = load ptr, ptr %32, align 8, !tbaa !5
  %589 = load i64, ptr %588, align 8, !tbaa !9
  %590 = shl i64 %589, 1
  %591 = sub nsw i64 %590, 1
  %592 = getelementptr inbounds i64, ptr %587, i64 %591
  store i64 1, ptr %592, align 8, !tbaa !9
  br label %593

593:                                              ; preds = %580, %567
  br label %606

594:                                              ; preds = %544
  %595 = load ptr, ptr %37, align 8, !tbaa !5
  %596 = load ptr, ptr %32, align 8, !tbaa !5
  %597 = load i64, ptr %596, align 8, !tbaa !9
  %598 = shl i64 %597, 1
  %599 = sub nsw i64 %598, 1
  %600 = getelementptr inbounds i64, ptr %595, i64 %599
  store i64 2, ptr %600, align 8, !tbaa !9
  %601 = load ptr, ptr %37, align 8, !tbaa !5
  %602 = load ptr, ptr %32, align 8, !tbaa !5
  %603 = load i64, ptr %602, align 8, !tbaa !9
  %604 = mul nsw i64 %603, 2
  %605 = getelementptr inbounds i64, ptr %601, i64 %604
  store i64 2, ptr %605, align 8, !tbaa !9
  br label %606

606:                                              ; preds = %594, %593
  br label %607

607:                                              ; preds = %606, %541, %530
  br label %608

608:                                              ; preds = %607, %527, %524
  %609 = load i64, ptr %83, align 8, !tbaa !9
  %610 = icmp ne i64 %609, 0
  br i1 %610, label %628, label %611

611:                                              ; preds = %608
  %612 = load i64, ptr %87, align 8, !tbaa !9
  %613 = icmp ne i64 %612, 0
  br i1 %613, label %614, label %622

614:                                              ; preds = %611
  %615 = load float, ptr %52, align 4, !tbaa !11
  %616 = load float, ptr %58, align 4, !tbaa !11
  %617 = fcmp ogt float %615, %616
  br i1 %617, label %618, label %622

618:                                              ; preds = %614
  %619 = load float, ptr %52, align 4, !tbaa !11
  %620 = load float, ptr %59, align 4, !tbaa !11
  %621 = fcmp ole float %619, %620
  br i1 %621, label %628, label %622

622:                                              ; preds = %618, %614, %611
  %623 = load i64, ptr %85, align 8, !tbaa !9
  %624 = icmp ne i64 %623, 0
  br i1 %624, label %625, label %705

625:                                              ; preds = %622
  %626 = load i64, ptr %61, align 8, !tbaa !9
  %627 = icmp eq i64 %626, 2
  br i1 %627, label %628, label %705

628:                                              ; preds = %625, %618, %608
  %629 = load ptr, ptr %32, align 8, !tbaa !5
  %630 = load i64, ptr %629, align 8, !tbaa !9
  %631 = add nsw i64 %630, 1
  store i64 %631, ptr %629, align 8, !tbaa !9
  %632 = load float, ptr %52, align 4, !tbaa !11
  %633 = load ptr, ptr %33, align 8, !tbaa !5
  %634 = load ptr, ptr %32, align 8, !tbaa !5
  %635 = load i64, ptr %634, align 8, !tbaa !9
  %636 = getelementptr inbounds float, ptr %633, i64 %635
  store float %632, ptr %636, align 4, !tbaa !11
  %637 = load i64, ptr %82, align 8, !tbaa !9
  %638 = icmp ne i64 %637, 0
  br i1 %638, label %639, label %704

639:                                              ; preds = %628
  %640 = load i64, ptr %105, align 8, !tbaa !9
  %641 = icmp ne i64 %640, 0
  br i1 %641, label %704, label %642

642:                                              ; preds = %639
  %643 = load float, ptr %55, align 4, !tbaa !11
  %644 = load ptr, ptr %34, align 8, !tbaa !5
  %645 = load ptr, ptr %32, align 8, !tbaa !5
  %646 = load i64, ptr %645, align 8, !tbaa !9
  %647 = load i64, ptr %44, align 8, !tbaa !9
  %648 = mul nsw i64 %646, %647
  %649 = add nsw i64 %648, 1
  %650 = getelementptr inbounds float, ptr %644, i64 %649
  store float %643, ptr %650, align 4, !tbaa !11
  %651 = load float, ptr %57, align 4, !tbaa !11
  %652 = load ptr, ptr %34, align 8, !tbaa !5
  %653 = load ptr, ptr %32, align 8, !tbaa !5
  %654 = load i64, ptr %653, align 8, !tbaa !9
  %655 = load i64, ptr %44, align 8, !tbaa !9
  %656 = mul nsw i64 %654, %655
  %657 = add nsw i64 %656, 2
  %658 = getelementptr inbounds float, ptr %652, i64 %657
  store float %651, ptr %658, align 4, !tbaa !11
  %659 = load float, ptr %57, align 4, !tbaa !11
  %660 = fcmp une float %659, 0.000000e+00
  br i1 %660, label %661, label %691

661:                                              ; preds = %642
  %662 = load float, ptr %55, align 4, !tbaa !11
  %663 = fcmp une float %662, 0.000000e+00
  br i1 %663, label %664, label %677

664:                                              ; preds = %661
  %665 = load ptr, ptr %37, align 8, !tbaa !5
  %666 = load ptr, ptr %32, align 8, !tbaa !5
  %667 = load i64, ptr %666, align 8, !tbaa !9
  %668 = shl i64 %667, 1
  %669 = sub nsw i64 %668, 1
  %670 = getelementptr inbounds i64, ptr %665, i64 %669
  store i64 1, ptr %670, align 8, !tbaa !9
  %671 = load ptr, ptr %37, align 8, !tbaa !5
  %672 = load ptr, ptr %32, align 8, !tbaa !5
  %673 = load i64, ptr %672, align 8, !tbaa !9
  %674 = shl i64 %673, 1
  %675 = sub nsw i64 %674, 1
  %676 = getelementptr inbounds i64, ptr %671, i64 %675
  store i64 2, ptr %676, align 8, !tbaa !9
  br label %690

677:                                              ; preds = %661
  %678 = load ptr, ptr %37, align 8, !tbaa !5
  %679 = load ptr, ptr %32, align 8, !tbaa !5
  %680 = load i64, ptr %679, align 8, !tbaa !9
  %681 = shl i64 %680, 1
  %682 = sub nsw i64 %681, 1
  %683 = getelementptr inbounds i64, ptr %678, i64 %682
  store i64 1, ptr %683, align 8, !tbaa !9
  %684 = load ptr, ptr %37, align 8, !tbaa !5
  %685 = load ptr, ptr %32, align 8, !tbaa !5
  %686 = load i64, ptr %685, align 8, !tbaa !9
  %687 = shl i64 %686, 1
  %688 = sub nsw i64 %687, 1
  %689 = getelementptr inbounds i64, ptr %684, i64 %688
  store i64 1, ptr %689, align 8, !tbaa !9
  br label %690

690:                                              ; preds = %677, %664
  br label %703

691:                                              ; preds = %642
  %692 = load ptr, ptr %37, align 8, !tbaa !5
  %693 = load ptr, ptr %32, align 8, !tbaa !5
  %694 = load i64, ptr %693, align 8, !tbaa !9
  %695 = shl i64 %694, 1
  %696 = sub nsw i64 %695, 1
  %697 = getelementptr inbounds i64, ptr %692, i64 %696
  store i64 2, ptr %697, align 8, !tbaa !9
  %698 = load ptr, ptr %37, align 8, !tbaa !5
  %699 = load ptr, ptr %32, align 8, !tbaa !5
  %700 = load i64, ptr %699, align 8, !tbaa !9
  %701 = mul nsw i64 %700, 2
  %702 = getelementptr inbounds i64, ptr %698, i64 %701
  store i64 2, ptr %702, align 8, !tbaa !9
  br label %703

703:                                              ; preds = %691, %690
  br label %704

704:                                              ; preds = %703, %639, %628
  br label %705

705:                                              ; preds = %704, %625, %622
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1310

706:                                              ; preds = %480
  store i64 1, ptr %93, align 8, !tbaa !9
  %707 = load ptr, ptr %25, align 8, !tbaa !5
  %708 = load i64, ptr %707, align 8, !tbaa !9
  %709 = shl i64 %708, 1
  %710 = add nsw i64 %709, 1
  store i64 %710, ptr %91, align 8, !tbaa !9
  %711 = load ptr, ptr %25, align 8, !tbaa !5
  %712 = load i64, ptr %711, align 8, !tbaa !9
  %713 = mul nsw i64 %712, 3
  %714 = add nsw i64 %713, 1
  store i64 %714, ptr %77, align 8, !tbaa !9
  %715 = load ptr, ptr %25, align 8, !tbaa !5
  %716 = load i64, ptr %715, align 8, !tbaa !9
  %717 = shl i64 %716, 2
  %718 = add nsw i64 %717, 1
  store i64 %718, ptr %64, align 8, !tbaa !9
  %719 = load ptr, ptr %25, align 8, !tbaa !5
  %720 = load i64, ptr %719, align 8, !tbaa !9
  %721 = mul nsw i64 %720, 5
  %722 = add nsw i64 %721, 1
  store i64 %722, ptr %72, align 8, !tbaa !9
  %723 = load ptr, ptr %25, align 8, !tbaa !5
  %724 = load i64, ptr %723, align 8, !tbaa !9
  %725 = mul nsw i64 %724, 6
  %726 = add nsw i64 %725, 1
  store i64 %726, ptr %97, align 8, !tbaa !9
  store i64 1, ptr %96, align 8, !tbaa !9
  %727 = load ptr, ptr %25, align 8, !tbaa !5
  %728 = load i64, ptr %727, align 8, !tbaa !9
  %729 = add nsw i64 %728, 1
  store i64 %729, ptr %86, align 8, !tbaa !9
  %730 = load ptr, ptr %25, align 8, !tbaa !5
  %731 = load i64, ptr %730, align 8, !tbaa !9
  %732 = shl i64 %731, 1
  %733 = add nsw i64 %732, 1
  store i64 %733, ptr %79, align 8, !tbaa !9
  %734 = load ptr, ptr %25, align 8, !tbaa !5
  %735 = load i64, ptr %734, align 8, !tbaa !9
  %736 = mul nsw i64 %735, 3
  %737 = add nsw i64 %736, 1
  store i64 %737, ptr %92, align 8, !tbaa !9
  store float 1.000000e+00, ptr %76, align 4, !tbaa !11
  %738 = load ptr, ptr %25, align 8, !tbaa !5
  %739 = load ptr, ptr %26, align 8, !tbaa !5
  %740 = getelementptr inbounds float, ptr %739, i64 1
  %741 = load ptr, ptr %27, align 8, !tbaa !5
  %742 = getelementptr inbounds float, ptr %741, i64 1
  %743 = call double @slanst_(ptr noundef @.str.8, ptr noundef %738, ptr noundef %740, ptr noundef %742)
  %744 = fptrunc double %743 to float
  store float %744, ptr %71, align 4, !tbaa !11
  %745 = load float, ptr %71, align 4, !tbaa !11
  %746 = fcmp ogt float %745, 0.000000e+00
  br i1 %746, label %747, label %755

747:                                              ; preds = %706
  %748 = load float, ptr %71, align 4, !tbaa !11
  %749 = load float, ptr %68, align 4, !tbaa !11
  %750 = fcmp olt float %748, %749
  br i1 %750, label %751, label %755

751:                                              ; preds = %747
  %752 = load float, ptr %68, align 4, !tbaa !11
  %753 = load float, ptr %71, align 4, !tbaa !11
  %754 = fdiv float %752, %753
  store float %754, ptr %76, align 4, !tbaa !11
  br label %764

755:                                              ; preds = %747, %706
  %756 = load float, ptr %71, align 4, !tbaa !11
  %757 = load float, ptr %69, align 4, !tbaa !11
  %758 = fcmp ogt float %756, %757
  br i1 %758, label %759, label %763

759:                                              ; preds = %755
  %760 = load float, ptr %69, align 4, !tbaa !11
  %761 = load float, ptr %71, align 4, !tbaa !11
  %762 = fdiv float %760, %761
  store float %762, ptr %76, align 4, !tbaa !11
  br label %763

763:                                              ; preds = %759, %755
  br label %764

764:                                              ; preds = %763, %751
  %765 = load float, ptr %76, align 4, !tbaa !11
  %766 = fcmp une float %765, 1.000000e+00
  br i1 %766, label %767, label %791

767:                                              ; preds = %764
  %768 = load ptr, ptr %25, align 8, !tbaa !5
  %769 = load ptr, ptr %26, align 8, !tbaa !5
  %770 = getelementptr inbounds float, ptr %769, i64 1
  %771 = call i32 @f2c_sscal(ptr noundef %768, ptr noundef %76, ptr noundef %770, ptr noundef @c__1)
  %772 = load ptr, ptr %25, align 8, !tbaa !5
  %773 = load i64, ptr %772, align 8, !tbaa !9
  %774 = sub nsw i64 %773, 1
  store i64 %774, ptr %46, align 8, !tbaa !9
  %775 = load ptr, ptr %27, align 8, !tbaa !5
  %776 = getelementptr inbounds float, ptr %775, i64 1
  %777 = call i32 @f2c_sscal(ptr noundef %46, ptr noundef %76, ptr noundef %776, ptr noundef @c__1)
  %778 = load float, ptr %76, align 4, !tbaa !11
  %779 = load float, ptr %71, align 4, !tbaa !11
  %780 = fmul float %779, %778
  store float %780, ptr %71, align 4, !tbaa !11
  %781 = load i64, ptr %87, align 8, !tbaa !9
  %782 = icmp ne i64 %781, 0
  br i1 %782, label %783, label %790

783:                                              ; preds = %767
  %784 = load float, ptr %76, align 4, !tbaa !11
  %785 = load float, ptr %58, align 4, !tbaa !11
  %786 = fmul float %785, %784
  store float %786, ptr %58, align 4, !tbaa !11
  %787 = load float, ptr %76, align 4, !tbaa !11
  %788 = load float, ptr %59, align 4, !tbaa !11
  %789 = fmul float %788, %787
  store float %789, ptr %59, align 4, !tbaa !11
  br label %790

790:                                              ; preds = %783, %767
  br label %791

791:                                              ; preds = %790, %764
  %792 = load ptr, ptr %38, align 8, !tbaa !5
  %793 = load i64, ptr %792, align 8, !tbaa !9
  %794 = icmp ne i64 %793, 0
  br i1 %794, label %795, label %802

795:                                              ; preds = %791
  %796 = load ptr, ptr %25, align 8, !tbaa !5
  %797 = load ptr, ptr %26, align 8, !tbaa !5
  %798 = getelementptr inbounds float, ptr %797, i64 1
  %799 = load ptr, ptr %27, align 8, !tbaa !5
  %800 = getelementptr inbounds float, ptr %799, i64 1
  %801 = call i32 @slarrr_(ptr noundef %796, ptr noundef %798, ptr noundef %800, ptr noundef %78)
  br label %803

802:                                              ; preds = %791
  store i64 -1, ptr %78, align 8, !tbaa !9
  br label %803

803:                                              ; preds = %802, %795
  %804 = load i64, ptr %78, align 8, !tbaa !9
  %805 = icmp eq i64 %804, 0
  br i1 %805, label %806, label %808

806:                                              ; preds = %803
  %807 = load float, ptr %62, align 4, !tbaa !11
  store float %807, ptr %95, align 4, !tbaa !11
  br label %812

808:                                              ; preds = %803
  %809 = load float, ptr %62, align 4, !tbaa !11
  %810 = fneg float %809
  store float %810, ptr %95, align 4, !tbaa !11
  %811 = load ptr, ptr %38, align 8, !tbaa !5
  store i64 0, ptr %811, align 8, !tbaa !9
  br label %812

812:                                              ; preds = %808, %806
  %813 = load ptr, ptr %38, align 8, !tbaa !5
  %814 = load i64, ptr %813, align 8, !tbaa !9
  %815 = icmp ne i64 %814, 0
  br i1 %815, label %816, label %824

816:                                              ; preds = %812
  %817 = load ptr, ptr %25, align 8, !tbaa !5
  %818 = load ptr, ptr %26, align 8, !tbaa !5
  %819 = getelementptr inbounds float, ptr %818, i64 1
  %820 = load ptr, ptr %39, align 8, !tbaa !5
  %821 = load i64, ptr %64, align 8, !tbaa !9
  %822 = getelementptr inbounds float, ptr %820, i64 %821
  %823 = call i32 @f2c_scopy(ptr noundef %817, ptr noundef %819, ptr noundef @c__1, ptr noundef %822, ptr noundef @c__1)
  br label %824

824:                                              ; preds = %816, %812
  %825 = load ptr, ptr %25, align 8, !tbaa !5
  %826 = load i64, ptr %825, align 8, !tbaa !9
  %827 = sub nsw i64 %826, 1
  store i64 %827, ptr %46, align 8, !tbaa !9
  store i64 1, ptr %51, align 8, !tbaa !9
  br label %828

828:                                              ; preds = %846, %824
  %829 = load i64, ptr %51, align 8, !tbaa !9
  %830 = load i64, ptr %46, align 8, !tbaa !9
  %831 = icmp sle i64 %829, %830
  br i1 %831, label %832, label %849

832:                                              ; preds = %828
  %833 = load ptr, ptr %27, align 8, !tbaa !5
  %834 = load i64, ptr %51, align 8, !tbaa !9
  %835 = getelementptr inbounds float, ptr %833, i64 %834
  %836 = load float, ptr %835, align 4, !tbaa !11
  store float %836, ptr %48, align 4, !tbaa !11
  %837 = load float, ptr %48, align 4, !tbaa !11
  %838 = load float, ptr %48, align 4, !tbaa !11
  %839 = fmul float %837, %838
  %840 = load ptr, ptr %39, align 8, !tbaa !5
  %841 = load i64, ptr %72, align 8, !tbaa !9
  %842 = load i64, ptr %51, align 8, !tbaa !9
  %843 = add nsw i64 %841, %842
  %844 = sub nsw i64 %843, 1
  %845 = getelementptr inbounds float, ptr %840, i64 %844
  store float %839, ptr %845, align 4, !tbaa !11
  br label %846

846:                                              ; preds = %832
  %847 = load i64, ptr %51, align 8, !tbaa !9
  %848 = add nsw i64 %847, 1
  store i64 %848, ptr %51, align 8, !tbaa !9
  br label %828, !llvm.loop !13

849:                                              ; preds = %828
  %850 = load i64, ptr %82, align 8, !tbaa !9
  %851 = icmp ne i64 %850, 0
  br i1 %851, label %857, label %852

852:                                              ; preds = %849
  %853 = load float, ptr %62, align 4, !tbaa !11
  %854 = fmul float %853, 4.000000e+00
  store float %854, ptr %74, align 4, !tbaa !11
  %855 = load float, ptr %62, align 4, !tbaa !11
  %856 = fmul float %855, 4.000000e+00
  store float %856, ptr %75, align 4, !tbaa !11
  br label %894

857:                                              ; preds = %849
  %858 = load float, ptr %62, align 4, !tbaa !11
  %859 = fpext float %858 to double
  %860 = call double @sqrt(double noundef %859) #4
  %861 = fmul double %860, 0x3FA99999A0000000
  %862 = fptrunc double %861 to float
  store float %862, ptr %48, align 4, !tbaa !11
  %863 = load float, ptr %62, align 4, !tbaa !11
  %864 = fmul float %863, 4.000000e+00
  store float %864, ptr %49, align 4, !tbaa !11
  %865 = load float, ptr %48, align 4, !tbaa !11
  %866 = load float, ptr %49, align 4, !tbaa !11
  %867 = fcmp oge float %865, %866
  br i1 %867, label %868, label %870

868:                                              ; preds = %857
  %869 = load float, ptr %48, align 4, !tbaa !11
  br label %872

870:                                              ; preds = %857
  %871 = load float, ptr %49, align 4, !tbaa !11
  br label %872

872:                                              ; preds = %870, %868
  %873 = phi float [ %869, %868 ], [ %871, %870 ]
  %874 = fpext float %873 to double
  %875 = fptrunc double %874 to float
  store float %875, ptr %74, align 4, !tbaa !11
  %876 = load float, ptr %62, align 4, !tbaa !11
  %877 = fpext float %876 to double
  %878 = call double @sqrt(double noundef %877) #4
  %879 = fmul double %878, 0x3F747AE140000000
  %880 = fptrunc double %879 to float
  store float %880, ptr %48, align 4, !tbaa !11
  %881 = load float, ptr %62, align 4, !tbaa !11
  %882 = fmul float %881, 4.000000e+00
  store float %882, ptr %49, align 4, !tbaa !11
  %883 = load float, ptr %48, align 4, !tbaa !11
  %884 = load float, ptr %49, align 4, !tbaa !11
  %885 = fcmp oge float %883, %884
  br i1 %885, label %886, label %888

886:                                              ; preds = %872
  %887 = load float, ptr %48, align 4, !tbaa !11
  br label %890

888:                                              ; preds = %872
  %889 = load float, ptr %49, align 4, !tbaa !11
  br label %890

890:                                              ; preds = %888, %886
  %891 = phi float [ %887, %886 ], [ %889, %888 ]
  %892 = fpext float %891 to double
  %893 = fptrunc double %892 to float
  store float %893, ptr %75, align 4, !tbaa !11
  br label %894

894:                                              ; preds = %890, %852
  %895 = load ptr, ptr %24, align 8, !tbaa !5
  %896 = load ptr, ptr %25, align 8, !tbaa !5
  %897 = load ptr, ptr %26, align 8, !tbaa !5
  %898 = getelementptr inbounds float, ptr %897, i64 1
  %899 = load ptr, ptr %27, align 8, !tbaa !5
  %900 = getelementptr inbounds float, ptr %899, i64 1
  %901 = load ptr, ptr %39, align 8, !tbaa !5
  %902 = load i64, ptr %72, align 8, !tbaa !9
  %903 = getelementptr inbounds float, ptr %901, i64 %902
  %904 = load ptr, ptr %41, align 8, !tbaa !5
  %905 = load i64, ptr %96, align 8, !tbaa !9
  %906 = getelementptr inbounds i64, ptr %904, i64 %905
  %907 = load ptr, ptr %32, align 8, !tbaa !5
  %908 = load ptr, ptr %33, align 8, !tbaa !5
  %909 = getelementptr inbounds float, ptr %908, i64 1
  %910 = load ptr, ptr %39, align 8, !tbaa !5
  %911 = load i64, ptr %91, align 8, !tbaa !9
  %912 = getelementptr inbounds float, ptr %910, i64 %911
  %913 = load ptr, ptr %39, align 8, !tbaa !5
  %914 = load i64, ptr %77, align 8, !tbaa !9
  %915 = getelementptr inbounds float, ptr %913, i64 %914
  %916 = load ptr, ptr %41, align 8, !tbaa !5
  %917 = load i64, ptr %86, align 8, !tbaa !9
  %918 = getelementptr inbounds i64, ptr %916, i64 %917
  %919 = load ptr, ptr %41, align 8, !tbaa !5
  %920 = load i64, ptr %79, align 8, !tbaa !9
  %921 = getelementptr inbounds i64, ptr %919, i64 %920
  %922 = load ptr, ptr %39, align 8, !tbaa !5
  %923 = load i64, ptr %93, align 8, !tbaa !9
  %924 = getelementptr inbounds float, ptr %922, i64 %923
  %925 = load ptr, ptr %39, align 8, !tbaa !5
  %926 = load i64, ptr %97, align 8, !tbaa !9
  %927 = getelementptr inbounds float, ptr %925, i64 %926
  %928 = load ptr, ptr %41, align 8, !tbaa !5
  %929 = load i64, ptr %92, align 8, !tbaa !9
  %930 = getelementptr inbounds i64, ptr %928, i64 %929
  %931 = call i32 @slarre_(ptr noundef %895, ptr noundef %896, ptr noundef %58, ptr noundef %59, ptr noundef %60, ptr noundef %61, ptr noundef %898, ptr noundef %900, ptr noundef %903, ptr noundef %74, ptr noundef %75, ptr noundef %95, ptr noundef %102, ptr noundef %906, ptr noundef %907, ptr noundef %909, ptr noundef %912, ptr noundef %915, ptr noundef %918, ptr noundef %921, ptr noundef %924, ptr noundef %101, ptr noundef %927, ptr noundef %930, ptr noundef %78)
  %932 = load i64, ptr %78, align 8, !tbaa !9
  %933 = icmp ne i64 %932, 0
  br i1 %933, label %934, label %946

934:                                              ; preds = %894
  %935 = load i64, ptr %78, align 8, !tbaa !9
  %936 = icmp sge i64 %935, 0
  br i1 %936, label %937, label %939

937:                                              ; preds = %934
  %938 = load i64, ptr %78, align 8, !tbaa !9
  br label %942

939:                                              ; preds = %934
  %940 = load i64, ptr %78, align 8, !tbaa !9
  %941 = sub nsw i64 0, %940
  br label %942

942:                                              ; preds = %939, %937
  %943 = phi i64 [ %938, %937 ], [ %941, %939 ]
  %944 = add nsw i64 %943, 10
  %945 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 %944, ptr %945, align 8, !tbaa !9
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1310

946:                                              ; preds = %894
  %947 = load i64, ptr %82, align 8, !tbaa !9
  %948 = icmp ne i64 %947, 0
  br i1 %948, label %949, label %1005

949:                                              ; preds = %946
  %950 = load ptr, ptr %25, align 8, !tbaa !5
  %951 = load ptr, ptr %26, align 8, !tbaa !5
  %952 = getelementptr inbounds float, ptr %951, i64 1
  %953 = load ptr, ptr %27, align 8, !tbaa !5
  %954 = getelementptr inbounds float, ptr %953, i64 1
  %955 = load ptr, ptr %41, align 8, !tbaa !5
  %956 = load i64, ptr %96, align 8, !tbaa !9
  %957 = getelementptr inbounds i64, ptr %955, i64 %956
  %958 = load ptr, ptr %32, align 8, !tbaa !5
  %959 = load ptr, ptr %32, align 8, !tbaa !5
  %960 = load ptr, ptr %33, align 8, !tbaa !5
  %961 = getelementptr inbounds float, ptr %960, i64 1
  %962 = load ptr, ptr %39, align 8, !tbaa !5
  %963 = load i64, ptr %91, align 8, !tbaa !9
  %964 = getelementptr inbounds float, ptr %962, i64 %963
  %965 = load ptr, ptr %39, align 8, !tbaa !5
  %966 = load i64, ptr %77, align 8, !tbaa !9
  %967 = getelementptr inbounds float, ptr %965, i64 %966
  %968 = load ptr, ptr %41, align 8, !tbaa !5
  %969 = load i64, ptr %86, align 8, !tbaa !9
  %970 = getelementptr inbounds i64, ptr %968, i64 %969
  %971 = load ptr, ptr %41, align 8, !tbaa !5
  %972 = load i64, ptr %79, align 8, !tbaa !9
  %973 = getelementptr inbounds i64, ptr %971, i64 %972
  %974 = load ptr, ptr %39, align 8, !tbaa !5
  %975 = load i64, ptr %93, align 8, !tbaa !9
  %976 = getelementptr inbounds float, ptr %974, i64 %975
  %977 = load ptr, ptr %34, align 8, !tbaa !5
  %978 = load i64, ptr %45, align 8, !tbaa !9
  %979 = getelementptr inbounds float, ptr %977, i64 %978
  %980 = load ptr, ptr %35, align 8, !tbaa !5
  %981 = load ptr, ptr %37, align 8, !tbaa !5
  %982 = getelementptr inbounds i64, ptr %981, i64 1
  %983 = load ptr, ptr %39, align 8, !tbaa !5
  %984 = load i64, ptr %97, align 8, !tbaa !9
  %985 = getelementptr inbounds float, ptr %983, i64 %984
  %986 = load ptr, ptr %41, align 8, !tbaa !5
  %987 = load i64, ptr %92, align 8, !tbaa !9
  %988 = getelementptr inbounds i64, ptr %986, i64 %987
  %989 = call i32 @slarrv_(ptr noundef %950, ptr noundef %58, ptr noundef %59, ptr noundef %952, ptr noundef %954, ptr noundef %101, ptr noundef %957, ptr noundef %958, ptr noundef @c__1, ptr noundef %959, ptr noundef @c_b18, ptr noundef %74, ptr noundef %75, ptr noundef %961, ptr noundef %964, ptr noundef %967, ptr noundef %970, ptr noundef %973, ptr noundef %976, ptr noundef %979, ptr noundef %980, ptr noundef %982, ptr noundef %985, ptr noundef %988, ptr noundef %78)
  %990 = load i64, ptr %78, align 8, !tbaa !9
  %991 = icmp ne i64 %990, 0
  br i1 %991, label %992, label %1004

992:                                              ; preds = %949
  %993 = load i64, ptr %78, align 8, !tbaa !9
  %994 = icmp sge i64 %993, 0
  br i1 %994, label %995, label %997

995:                                              ; preds = %992
  %996 = load i64, ptr %78, align 8, !tbaa !9
  br label %1000

997:                                              ; preds = %992
  %998 = load i64, ptr %78, align 8, !tbaa !9
  %999 = sub nsw i64 0, %998
  br label %1000

1000:                                             ; preds = %997, %995
  %1001 = phi i64 [ %996, %995 ], [ %999, %997 ]
  %1002 = add nsw i64 %1001, 20
  %1003 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 %1002, ptr %1003, align 8, !tbaa !9
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1310

1004:                                             ; preds = %949
  br label %1039

1005:                                             ; preds = %946
  %1006 = load ptr, ptr %32, align 8, !tbaa !5
  %1007 = load i64, ptr %1006, align 8, !tbaa !9
  store i64 %1007, ptr %46, align 8, !tbaa !9
  store i64 1, ptr %51, align 8, !tbaa !9
  br label %1008

1008:                                             ; preds = %1035, %1005
  %1009 = load i64, ptr %51, align 8, !tbaa !9
  %1010 = load i64, ptr %46, align 8, !tbaa !9
  %1011 = icmp sle i64 %1009, %1010
  br i1 %1011, label %1012, label %1038

1012:                                             ; preds = %1008
  %1013 = load ptr, ptr %41, align 8, !tbaa !5
  %1014 = load i64, ptr %86, align 8, !tbaa !9
  %1015 = load i64, ptr %51, align 8, !tbaa !9
  %1016 = add nsw i64 %1014, %1015
  %1017 = sub nsw i64 %1016, 1
  %1018 = getelementptr inbounds i64, ptr %1013, i64 %1017
  %1019 = load i64, ptr %1018, align 8, !tbaa !9
  store i64 %1019, ptr %70, align 8, !tbaa !9
  %1020 = load ptr, ptr %27, align 8, !tbaa !5
  %1021 = load ptr, ptr %41, align 8, !tbaa !5
  %1022 = load i64, ptr %96, align 8, !tbaa !9
  %1023 = load i64, ptr %70, align 8, !tbaa !9
  %1024 = add nsw i64 %1022, %1023
  %1025 = sub nsw i64 %1024, 1
  %1026 = getelementptr inbounds i64, ptr %1021, i64 %1025
  %1027 = load i64, ptr %1026, align 8, !tbaa !9
  %1028 = getelementptr inbounds float, ptr %1020, i64 %1027
  %1029 = load float, ptr %1028, align 4, !tbaa !11
  %1030 = load ptr, ptr %33, align 8, !tbaa !5
  %1031 = load i64, ptr %51, align 8, !tbaa !9
  %1032 = getelementptr inbounds float, ptr %1030, i64 %1031
  %1033 = load float, ptr %1032, align 4, !tbaa !11
  %1034 = fadd float %1033, %1029
  store float %1034, ptr %1032, align 4, !tbaa !11
  br label %1035

1035:                                             ; preds = %1012
  %1036 = load i64, ptr %51, align 8, !tbaa !9
  %1037 = add nsw i64 %1036, 1
  store i64 %1037, ptr %51, align 8, !tbaa !9
  br label %1008, !llvm.loop !15

1038:                                             ; preds = %1008
  br label %1039

1039:                                             ; preds = %1038, %1004
  %1040 = load ptr, ptr %38, align 8, !tbaa !5
  %1041 = load i64, ptr %1040, align 8, !tbaa !9
  %1042 = icmp ne i64 %1041, 0
  br i1 %1042, label %1043, label %1157

1043:                                             ; preds = %1039
  store i64 1, ptr %84, align 8, !tbaa !9
  store i64 1, ptr %88, align 8, !tbaa !9
  %1044 = load ptr, ptr %41, align 8, !tbaa !5
  %1045 = load i64, ptr %86, align 8, !tbaa !9
  %1046 = load ptr, ptr %32, align 8, !tbaa !5
  %1047 = load i64, ptr %1046, align 8, !tbaa !9
  %1048 = add nsw i64 %1045, %1047
  %1049 = sub nsw i64 %1048, 1
  %1050 = getelementptr inbounds i64, ptr %1044, i64 %1049
  %1051 = load i64, ptr %1050, align 8, !tbaa !9
  store i64 %1051, ptr %46, align 8, !tbaa !9
  store i64 1, ptr %66, align 8, !tbaa !9
  br label %1052

1052:                                             ; preds = %1153, %1043
  %1053 = load i64, ptr %66, align 8, !tbaa !9
  %1054 = load i64, ptr %46, align 8, !tbaa !9
  %1055 = icmp sle i64 %1053, %1054
  br i1 %1055, label %1056, label %1156

1056:                                             ; preds = %1052
  %1057 = load ptr, ptr %41, align 8, !tbaa !5
  %1058 = load i64, ptr %96, align 8, !tbaa !9
  %1059 = load i64, ptr %66, align 8, !tbaa !9
  %1060 = add nsw i64 %1058, %1059
  %1061 = sub nsw i64 %1060, 1
  %1062 = getelementptr inbounds i64, ptr %1057, i64 %1061
  %1063 = load i64, ptr %1062, align 8, !tbaa !9
  store i64 %1063, ptr %65, align 8, !tbaa !9
  %1064 = load i64, ptr %65, align 8, !tbaa !9
  %1065 = load i64, ptr %84, align 8, !tbaa !9
  %1066 = sub nsw i64 %1064, %1065
  %1067 = add nsw i64 %1066, 1
  store i64 %1067, ptr %56, align 8, !tbaa !9
  %1068 = load i64, ptr %88, align 8, !tbaa !9
  %1069 = sub nsw i64 %1068, 1
  store i64 %1069, ptr %67, align 8, !tbaa !9
  br label %1070

1070:                                             ; preds = %1084, %1056
  %1071 = load i64, ptr %67, align 8, !tbaa !9
  %1072 = load ptr, ptr %32, align 8, !tbaa !5
  %1073 = load i64, ptr %1072, align 8, !tbaa !9
  %1074 = icmp slt i64 %1071, %1073
  br i1 %1074, label %1075, label %1088

1075:                                             ; preds = %1070
  %1076 = load ptr, ptr %41, align 8, !tbaa !5
  %1077 = load i64, ptr %86, align 8, !tbaa !9
  %1078 = load i64, ptr %67, align 8, !tbaa !9
  %1079 = add nsw i64 %1077, %1078
  %1080 = getelementptr inbounds i64, ptr %1076, i64 %1079
  %1081 = load i64, ptr %1080, align 8, !tbaa !9
  %1082 = load i64, ptr %66, align 8, !tbaa !9
  %1083 = icmp eq i64 %1081, %1082
  br i1 %1083, label %1084, label %1087

1084:                                             ; preds = %1075
  %1085 = load i64, ptr %67, align 8, !tbaa !9
  %1086 = add nsw i64 %1085, 1
  store i64 %1086, ptr %67, align 8, !tbaa !9
  br label %1070

1087:                                             ; preds = %1075
  br label %1088

1088:                                             ; preds = %1087, %1070
  %1089 = load i64, ptr %67, align 8, !tbaa !9
  %1090 = load i64, ptr %88, align 8, !tbaa !9
  %1091 = icmp slt i64 %1089, %1090
  br i1 %1091, label %1092, label %1095

1092:                                             ; preds = %1088
  %1093 = load i64, ptr %65, align 8, !tbaa !9
  %1094 = add nsw i64 %1093, 1
  store i64 %1094, ptr %84, align 8, !tbaa !9
  br label %1152

1095:                                             ; preds = %1088
  %1096 = load ptr, ptr %41, align 8, !tbaa !5
  %1097 = load i64, ptr %79, align 8, !tbaa !9
  %1098 = load i64, ptr %88, align 8, !tbaa !9
  %1099 = add nsw i64 %1097, %1098
  %1100 = sub nsw i64 %1099, 1
  %1101 = getelementptr inbounds i64, ptr %1096, i64 %1100
  %1102 = load i64, ptr %1101, align 8, !tbaa !9
  %1103 = sub nsw i64 %1102, 1
  store i64 %1103, ptr %94, align 8, !tbaa !9
  %1104 = load ptr, ptr %41, align 8, !tbaa !5
  %1105 = load i64, ptr %79, align 8, !tbaa !9
  %1106 = load i64, ptr %88, align 8, !tbaa !9
  %1107 = add nsw i64 %1105, %1106
  %1108 = sub nsw i64 %1107, 1
  %1109 = getelementptr inbounds i64, ptr %1104, i64 %1108
  %1110 = load i64, ptr %1109, align 8, !tbaa !9
  store i64 %1110, ptr %98, align 8, !tbaa !9
  %1111 = load ptr, ptr %41, align 8, !tbaa !5
  %1112 = load i64, ptr %79, align 8, !tbaa !9
  %1113 = load i64, ptr %67, align 8, !tbaa !9
  %1114 = add nsw i64 %1112, %1113
  %1115 = sub nsw i64 %1114, 1
  %1116 = getelementptr inbounds i64, ptr %1111, i64 %1115
  %1117 = load i64, ptr %1116, align 8, !tbaa !9
  store i64 %1117, ptr %80, align 8, !tbaa !9
  %1118 = load float, ptr %62, align 4, !tbaa !11
  %1119 = fmul float %1118, 4.000000e+00
  store float %1119, ptr %75, align 4, !tbaa !11
  %1120 = load ptr, ptr %39, align 8, !tbaa !5
  %1121 = load i64, ptr %64, align 8, !tbaa !9
  %1122 = load i64, ptr %84, align 8, !tbaa !9
  %1123 = add nsw i64 %1121, %1122
  %1124 = sub nsw i64 %1123, 1
  %1125 = getelementptr inbounds float, ptr %1120, i64 %1124
  %1126 = load ptr, ptr %39, align 8, !tbaa !5
  %1127 = load i64, ptr %72, align 8, !tbaa !9
  %1128 = load i64, ptr %84, align 8, !tbaa !9
  %1129 = add nsw i64 %1127, %1128
  %1130 = sub nsw i64 %1129, 1
  %1131 = getelementptr inbounds float, ptr %1126, i64 %1130
  %1132 = load ptr, ptr %33, align 8, !tbaa !5
  %1133 = load i64, ptr %88, align 8, !tbaa !9
  %1134 = getelementptr inbounds float, ptr %1132, i64 %1133
  %1135 = load ptr, ptr %39, align 8, !tbaa !5
  %1136 = load i64, ptr %91, align 8, !tbaa !9
  %1137 = load i64, ptr %88, align 8, !tbaa !9
  %1138 = add nsw i64 %1136, %1137
  %1139 = sub nsw i64 %1138, 1
  %1140 = getelementptr inbounds float, ptr %1135, i64 %1139
  %1141 = load ptr, ptr %39, align 8, !tbaa !5
  %1142 = load i64, ptr %97, align 8, !tbaa !9
  %1143 = getelementptr inbounds float, ptr %1141, i64 %1142
  %1144 = load ptr, ptr %41, align 8, !tbaa !5
  %1145 = load i64, ptr %92, align 8, !tbaa !9
  %1146 = getelementptr inbounds i64, ptr %1144, i64 %1145
  %1147 = call i32 @slarrj_(ptr noundef %56, ptr noundef %1125, ptr noundef %1131, ptr noundef %98, ptr noundef %80, ptr noundef %75, ptr noundef %94, ptr noundef %1134, ptr noundef %1140, ptr noundef %1143, ptr noundef %1146, ptr noundef %101, ptr noundef %71, ptr noundef %78)
  %1148 = load i64, ptr %65, align 8, !tbaa !9
  %1149 = add nsw i64 %1148, 1
  store i64 %1149, ptr %84, align 8, !tbaa !9
  %1150 = load i64, ptr %67, align 8, !tbaa !9
  %1151 = add nsw i64 %1150, 1
  store i64 %1151, ptr %88, align 8, !tbaa !9
  br label %1152

1152:                                             ; preds = %1095, %1092
  br label %1153

1153:                                             ; preds = %1152
  %1154 = load i64, ptr %66, align 8, !tbaa !9
  %1155 = add nsw i64 %1154, 1
  store i64 %1155, ptr %66, align 8, !tbaa !9
  br label %1052, !llvm.loop !16

1156:                                             ; preds = %1052
  br label %1157

1157:                                             ; preds = %1156, %1039
  %1158 = load float, ptr %76, align 4, !tbaa !11
  %1159 = fcmp une float %1158, 1.000000e+00
  br i1 %1159, label %1160, label %1167

1160:                                             ; preds = %1157
  %1161 = load float, ptr %76, align 4, !tbaa !11
  %1162 = fdiv float 1.000000e+00, %1161
  store float %1162, ptr %48, align 4, !tbaa !11
  %1163 = load ptr, ptr %32, align 8, !tbaa !5
  %1164 = load ptr, ptr %33, align 8, !tbaa !5
  %1165 = getelementptr inbounds float, ptr %1164, i64 1
  %1166 = call i32 @f2c_sscal(ptr noundef %1163, ptr noundef %48, ptr noundef %1165, ptr noundef @c__1)
  br label %1167

1167:                                             ; preds = %1160, %1157
  %1168 = load i64, ptr %102, align 8, !tbaa !9
  %1169 = icmp sgt i64 %1168, 1
  br i1 %1169, label %1170, label %1302

1170:                                             ; preds = %1167
  %1171 = load i64, ptr %82, align 8, !tbaa !9
  %1172 = icmp ne i64 %1171, 0
  br i1 %1172, label %1183, label %1173

1173:                                             ; preds = %1170
  %1174 = load ptr, ptr %32, align 8, !tbaa !5
  %1175 = load ptr, ptr %33, align 8, !tbaa !5
  %1176 = getelementptr inbounds float, ptr %1175, i64 1
  %1177 = call i32 @slasrt_(ptr noundef @.str.2, ptr noundef %1174, ptr noundef %1176, ptr noundef %78)
  %1178 = load i64, ptr %78, align 8, !tbaa !9
  %1179 = icmp ne i64 %1178, 0
  br i1 %1179, label %1180, label %1182

1180:                                             ; preds = %1173
  %1181 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 3, ptr %1181, align 8, !tbaa !9
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1310

1182:                                             ; preds = %1173
  br label %1301

1183:                                             ; preds = %1170
  %1184 = load ptr, ptr %32, align 8, !tbaa !5
  %1185 = load i64, ptr %1184, align 8, !tbaa !9
  %1186 = sub nsw i64 %1185, 1
  store i64 %1186, ptr %46, align 8, !tbaa !9
  store i64 1, ptr %51, align 8, !tbaa !9
  br label %1187

1187:                                             ; preds = %1297, %1183
  %1188 = load i64, ptr %51, align 8, !tbaa !9
  %1189 = load i64, ptr %46, align 8, !tbaa !9
  %1190 = icmp sle i64 %1188, %1189
  br i1 %1190, label %1191, label %1300

1191:                                             ; preds = %1187
  store i64 0, ptr %50, align 8, !tbaa !9
  %1192 = load ptr, ptr %33, align 8, !tbaa !5
  %1193 = load i64, ptr %51, align 8, !tbaa !9
  %1194 = getelementptr inbounds float, ptr %1192, i64 %1193
  %1195 = load float, ptr %1194, align 4, !tbaa !11
  store float %1195, ptr %63, align 4, !tbaa !11
  %1196 = load ptr, ptr %32, align 8, !tbaa !5
  %1197 = load i64, ptr %1196, align 8, !tbaa !9
  store i64 %1197, ptr %47, align 8, !tbaa !9
  %1198 = load i64, ptr %51, align 8, !tbaa !9
  %1199 = add nsw i64 %1198, 1
  store i64 %1199, ptr %54, align 8, !tbaa !9
  br label %1200

1200:                                             ; preds = %1218, %1191
  %1201 = load i64, ptr %54, align 8, !tbaa !9
  %1202 = load i64, ptr %47, align 8, !tbaa !9
  %1203 = icmp sle i64 %1201, %1202
  br i1 %1203, label %1204, label %1221

1204:                                             ; preds = %1200
  %1205 = load ptr, ptr %33, align 8, !tbaa !5
  %1206 = load i64, ptr %54, align 8, !tbaa !9
  %1207 = getelementptr inbounds float, ptr %1205, i64 %1206
  %1208 = load float, ptr %1207, align 4, !tbaa !11
  %1209 = load float, ptr %63, align 4, !tbaa !11
  %1210 = fcmp olt float %1208, %1209
  br i1 %1210, label %1211, label %1217

1211:                                             ; preds = %1204
  %1212 = load i64, ptr %54, align 8, !tbaa !9
  store i64 %1212, ptr %50, align 8, !tbaa !9
  %1213 = load ptr, ptr %33, align 8, !tbaa !5
  %1214 = load i64, ptr %54, align 8, !tbaa !9
  %1215 = getelementptr inbounds float, ptr %1213, i64 %1214
  %1216 = load float, ptr %1215, align 4, !tbaa !11
  store float %1216, ptr %63, align 4, !tbaa !11
  br label %1217

1217:                                             ; preds = %1211, %1204
  br label %1218

1218:                                             ; preds = %1217
  %1219 = load i64, ptr %54, align 8, !tbaa !9
  %1220 = add nsw i64 %1219, 1
  store i64 %1220, ptr %54, align 8, !tbaa !9
  br label %1200, !llvm.loop !17

1221:                                             ; preds = %1200
  %1222 = load i64, ptr %50, align 8, !tbaa !9
  %1223 = icmp ne i64 %1222, 0
  br i1 %1223, label %1224, label %1296

1224:                                             ; preds = %1221
  %1225 = load ptr, ptr %33, align 8, !tbaa !5
  %1226 = load i64, ptr %51, align 8, !tbaa !9
  %1227 = getelementptr inbounds float, ptr %1225, i64 %1226
  %1228 = load float, ptr %1227, align 4, !tbaa !11
  %1229 = load ptr, ptr %33, align 8, !tbaa !5
  %1230 = load i64, ptr %50, align 8, !tbaa !9
  %1231 = getelementptr inbounds float, ptr %1229, i64 %1230
  store float %1228, ptr %1231, align 4, !tbaa !11
  %1232 = load float, ptr %63, align 4, !tbaa !11
  %1233 = load ptr, ptr %33, align 8, !tbaa !5
  %1234 = load i64, ptr %51, align 8, !tbaa !9
  %1235 = getelementptr inbounds float, ptr %1233, i64 %1234
  store float %1232, ptr %1235, align 4, !tbaa !11
  %1236 = load i64, ptr %82, align 8, !tbaa !9
  %1237 = icmp ne i64 %1236, 0
  br i1 %1237, label %1238, label %1295

1238:                                             ; preds = %1224
  %1239 = load ptr, ptr %25, align 8, !tbaa !5
  %1240 = load ptr, ptr %34, align 8, !tbaa !5
  %1241 = load i64, ptr %50, align 8, !tbaa !9
  %1242 = load i64, ptr %44, align 8, !tbaa !9
  %1243 = mul nsw i64 %1241, %1242
  %1244 = add nsw i64 %1243, 1
  %1245 = getelementptr inbounds float, ptr %1240, i64 %1244
  %1246 = load ptr, ptr %34, align 8, !tbaa !5
  %1247 = load i64, ptr %51, align 8, !tbaa !9
  %1248 = load i64, ptr %44, align 8, !tbaa !9
  %1249 = mul nsw i64 %1247, %1248
  %1250 = add nsw i64 %1249, 1
  %1251 = getelementptr inbounds float, ptr %1246, i64 %1250
  %1252 = call i32 @f2c_sswap(ptr noundef %1239, ptr noundef %1245, ptr noundef @c__1, ptr noundef %1251, ptr noundef @c__1)
  %1253 = load ptr, ptr %37, align 8, !tbaa !5
  %1254 = load i64, ptr %50, align 8, !tbaa !9
  %1255 = shl i64 %1254, 1
  %1256 = sub nsw i64 %1255, 1
  %1257 = getelementptr inbounds i64, ptr %1253, i64 %1256
  %1258 = load i64, ptr %1257, align 8, !tbaa !9
  store i64 %1258, ptr %70, align 8, !tbaa !9
  %1259 = load ptr, ptr %37, align 8, !tbaa !5
  %1260 = load i64, ptr %51, align 8, !tbaa !9
  %1261 = shl i64 %1260, 1
  %1262 = sub nsw i64 %1261, 1
  %1263 = getelementptr inbounds i64, ptr %1259, i64 %1262
  %1264 = load i64, ptr %1263, align 8, !tbaa !9
  %1265 = load ptr, ptr %37, align 8, !tbaa !5
  %1266 = load i64, ptr %50, align 8, !tbaa !9
  %1267 = shl i64 %1266, 1
  %1268 = sub nsw i64 %1267, 1
  %1269 = getelementptr inbounds i64, ptr %1265, i64 %1268
  store i64 %1264, ptr %1269, align 8, !tbaa !9
  %1270 = load i64, ptr %70, align 8, !tbaa !9
  %1271 = load ptr, ptr %37, align 8, !tbaa !5
  %1272 = load i64, ptr %51, align 8, !tbaa !9
  %1273 = shl i64 %1272, 1
  %1274 = sub nsw i64 %1273, 1
  %1275 = getelementptr inbounds i64, ptr %1271, i64 %1274
  store i64 %1270, ptr %1275, align 8, !tbaa !9
  %1276 = load ptr, ptr %37, align 8, !tbaa !5
  %1277 = load i64, ptr %50, align 8, !tbaa !9
  %1278 = mul nsw i64 %1277, 2
  %1279 = getelementptr inbounds i64, ptr %1276, i64 %1278
  %1280 = load i64, ptr %1279, align 8, !tbaa !9
  store i64 %1280, ptr %70, align 8, !tbaa !9
  %1281 = load ptr, ptr %37, align 8, !tbaa !5
  %1282 = load i64, ptr %51, align 8, !tbaa !9
  %1283 = mul nsw i64 %1282, 2
  %1284 = getelementptr inbounds i64, ptr %1281, i64 %1283
  %1285 = load i64, ptr %1284, align 8, !tbaa !9
  %1286 = load ptr, ptr %37, align 8, !tbaa !5
  %1287 = load i64, ptr %50, align 8, !tbaa !9
  %1288 = mul nsw i64 %1287, 2
  %1289 = getelementptr inbounds i64, ptr %1286, i64 %1288
  store i64 %1285, ptr %1289, align 8, !tbaa !9
  %1290 = load i64, ptr %70, align 8, !tbaa !9
  %1291 = load ptr, ptr %37, align 8, !tbaa !5
  %1292 = load i64, ptr %51, align 8, !tbaa !9
  %1293 = mul nsw i64 %1292, 2
  %1294 = getelementptr inbounds i64, ptr %1291, i64 %1293
  store i64 %1290, ptr %1294, align 8, !tbaa !9
  br label %1295

1295:                                             ; preds = %1238, %1224
  br label %1296

1296:                                             ; preds = %1295, %1221
  br label %1297

1297:                                             ; preds = %1296
  %1298 = load i64, ptr %51, align 8, !tbaa !9
  %1299 = add nsw i64 %1298, 1
  store i64 %1299, ptr %51, align 8, !tbaa !9
  br label %1187, !llvm.loop !18

1300:                                             ; preds = %1187
  br label %1301

1301:                                             ; preds = %1300, %1182
  br label %1302

1302:                                             ; preds = %1301, %1167
  %1303 = load i64, ptr %81, align 8, !tbaa !9
  %1304 = sitofp i64 %1303 to float
  %1305 = load ptr, ptr %39, align 8, !tbaa !5
  %1306 = getelementptr inbounds float, ptr %1305, i64 1
  store float %1304, ptr %1306, align 4, !tbaa !11
  %1307 = load i64, ptr %99, align 8, !tbaa !9
  %1308 = load ptr, ptr %41, align 8, !tbaa !5
  %1309 = getelementptr inbounds i64, ptr %1308, i64 1
  store i64 %1307, ptr %1309, align 8, !tbaa !9
  store i32 0, ptr %22, align 4
  store i32 1, ptr %106, align 4
  br label %1310

1310:                                             ; preds = %1302, %1180, %1000, %942, %705, %479, %426, %419, %408
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 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 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  %1311 = load i32, ptr %22, align 4
  ret i32 %1311
}

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"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 = distinct !{!16, !14}
!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 [2 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 [13 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c_b18 = external hidden global float, align 4

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

64:                                               ; preds = %21
  %65 = load i64, ptr %19, align 8, !tbaa !5
  %66 = icmp eq i64 %65, -1
  br label %67

67:                                               ; preds = %64, %21
  %68 = phi i1 [ true, %21 ], [ %66, %64 ]
  %69 = load i64, ptr %13, align 8, !tbaa !5
  %70 = icmp eq i64 %69, -1
  %71 = icmp ne i64 %58, 0
  %72 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %71, label %73, label %76

73:                                               ; preds = %67
  %74 = mul nsw i64 %72, 18
  %75 = mul nsw i64 %72, 10
  br label %79

76:                                               ; preds = %67
  %77 = mul nsw i64 %72, 12
  %78 = shl i64 %72, 3
  br label %79

79:                                               ; preds = %76, %73
  %.0441 = phi i64 [ %74, %73 ], [ %77, %76 ]
  %.0429 = phi i64 [ %75, %73 ], [ %78, %76 ]
  store float 0.000000e+00, ptr %31, align 4, !tbaa !9
  store float 0.000000e+00, ptr %32, align 4, !tbaa !9
  store i64 0, ptr %33, align 8, !tbaa !5
  store i64 0, ptr %34, align 8, !tbaa !5
  %80 = icmp ne i64 %60, 0
  br i1 %80, label %81, label %84

81:                                               ; preds = %79
  %82 = load float, ptr %5, align 4, !tbaa !9
  store float %82, ptr %31, align 4, !tbaa !9
  %83 = load float, ptr %6, align 4, !tbaa !9
  store float %83, ptr %32, align 4, !tbaa !9
  br label %88

84:                                               ; preds = %79
  %.not = icmp eq i64 %61, 0
  br i1 %.not, label %88, label %85

85:                                               ; preds = %84
  %86 = load i64, ptr %7, align 8, !tbaa !5
  store i64 %86, ptr %33, align 8, !tbaa !5
  %87 = load i64, ptr %8, align 8, !tbaa !5
  store i64 %87, ptr %34, align 8, !tbaa !5
  br label %88

88:                                               ; preds = %84, %85, %81
  %89 = phi i64 [ 0, %84 ], [ %87, %85 ], [ 0, %81 ]
  %90 = phi i64 [ 0, %84 ], [ %86, %85 ], [ 0, %81 ]
  %91 = phi float [ 0.000000e+00, %84 ], [ 0.000000e+00, %85 ], [ %82, %81 ]
  %92 = phi float [ 0.000000e+00, %84 ], [ 0.000000e+00, %85 ], [ %83, %81 ]
  store i64 0, ptr %20, align 8, !tbaa !5
  br i1 %71, label %95, label %93

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

95:                                               ; preds = %93, %88
  %96 = or i64 %60, %59
  %or.cond = icmp ne i64 %96, 0
  %97 = icmp ne i64 %61, 0
  %or.cond3 = select i1 %or.cond, i1 true, i1 %97
  br i1 %or.cond3, label %98, label %.sink.split

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

101:                                              ; preds = %98
  %.not461 = icmp ne i64 %99, 0
  %or.cond494.not = and i1 %80, %.not461
  %102 = fcmp ole float %92, %91
  %or.cond577.not = select i1 %or.cond494.not, i1 %102, i1 false
  br i1 %or.cond577.not, label %.sink.split, label %103

103:                                              ; preds = %101
  br i1 %97, label %104, label %.critedge

104:                                              ; preds = %103
  %105 = icmp slt i64 %90, 1
  %106 = icmp ugt i64 %90, %99
  %or.cond513 = or i1 %105, %106
  br i1 %or.cond513, label %.sink.split, label %107

107:                                              ; preds = %104
  %108 = icmp slt i64 %89, %90
  %109 = icmp ugt i64 %89, %99
  %or.cond514 = or i1 %108, %109
  br i1 %or.cond514, label %.sink.split, label %.critedge

.critedge:                                        ; preds = %107, %103
  %110 = load i64, ptr %12, align 8, !tbaa !5
  %111 = icmp slt i64 %110, 1
  %112 = icmp ult i64 %110, %99
  %or.cond515 = and i1 %71, %112
  %or.cond516 = or i1 %111, %or.cond515
  br i1 %or.cond516, label %.sink.split, label %113

113:                                              ; preds = %.critedge
  %114 = load i64, ptr %17, align 8, !tbaa !5
  %115 = icmp sge i64 %114, %.0441
  %or.cond5 = select i1 %115, i1 true, i1 %68
  br i1 %or.cond5, label %116, label %.sink.split

116:                                              ; preds = %113
  %117 = load i64, ptr %19, align 8, !tbaa !5
  %118 = icmp sge i64 %117, %.0429
  %or.cond7 = select i1 %118, i1 true, i1 %68
  br i1 %or.cond7, label %119, label %.sink.split

.sink.split:                                      ; preds = %116, %113, %.critedge, %107, %104, %101, %98, %95, %93
  %.sink = phi i64 [ -1, %93 ], [ -2, %95 ], [ -3, %98 ], [ -7, %101 ], [ -8, %104 ], [ -9, %107 ], [ -13, %.critedge ], [ -17, %113 ], [ -19, %116 ]
  store i64 %.sink, ptr %20, align 8, !tbaa !5
  br label %119

119:                                              ; preds = %.sink.split, %116
  %120 = tail call double @slamch_(ptr noundef nonnull @.str.4) #5
  %121 = fptrunc double %120 to float
  store float %121, ptr %43, align 4, !tbaa !9
  %122 = tail call double @slamch_(ptr noundef nonnull @.str.5) #5
  %123 = fptrunc double %122 to float
  %124 = fdiv float %121, %123
  %125 = fdiv float 1.000000e+00, %124
  %sqrtf = tail call float @sqrtf(float noundef %124) #3
  %sqrtf462 = tail call float @sqrtf(float noundef %125) #3
  store float %sqrtf462, ptr %25, align 4, !tbaa !9
  %126 = fpext float %121 to double
  %127 = tail call double @sqrt(double noundef %126) #5
  %128 = tail call double @sqrt(double noundef %127) #5
  %129 = fdiv double 1.000000e+00, %128
  %130 = fptrunc double %129 to float
  %131 = fcmp ole float %sqrtf462, %130
  %132 = select i1 %131, float %sqrtf462, float %130
  %133 = load i64, ptr %20, align 8, !tbaa !5
  %134 = icmp eq i64 %133, 0
  br i1 %134, label %135, label %.thread503

135:                                              ; preds = %119
  %136 = sitofp i64 %.0441 to float
  store float %136, ptr %16, align 4, !tbaa !9
  store i64 %.0429, ptr %18, align 8, !tbaa !5
  %137 = icmp ne i64 %59, 0
  %or.cond9 = select i1 %71, i1 %137, i1 false
  br i1 %or.cond9, label %138, label %140

138:                                              ; preds = %135
  %139 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %139, ptr %47, align 8, !tbaa !5
  br label %149

140:                                              ; preds = %135
  %or.cond11 = and i1 %71, %80
  br i1 %or.cond11, label %141, label %143

141:                                              ; preds = %140
  %142 = call i32 @slarrc_(ptr noundef nonnull @.str.6, ptr noundef nonnull %2, ptr noundef %5, ptr noundef %6, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %43, ptr noundef nonnull %47, ptr noundef nonnull %35, ptr noundef nonnull %37, ptr noundef nonnull %20) #5
  br label %149

143:                                              ; preds = %140
  %144 = icmp ne i64 %61, 0
  %or.cond13 = select i1 %71, i1 %144, i1 false
  br i1 %or.cond13, label %145, label %148

145:                                              ; preds = %143
  %146 = add i64 %89, 1
  %147 = sub i64 %146, %90
  store i64 %147, ptr %47, align 8, !tbaa !5
  br label %149

148:                                              ; preds = %143
  store i64 0, ptr %47, align 8, !tbaa !5
  br label %149

149:                                              ; preds = %141, %148, %145, %138
  br i1 %70, label %150, label %155

150:                                              ; preds = %149
  %151 = load i64, ptr %20, align 8, !tbaa !5
  %152 = icmp eq i64 %151, 0
  br i1 %152, label %.thread569, label %.thread503

.thread569:                                       ; preds = %150
  %153 = load i64, ptr %47, align 8, !tbaa !5
  %154 = sitofp i64 %153 to float
  store float %154, ptr %11, align 4, !tbaa !9
  br label %489

155:                                              ; preds = %149
  %156 = load i64, ptr %13, align 8, !tbaa !5
  %157 = load i64, ptr %47, align 8, !tbaa !5
  %.not566 = icmp slt i64 %156, %157
  br i1 %.not566, label %158, label %159

158:                                              ; preds = %155
  store i64 -14, ptr %20, align 8, !tbaa !5
  br label %.thread503

159:                                              ; preds = %155
  %.pr.pre = load i64, ptr %20, align 8, !tbaa !5
  %.not463 = icmp eq i64 %.pr.pre, 0
  br i1 %.not463, label %163, label %.thread503

.thread503:                                       ; preds = %150, %119, %158, %159
  %160 = phi i64 [ %.pr.pre, %159 ], [ %133, %119 ], [ -14, %158 ], [ %151, %150 ]
  %161 = sub nsw i64 0, %160
  store i64 %161, ptr %24, align 8, !tbaa !5
  %162 = call i32 @xerbla_(ptr noundef nonnull @.str.7, ptr noundef nonnull %24) #5
  br label %489

163:                                              ; preds = %159
  %or.cond17 = select i1 %68, i1 true, i1 %70
  br i1 %or.cond17, label %489, label %164

164:                                              ; preds = %163
  store i64 0, ptr %9, align 8, !tbaa !5
  %165 = load i64, ptr %2, align 8, !tbaa !5
  switch i64 %165, label %267 [
    i64 0, label %489
    i64 1, label %166
    i64 2, label %181
  ]

166:                                              ; preds = %164
  %167 = icmp ne i64 %61, 0
  %or.cond19 = select i1 %137, i1 true, i1 %167
  br i1 %or.cond19, label %168, label %170

168:                                              ; preds = %166
  store i64 1, ptr %9, align 8, !tbaa !5
  %169 = load float, ptr %3, align 4, !tbaa !9
  br label %.sink.split578

170:                                              ; preds = %166
  %171 = load float, ptr %31, align 4, !tbaa !9
  %172 = load float, ptr %3, align 4, !tbaa !9
  %173 = fcmp uge float %171, %172
  %174 = load float, ptr %32, align 4
  %175 = fcmp ult float %174, %172
  %or.cond496 = select i1 %173, i1 true, i1 %175
  br i1 %or.cond496, label %177, label %176

176:                                              ; preds = %170
  store i64 1, ptr %9, align 8, !tbaa !5
  br label %.sink.split578

.sink.split578:                                   ; preds = %168, %176
  %.sink579 = phi float [ %172, %176 ], [ %169, %168 ]
  store float %.sink579, ptr %10, align 4, !tbaa !9
  br label %177

177:                                              ; preds = %.sink.split578, %170
  %178 = icmp eq i64 %58, 0
  br i1 %178, label %489, label %179

179:                                              ; preds = %177
  store float 1.000000e+00, ptr %11, align 4, !tbaa !9
  store i64 1, ptr %14, align 8, !tbaa !5
  %180 = getelementptr inbounds i8, ptr %14, i64 8
  store i64 1, ptr %180, align 8, !tbaa !5
  br label %489

181:                                              ; preds = %164
  %182 = getelementptr inbounds i8, ptr %3, i64 4
  br i1 %71, label %185, label %183

183:                                              ; preds = %181
  %184 = call i32 @slae2_(ptr noundef %3, ptr noundef %4, ptr noundef nonnull %182, ptr noundef nonnull %26, ptr noundef nonnull %27) #5
  br label %187

185:                                              ; preds = %181
  %186 = call i32 @slaev2_(ptr noundef %3, ptr noundef %4, ptr noundef nonnull %182, ptr noundef nonnull %26, ptr noundef nonnull %27, ptr noundef nonnull %28, ptr noundef nonnull %30) #5
  br label %187

187:                                              ; preds = %185, %183
  %.not480 = icmp eq i64 %59, 0
  br i1 %.not480, label %188, label %199

188:                                              ; preds = %187
  br i1 %80, label %189, label %195

189:                                              ; preds = %188
  %190 = load float, ptr %27, align 4, !tbaa !9
  %191 = load float, ptr %31, align 4, !tbaa !9
  %192 = fcmp ule float %190, %191
  %193 = load float, ptr %32, align 4
  %194 = fcmp ugt float %190, %193
  %or.cond498 = select i1 %192, i1 true, i1 %194
  br i1 %or.cond498, label %195, label %199

195:                                              ; preds = %189, %188
  %196 = icmp ne i64 %61, 0
  %197 = load i64, ptr %33, align 8
  %198 = icmp eq i64 %197, 1
  %or.cond25 = select i1 %196, i1 %198, i1 false
  br i1 %or.cond25, label %199, label %.thread505

199:                                              ; preds = %189, %195, %187
  %200 = load i64, ptr %9, align 8, !tbaa !5
  %201 = add nsw i64 %200, 1
  store i64 %201, ptr %9, align 8, !tbaa !5
  %202 = load float, ptr %27, align 4, !tbaa !9
  %203 = getelementptr float, ptr %10, i64 %200
  store float %202, ptr %203, align 4, !tbaa !9
  %204 = icmp eq i64 %58, 0
  br i1 %204, label %228, label %205

205:                                              ; preds = %199
  %206 = load float, ptr %30, align 4, !tbaa !9
  %207 = fneg float %206
  %208 = mul nsw i64 %201, %52
  %209 = getelementptr float, ptr %54, i64 %208
  %210 = getelementptr i8, ptr %209, i64 4
  store float %207, ptr %210, align 4, !tbaa !9
  %211 = load float, ptr %28, align 4, !tbaa !9
  %212 = getelementptr i8, ptr %209, i64 8
  store float %211, ptr %212, align 4, !tbaa !9
  %213 = fcmp une float %206, 0.000000e+00
  br i1 %213, label %214, label %223

214:                                              ; preds = %205
  %215 = fcmp une float %211, 0.000000e+00
  %.idx485 = shl i64 %201, 4
  %216 = getelementptr i8, ptr %55, i64 %.idx485
  %217 = getelementptr i8, ptr %216, i64 -8
  store i64 1, ptr %217, align 8, !tbaa !5
  %218 = load i64, ptr %9, align 8, !tbaa !5
  %.idx486 = shl i64 %218, 4
  %219 = getelementptr i8, ptr %55, i64 %.idx486
  %220 = getelementptr i8, ptr %219, i64 -8
  br i1 %215, label %221, label %222

221:                                              ; preds = %214
  store i64 2, ptr %220, align 8, !tbaa !5
  br label %228

222:                                              ; preds = %214
  store i64 1, ptr %220, align 8, !tbaa !5
  br label %228

223:                                              ; preds = %205
  %.idx481 = shl i64 %201, 4
  %224 = getelementptr i8, ptr %55, i64 %.idx481
  %225 = getelementptr i8, ptr %224, i64 -8
  store i64 2, ptr %225, align 8, !tbaa !5
  %226 = load i64, ptr %9, align 8, !tbaa !5
  %.idx482 = shl nsw i64 %226, 4
  %227 = getelementptr inbounds i8, ptr %55, i64 %.idx482
  store i64 2, ptr %227, align 8, !tbaa !5
  br label %228

228:                                              ; preds = %199, %221, %222, %223
  br i1 %.not480, label %.thread505, label %239

.thread505:                                       ; preds = %195, %228
  br i1 %80, label %229, label %235

229:                                              ; preds = %.thread505
  %230 = load float, ptr %26, align 4, !tbaa !9
  %231 = load float, ptr %31, align 4, !tbaa !9
  %232 = fcmp ule float %230, %231
  %233 = load float, ptr %32, align 4
  %234 = fcmp ugt float %230, %233
  %or.cond500 = select i1 %232, i1 true, i1 %234
  br i1 %or.cond500, label %235, label %239

235:                                              ; preds = %229, %.thread505
  %236 = icmp ne i64 %61, 0
  %237 = load i64, ptr %34, align 8
  %238 = icmp eq i64 %237, 2
  %or.cond29 = select i1 %236, i1 %238, i1 false
  br i1 %or.cond29, label %239, label %489

239:                                              ; preds = %229, %235, %228
  %240 = load i64, ptr %9, align 8, !tbaa !5
  %241 = add nsw i64 %240, 1
  store i64 %241, ptr %9, align 8, !tbaa !5
  %242 = load float, ptr %26, align 4, !tbaa !9
  %243 = getelementptr float, ptr %10, i64 %240
  store float %242, ptr %243, align 4, !tbaa !9
  %244 = icmp eq i64 %58, 0
  br i1 %244, label %489, label %245

245:                                              ; preds = %239
  %246 = load float, ptr %28, align 4, !tbaa !9
  %247 = mul nsw i64 %241, %52
  %248 = getelementptr float, ptr %54, i64 %247
  %249 = getelementptr i8, ptr %248, i64 4
  store float %246, ptr %249, align 4, !tbaa !9
  %250 = load float, ptr %30, align 4, !tbaa !9
  %251 = getelementptr i8, ptr %248, i64 8
  store float %250, ptr %251, align 4, !tbaa !9
  %252 = fcmp une float %250, 0.000000e+00
  br i1 %252, label %253, label %262

253:                                              ; preds = %245
  %254 = fcmp une float %246, 0.000000e+00
  %.idx491 = shl i64 %241, 4
  %255 = getelementptr i8, ptr %55, i64 %.idx491
  %256 = getelementptr i8, ptr %255, i64 -8
  store i64 1, ptr %256, align 8, !tbaa !5
  %257 = load i64, ptr %9, align 8, !tbaa !5
  %.idx492 = shl i64 %257, 4
  %258 = getelementptr i8, ptr %55, i64 %.idx492
  %259 = getelementptr i8, ptr %258, i64 -8
  br i1 %254, label %260, label %261

260:                                              ; preds = %253
  store i64 2, ptr %259, align 8, !tbaa !5
  br label %489

261:                                              ; preds = %253
  store i64 1, ptr %259, align 8, !tbaa !5
  br label %489

262:                                              ; preds = %245
  %.idx487 = shl i64 %241, 4
  %263 = getelementptr i8, ptr %55, i64 %.idx487
  %264 = getelementptr i8, ptr %263, i64 -8
  store i64 2, ptr %264, align 8, !tbaa !5
  %265 = load i64, ptr %9, align 8, !tbaa !5
  %.idx488 = shl nsw i64 %265, 4
  %266 = getelementptr inbounds i8, ptr %55, i64 %.idx488
  store i64 2, ptr %266, align 8, !tbaa !5
  br label %489

267:                                              ; preds = %164
  %268 = shl i64 %165, 1
  %269 = mul nsw i64 %165, 3
  %270 = shl i64 %165, 2
  %271 = mul nsw i64 %165, 5
  store float 1.000000e+00, ptr %40, align 4, !tbaa !9
  %272 = call double @slanst_(ptr noundef nonnull @.str.8, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4) #5
  %273 = fptrunc double %272 to float
  store float %273, ptr %36, align 4, !tbaa !9
  %274 = fcmp ogt float %273, 0.000000e+00
  %275 = fcmp ogt float %sqrtf, %273
  %or.cond501 = select i1 %274, i1 %275, i1 false
  br i1 %or.cond501, label %276, label %278

276:                                              ; preds = %267
  %277 = fdiv float %sqrtf, %273
  store float %277, ptr %40, align 4, !tbaa !9
  br label %282

278:                                              ; preds = %267
  %279 = fcmp olt float %132, %273
  br i1 %279, label %280, label %thread-pre-split506

280:                                              ; preds = %278
  %281 = fdiv float %132, %273
  store float %281, ptr %40, align 4, !tbaa !9
  br label %282

thread-pre-split506:                              ; preds = %278
  %.pr507 = load float, ptr %40, align 4, !tbaa !9
  br label %282

282:                                              ; preds = %thread-pre-split506, %280, %276
  %283 = phi float [ %.pr507, %thread-pre-split506 ], [ %281, %280 ], [ %277, %276 ]
  %284 = fcmp une float %283, 1.000000e+00
  br i1 %284, label %285, label %297

285:                                              ; preds = %282
  %286 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %40, ptr noundef %3, ptr noundef nonnull @c__1) #5
  %287 = load i64, ptr %2, align 8, !tbaa !5
  %288 = add nsw i64 %287, -1
  store i64 %288, ptr %24, align 8, !tbaa !5
  %289 = call i32 @f2c_sscal(ptr noundef nonnull %24, ptr noundef nonnull %40, ptr noundef %4, ptr noundef nonnull @c__1) #5
  %290 = load float, ptr %40, align 4, !tbaa !9
  %291 = fmul float %290, %273
  store float %291, ptr %36, align 4, !tbaa !9
  br i1 %80, label %292, label %297

292:                                              ; preds = %285
  %293 = load float, ptr %31, align 4, !tbaa !9
  %294 = fmul float %290, %293
  store float %294, ptr %31, align 4, !tbaa !9
  %295 = load float, ptr %32, align 4, !tbaa !9
  %296 = fmul float %290, %295
  store float %296, ptr %32, align 4, !tbaa !9
  br label %297

297:                                              ; preds = %285, %292, %282
  %298 = load i64, ptr %15, align 8, !tbaa !5
  %.not464 = icmp eq i64 %298, 0
  br i1 %.not464, label %.thread509, label %299

.thread509:                                       ; preds = %297
  store i64 -1, ptr %41, align 8, !tbaa !5
  br label %.thread511

299:                                              ; preds = %297
  %300 = call i32 @slarrr_(ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %41) #5
  %.pr508 = load i64, ptr %41, align 8, !tbaa !5
  %301 = icmp eq i64 %.pr508, 0
  br i1 %301, label %303, label %.thread511

.thread511:                                       ; preds = %299, %.thread509
  %302 = fneg float %123
  store float %302, ptr %45, align 4, !tbaa !9
  store i64 0, ptr %15, align 8, !tbaa !5
  br label %307

303:                                              ; preds = %299
  store float %123, ptr %45, align 4, !tbaa !9
  %.pr510 = load i64, ptr %15, align 8, !tbaa !5
  %.not465 = icmp eq i64 %.pr510, 0
  br i1 %.not465, label %307, label %304

304:                                              ; preds = %303
  %305 = getelementptr float, ptr %16, i64 %270
  %306 = call i32 @f2c_scopy(ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull @c__1, ptr noundef %305, ptr noundef nonnull @c__1) #5
  br label %307

307:                                              ; preds = %.thread511, %304, %303
  %308 = load i64, ptr %2, align 8, !tbaa !5
  %309 = add nsw i64 %308, -1
  store i64 %309, ptr %24, align 8, !tbaa !5
  %.not466.not519 = icmp sgt i64 %308, 1
  br i1 %.not466.not519, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %307
  %310 = getelementptr float, ptr %56, i64 %271
  %311 = add nsw i64 %308, -1
  %min.iters.check = icmp ult i64 %308, 13
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph
  %312 = mul i64 %165, 20
  %313 = add i64 %312, %23
  %314 = sub i64 %313, %22
  %diff.check = icmp ult i64 %314, 32
  br i1 %diff.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %311, -8
  %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 ]
  %offset.idx = or disjoint i64 %index, 1
  %315 = getelementptr float, ptr %4, i64 %index
  %316 = getelementptr inbounds i8, ptr %315, i64 16
  %wide.load = load <4 x float>, ptr %315, align 4, !tbaa !9
  %wide.load583 = load <4 x float>, ptr %316, align 4, !tbaa !9
  %317 = fmul <4 x float> %wide.load, %wide.load
  %318 = fmul <4 x float> %wide.load583, %wide.load583
  %319 = getelementptr float, ptr %310, i64 %offset.idx
  %320 = getelementptr i8, ptr %319, i64 16
  store <4 x float> %317, ptr %319, align 4, !tbaa !9
  store <4 x float> %318, ptr %320, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %321 = icmp eq i64 %index.next, %n.vec
  br i1 %321, label %middle.block, label %vector.body, !llvm.loop !11

middle.block:                                     ; preds = %vector.body
  %322 = extractelement <4 x float> %wide.load583, i64 3
  %cmp.n = icmp eq i64 %311, %n.vec
  br i1 %cmp.n, label %._crit_edge, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %.lr.ph
  %.0433520.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph ], [ %ind.end, %middle.block ]
  %323 = sub i64 %308, %.0433520.ph
  %xtraiter = and i64 %323, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.preheader, %scalar.ph.prol
  %.0433520.prol = phi i64 [ %328, %scalar.ph.prol ], [ %.0433520.ph, %scalar.ph.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph.prol ], [ 0, %scalar.ph.preheader ]
  %324 = getelementptr inbounds float, ptr %50, i64 %.0433520.prol
  %325 = load float, ptr %324, align 4, !tbaa !9
  %326 = fmul float %325, %325
  %327 = getelementptr float, ptr %310, i64 %.0433520.prol
  store float %326, ptr %327, align 4, !tbaa !9
  %328 = add nuw nsw i64 %.0433520.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol, !llvm.loop !15

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %.lcssa585.unr = phi float [ poison, %scalar.ph.preheader ], [ %325, %scalar.ph.prol ]
  %.0433520.unr = phi i64 [ %.0433520.ph, %scalar.ph.preheader ], [ %328, %scalar.ph.prol ]
  %329 = sub i64 %.0433520.ph, %308
  %330 = icmp ugt i64 %329, -4
  br i1 %330, label %._crit_edge, label %scalar.ph.preheader.new

scalar.ph.preheader.new:                          ; preds = %scalar.ph.prol.loopexit
  %invariant.gep594 = getelementptr i8, ptr %310, i64 4
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph, %scalar.ph.preheader.new
  %.0433520 = phi i64 [ %.0433520.unr, %scalar.ph.preheader.new ], [ %348, %scalar.ph ]
  %331 = getelementptr inbounds float, ptr %50, i64 %.0433520
  %332 = load float, ptr %331, align 4, !tbaa !9
  %333 = fmul float %332, %332
  %334 = getelementptr float, ptr %310, i64 %.0433520
  store float %333, ptr %334, align 4, !tbaa !9
  %335 = getelementptr float, ptr %4, i64 %.0433520
  %336 = load float, ptr %335, align 4, !tbaa !9
  %337 = fmul float %336, %336
  %gep595 = getelementptr float, ptr %invariant.gep594, i64 %.0433520
  store float %337, ptr %gep595, align 4, !tbaa !9
  %338 = add nuw nsw i64 %.0433520, 2
  %339 = getelementptr inbounds float, ptr %50, i64 %338
  %340 = load float, ptr %339, align 4, !tbaa !9
  %341 = fmul float %340, %340
  %342 = getelementptr float, ptr %310, i64 %338
  store float %341, ptr %342, align 4, !tbaa !9
  %343 = add nuw nsw i64 %.0433520, 3
  %344 = getelementptr inbounds float, ptr %50, i64 %343
  %345 = load float, ptr %344, align 4, !tbaa !9
  %346 = fmul float %345, %345
  %347 = getelementptr float, ptr %310, i64 %343
  store float %346, ptr %347, align 4, !tbaa !9
  %348 = add nuw nsw i64 %.0433520, 4
  %exitcond.not.3 = icmp eq i64 %348, %308
  br i1 %exitcond.not.3, label %._crit_edge, label %scalar.ph, !llvm.loop !17

._crit_edge:                                      ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block, %307
  %.lcssa = phi float [ %sqrtf462, %307 ], [ %322, %middle.block ], [ %.lcssa585.unr, %scalar.ph.prol.loopexit ], [ %345, %scalar.ph ]
  store float %.lcssa, ptr %25, align 4, !tbaa !9
  br i1 %71, label %351, label %349

349:                                              ; preds = %._crit_edge
  %350 = fmul float %123, 4.000000e+00
  store float %350, ptr %38, align 4, !tbaa !9
  br label %364

351:                                              ; preds = %._crit_edge
  %352 = fpext float %123 to double
  %353 = call double @sqrt(double noundef %352) #5
  %354 = fmul double %353, 0x3FA99999A0000000
  %355 = fptrunc double %354 to float
  %356 = fmul float %123, 4.000000e+00
  %357 = fcmp ole float %356, %355
  %358 = select i1 %357, float %355, float %356
  store float %358, ptr %38, align 4, !tbaa !9
  %359 = call double @sqrt(double noundef %352) #5
  %360 = fmul double %359, 0x3F747AE140000000
  %361 = fptrunc double %360 to float
  store float %361, ptr %25, align 4, !tbaa !9
  %362 = fcmp ole float %356, %361
  %363 = select i1 %362, float %361, float %356
  br label %364

364:                                              ; preds = %351, %349
  %storemerge = phi float [ %350, %349 ], [ %363, %351 ]
  store float %storemerge, ptr %39, align 4, !tbaa !9
  %365 = getelementptr float, ptr %16, i64 %271
  %366 = getelementptr float, ptr %16, i64 %268
  %367 = getelementptr float, ptr %16, i64 %269
  %368 = getelementptr i64, ptr %18, i64 %165
  %369 = getelementptr i64, ptr %18, i64 %268
  %.idx = mul i64 %165, 24
  %370 = getelementptr i8, ptr %16, i64 %.idx
  %371 = getelementptr i64, ptr %18, i64 %269
  %372 = call i32 @slarre_(ptr noundef %1, ptr noundef nonnull %2, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef nonnull %34, ptr noundef %3, ptr noundef %4, ptr noundef %365, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef nonnull %45, ptr noundef nonnull %49, ptr noundef nonnull %18, ptr noundef nonnull %9, ptr noundef %10, ptr noundef %366, ptr noundef %367, ptr noundef %368, ptr noundef %369, ptr noundef nonnull %16, ptr noundef nonnull %48, ptr noundef %370, ptr noundef %371, ptr noundef nonnull %41) #5
  %373 = load i64, ptr %41, align 8
  %.not467 = icmp eq i64 %373, 0
  br i1 %.not467, label %377, label %374

374:                                              ; preds = %364
  %375 = call i64 @llvm.abs.i64(i64 %373, i1 true)
  %376 = add nuw nsw i64 %375, 10
  store i64 %376, ptr %20, align 8, !tbaa !5
  br label %489

377:                                              ; preds = %364
  br i1 %71, label %378, label %384

378:                                              ; preds = %377
  %379 = call i32 @slarrv_(ptr noundef nonnull %2, ptr noundef nonnull %31, ptr noundef nonnull %32, ptr noundef %3, ptr noundef %4, ptr noundef nonnull %48, ptr noundef nonnull %18, ptr noundef nonnull %9, ptr noundef nonnull @c__1, ptr noundef nonnull %9, ptr noundef nonnull @c_b18, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef %10, ptr noundef %366, ptr noundef %367, ptr noundef %368, ptr noundef %369, ptr noundef nonnull %16, ptr noundef %11, ptr noundef nonnull %12, ptr noundef %14, ptr noundef %370, ptr noundef %371, ptr noundef nonnull %41) #5
  %380 = load i64, ptr %41, align 8
  %.not469 = icmp eq i64 %380, 0
  br i1 %.not469, label %.loopexit518, label %381

381:                                              ; preds = %378
  %382 = call i64 @llvm.abs.i64(i64 %380, i1 true)
  %383 = add nuw nsw i64 %382, 20
  store i64 %383, ptr %20, align 8, !tbaa !5
  br label %489

384:                                              ; preds = %377
  %385 = load i64, ptr %9, align 8, !tbaa !5
  store i64 %385, ptr %24, align 8, !tbaa !5
  %.not468521 = icmp slt i64 %385, 1
  br i1 %.not468521, label %.loopexit518, label %.lr.ph524

.lr.ph524:                                        ; preds = %384
  %386 = getelementptr i64, ptr %57, i64 %165
  %xtraiter586 = and i64 %385, 1
  %387 = icmp eq i64 %385, 1
  br i1 %387, label %..loopexit518_crit_edge.unr-lcssa, label %.lr.ph524.new

.lr.ph524.new:                                    ; preds = %.lr.ph524
  %unroll_iter = and i64 %385, 9223372036854775806
  %invariant.gep596 = getelementptr i8, ptr %386, i64 8
  br label %388

388:                                              ; preds = %388, %.lr.ph524.new
  %.1434522 = phi i64 [ 1, %.lr.ph524.new ], [ %406, %388 ]
  %niter = phi i64 [ 0, %.lr.ph524.new ], [ %niter.next.1, %388 ]
  %389 = getelementptr i64, ptr %386, i64 %.1434522
  %390 = load i64, ptr %389, align 8, !tbaa !5
  %391 = getelementptr inbounds i64, ptr %57, i64 %390
  %392 = load i64, ptr %391, align 8, !tbaa !5
  %393 = getelementptr inbounds float, ptr %50, i64 %392
  %394 = load float, ptr %393, align 4, !tbaa !9
  %395 = getelementptr inbounds float, ptr %51, i64 %.1434522
  %396 = load float, ptr %395, align 4, !tbaa !9
  %397 = fadd float %394, %396
  store float %397, ptr %395, align 4, !tbaa !9
  %gep597 = getelementptr i64, ptr %invariant.gep596, i64 %.1434522
  %398 = load i64, ptr %gep597, align 8, !tbaa !5
  %399 = getelementptr inbounds i64, ptr %57, i64 %398
  %400 = load i64, ptr %399, align 8, !tbaa !5
  %401 = getelementptr inbounds float, ptr %50, i64 %400
  %402 = load float, ptr %401, align 4, !tbaa !9
  %403 = getelementptr float, ptr %10, i64 %.1434522
  %404 = load float, ptr %403, align 4, !tbaa !9
  %405 = fadd float %402, %404
  store float %405, ptr %403, align 4, !tbaa !9
  %406 = add nuw i64 %.1434522, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %..loopexit518_crit_edge.unr-lcssa, label %388, !llvm.loop !18

..loopexit518_crit_edge.unr-lcssa:                ; preds = %388, %.lr.ph524
  %.lcssa584.ph = phi i64 [ poison, %.lr.ph524 ], [ %398, %388 ]
  %.1434522.unr = phi i64 [ 1, %.lr.ph524 ], [ %406, %388 ]
  %lcmp.mod587.not = icmp eq i64 %xtraiter586, 0
  br i1 %lcmp.mod587.not, label %..loopexit518_crit_edge, label %..loopexit518_crit_edge.epilog-lcssa

..loopexit518_crit_edge.epilog-lcssa:             ; preds = %..loopexit518_crit_edge.unr-lcssa
  %407 = getelementptr i64, ptr %386, i64 %.1434522.unr
  %408 = load i64, ptr %407, align 8, !tbaa !5
  %409 = getelementptr inbounds i64, ptr %57, i64 %408
  %410 = load i64, ptr %409, align 8, !tbaa !5
  %411 = getelementptr inbounds float, ptr %50, i64 %410
  %412 = load float, ptr %411, align 4, !tbaa !9
  %413 = getelementptr inbounds float, ptr %51, i64 %.1434522.unr
  %414 = load float, ptr %413, align 4, !tbaa !9
  %415 = fadd float %412, %414
  store float %415, ptr %413, align 4, !tbaa !9
  br label %..loopexit518_crit_edge

..loopexit518_crit_edge:                          ; preds = %..loopexit518_crit_edge.unr-lcssa, %..loopexit518_crit_edge.epilog-lcssa
  %.lcssa584 = phi i64 [ %.lcssa584.ph, %..loopexit518_crit_edge.unr-lcssa ], [ %408, %..loopexit518_crit_edge.epilog-lcssa ]
  store i64 %.lcssa584, ptr %35, align 8, !tbaa !5
  br label %.loopexit518

.loopexit518:                                     ; preds = %384, %..loopexit518_crit_edge, %378
  %416 = load i64, ptr %15, align 8, !tbaa !5
  %.not470 = icmp eq i64 %416, 0
  br i1 %.not470, label %.loopexit517, label %417

417:                                              ; preds = %.loopexit518
  %418 = load i64, ptr %9, align 8, !tbaa !5
  %419 = getelementptr i64, ptr %57, i64 %165
  %420 = getelementptr i64, ptr %419, i64 %418
  %421 = load i64, ptr %420, align 8, !tbaa !5
  store i64 %421, ptr %24, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %369, i64 -8
  %.not471533 = icmp slt i64 %421, 1
  br i1 %.not471533, label %.loopexit517, label %.lr.ph538

.lr.ph538:                                        ; preds = %417
  %422 = fmul float %123, 4.000000e+00
  %423 = getelementptr float, ptr %16, i64 %270
  %invariant.gep539 = getelementptr i8, ptr %423, i64 -4
  %424 = getelementptr float, ptr %56, i64 %271
  br label %425

425:                                              ; preds = %.lr.ph538, %._crit_edge529.thread
  %426 = phi i64 [ %421, %.lr.ph538 ], [ %450, %._crit_edge529.thread ]
  %.0430536 = phi i64 [ 1, %.lr.ph538 ], [ %.1, %._crit_edge529.thread ]
  %.0436535 = phi i64 [ 1, %.lr.ph538 ], [ %.1437, %._crit_edge529.thread ]
  %.0440534 = phi i64 [ 1, %.lr.ph538 ], [ %427, %._crit_edge529.thread ]
  %427 = add nuw nsw i64 %.0440534, 1
  %428 = getelementptr inbounds i64, ptr %57, i64 %.0440534
  %429 = load i64, ptr %428, align 8, !tbaa !5
  %reass.sub = sub i64 %429, %.0436535
  %430 = add i64 %reass.sub, 1
  store i64 %430, ptr %29, align 8, !tbaa !5
  %431 = load i64, ptr %9, align 8, !tbaa !5
  %.not558 = icmp sgt i64 %.0430536, %431
  br i1 %.not558, label %._crit_edge529.thread, label %.lr.ph528.preheader

.lr.ph528.preheader:                              ; preds = %425
  %432 = add nsw i64 %.0430536, -1
  br label %.lr.ph528

.lr.ph528:                                        ; preds = %.lr.ph528.preheader, %436
  %.0442526 = phi i64 [ %437, %436 ], [ %432, %.lr.ph528.preheader ]
  %433 = getelementptr i64, ptr %368, i64 %.0442526
  %434 = load i64, ptr %433, align 8, !tbaa !5
  %435 = icmp eq i64 %434, %.0440534
  br i1 %435, label %436, label %._crit_edge529

436:                                              ; preds = %.lr.ph528
  %437 = add i64 %.0442526, 1
  %exitcond562.not = icmp eq i64 %437, %431
  br i1 %exitcond562.not, label %._crit_edge529, label %.lr.ph528

._crit_edge529:                                   ; preds = %436, %.lr.ph528
  %.0442.lcssa = phi i64 [ %431, %436 ], [ %.0442526, %.lr.ph528 ]
  %438 = icmp slt i64 %.0442.lcssa, %.0430536
  br i1 %438, label %._crit_edge529.thread, label %439

439:                                              ; preds = %._crit_edge529
  %440 = add i64 %.0430536, %268
  %441 = getelementptr inbounds i64, ptr %57, i64 %440
  %442 = load i64, ptr %441, align 8, !tbaa !5
  %443 = add nsw i64 %442, -1
  store i64 %443, ptr %44, align 8, !tbaa !5
  store i64 %442, ptr %46, align 8, !tbaa !5
  %gep = getelementptr i64, ptr %invariant.gep, i64 %.0442.lcssa
  %444 = load i64, ptr %gep, align 8, !tbaa !5
  store i64 %444, ptr %42, align 8, !tbaa !5
  store float %422, ptr %39, align 4, !tbaa !9
  %gep540 = getelementptr float, ptr %invariant.gep539, i64 %.0436535
  %445 = getelementptr float, ptr %424, i64 %.0436535
  %446 = getelementptr inbounds float, ptr %51, i64 %.0430536
  %447 = getelementptr inbounds float, ptr %56, i64 %440
  %448 = call i32 @slarrj_(ptr noundef nonnull %29, ptr noundef %gep540, ptr noundef %445, ptr noundef nonnull %46, ptr noundef nonnull %42, ptr noundef nonnull %39, ptr noundef nonnull %44, ptr noundef nonnull %446, ptr noundef nonnull %447, ptr noundef %370, ptr noundef %371, ptr noundef nonnull %48, ptr noundef nonnull %36, ptr noundef nonnull %41) #5
  %449 = add nuw nsw i64 %.0442.lcssa, 1
  %.pre = load i64, ptr %24, align 8, !tbaa !5
  br label %._crit_edge529.thread

._crit_edge529.thread:                            ; preds = %425, %._crit_edge529, %439
  %450 = phi i64 [ %.pre, %439 ], [ %426, %._crit_edge529 ], [ %426, %425 ]
  %.1 = phi i64 [ %449, %439 ], [ %.0430536, %._crit_edge529 ], [ %.0430536, %425 ]
  %.1437 = add nsw i64 %429, 1
  %.not471.not = icmp slt i64 %.0440534, %450
  br i1 %.not471.not, label %425, label %.loopexit517, !llvm.loop !19

.loopexit517:                                     ; preds = %._crit_edge529.thread, %417, %.loopexit518
  %451 = load float, ptr %40, align 4, !tbaa !9
  %452 = fcmp une float %451, 1.000000e+00
  br i1 %452, label %453, label %456

453:                                              ; preds = %.loopexit517
  %454 = fdiv float 1.000000e+00, %451
  store float %454, ptr %25, align 4, !tbaa !9
  %455 = call i32 @f2c_sscal(ptr noundef nonnull %9, ptr noundef nonnull %25, ptr noundef %10, ptr noundef nonnull @c__1) #5
  br label %456

456:                                              ; preds = %453, %.loopexit517
  %457 = load i64, ptr %49, align 8, !tbaa !5
  %458 = icmp sgt i64 %457, 1
  br i1 %458, label %459, label %.loopexit

459:                                              ; preds = %456
  br i1 %71, label %464, label %460

460:                                              ; preds = %459
  %461 = call i32 @slasrt_(ptr noundef nonnull @.str.2, ptr noundef nonnull %9, ptr noundef %10, ptr noundef nonnull %41) #5
  %462 = load i64, ptr %41, align 8, !tbaa !5
  %.not472 = icmp eq i64 %462, 0
  br i1 %.not472, label %.loopexit, label %463

463:                                              ; preds = %460
  store i64 3, ptr %20, align 8, !tbaa !5
  br label %489

464:                                              ; preds = %459
  %465 = load i64, ptr %9, align 8, !tbaa !5
  %466 = add nsw i64 %465, -1
  store i64 %466, ptr %24, align 8, !tbaa !5
  %invariant.gep550 = getelementptr i8, ptr %54, i64 4
  %.not473554 = icmp slt i64 %465, 2
  br i1 %.not473554, label %.loopexit, label %.lr.ph557

.lr.ph557:                                        ; preds = %464, %._crit_edge547.thread
  %467 = phi i64 [ %488, %._crit_edge547.thread ], [ %466, %464 ]
  %.2555 = phi i64 [ %471, %._crit_edge547.thread ], [ 1, %464 ]
  %468 = getelementptr inbounds float, ptr %51, i64 %.2555
  %469 = load float, ptr %468, align 4, !tbaa !9
  %470 = load i64, ptr %9, align 8, !tbaa !5
  %471 = add nuw nsw i64 %.2555, 1
  %.not474541.not = icmp slt i64 %.2555, %470
  br i1 %.not474541.not, label %.lr.ph546, label %._crit_edge547.thread

.lr.ph546:                                        ; preds = %.lr.ph557, %.lr.ph546
  %.0431544 = phi i64 [ %.1432, %.lr.ph546 ], [ 0, %.lr.ph557 ]
  %.0435543 = phi i64 [ %475, %.lr.ph546 ], [ %471, %.lr.ph557 ]
  %.0438542 = phi float [ %.1439, %.lr.ph546 ], [ %469, %.lr.ph557 ]
  %472 = getelementptr inbounds float, ptr %51, i64 %.0435543
  %473 = load float, ptr %472, align 4, !tbaa !9
  %474 = fcmp olt float %473, %.0438542
  %.1439 = select i1 %474, float %473, float %.0438542
  %.1432 = select i1 %474, i64 %.0435543, i64 %.0431544
  %475 = add nuw nsw i64 %.0435543, 1
  %.not474.not = icmp slt i64 %.0435543, %470
  br i1 %.not474.not, label %.lr.ph546, label %._crit_edge547, !llvm.loop !20

._crit_edge547:                                   ; preds = %.lr.ph546
  %.not475 = icmp eq i64 %.1432, 0
  br i1 %.not475, label %._crit_edge547.thread, label %476

476:                                              ; preds = %._crit_edge547
  %477 = getelementptr inbounds float, ptr %51, i64 %.1432
  store float %469, ptr %477, align 4, !tbaa !9
  store float %.1439, ptr %468, align 4, !tbaa !9
  %478 = mul nsw i64 %.1432, %52
  %gep551 = getelementptr float, ptr %invariant.gep550, i64 %478
  %479 = mul nsw i64 %.2555, %52
  %gep553 = getelementptr float, ptr %invariant.gep550, i64 %479
  %480 = call i32 @f2c_sswap(ptr noundef nonnull %2, ptr noundef %gep551, ptr noundef nonnull @c__1, ptr noundef %gep553, ptr noundef nonnull @c__1) #5
  %.idx476 = shl i64 %.1432, 4
  %481 = getelementptr i8, ptr %55, i64 %.idx476
  %482 = getelementptr i8, ptr %481, i64 -8
  %483 = load i64, ptr %482, align 8, !tbaa !5
  %.idx477 = shl i64 %.2555, 4
  %484 = getelementptr i8, ptr %55, i64 %.idx477
  %485 = getelementptr i8, ptr %484, i64 -8
  %486 = load i64, ptr %481, align 8, !tbaa !5
  store i64 %486, ptr %35, align 8, !tbaa !5
  %487 = load <2 x i64>, ptr %485, align 8, !tbaa !5
  store <2 x i64> %487, ptr %482, align 8, !tbaa !5
  store i64 %483, ptr %485, align 8, !tbaa !5
  store i64 %486, ptr %484, align 8, !tbaa !5
  %.pre565 = load i64, ptr %24, align 8, !tbaa !5
  br label %._crit_edge547.thread

._crit_edge547.thread:                            ; preds = %.lr.ph557, %._crit_edge547, %476
  %488 = phi i64 [ %467, %._crit_edge547 ], [ %.pre565, %476 ], [ %467, %.lr.ph557 ]
  %.not473.not = icmp slt i64 %.2555, %488
  br i1 %.not473.not, label %.lr.ph557, label %.loopexit, !llvm.loop !21

.loopexit:                                        ; preds = %._crit_edge547.thread, %464, %460, %456
  store float %136, ptr %16, align 4, !tbaa !9
  store i64 %.0429, ptr %18, align 8, !tbaa !5
  br label %489

489:                                              ; preds = %.thread569, %235, %262, %261, %260, %239, %164, %177, %179, %163, %.loopexit, %463, %381, %374, %.thread503
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  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 @lsame_(ptr noundef, ptr noundef) local_unnamed_addr #2

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare float @sqrtf(float) local_unnamed_addr

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 = { 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, !16}
!16 = !{!"llvm.loop.unroll.disable"}
!17 = distinct !{!17, !12, !13}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}


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