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

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

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

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

145:                                              ; preds = %24
  %146 = load ptr, ptr %46, align 8, !tbaa !5
  %147 = getelementptr inbounds float, ptr %146, i64 1
  %148 = load float, ptr %147, align 4, !tbaa !11
  %149 = fcmp olt float %148, 0.000000e+00
  br i1 %149, label %150, label %153

150:                                              ; preds = %145
  %151 = load ptr, ptr %46, align 8, !tbaa !5
  %152 = getelementptr inbounds float, ptr %151, i64 1
  store float 1.000000e+00, ptr %152, align 4, !tbaa !11
  br label %158

153:                                              ; preds = %145
  %154 = load ptr, ptr %46, align 8, !tbaa !5
  %155 = getelementptr inbounds float, ptr %154, i64 1
  %156 = load float, ptr %155, align 4, !tbaa !11
  %157 = fptosi float %156 to i64
  store i64 %157, ptr %68, align 8, !tbaa !9
  br label %158

158:                                              ; preds = %153, %150
  br label %159

159:                                              ; preds = %158, %24
  %160 = load ptr, ptr %28, align 8, !tbaa !5
  %161 = load i64, ptr %160, align 8, !tbaa !9
  %162 = sitofp i64 %161 to float
  %163 = fpext float %162 to double
  %164 = call double @slamch_(ptr noundef @.str)
  %165 = fmul double %163, %164
  %166 = fptrunc double %165 to float
  store float %166, ptr %65, align 4, !tbaa !11
  store i64 10, ptr %77, align 8, !tbaa !9
  store float 5.000000e-01, ptr %79, align 4, !tbaa !11
  store float 2.500000e-01, ptr %66, align 4, !tbaa !11
  store i64 0, ptr %74, align 8, !tbaa !9
  %167 = load ptr, ptr %45, align 8, !tbaa !5
  %168 = load i64, ptr %167, align 8, !tbaa !9
  %169 = icmp sge i64 %168, 2
  br i1 %169, label %170, label %186

170:                                              ; preds = %159
  %171 = load ptr, ptr %46, align 8, !tbaa !5
  %172 = getelementptr inbounds float, ptr %171, i64 2
  %173 = load float, ptr %172, align 4, !tbaa !11
  %174 = fcmp olt float %173, 0.000000e+00
  br i1 %174, label %175, label %180

175:                                              ; preds = %170
  %176 = load i64, ptr %77, align 8, !tbaa !9
  %177 = sitofp i64 %176 to float
  %178 = load ptr, ptr %46, align 8, !tbaa !5
  %179 = getelementptr inbounds float, ptr %178, i64 2
  store float %177, ptr %179, align 4, !tbaa !11
  br label %185

180:                                              ; preds = %170
  %181 = load ptr, ptr %46, align 8, !tbaa !5
  %182 = getelementptr inbounds float, ptr %181, i64 2
  %183 = load float, ptr %182, align 4, !tbaa !11
  %184 = fptosi float %183 to i64
  store i64 %184, ptr %77, align 8, !tbaa !9
  br label %185

185:                                              ; preds = %180, %175
  br label %186

186:                                              ; preds = %185, %159
  %187 = load ptr, ptr %45, align 8, !tbaa !5
  %188 = load i64, ptr %187, align 8, !tbaa !9
  %189 = icmp sge i64 %188, 3
  br i1 %189, label %190, label %213

190:                                              ; preds = %186
  %191 = load ptr, ptr %46, align 8, !tbaa !5
  %192 = getelementptr inbounds float, ptr %191, i64 3
  %193 = load float, ptr %192, align 4, !tbaa !11
  %194 = fcmp olt float %193, 0.000000e+00
  br i1 %194, label %195, label %205

195:                                              ; preds = %190
  %196 = load i64, ptr %74, align 8, !tbaa !9
  %197 = icmp ne i64 %196, 0
  br i1 %197, label %198, label %201

198:                                              ; preds = %195
  %199 = load ptr, ptr %46, align 8, !tbaa !5
  %200 = getelementptr inbounds float, ptr %199, i64 3
  store float 0.000000e+00, ptr %200, align 4, !tbaa !11
  br label %204

201:                                              ; preds = %195
  %202 = load ptr, ptr %46, align 8, !tbaa !5
  %203 = getelementptr inbounds float, ptr %202, i64 3
  store float 1.000000e+00, ptr %203, align 4, !tbaa !11
  br label %204

204:                                              ; preds = %201, %198
  br label %212

205:                                              ; preds = %190
  %206 = load ptr, ptr %46, align 8, !tbaa !5
  %207 = getelementptr inbounds float, ptr %206, i64 3
  %208 = load float, ptr %207, align 4, !tbaa !11
  %209 = fcmp oeq float %208, 0.000000e+00
  %210 = zext i1 %209 to i32
  %211 = sext i32 %210 to i64
  store i64 %211, ptr %74, align 8, !tbaa !9
  br label %212

212:                                              ; preds = %205, %204
  br label %213

213:                                              ; preds = %212, %186
  %214 = load i64, ptr %68, align 8, !tbaa !9
  %215 = icmp eq i64 %214, 0
  br i1 %215, label %220, label %216

216:                                              ; preds = %213
  %217 = load ptr, ptr %42, align 8, !tbaa !5
  %218 = load i64, ptr %217, align 8, !tbaa !9
  %219 = icmp eq i64 %218, 0
  br i1 %219, label %220, label %221

220:                                              ; preds = %216, %213
  store i64 0, ptr %78, align 8, !tbaa !9
  br label %227

221:                                              ; preds = %216
  %222 = load i64, ptr %74, align 8, !tbaa !9
  %223 = icmp ne i64 %222, 0
  br i1 %223, label %224, label %225

224:                                              ; preds = %221
  store i64 1, ptr %78, align 8, !tbaa !9
  br label %226

225:                                              ; preds = %221
  store i64 2, ptr %78, align 8, !tbaa !9
  br label %226

226:                                              ; preds = %225, %224
  br label %227

227:                                              ; preds = %226, %220
  %228 = load ptr, ptr %27, align 8, !tbaa !5
  %229 = call i64 @lsame_(ptr noundef %228, ptr noundef @.str.1)
  store i64 %229, ptr %76, align 8, !tbaa !9
  %230 = load ptr, ptr %26, align 8, !tbaa !5
  %231 = call i64 @lsame_(ptr noundef %230, ptr noundef @.str.2)
  %232 = icmp ne i64 %231, 0
  br i1 %232, label %239, label %233

233:                                              ; preds = %227
  %234 = load ptr, ptr %26, align 8, !tbaa !5
  %235 = call i64 @lsame_(ptr noundef %234, ptr noundef @.str.3)
  %236 = icmp ne i64 %235, 0
  br i1 %236, label %239, label %237

237:                                              ; preds = %233
  %238 = load ptr, ptr %49, align 8, !tbaa !5
  store i64 -1, ptr %238, align 8, !tbaa !9
  br label %327

239:                                              ; preds = %233, %227
  %240 = load i64, ptr %76, align 8, !tbaa !9
  %241 = icmp ne i64 %240, 0
  br i1 %241, label %248, label %242

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

246:                                              ; preds = %242
  %247 = load ptr, ptr %49, align 8, !tbaa !5
  store i64 -2, ptr %247, align 8, !tbaa !9
  br label %326

248:                                              ; preds = %242, %239
  %249 = load ptr, ptr %28, align 8, !tbaa !5
  %250 = load i64, ptr %249, align 8, !tbaa !9
  %251 = icmp slt i64 %250, 0
  br i1 %251, label %252, label %254

252:                                              ; preds = %248
  %253 = load ptr, ptr %49, align 8, !tbaa !5
  store i64 -3, ptr %253, align 8, !tbaa !9
  br label %325

254:                                              ; preds = %248
  %255 = load ptr, ptr %29, align 8, !tbaa !5
  %256 = load i64, ptr %255, align 8, !tbaa !9
  %257 = icmp slt i64 %256, 0
  br i1 %257, label %258, label %260

258:                                              ; preds = %254
  %259 = load ptr, ptr %49, align 8, !tbaa !5
  store i64 -4, ptr %259, align 8, !tbaa !9
  br label %324

260:                                              ; preds = %254
  %261 = load ptr, ptr %31, align 8, !tbaa !5
  %262 = load i64, ptr %261, align 8, !tbaa !9
  %263 = load ptr, ptr %28, align 8, !tbaa !5
  %264 = load i64, ptr %263, align 8, !tbaa !9
  %265 = icmp sge i64 1, %264
  br i1 %265, label %266, label %267

266:                                              ; preds = %260
  br label %270

267:                                              ; preds = %260
  %268 = load ptr, ptr %28, align 8, !tbaa !5
  %269 = load i64, ptr %268, align 8, !tbaa !9
  br label %270

270:                                              ; preds = %267, %266
  %271 = phi i64 [ 1, %266 ], [ %269, %267 ]
  %272 = icmp slt i64 %262, %271
  br i1 %272, label %273, label %275

273:                                              ; preds = %270
  %274 = load ptr, ptr %49, align 8, !tbaa !5
  store i64 -6, ptr %274, align 8, !tbaa !9
  br label %323

275:                                              ; preds = %270
  %276 = load ptr, ptr %33, align 8, !tbaa !5
  %277 = load i64, ptr %276, align 8, !tbaa !9
  %278 = load ptr, ptr %28, align 8, !tbaa !5
  %279 = load i64, ptr %278, align 8, !tbaa !9
  %280 = icmp sge i64 1, %279
  br i1 %280, label %281, label %282

281:                                              ; preds = %275
  br label %285

282:                                              ; preds = %275
  %283 = load ptr, ptr %28, align 8, !tbaa !5
  %284 = load i64, ptr %283, align 8, !tbaa !9
  br label %285

285:                                              ; preds = %282, %281
  %286 = phi i64 [ 1, %281 ], [ %284, %282 ]
  %287 = icmp slt i64 %277, %286
  br i1 %287, label %288, label %290

288:                                              ; preds = %285
  %289 = load ptr, ptr %49, align 8, !tbaa !5
  store i64 -8, ptr %289, align 8, !tbaa !9
  br label %322

290:                                              ; preds = %285
  %291 = load ptr, ptr %37, align 8, !tbaa !5
  %292 = load i64, ptr %291, align 8, !tbaa !9
  %293 = load ptr, ptr %28, align 8, !tbaa !5
  %294 = load i64, ptr %293, align 8, !tbaa !9
  %295 = icmp sge i64 1, %294
  br i1 %295, label %296, label %297

296:                                              ; preds = %290
  br label %300

297:                                              ; preds = %290
  %298 = load ptr, ptr %28, align 8, !tbaa !5
  %299 = load i64, ptr %298, align 8, !tbaa !9
  br label %300

300:                                              ; preds = %297, %296
  %301 = phi i64 [ 1, %296 ], [ %299, %297 ]
  %302 = icmp slt i64 %292, %301
  br i1 %302, label %303, label %305

303:                                              ; preds = %300
  %304 = load ptr, ptr %49, align 8, !tbaa !5
  store i64 -11, ptr %304, align 8, !tbaa !9
  br label %321

305:                                              ; preds = %300
  %306 = load ptr, ptr %39, align 8, !tbaa !5
  %307 = load i64, ptr %306, align 8, !tbaa !9
  %308 = load ptr, ptr %28, align 8, !tbaa !5
  %309 = load i64, ptr %308, align 8, !tbaa !9
  %310 = icmp sge i64 1, %309
  br i1 %310, label %311, label %312

311:                                              ; preds = %305
  br label %315

312:                                              ; preds = %305
  %313 = load ptr, ptr %28, align 8, !tbaa !5
  %314 = load i64, ptr %313, align 8, !tbaa !9
  br label %315

315:                                              ; preds = %312, %311
  %316 = phi i64 [ 1, %311 ], [ %314, %312 ]
  %317 = icmp slt i64 %307, %316
  br i1 %317, label %318, label %320

318:                                              ; preds = %315
  %319 = load ptr, ptr %49, align 8, !tbaa !5
  store i64 -13, ptr %319, align 8, !tbaa !9
  br label %320

320:                                              ; preds = %318, %315
  br label %321

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

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

323:                                              ; preds = %322, %273
  br label %324

324:                                              ; preds = %323, %258
  br label %325

325:                                              ; preds = %324, %252
  br label %326

326:                                              ; preds = %325, %246
  br label %327

327:                                              ; preds = %326, %237
  %328 = load ptr, ptr %49, align 8, !tbaa !5
  %329 = load i64, ptr %328, align 8, !tbaa !9
  %330 = icmp ne i64 %329, 0
  br i1 %330, label %331, label %336

331:                                              ; preds = %327
  %332 = load ptr, ptr %49, align 8, !tbaa !5
  %333 = load i64, ptr %332, align 8, !tbaa !9
  %334 = sub nsw i64 0, %333
  store i64 %334, ptr %62, align 8, !tbaa !9
  %335 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %62)
  store i32 0, ptr %25, align 4
  store i32 1, ptr %80, align 4
  br label %878

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

340:                                              ; preds = %336
  %341 = load ptr, ptr %29, align 8, !tbaa !5
  %342 = load i64, ptr %341, align 8, !tbaa !9
  %343 = icmp eq i64 %342, 0
  br i1 %343, label %344, label %411

344:                                              ; preds = %340, %336
  %345 = load ptr, ptr %40, align 8, !tbaa !5
  store float 1.000000e+00, ptr %345, align 4, !tbaa !11
  %346 = load ptr, ptr %29, align 8, !tbaa !5
  %347 = load i64, ptr %346, align 8, !tbaa !9
  store i64 %347, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %348

348:                                              ; preds = %407, %344
  %349 = load i64, ptr %69, align 8, !tbaa !9
  %350 = load i64, ptr %62, align 8, !tbaa !9
  %351 = icmp sle i64 %349, %350
  br i1 %351, label %352, label %410

352:                                              ; preds = %348
  %353 = load ptr, ptr %41, align 8, !tbaa !5
  %354 = load i64, ptr %69, align 8, !tbaa !9
  %355 = getelementptr inbounds float, ptr %353, i64 %354
  store float 0.000000e+00, ptr %355, align 4, !tbaa !11
  %356 = load ptr, ptr %42, align 8, !tbaa !5
  %357 = load i64, ptr %356, align 8, !tbaa !9
  %358 = icmp sge i64 %357, 1
  br i1 %358, label %359, label %370

359:                                              ; preds = %352
  %360 = load ptr, ptr %43, align 8, !tbaa !5
  %361 = load i64, ptr %69, align 8, !tbaa !9
  %362 = load i64, ptr %58, align 8, !tbaa !9
  %363 = add nsw i64 %361, %362
  %364 = getelementptr inbounds float, ptr %360, i64 %363
  store float 1.000000e+00, ptr %364, align 4, !tbaa !11
  %365 = load ptr, ptr %44, align 8, !tbaa !5
  %366 = load i64, ptr %69, align 8, !tbaa !9
  %367 = load i64, ptr %60, align 8, !tbaa !9
  %368 = add nsw i64 %366, %367
  %369 = getelementptr inbounds float, ptr %365, i64 %368
  store float 1.000000e+00, ptr %369, align 4, !tbaa !11
  br label %406

370:                                              ; preds = %352
  %371 = load ptr, ptr %42, align 8, !tbaa !5
  %372 = load i64, ptr %371, align 8, !tbaa !9
  %373 = icmp sge i64 %372, 2
  br i1 %373, label %374, label %387

374:                                              ; preds = %370
  %375 = load ptr, ptr %43, align 8, !tbaa !5
  %376 = load i64, ptr %69, align 8, !tbaa !9
  %377 = load i64, ptr %58, align 8, !tbaa !9
  %378 = shl i64 %377, 1
  %379 = add nsw i64 %376, %378
  %380 = getelementptr inbounds float, ptr %375, i64 %379
  store float 0.000000e+00, ptr %380, align 4, !tbaa !11
  %381 = load ptr, ptr %44, align 8, !tbaa !5
  %382 = load i64, ptr %69, align 8, !tbaa !9
  %383 = load i64, ptr %60, align 8, !tbaa !9
  %384 = shl i64 %383, 1
  %385 = add nsw i64 %382, %384
  %386 = getelementptr inbounds float, ptr %381, i64 %385
  store float 0.000000e+00, ptr %386, align 4, !tbaa !11
  br label %405

387:                                              ; preds = %370
  %388 = load ptr, ptr %42, align 8, !tbaa !5
  %389 = load i64, ptr %388, align 8, !tbaa !9
  %390 = icmp sge i64 %389, 3
  br i1 %390, label %391, label %404

391:                                              ; preds = %387
  %392 = load ptr, ptr %43, align 8, !tbaa !5
  %393 = load i64, ptr %69, align 8, !tbaa !9
  %394 = load i64, ptr %58, align 8, !tbaa !9
  %395 = mul nsw i64 %394, 3
  %396 = add nsw i64 %393, %395
  %397 = getelementptr inbounds float, ptr %392, i64 %396
  store float 1.000000e+00, ptr %397, align 4, !tbaa !11
  %398 = load ptr, ptr %44, align 8, !tbaa !5
  %399 = load i64, ptr %69, align 8, !tbaa !9
  %400 = load i64, ptr %60, align 8, !tbaa !9
  %401 = mul nsw i64 %400, 3
  %402 = add nsw i64 %399, %401
  %403 = getelementptr inbounds float, ptr %398, i64 %402
  store float 1.000000e+00, ptr %403, align 4, !tbaa !11
  br label %404

404:                                              ; preds = %391, %387
  br label %405

405:                                              ; preds = %404, %374
  br label %406

406:                                              ; preds = %405, %359
  br label %407

407:                                              ; preds = %406
  %408 = load i64, ptr %69, align 8, !tbaa !9
  %409 = add nsw i64 %408, 1
  store i64 %409, ptr %69, align 8, !tbaa !9
  br label %348, !llvm.loop !13

410:                                              ; preds = %348
  store i32 0, ptr %25, align 4
  store i32 1, ptr %80, align 4
  br label %878

411:                                              ; preds = %340
  %412 = load ptr, ptr %40, align 8, !tbaa !5
  store float 0.000000e+00, ptr %412, align 4, !tbaa !11
  %413 = load ptr, ptr %29, align 8, !tbaa !5
  %414 = load i64, ptr %413, align 8, !tbaa !9
  store i64 %414, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %415

415:                                              ; preds = %474, %411
  %416 = load i64, ptr %69, align 8, !tbaa !9
  %417 = load i64, ptr %62, align 8, !tbaa !9
  %418 = icmp sle i64 %416, %417
  br i1 %418, label %419, label %477

419:                                              ; preds = %415
  %420 = load ptr, ptr %41, align 8, !tbaa !5
  %421 = load i64, ptr %69, align 8, !tbaa !9
  %422 = getelementptr inbounds float, ptr %420, i64 %421
  store float 1.000000e+00, ptr %422, align 4, !tbaa !11
  %423 = load ptr, ptr %42, align 8, !tbaa !5
  %424 = load i64, ptr %423, align 8, !tbaa !9
  %425 = icmp sge i64 %424, 1
  br i1 %425, label %426, label %437

426:                                              ; preds = %419
  %427 = load ptr, ptr %43, align 8, !tbaa !5
  %428 = load i64, ptr %69, align 8, !tbaa !9
  %429 = load i64, ptr %58, align 8, !tbaa !9
  %430 = add nsw i64 %428, %429
  %431 = getelementptr inbounds float, ptr %427, i64 %430
  store float 1.000000e+00, ptr %431, align 4, !tbaa !11
  %432 = load ptr, ptr %44, align 8, !tbaa !5
  %433 = load i64, ptr %69, align 8, !tbaa !9
  %434 = load i64, ptr %60, align 8, !tbaa !9
  %435 = add nsw i64 %433, %434
  %436 = getelementptr inbounds float, ptr %432, i64 %435
  store float 1.000000e+00, ptr %436, align 4, !tbaa !11
  br label %473

437:                                              ; preds = %419
  %438 = load ptr, ptr %42, align 8, !tbaa !5
  %439 = load i64, ptr %438, align 8, !tbaa !9
  %440 = icmp sge i64 %439, 2
  br i1 %440, label %441, label %454

441:                                              ; preds = %437
  %442 = load ptr, ptr %43, align 8, !tbaa !5
  %443 = load i64, ptr %69, align 8, !tbaa !9
  %444 = load i64, ptr %58, align 8, !tbaa !9
  %445 = shl i64 %444, 1
  %446 = add nsw i64 %443, %445
  %447 = getelementptr inbounds float, ptr %442, i64 %446
  store float 1.000000e+00, ptr %447, align 4, !tbaa !11
  %448 = load ptr, ptr %44, align 8, !tbaa !5
  %449 = load i64, ptr %69, align 8, !tbaa !9
  %450 = load i64, ptr %60, align 8, !tbaa !9
  %451 = shl i64 %450, 1
  %452 = add nsw i64 %449, %451
  %453 = getelementptr inbounds float, ptr %448, i64 %452
  store float 1.000000e+00, ptr %453, align 4, !tbaa !11
  br label %472

454:                                              ; preds = %437
  %455 = load ptr, ptr %42, align 8, !tbaa !5
  %456 = load i64, ptr %455, align 8, !tbaa !9
  %457 = icmp sge i64 %456, 3
  br i1 %457, label %458, label %471

458:                                              ; preds = %454
  %459 = load ptr, ptr %43, align 8, !tbaa !5
  %460 = load i64, ptr %69, align 8, !tbaa !9
  %461 = load i64, ptr %58, align 8, !tbaa !9
  %462 = mul nsw i64 %461, 3
  %463 = add nsw i64 %460, %462
  %464 = getelementptr inbounds float, ptr %459, i64 %463
  store float 0.000000e+00, ptr %464, align 4, !tbaa !11
  %465 = load ptr, ptr %44, align 8, !tbaa !5
  %466 = load i64, ptr %69, align 8, !tbaa !9
  %467 = load i64, ptr %60, align 8, !tbaa !9
  %468 = mul nsw i64 %467, 3
  %469 = add nsw i64 %466, %468
  %470 = getelementptr inbounds float, ptr %465, i64 %469
  store float 0.000000e+00, ptr %470, align 4, !tbaa !11
  br label %471

471:                                              ; preds = %458, %454
  br label %472

472:                                              ; preds = %471, %441
  br label %473

473:                                              ; preds = %472, %426
  br label %474

474:                                              ; preds = %473
  %475 = load i64, ptr %69, align 8, !tbaa !9
  %476 = add nsw i64 %475, 1
  store i64 %476, ptr %69, align 8, !tbaa !9
  br label %415, !llvm.loop !15

477:                                              ; preds = %415
  %478 = getelementptr inbounds [1 x i8], ptr %73, i64 0, i64 0
  store i8 73, ptr %478, align 1, !tbaa !16
  %479 = getelementptr inbounds [1 x i8], ptr %73, i64 0, i64 0
  %480 = load ptr, ptr %26, align 8, !tbaa !5
  %481 = load ptr, ptr %28, align 8, !tbaa !5
  %482 = load ptr, ptr %30, align 8, !tbaa !5
  %483 = load i64, ptr %51, align 8, !tbaa !9
  %484 = getelementptr inbounds float, ptr %482, i64 %483
  %485 = load ptr, ptr %31, align 8, !tbaa !5
  %486 = load ptr, ptr %47, align 8, !tbaa !5
  %487 = getelementptr inbounds float, ptr %486, i64 1
  %488 = call double @slansy_(ptr noundef %479, ptr noundef %480, ptr noundef %481, ptr noundef %484, ptr noundef %485, ptr noundef %487)
  %489 = fptrunc double %488 to float
  store float %489, ptr %75, align 4, !tbaa !11
  %490 = load ptr, ptr %26, align 8, !tbaa !5
  %491 = load ptr, ptr %28, align 8, !tbaa !5
  %492 = load ptr, ptr %32, align 8, !tbaa !5
  %493 = load i64, ptr %53, align 8, !tbaa !9
  %494 = getelementptr inbounds float, ptr %492, i64 %493
  %495 = load ptr, ptr %33, align 8, !tbaa !5
  %496 = load ptr, ptr %34, align 8, !tbaa !5
  %497 = getelementptr inbounds i64, ptr %496, i64 1
  %498 = load ptr, ptr %40, align 8, !tbaa !5
  %499 = load ptr, ptr %47, align 8, !tbaa !5
  %500 = getelementptr inbounds float, ptr %499, i64 1
  %501 = load ptr, ptr %48, align 8, !tbaa !5
  %502 = getelementptr inbounds i64, ptr %501, i64 1
  %503 = load ptr, ptr %49, align 8, !tbaa !5
  %504 = call i32 @ssycon_(ptr noundef %490, ptr noundef %491, ptr noundef %494, ptr noundef %495, ptr noundef %497, ptr noundef %75, ptr noundef %498, ptr noundef %500, ptr noundef %502, ptr noundef %503)
  %505 = load i64, ptr %68, align 8, !tbaa !9
  %506 = icmp ne i64 %505, 0
  br i1 %506, label %507, label %558

507:                                              ; preds = %477
  %508 = call i64 @ilaprec_(ptr noundef @.str.6)
  store i64 %508, ptr %71, align 8, !tbaa !9
  %509 = load ptr, ptr %26, align 8, !tbaa !5
  %510 = load ptr, ptr %28, align 8, !tbaa !5
  %511 = load ptr, ptr %29, align 8, !tbaa !5
  %512 = load ptr, ptr %30, align 8, !tbaa !5
  %513 = load i64, ptr %51, align 8, !tbaa !9
  %514 = getelementptr inbounds float, ptr %512, i64 %513
  %515 = load ptr, ptr %31, align 8, !tbaa !5
  %516 = load ptr, ptr %32, align 8, !tbaa !5
  %517 = load i64, ptr %53, align 8, !tbaa !9
  %518 = getelementptr inbounds float, ptr %516, i64 %517
  %519 = load ptr, ptr %33, align 8, !tbaa !5
  %520 = load ptr, ptr %34, align 8, !tbaa !5
  %521 = getelementptr inbounds i64, ptr %520, i64 1
  %522 = load ptr, ptr %35, align 8, !tbaa !5
  %523 = getelementptr inbounds float, ptr %522, i64 1
  %524 = load ptr, ptr %36, align 8, !tbaa !5
  %525 = load i64, ptr %55, align 8, !tbaa !9
  %526 = getelementptr inbounds float, ptr %524, i64 %525
  %527 = load ptr, ptr %37, align 8, !tbaa !5
  %528 = load ptr, ptr %38, align 8, !tbaa !5
  %529 = load i64, ptr %57, align 8, !tbaa !9
  %530 = getelementptr inbounds float, ptr %528, i64 %529
  %531 = load ptr, ptr %39, align 8, !tbaa !5
  %532 = load ptr, ptr %41, align 8, !tbaa !5
  %533 = getelementptr inbounds float, ptr %532, i64 1
  %534 = load ptr, ptr %43, align 8, !tbaa !5
  %535 = load i64, ptr %59, align 8, !tbaa !9
  %536 = getelementptr inbounds float, ptr %534, i64 %535
  %537 = load ptr, ptr %44, align 8, !tbaa !5
  %538 = load i64, ptr %61, align 8, !tbaa !9
  %539 = getelementptr inbounds float, ptr %537, i64 %538
  %540 = load ptr, ptr %47, align 8, !tbaa !5
  %541 = load ptr, ptr %28, align 8, !tbaa !5
  %542 = load i64, ptr %541, align 8, !tbaa !9
  %543 = add nsw i64 %542, 1
  %544 = getelementptr inbounds float, ptr %540, i64 %543
  %545 = load ptr, ptr %47, align 8, !tbaa !5
  %546 = getelementptr inbounds float, ptr %545, i64 1
  %547 = load ptr, ptr %47, align 8, !tbaa !5
  %548 = load ptr, ptr %28, align 8, !tbaa !5
  %549 = load i64, ptr %548, align 8, !tbaa !9
  %550 = shl i64 %549, 1
  %551 = add nsw i64 %550, 1
  %552 = getelementptr inbounds float, ptr %547, i64 %551
  %553 = load ptr, ptr %47, align 8, !tbaa !5
  %554 = getelementptr inbounds float, ptr %553, i64 1
  %555 = load ptr, ptr %40, align 8, !tbaa !5
  %556 = load ptr, ptr %49, align 8, !tbaa !5
  %557 = call i32 @sla_syrfsx_extended__(ptr noundef %71, ptr noundef %509, ptr noundef %510, ptr noundef %511, ptr noundef %514, ptr noundef %515, ptr noundef %518, ptr noundef %519, ptr noundef %521, ptr noundef %76, ptr noundef %523, ptr noundef %526, ptr noundef %527, ptr noundef %530, ptr noundef %531, ptr noundef %533, ptr noundef %78, ptr noundef %536, ptr noundef %539, ptr noundef %544, ptr noundef %546, ptr noundef %552, ptr noundef %554, ptr noundef %555, ptr noundef %77, ptr noundef %79, ptr noundef %66, ptr noundef %74, ptr noundef %556, i64 noundef 1)
  br label %558

558:                                              ; preds = %507, %477
  store float 1.000000e+01, ptr %63, align 4, !tbaa !11
  %559 = load ptr, ptr %28, align 8, !tbaa !5
  %560 = load i64, ptr %559, align 8, !tbaa !9
  %561 = sitofp i64 %560 to float
  %562 = fpext float %561 to double
  %563 = call double @sqrt(double noundef %562) #4
  %564 = fptrunc double %563 to float
  store float %564, ptr %64, align 4, !tbaa !11
  %565 = load float, ptr %63, align 4, !tbaa !11
  %566 = load float, ptr %64, align 4, !tbaa !11
  %567 = fcmp oge float %565, %566
  br i1 %567, label %568, label %570

568:                                              ; preds = %558
  %569 = load float, ptr %63, align 4, !tbaa !11
  br label %572

570:                                              ; preds = %558
  %571 = load float, ptr %64, align 4, !tbaa !11
  br label %572

572:                                              ; preds = %570, %568
  %573 = phi float [ %569, %568 ], [ %571, %570 ]
  %574 = fpext float %573 to double
  %575 = call double @slamch_(ptr noundef @.str)
  %576 = fmul double %574, %575
  %577 = fptrunc double %576 to float
  store float %577, ptr %67, align 4, !tbaa !11
  %578 = load ptr, ptr %42, align 8, !tbaa !5
  %579 = load i64, ptr %578, align 8, !tbaa !9
  %580 = icmp sge i64 %579, 1
  br i1 %580, label %581, label %727

581:                                              ; preds = %572
  %582 = load i64, ptr %78, align 8, !tbaa !9
  %583 = icmp sge i64 %582, 1
  br i1 %583, label %584, label %727

584:                                              ; preds = %581
  %585 = load i64, ptr %76, align 8, !tbaa !9
  %586 = icmp ne i64 %585, 0
  br i1 %586, label %587, label %609

587:                                              ; preds = %584
  %588 = load ptr, ptr %26, align 8, !tbaa !5
  %589 = load ptr, ptr %28, align 8, !tbaa !5
  %590 = load ptr, ptr %30, align 8, !tbaa !5
  %591 = load i64, ptr %51, align 8, !tbaa !9
  %592 = getelementptr inbounds float, ptr %590, i64 %591
  %593 = load ptr, ptr %31, align 8, !tbaa !5
  %594 = load ptr, ptr %32, align 8, !tbaa !5
  %595 = load i64, ptr %53, align 8, !tbaa !9
  %596 = getelementptr inbounds float, ptr %594, i64 %595
  %597 = load ptr, ptr %33, align 8, !tbaa !5
  %598 = load ptr, ptr %34, align 8, !tbaa !5
  %599 = getelementptr inbounds i64, ptr %598, i64 1
  %600 = load ptr, ptr %35, align 8, !tbaa !5
  %601 = getelementptr inbounds float, ptr %600, i64 1
  %602 = load ptr, ptr %49, align 8, !tbaa !5
  %603 = load ptr, ptr %47, align 8, !tbaa !5
  %604 = getelementptr inbounds float, ptr %603, i64 1
  %605 = load ptr, ptr %48, align 8, !tbaa !5
  %606 = getelementptr inbounds i64, ptr %605, i64 1
  %607 = call double @sla_syrcond__(ptr noundef %588, ptr noundef %589, ptr noundef %592, ptr noundef %593, ptr noundef %596, ptr noundef %597, ptr noundef %599, ptr noundef @c_n1, ptr noundef %601, ptr noundef %602, ptr noundef %604, ptr noundef %606, i64 noundef 1)
  %608 = fptrunc double %607 to float
  store float %608, ptr %70, align 4, !tbaa !11
  br label %631

609:                                              ; preds = %584
  %610 = load ptr, ptr %26, align 8, !tbaa !5
  %611 = load ptr, ptr %28, align 8, !tbaa !5
  %612 = load ptr, ptr %30, align 8, !tbaa !5
  %613 = load i64, ptr %51, align 8, !tbaa !9
  %614 = getelementptr inbounds float, ptr %612, i64 %613
  %615 = load ptr, ptr %31, align 8, !tbaa !5
  %616 = load ptr, ptr %32, align 8, !tbaa !5
  %617 = load i64, ptr %53, align 8, !tbaa !9
  %618 = getelementptr inbounds float, ptr %616, i64 %617
  %619 = load ptr, ptr %33, align 8, !tbaa !5
  %620 = load ptr, ptr %34, align 8, !tbaa !5
  %621 = getelementptr inbounds i64, ptr %620, i64 1
  %622 = load ptr, ptr %35, align 8, !tbaa !5
  %623 = getelementptr inbounds float, ptr %622, i64 1
  %624 = load ptr, ptr %49, align 8, !tbaa !5
  %625 = load ptr, ptr %47, align 8, !tbaa !5
  %626 = getelementptr inbounds float, ptr %625, i64 1
  %627 = load ptr, ptr %48, align 8, !tbaa !5
  %628 = getelementptr inbounds i64, ptr %627, i64 1
  %629 = call double @sla_syrcond__(ptr noundef %610, ptr noundef %611, ptr noundef %614, ptr noundef %615, ptr noundef %618, ptr noundef %619, ptr noundef %621, ptr noundef @c__0, ptr noundef %623, ptr noundef %624, ptr noundef %626, ptr noundef %628, i64 noundef 1)
  %630 = fptrunc double %629 to float
  store float %630, ptr %70, align 4, !tbaa !11
  br label %631

631:                                              ; preds = %609, %587
  %632 = load ptr, ptr %29, align 8, !tbaa !5
  %633 = load i64, ptr %632, align 8, !tbaa !9
  store i64 %633, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %634

634:                                              ; preds = %723, %631
  %635 = load i64, ptr %69, align 8, !tbaa !9
  %636 = load i64, ptr %62, align 8, !tbaa !9
  %637 = icmp sle i64 %635, %636
  br i1 %637, label %638, label %726

638:                                              ; preds = %634
  %639 = load ptr, ptr %42, align 8, !tbaa !5
  %640 = load i64, ptr %639, align 8, !tbaa !9
  %641 = icmp sge i64 %640, 2
  br i1 %641, label %642, label %658

642:                                              ; preds = %638
  %643 = load ptr, ptr %43, align 8, !tbaa !5
  %644 = load i64, ptr %69, align 8, !tbaa !9
  %645 = load i64, ptr %58, align 8, !tbaa !9
  %646 = shl i64 %645, 1
  %647 = add nsw i64 %644, %646
  %648 = getelementptr inbounds float, ptr %643, i64 %647
  %649 = load float, ptr %648, align 4, !tbaa !11
  %650 = fcmp ogt float %649, 1.000000e+00
  br i1 %650, label %651, label %658

651:                                              ; preds = %642
  %652 = load ptr, ptr %43, align 8, !tbaa !5
  %653 = load i64, ptr %69, align 8, !tbaa !9
  %654 = load i64, ptr %58, align 8, !tbaa !9
  %655 = shl i64 %654, 1
  %656 = add nsw i64 %653, %655
  %657 = getelementptr inbounds float, ptr %652, i64 %656
  store float 1.000000e+00, ptr %657, align 4, !tbaa !11
  br label %658

658:                                              ; preds = %651, %642, %638
  %659 = load float, ptr %70, align 4, !tbaa !11
  %660 = load float, ptr %65, align 4, !tbaa !11
  %661 = fcmp olt float %659, %660
  br i1 %661, label %662, label %686

662:                                              ; preds = %658
  %663 = load ptr, ptr %43, align 8, !tbaa !5
  %664 = load i64, ptr %69, align 8, !tbaa !9
  %665 = load i64, ptr %58, align 8, !tbaa !9
  %666 = shl i64 %665, 1
  %667 = add nsw i64 %664, %666
  %668 = getelementptr inbounds float, ptr %663, i64 %667
  store float 1.000000e+00, ptr %668, align 4, !tbaa !11
  %669 = load ptr, ptr %43, align 8, !tbaa !5
  %670 = load i64, ptr %69, align 8, !tbaa !9
  %671 = load i64, ptr %58, align 8, !tbaa !9
  %672 = add nsw i64 %670, %671
  %673 = getelementptr inbounds float, ptr %669, i64 %672
  store float 0.000000e+00, ptr %673, align 4, !tbaa !11
  %674 = load ptr, ptr %49, align 8, !tbaa !5
  %675 = load i64, ptr %674, align 8, !tbaa !9
  %676 = load ptr, ptr %28, align 8, !tbaa !5
  %677 = load i64, ptr %676, align 8, !tbaa !9
  %678 = icmp sle i64 %675, %677
  br i1 %678, label %679, label %685

679:                                              ; preds = %662
  %680 = load ptr, ptr %28, align 8, !tbaa !5
  %681 = load i64, ptr %680, align 8, !tbaa !9
  %682 = load i64, ptr %69, align 8, !tbaa !9
  %683 = add nsw i64 %681, %682
  %684 = load ptr, ptr %49, align 8, !tbaa !5
  store i64 %683, ptr %684, align 8, !tbaa !9
  br label %685

685:                                              ; preds = %679, %662
  br label %710

686:                                              ; preds = %658
  %687 = load ptr, ptr %43, align 8, !tbaa !5
  %688 = load i64, ptr %69, align 8, !tbaa !9
  %689 = load i64, ptr %58, align 8, !tbaa !9
  %690 = shl i64 %689, 1
  %691 = add nsw i64 %688, %690
  %692 = getelementptr inbounds float, ptr %687, i64 %691
  %693 = load float, ptr %692, align 4, !tbaa !11
  %694 = load float, ptr %67, align 4, !tbaa !11
  %695 = fcmp olt float %693, %694
  br i1 %695, label %696, label %709

696:                                              ; preds = %686
  %697 = load float, ptr %67, align 4, !tbaa !11
  %698 = load ptr, ptr %43, align 8, !tbaa !5
  %699 = load i64, ptr %69, align 8, !tbaa !9
  %700 = load i64, ptr %58, align 8, !tbaa !9
  %701 = shl i64 %700, 1
  %702 = add nsw i64 %699, %701
  %703 = getelementptr inbounds float, ptr %698, i64 %702
  store float %697, ptr %703, align 4, !tbaa !11
  %704 = load ptr, ptr %43, align 8, !tbaa !5
  %705 = load i64, ptr %69, align 8, !tbaa !9
  %706 = load i64, ptr %58, align 8, !tbaa !9
  %707 = add nsw i64 %705, %706
  %708 = getelementptr inbounds float, ptr %704, i64 %707
  store float 1.000000e+00, ptr %708, align 4, !tbaa !11
  br label %709

709:                                              ; preds = %696, %686
  br label %710

710:                                              ; preds = %709, %685
  %711 = load ptr, ptr %42, align 8, !tbaa !5
  %712 = load i64, ptr %711, align 8, !tbaa !9
  %713 = icmp sge i64 %712, 3
  br i1 %713, label %714, label %722

714:                                              ; preds = %710
  %715 = load float, ptr %70, align 4, !tbaa !11
  %716 = load ptr, ptr %43, align 8, !tbaa !5
  %717 = load i64, ptr %69, align 8, !tbaa !9
  %718 = load i64, ptr %58, align 8, !tbaa !9
  %719 = mul nsw i64 %718, 3
  %720 = add nsw i64 %717, %719
  %721 = getelementptr inbounds float, ptr %716, i64 %720
  store float %715, ptr %721, align 4, !tbaa !11
  br label %722

722:                                              ; preds = %714, %710
  br label %723

723:                                              ; preds = %722
  %724 = load i64, ptr %69, align 8, !tbaa !9
  %725 = add nsw i64 %724, 1
  store i64 %725, ptr %69, align 8, !tbaa !9
  br label %634, !llvm.loop !17

726:                                              ; preds = %634
  br label %727

727:                                              ; preds = %726, %581, %572
  %728 = load ptr, ptr %42, align 8, !tbaa !5
  %729 = load i64, ptr %728, align 8, !tbaa !9
  %730 = icmp sge i64 %729, 1
  br i1 %730, label %731, label %877

731:                                              ; preds = %727
  %732 = load i64, ptr %78, align 8, !tbaa !9
  %733 = icmp sge i64 %732, 2
  br i1 %733, label %734, label %877

734:                                              ; preds = %731
  %735 = call double @slamch_(ptr noundef @.str)
  %736 = call double @sqrt(double noundef %735) #4
  %737 = fptrunc double %736 to float
  store float %737, ptr %72, align 4, !tbaa !11
  %738 = load ptr, ptr %29, align 8, !tbaa !5
  %739 = load i64, ptr %738, align 8, !tbaa !9
  store i64 %739, ptr %62, align 8, !tbaa !9
  store i64 1, ptr %69, align 8, !tbaa !9
  br label %740

740:                                              ; preds = %873, %734
  %741 = load i64, ptr %69, align 8, !tbaa !9
  %742 = load i64, ptr %62, align 8, !tbaa !9
  %743 = icmp sle i64 %741, %742
  br i1 %743, label %744, label %876

744:                                              ; preds = %740
  %745 = load ptr, ptr %44, align 8, !tbaa !5
  %746 = load i64, ptr %69, align 8, !tbaa !9
  %747 = load i64, ptr %60, align 8, !tbaa !9
  %748 = shl i64 %747, 1
  %749 = add nsw i64 %746, %748
  %750 = getelementptr inbounds float, ptr %745, i64 %749
  %751 = load float, ptr %750, align 4, !tbaa !11
  %752 = load float, ptr %72, align 4, !tbaa !11
  %753 = fcmp olt float %751, %752
  br i1 %753, label %754, label %780

754:                                              ; preds = %744
  %755 = load ptr, ptr %26, align 8, !tbaa !5
  %756 = load ptr, ptr %28, align 8, !tbaa !5
  %757 = load ptr, ptr %30, align 8, !tbaa !5
  %758 = load i64, ptr %51, align 8, !tbaa !9
  %759 = getelementptr inbounds float, ptr %757, i64 %758
  %760 = load ptr, ptr %31, align 8, !tbaa !5
  %761 = load ptr, ptr %32, align 8, !tbaa !5
  %762 = load i64, ptr %53, align 8, !tbaa !9
  %763 = getelementptr inbounds float, ptr %761, i64 %762
  %764 = load ptr, ptr %33, align 8, !tbaa !5
  %765 = load ptr, ptr %34, align 8, !tbaa !5
  %766 = getelementptr inbounds i64, ptr %765, i64 1
  %767 = load ptr, ptr %38, align 8, !tbaa !5
  %768 = load i64, ptr %69, align 8, !tbaa !9
  %769 = load i64, ptr %56, align 8, !tbaa !9
  %770 = mul nsw i64 %768, %769
  %771 = add nsw i64 %770, 1
  %772 = getelementptr inbounds float, ptr %767, i64 %771
  %773 = load ptr, ptr %49, align 8, !tbaa !5
  %774 = load ptr, ptr %47, align 8, !tbaa !5
  %775 = getelementptr inbounds float, ptr %774, i64 1
  %776 = load ptr, ptr %48, align 8, !tbaa !5
  %777 = getelementptr inbounds i64, ptr %776, i64 1
  %778 = call double @sla_syrcond__(ptr noundef %755, ptr noundef %756, ptr noundef %759, ptr noundef %760, ptr noundef %763, ptr noundef %764, ptr noundef %766, ptr noundef @c__1, ptr noundef %772, ptr noundef %773, ptr noundef %775, ptr noundef %777, i64 noundef 1)
  %779 = fptrunc double %778 to float
  store float %779, ptr %70, align 4, !tbaa !11
  br label %781

780:                                              ; preds = %744
  store float 0.000000e+00, ptr %70, align 4, !tbaa !11
  br label %781

781:                                              ; preds = %780, %754
  %782 = load ptr, ptr %42, align 8, !tbaa !5
  %783 = load i64, ptr %782, align 8, !tbaa !9
  %784 = icmp sge i64 %783, 2
  br i1 %784, label %785, label %801

785:                                              ; preds = %781
  %786 = load ptr, ptr %44, align 8, !tbaa !5
  %787 = load i64, ptr %69, align 8, !tbaa !9
  %788 = load i64, ptr %60, align 8, !tbaa !9
  %789 = shl i64 %788, 1
  %790 = add nsw i64 %787, %789
  %791 = getelementptr inbounds float, ptr %786, i64 %790
  %792 = load float, ptr %791, align 4, !tbaa !11
  %793 = fcmp ogt float %792, 1.000000e+00
  br i1 %793, label %794, label %801

794:                                              ; preds = %785
  %795 = load ptr, ptr %44, align 8, !tbaa !5
  %796 = load i64, ptr %69, align 8, !tbaa !9
  %797 = load i64, ptr %60, align 8, !tbaa !9
  %798 = shl i64 %797, 1
  %799 = add nsw i64 %796, %798
  %800 = getelementptr inbounds float, ptr %795, i64 %799
  store float 1.000000e+00, ptr %800, align 4, !tbaa !11
  br label %801

801:                                              ; preds = %794, %785, %781
  %802 = load float, ptr %70, align 4, !tbaa !11
  %803 = load float, ptr %65, align 4, !tbaa !11
  %804 = fcmp olt float %802, %803
  br i1 %804, label %805, label %836

805:                                              ; preds = %801
  %806 = load ptr, ptr %44, align 8, !tbaa !5
  %807 = load i64, ptr %69, align 8, !tbaa !9
  %808 = load i64, ptr %60, align 8, !tbaa !9
  %809 = shl i64 %808, 1
  %810 = add nsw i64 %807, %809
  %811 = getelementptr inbounds float, ptr %806, i64 %810
  store float 1.000000e+00, ptr %811, align 4, !tbaa !11
  %812 = load ptr, ptr %44, align 8, !tbaa !5
  %813 = load i64, ptr %69, align 8, !tbaa !9
  %814 = load i64, ptr %60, align 8, !tbaa !9
  %815 = add nsw i64 %813, %814
  %816 = getelementptr inbounds float, ptr %812, i64 %815
  store float 0.000000e+00, ptr %816, align 4, !tbaa !11
  %817 = load ptr, ptr %46, align 8, !tbaa !5
  %818 = getelementptr inbounds float, ptr %817, i64 3
  %819 = load float, ptr %818, align 4, !tbaa !11
  %820 = fcmp oeq float %819, 1.000000e+00
  br i1 %820, label %821, label %835

821:                                              ; preds = %805
  %822 = load ptr, ptr %49, align 8, !tbaa !5
  %823 = load i64, ptr %822, align 8, !tbaa !9
  %824 = load ptr, ptr %28, align 8, !tbaa !5
  %825 = load i64, ptr %824, align 8, !tbaa !9
  %826 = load i64, ptr %69, align 8, !tbaa !9
  %827 = add nsw i64 %825, %826
  %828 = icmp slt i64 %823, %827
  br i1 %828, label %829, label %835

829:                                              ; preds = %821
  %830 = load ptr, ptr %28, align 8, !tbaa !5
  %831 = load i64, ptr %830, align 8, !tbaa !9
  %832 = load i64, ptr %69, align 8, !tbaa !9
  %833 = add nsw i64 %831, %832
  %834 = load ptr, ptr %49, align 8, !tbaa !5
  store i64 %833, ptr %834, align 8, !tbaa !9
  br label %835

835:                                              ; preds = %829, %821, %805
  br label %860

836:                                              ; preds = %801
  %837 = load ptr, ptr %44, align 8, !tbaa !5
  %838 = load i64, ptr %69, align 8, !tbaa !9
  %839 = load i64, ptr %60, align 8, !tbaa !9
  %840 = shl i64 %839, 1
  %841 = add nsw i64 %838, %840
  %842 = getelementptr inbounds float, ptr %837, i64 %841
  %843 = load float, ptr %842, align 4, !tbaa !11
  %844 = load float, ptr %67, align 4, !tbaa !11
  %845 = fcmp olt float %843, %844
  br i1 %845, label %846, label %859

846:                                              ; preds = %836
  %847 = load float, ptr %67, align 4, !tbaa !11
  %848 = load ptr, ptr %44, align 8, !tbaa !5
  %849 = load i64, ptr %69, align 8, !tbaa !9
  %850 = load i64, ptr %60, align 8, !tbaa !9
  %851 = shl i64 %850, 1
  %852 = add nsw i64 %849, %851
  %853 = getelementptr inbounds float, ptr %848, i64 %852
  store float %847, ptr %853, align 4, !tbaa !11
  %854 = load ptr, ptr %44, align 8, !tbaa !5
  %855 = load i64, ptr %69, align 8, !tbaa !9
  %856 = load i64, ptr %60, align 8, !tbaa !9
  %857 = add nsw i64 %855, %856
  %858 = getelementptr inbounds float, ptr %854, i64 %857
  store float 1.000000e+00, ptr %858, align 4, !tbaa !11
  br label %859

859:                                              ; preds = %846, %836
  br label %860

860:                                              ; preds = %859, %835
  %861 = load ptr, ptr %42, align 8, !tbaa !5
  %862 = load i64, ptr %861, align 8, !tbaa !9
  %863 = icmp sge i64 %862, 3
  br i1 %863, label %864, label %872

864:                                              ; preds = %860
  %865 = load float, ptr %70, align 4, !tbaa !11
  %866 = load ptr, ptr %44, align 8, !tbaa !5
  %867 = load i64, ptr %69, align 8, !tbaa !9
  %868 = load i64, ptr %60, align 8, !tbaa !9
  %869 = mul nsw i64 %868, 3
  %870 = add nsw i64 %867, %869
  %871 = getelementptr inbounds float, ptr %866, i64 %870
  store float %865, ptr %871, align 4, !tbaa !11
  br label %872

872:                                              ; preds = %864, %860
  br label %873

873:                                              ; preds = %872
  %874 = load i64, ptr %69, align 8, !tbaa !9
  %875 = add nsw i64 %874, 1
  store i64 %875, ptr %69, align 8, !tbaa !9
  br label %740, !llvm.loop !18

876:                                              ; preds = %740
  br label %877

877:                                              ; preds = %876, %731, %727
  store i32 0, ptr %25, align 4
  store i32 1, ptr %80, align 4
  br label %878

878:                                              ; preds = %877, %410, %331
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  %879 = load i32, ptr %25, align 4
  ret i32 %879
}

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

declare i64 @ilaprec_(ptr noundef) #2

declare i32 @sla_syrfsx_extended__(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

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

declare double @sla_syrcond__(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) #2

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

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

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

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


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

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

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

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

54:                                               ; preds = %51
  store float 1.000000e+00, ptr %20, align 4, !tbaa !9
  br label %57

55:                                               ; preds = %51
  %56 = fptosi float %52 to i64
  br label %57

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

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

70:                                               ; preds = %66
  store float 1.000000e+01, ptr %67, align 4, !tbaa !9
  br label %73

71:                                               ; preds = %66
  %72 = fptosi float %68 to i64
  store i64 %72, ptr %38, align 8, !tbaa !5
  br label %73

73:                                               ; preds = %70, %71
  %.not = icmp eq i64 %64, 2
  br i1 %.not, label %.thread, label %74

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

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

79:                                               ; preds = %74
  %80 = fcmp oeq float %76, 0.000000e+00
  %81 = zext i1 %80 to i64
  store i64 %81, ptr %35, align 8, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %57, %79, %78, %73
  %82 = phi i64 [ 0, %57 ], [ %81, %79 ], [ 0, %78 ], [ 0, %73 ]
  %83 = icmp eq i64 %.0316, 0
  br i1 %83, label %87, label %84

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

87:                                               ; preds = %84, %.thread
  store i64 0, ptr %39, align 8, !tbaa !5
  br label %91

88:                                               ; preds = %84
  %.not330 = icmp eq i64 %82, 0
  br i1 %.not330, label %90, label %89

89:                                               ; preds = %88
  store i64 1, ptr %39, align 8, !tbaa !5
  br label %91

90:                                               ; preds = %88
  store i64 2, ptr %39, align 8, !tbaa !5
  br label %91

91:                                               ; preds = %89, %90, %87
  %92 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #6
  store i64 %92, ptr %37, align 8, !tbaa !5
  %93 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  %.not331 = icmp eq i64 %93, 0
  br i1 %.not331, label %94, label %96

94:                                               ; preds = %91
  %95 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #6
  %.not332 = icmp eq i64 %95, 0
  br i1 %.not332, label %.thread352.sink.split, label %96

96:                                               ; preds = %94, %91
  %.not333 = icmp eq i64 %92, 0
  br i1 %.not333, label %97, label %99

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

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

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

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

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

111:                                              ; preds = %108
  %112 = load i64, ptr %11, align 8, !tbaa !5
  %113 = icmp slt i64 %112, %spec.select
  br i1 %113, label %.thread352.sink.split, label %114

114:                                              ; preds = %111
  %115 = load i64, ptr %13, align 8, !tbaa !5
  %116 = icmp slt i64 %115, %spec.select
  br i1 %116, label %.thread352.sink.split, label %117

117:                                              ; preds = %114
  %.pr = load i64, ptr %23, align 8, !tbaa !5
  %.not335 = icmp eq i64 %.pr, 0
  br i1 %.not335, label %121, label %.thread352

.thread352.sink.split:                            ; preds = %114, %111, %108, %105, %102, %99, %97, %94
  %.sink = phi i64 [ -1, %94 ], [ -2, %97 ], [ -3, %99 ], [ -4, %102 ], [ -6, %105 ], [ -8, %108 ], [ -11, %111 ], [ -13, %114 ]
  store i64 %.sink, ptr %23, align 8, !tbaa !5
  br label %.thread352

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

121:                                              ; preds = %117
  %122 = icmp eq i64 %100, 0
  br i1 %122, label %125, label %123

123:                                              ; preds = %121
  %124 = icmp eq i64 %103, 0
  br i1 %124, label %.thread388, label %.lr.ph

.thread388:                                       ; preds = %123
  store float 1.000000e+00, ptr %14, align 4, !tbaa !9
  br label %.loopexit

125:                                              ; preds = %121
  store float 1.000000e+00, ptr %14, align 4, !tbaa !9
  %.not348370 = icmp eq i64 %103, 0
  br i1 %.not348370, label %.loopexit, label %.lr.ph373

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

.lr.ph373.split.us.preheader:                     ; preds = %.lr.ph373
  %min.iters.check422 = icmp ult i64 %103, 12
  br i1 %min.iters.check422, label %.lr.ph373.split.us.preheader433, label %vector.memcheck414

.lr.ph373.split.us.preheader433:                  ; preds = %middle.block420, %vector.memcheck414, %.lr.ph373.split.us.preheader
  %.0314371.us.ph = phi i64 [ 1, %vector.memcheck414 ], [ 1, %.lr.ph373.split.us.preheader ], [ %ind.end426, %middle.block420 ]
  %xtraiter439 = and i64 %103, 1
  %lcmp.mod440.not = icmp eq i64 %xtraiter439, 0
  br i1 %lcmp.mod440.not, label %.lr.ph373.split.us.prol.loopexit, label %.lr.ph373.split.us.prol

.lr.ph373.split.us.prol:                          ; preds = %.lr.ph373.split.us.preheader433
  %128 = getelementptr inbounds float, ptr %48, i64 %.0314371.us.ph
  store float 0.000000e+00, ptr %128, align 4, !tbaa !9
  %129 = add nsw i64 %.0314371.us.ph, %41
  %130 = getelementptr inbounds float, ptr %44, i64 %129
  store float 1.000000e+00, ptr %130, align 4, !tbaa !9
  %131 = getelementptr inbounds float, ptr %43, i64 %129
  store float 1.000000e+00, ptr %131, align 4, !tbaa !9
  %132 = add nuw i64 %.0314371.us.ph, 1
  br label %.lr.ph373.split.us.prol.loopexit

.lr.ph373.split.us.prol.loopexit:                 ; preds = %.lr.ph373.split.us.prol, %.lr.ph373.split.us.preheader433
  %.0314371.us.unr = phi i64 [ %.0314371.us.ph, %.lr.ph373.split.us.preheader433 ], [ %132, %.lr.ph373.split.us.prol ]
  %133 = icmp eq i64 %103, %.0314371.us.ph
  br i1 %133, label %.loopexit, label %.lr.ph373.split.us

vector.memcheck414:                               ; preds = %.lr.ph373.split.us.preheader
  %134 = sub i64 %27, %26
  %diff.check415 = icmp ult i64 %134, 32
  %135 = sub i64 %25, %26
  %diff.check416 = icmp ult i64 %135, 32
  %conflict.rdx417 = or i1 %diff.check415, %diff.check416
  %136 = sub i64 %25, %27
  %diff.check418 = icmp ult i64 %136, 32
  %conflict.rdx419 = or i1 %conflict.rdx417, %diff.check418
  br i1 %conflict.rdx419, label %.lr.ph373.split.us.preheader433, label %vector.ph423

vector.ph423:                                     ; preds = %vector.memcheck414
  %n.vec425 = and i64 %103, 9223372036854775800
  %ind.end426 = or disjoint i64 %n.vec425, 1
  br label %vector.body428

vector.body428:                                   ; preds = %vector.body428, %vector.ph423
  %index429 = phi i64 [ 0, %vector.ph423 ], [ %index.next431, %vector.body428 ]
  %offset.idx430 = or disjoint i64 %index429, 1
  %137 = getelementptr float, ptr %15, i64 %index429
  %138 = getelementptr inbounds i8, ptr %137, i64 16
  store <4 x float> zeroinitializer, ptr %137, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %138, align 4, !tbaa !9
  %139 = add nsw i64 %offset.idx430, %41
  %140 = getelementptr inbounds float, ptr %44, i64 %139
  %141 = getelementptr inbounds i8, ptr %140, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %140, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %141, align 4, !tbaa !9
  %142 = getelementptr inbounds float, ptr %43, i64 %139
  %143 = getelementptr inbounds i8, ptr %142, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %142, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %143, align 4, !tbaa !9
  %index.next431 = add nuw i64 %index429, 8
  %144 = icmp eq i64 %index.next431, %n.vec425
  br i1 %144, label %middle.block420, label %vector.body428, !llvm.loop !11

middle.block420:                                  ; preds = %vector.body428
  %cmp.n432 = icmp eq i64 %103, %n.vec425
  br i1 %cmp.n432, label %.loopexit, label %.lr.ph373.split.us.preheader433

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

.lr.ph373.split.us:                               ; preds = %.lr.ph373.split.us.prol.loopexit, %.lr.ph373.split.us
  %.0314371.us = phi i64 [ %154, %.lr.ph373.split.us ], [ %.0314371.us.unr, %.lr.ph373.split.us.prol.loopexit ]
  %146 = getelementptr inbounds float, ptr %48, i64 %.0314371.us
  store float 0.000000e+00, ptr %146, align 4, !tbaa !9
  %147 = add nsw i64 %.0314371.us, %41
  %148 = getelementptr inbounds float, ptr %44, i64 %147
  store float 1.000000e+00, ptr %148, align 4, !tbaa !9
  %149 = getelementptr inbounds float, ptr %43, i64 %147
  store float 1.000000e+00, ptr %149, align 4, !tbaa !9
  %150 = add nuw i64 %.0314371.us, 1
  %151 = getelementptr float, ptr %15, i64 %.0314371.us
  store float 0.000000e+00, ptr %151, align 4, !tbaa !9
  %152 = getelementptr inbounds float, ptr %17, i64 %.0314371.us
  store float 1.000000e+00, ptr %152, align 4, !tbaa !9
  %153 = getelementptr inbounds float, ptr %18, i64 %.0314371.us
  store float 1.000000e+00, ptr %153, align 4, !tbaa !9
  %154 = add nuw i64 %.0314371.us, 2
  %exitcond381.not.1 = icmp eq i64 %150, %103
  br i1 %exitcond381.not.1, label %.loopexit, label %.lr.ph373.split.us, !llvm.loop !15

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

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

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

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

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

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

.lr.ph.split.us.preheader:                        ; preds = %.lr.ph
  %min.iters.check403 = icmp ult i64 %103, 12
  br i1 %min.iters.check403, label %.lr.ph.split.us.preheader436, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph.split.us.preheader
  %160 = sub i64 %30, %29
  %diff.check = icmp ult i64 %160, 32
  %161 = sub i64 %28, %29
  %diff.check398 = icmp ult i64 %161, 32
  %conflict.rdx = or i1 %diff.check, %diff.check398
  %162 = sub i64 %28, %30
  %diff.check399 = icmp ult i64 %162, 32
  %conflict.rdx400 = or i1 %conflict.rdx, %diff.check399
  br i1 %conflict.rdx400, label %.lr.ph.split.us.preheader436, label %vector.ph404

vector.ph404:                                     ; preds = %vector.memcheck
  %n.vec406 = and i64 %103, 9223372036854775800
  %ind.end407 = or disjoint i64 %n.vec406, 1
  br label %vector.body409

vector.body409:                                   ; preds = %vector.body409, %vector.ph404
  %index410 = phi i64 [ 0, %vector.ph404 ], [ %index.next412, %vector.body409 ]
  %offset.idx411 = or disjoint i64 %index410, 1
  %163 = getelementptr float, ptr %15, i64 %index410
  %164 = getelementptr inbounds i8, ptr %163, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %163, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %164, align 4, !tbaa !9
  %165 = add nsw i64 %offset.idx411, %41
  %166 = getelementptr inbounds float, ptr %44, i64 %165
  %167 = getelementptr inbounds i8, ptr %166, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %166, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %167, align 4, !tbaa !9
  %168 = getelementptr inbounds float, ptr %43, i64 %165
  %169 = getelementptr inbounds i8, ptr %168, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %168, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %169, align 4, !tbaa !9
  %index.next412 = add nuw i64 %index410, 8
  %170 = icmp eq i64 %index.next412, %n.vec406
  br i1 %170, label %middle.block401, label %vector.body409, !llvm.loop !17

middle.block401:                                  ; preds = %vector.body409
  %cmp.n413 = icmp eq i64 %103, %n.vec406
  br i1 %cmp.n413, label %._crit_edge, label %.lr.ph.split.us.preheader436

.lr.ph.split.us.preheader436:                     ; preds = %middle.block401, %vector.memcheck, %.lr.ph.split.us.preheader
  %.1315357.us.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph.split.us.preheader ], [ %ind.end407, %middle.block401 ]
  %xtraiter = and i64 %103, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph.split.us.prol.loopexit, label %.lr.ph.split.us.prol

.lr.ph.split.us.prol:                             ; preds = %.lr.ph.split.us.preheader436
  %171 = getelementptr inbounds float, ptr %48, i64 %.1315357.us.ph
  store float 1.000000e+00, ptr %171, align 4, !tbaa !9
  %172 = add nsw i64 %.1315357.us.ph, %41
  %173 = getelementptr inbounds float, ptr %44, i64 %172
  store float 1.000000e+00, ptr %173, align 4, !tbaa !9
  %174 = getelementptr inbounds float, ptr %43, i64 %172
  store float 1.000000e+00, ptr %174, align 4, !tbaa !9
  %175 = add nuw i64 %.1315357.us.ph, 1
  br label %.lr.ph.split.us.prol.loopexit

.lr.ph.split.us.prol.loopexit:                    ; preds = %.lr.ph.split.us.prol, %.lr.ph.split.us.preheader436
  %.1315357.us.unr = phi i64 [ %.1315357.us.ph, %.lr.ph.split.us.preheader436 ], [ %175, %.lr.ph.split.us.prol ]
  %176 = icmp eq i64 %103, %.1315357.us.ph
  br i1 %176, label %._crit_edge, label %.lr.ph.split.us

.lr.ph.split.us:                                  ; preds = %.lr.ph.split.us.prol.loopexit, %.lr.ph.split.us
  %.1315357.us = phi i64 [ %185, %.lr.ph.split.us ], [ %.1315357.us.unr, %.lr.ph.split.us.prol.loopexit ]
  %177 = getelementptr inbounds float, ptr %48, i64 %.1315357.us
  store float 1.000000e+00, ptr %177, align 4, !tbaa !9
  %178 = add nsw i64 %.1315357.us, %41
  %179 = getelementptr inbounds float, ptr %44, i64 %178
  store float 1.000000e+00, ptr %179, align 4, !tbaa !9
  %180 = getelementptr inbounds float, ptr %43, i64 %178
  store float 1.000000e+00, ptr %180, align 4, !tbaa !9
  %181 = add nuw i64 %.1315357.us, 1
  %182 = getelementptr float, ptr %15, i64 %.1315357.us
  store float 1.000000e+00, ptr %182, align 4, !tbaa !9
  %183 = getelementptr inbounds float, ptr %17, i64 %.1315357.us
  store float 1.000000e+00, ptr %183, align 4, !tbaa !9
  %184 = getelementptr inbounds float, ptr %18, i64 %.1315357.us
  store float 1.000000e+00, ptr %184, align 4, !tbaa !9
  %185 = add nuw i64 %.1315357.us, 2
  %exitcond378.not.1 = icmp eq i64 %181, %103
  br i1 %exitcond378.not.1, label %._crit_edge, label %.lr.ph.split.us, !llvm.loop !18

.lr.ph.split:                                     ; preds = %.lr.ph.split.preheader437, %.lr.ph.split
  %.1315357 = phi i64 [ %187, %.lr.ph.split ], [ %.1315357.ph, %.lr.ph.split.preheader437 ]
  %186 = getelementptr inbounds float, ptr %48, i64 %.1315357
  store float 1.000000e+00, ptr %186, align 4, !tbaa !9
  %187 = add nuw i64 %.1315357, 1
  %exitcond.not = icmp eq i64 %.1315357, %103
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph.split, !llvm.loop !19

._crit_edge:                                      ; preds = %.lr.ph.split, %.lr.ph.split.us.prol.loopexit, %.lr.ph.split.us, %middle.block, %middle.block401
  store i8 73, ptr %34, align 1, !tbaa !20
  %188 = call double @slansy_(ptr noundef nonnull %34, ptr noundef %0, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %21) #6
  %189 = fptrunc double %188 to float
  store float %189, ptr %36, align 4, !tbaa !9
  %190 = call i32 @ssycon_(ptr noundef %0, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %36, ptr noundef nonnull %14, ptr noundef %21, ptr noundef %22, ptr noundef nonnull %23) #6
  br i1 %83, label %197, label %191

191:                                              ; preds = %._crit_edge
  %192 = call i64 @ilaprec_(ptr noundef nonnull @.str.6) #6
  store i64 %192, ptr %33, align 8, !tbaa !5
  %193 = load i64, ptr %2, align 8, !tbaa !5
  %194 = getelementptr float, ptr %21, i64 %193
  %.idx = shl i64 %193, 3
  %195 = getelementptr i8, ptr %21, i64 %.idx
  %196 = call i32 @sla_syrfsx_extended__(ptr noundef nonnull %33, ptr noundef %0, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %37, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %11, ptr noundef %12, ptr noundef nonnull %13, ptr noundef nonnull %15, ptr noundef nonnull %39, ptr noundef %17, ptr noundef %18, ptr noundef %194, ptr noundef %21, ptr noundef %195, ptr noundef %21, ptr noundef nonnull %14, ptr noundef nonnull %38, ptr noundef nonnull %40, ptr noundef nonnull %32, ptr noundef nonnull %35, ptr noundef nonnull %23, i64 noundef 1) #6
  br label %197

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

210:                                              ; preds = %197
  %211 = load i64, ptr %37, align 8, !tbaa !5
  %.not338 = icmp eq i64 %211, 0
  %c__0.c_n1 = select i1 %.not338, ptr @c__0, ptr @c_n1
  %212 = call double @sla_syrcond__(ptr noundef %0, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %c__0.c_n1, ptr noundef %9, ptr noundef nonnull %23, ptr noundef %21, ptr noundef %22, i64 noundef 1) #6
  %.0313 = fptrunc double %212 to float
  %213 = load i64, ptr %3, align 8, !tbaa !5
  %.not339358 = icmp slt i64 %213, 1
  br i1 %.not339358, label %..loopexit355_crit_edge, label %.lr.ph361

..loopexit355_crit_edge:                          ; preds = %210
  %.pre386 = load i64, ptr %16, align 8, !tbaa !5
  br label %.loopexit355

.lr.ph361:                                        ; preds = %210
  %.idx343 = shl i64 %41, 3
  %invariant.gep = getelementptr i8, ptr %44, i64 %.idx343
  %214 = fcmp olt float %.0313, %63
  %.idx347 = mul i64 %41, 12
  %invariant.gep362 = getelementptr i8, ptr %44, i64 %.idx347
  %.pre384 = load i64, ptr %16, align 8, !tbaa !5
  br i1 %214, label %.lr.ph361.split.us, label %.lr.ph361.split.preheader

.lr.ph361.split.preheader:                        ; preds = %.lr.ph361
  %215 = icmp sgt i64 %.pre384, 1
  %invariant.gep393 = getelementptr i8, ptr %44, i64 %.idx343
  %216 = icmp sgt i64 %.pre384, 2
  br label %.lr.ph361.split

.lr.ph361.split.us:                               ; preds = %.lr.ph361, %229
  %217 = phi i64 [ %226, %229 ], [ %.pre384, %.lr.ph361 ]
  %.2359.us = phi i64 [ %230, %229 ], [ 1, %.lr.ph361 ]
  %218 = getelementptr float, ptr %44, i64 %.2359.us
  %219 = getelementptr i8, ptr %218, i64 %.idx343
  store float 1.000000e+00, ptr %219, align 4, !tbaa !9
  %220 = getelementptr float, ptr %218, i64 %41
  store float 0.000000e+00, ptr %220, align 4, !tbaa !9
  %221 = load i64, ptr %23, align 8, !tbaa !5
  %222 = load i64, ptr %2, align 8, !tbaa !5
  %.not346.us = icmp sgt i64 %221, %222
  br i1 %.not346.us, label %225, label %223

223:                                              ; preds = %.lr.ph361.split.us
  %224 = add nsw i64 %222, %.2359.us
  store i64 %224, ptr %23, align 8, !tbaa !5
  %.pre385 = load i64, ptr %16, align 8, !tbaa !5
  br label %225

225:                                              ; preds = %223, %.lr.ph361.split.us
  %226 = phi i64 [ %.pre385, %223 ], [ %217, %.lr.ph361.split.us ]
  %227 = icmp sgt i64 %226, 2
  br i1 %227, label %228, label %229

228:                                              ; preds = %225
  %gep363.us = getelementptr float, ptr %invariant.gep362, i64 %.2359.us
  store float %.0313, ptr %gep363.us, align 4, !tbaa !9
  br label %229

229:                                              ; preds = %228, %225
  %230 = add nuw i64 %.2359.us, 1
  %exitcond380.not = icmp eq i64 %.2359.us, %213
  br i1 %exitcond380.not, label %.loopexit355, label %.lr.ph361.split.us, !llvm.loop !21

.lr.ph361.split:                                  ; preds = %.lr.ph361.split.preheader, %244
  %.2359 = phi i64 [ %245, %244 ], [ 1, %.lr.ph361.split.preheader ]
  br i1 %215, label %231, label %.lr.ph361.split._crit_edge

.lr.ph361.split._crit_edge:                       ; preds = %.lr.ph361.split
  %gep394 = getelementptr float, ptr %invariant.gep393, i64 %.2359
  %.pre383 = load float, ptr %gep394, align 4, !tbaa !9
  br label %235

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

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

235:                                              ; preds = %.lr.ph361.split._crit_edge, %234, %231
  %236 = phi float [ %.pre383, %.lr.ph361.split._crit_edge ], [ 1.000000e+00, %234 ], [ %232, %231 ]
  %237 = fcmp olt float %236, %205
  br i1 %237, label %238, label %242

238:                                              ; preds = %235
  %239 = getelementptr float, ptr %44, i64 %.2359
  %240 = getelementptr i8, ptr %239, i64 %.idx343
  store float %205, ptr %240, align 4, !tbaa !9
  %241 = getelementptr float, ptr %239, i64 %41
  store float 1.000000e+00, ptr %241, align 4, !tbaa !9
  br label %242

242:                                              ; preds = %235, %238
  br i1 %216, label %243, label %244

243:                                              ; preds = %242
  %gep363 = getelementptr float, ptr %invariant.gep362, i64 %.2359
  store float %.0313, ptr %gep363, align 4, !tbaa !9
  br label %244

244:                                              ; preds = %242, %243
  %245 = add nuw i64 %.2359, 1
  %exitcond379.not = icmp eq i64 %.2359, %213
  br i1 %exitcond379.not, label %.loopexit355, label %.lr.ph361.split, !llvm.loop !21

.loopexit355:                                     ; preds = %244, %229, %..loopexit355_crit_edge, %197
  %246 = phi i64 [ %.pre386, %..loopexit355_crit_edge ], [ %206, %197 ], [ %226, %229 ], [ %.pre384, %244 ]
  %247 = icmp sgt i64 %246, 0
  %248 = load i64, ptr %39, align 8
  %249 = icmp sgt i64 %248, 1
  %or.cond3 = select i1 %247, i1 %249, i1 false
  br i1 %or.cond3, label %250, label %.loopexit

250:                                              ; preds = %.loopexit355
  %251 = call double @slamch_(ptr noundef nonnull @.str) #6
  %252 = call double @sqrt(double noundef %251) #6
  %253 = fptrunc double %252 to float
  %254 = load i64, ptr %3, align 8, !tbaa !5
  %invariant.gep364 = getelementptr i8, ptr %47, i64 4
  %.not340366 = icmp slt i64 %254, 1
  br i1 %.not340366, label %.loopexit, label %.lr.ph369

.lr.ph369:                                        ; preds = %250
  %.idx341 = shl i64 %41, 3
  %255 = getelementptr inbounds i8, ptr %20, i64 8
  %.idx342 = mul i64 %41, 12
  br label %256

256:                                              ; preds = %.lr.ph369, %294
  %.3367 = phi i64 [ 1, %.lr.ph369 ], [ %295, %294 ]
  %257 = getelementptr float, ptr %43, i64 %.3367
  %258 = getelementptr i8, ptr %257, i64 %.idx341
  %259 = load float, ptr %258, align 4, !tbaa !9
  %260 = fcmp olt float %259, %253
  br i1 %260, label %261, label %265

261:                                              ; preds = %256
  %262 = mul nsw i64 %.3367, %45
  %gep365 = getelementptr float, ptr %invariant.gep364, i64 %262
  %263 = call double @sla_syrcond__(ptr noundef %0, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull @c__1, ptr noundef %gep365, ptr noundef nonnull %23, ptr noundef %21, ptr noundef %22, i64 noundef 1) #6
  %264 = fptrunc double %263 to float
  br label %265

265:                                              ; preds = %256, %261
  %.1 = phi float [ %264, %261 ], [ 0.000000e+00, %256 ]
  %266 = load i64, ptr %16, align 8, !tbaa !5
  %267 = icmp sgt i64 %266, 1
  br i1 %267, label %268, label %272

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

271:                                              ; preds = %268
  store float 1.000000e+00, ptr %258, align 4, !tbaa !9
  br label %272

272:                                              ; preds = %271, %268, %265
  %273 = fcmp olt float %.1, %63
  br i1 %273, label %274, label %284

274:                                              ; preds = %272
  store float 1.000000e+00, ptr %258, align 4, !tbaa !9
  %275 = getelementptr float, ptr %257, i64 %41
  store float 0.000000e+00, ptr %275, align 4, !tbaa !9
  %276 = load float, ptr %255, align 4, !tbaa !9
  %277 = fcmp oeq float %276, 1.000000e+00
  br i1 %277, label %278, label %289

278:                                              ; preds = %274
  %279 = load i64, ptr %23, align 8, !tbaa !5
  %280 = load i64, ptr %2, align 8, !tbaa !5
  %281 = add nsw i64 %280, %.3367
  %282 = icmp slt i64 %279, %281
  br i1 %282, label %283, label %289

283:                                              ; preds = %278
  store i64 %281, ptr %23, align 8, !tbaa !5
  %.pre387 = load i64, ptr %16, align 8, !tbaa !5
  br label %289

284:                                              ; preds = %272
  %285 = load float, ptr %258, align 4, !tbaa !9
  %286 = fcmp olt float %285, %205
  br i1 %286, label %287, label %289

287:                                              ; preds = %284
  store float %205, ptr %258, align 4, !tbaa !9
  %288 = getelementptr float, ptr %257, i64 %41
  store float 1.000000e+00, ptr %288, align 4, !tbaa !9
  br label %289

289:                                              ; preds = %284, %287, %274, %278, %283
  %290 = phi i64 [ %266, %284 ], [ %266, %287 ], [ %266, %274 ], [ %266, %278 ], [ %.pre387, %283 ]
  %291 = icmp sgt i64 %290, 2
  br i1 %291, label %292, label %294

292:                                              ; preds = %289
  %293 = getelementptr i8, ptr %257, i64 %.idx342
  store float %.1, ptr %293, align 4, !tbaa !9
  br label %294

294:                                              ; preds = %289, %292
  %295 = add nuw nsw i64 %.3367, 1
  %.not340.not = icmp slt i64 %.3367, %254
  br i1 %.not340.not, label %256, label %.loopexit, !llvm.loop !22

.loopexit:                                        ; preds = %294, %.lr.ph373.split.us.prol.loopexit, %.lr.ph373.split.us, %middle.block420, %.thread388, %.lr.ph373.split.preheader, %250, %125, %.loopexit355, %.thread352
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #6
  ret i32 0
}

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

declare i64 @ilaprec_(ptr noundef) local_unnamed_addr #2

declare i32 @sla_syrfsx_extended__(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

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

declare double @sla_syrcond__(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

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

declare float @sqrtf(float) local_unnamed_addr

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

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

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

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

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


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