; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (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 i32, align 4
@c__0 = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4

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

156:                                              ; preds = %24
  %157 = load ptr, ptr %45, align 8, !tbaa !5
  %158 = getelementptr inbounds float, ptr %157, i64 1
  %159 = load float, ptr %158, align 4, !tbaa !11
  %160 = fcmp olt float %159, 0.000000e+00
  br i1 %160, label %161, label %164

161:                                              ; preds = %156
  %162 = load ptr, ptr %45, align 8, !tbaa !5
  %163 = getelementptr inbounds float, ptr %162, i64 1
  store float 1.000000e+00, ptr %163, align 4, !tbaa !11
  br label %169

164:                                              ; preds = %156
  %165 = load ptr, ptr %45, align 8, !tbaa !5
  %166 = getelementptr inbounds float, ptr %165, i64 1
  %167 = load float, ptr %166, align 4, !tbaa !11
  %168 = fptosi float %167 to i32
  store i32 %168, ptr %68, align 4, !tbaa !9
  br label %169

169:                                              ; preds = %164, %161
  br label %170

170:                                              ; preds = %169, %24
  %171 = load ptr, ptr %27, align 8, !tbaa !5
  %172 = load i32, ptr %171, align 4, !tbaa !9
  %173 = sitofp i32 %172 to float
  %174 = call float @slamch_(ptr noundef @.str)
  %175 = fmul float %173, %174
  store float %175, ptr %64, align 4, !tbaa !11
  store i32 10, ptr %75, align 4, !tbaa !9
  store float 5.000000e-01, ptr %77, align 4, !tbaa !11
  store float 2.500000e-01, ptr %65, align 4, !tbaa !11
  store i32 0, ptr %69, align 4, !tbaa !9
  %176 = load ptr, ptr %44, align 8, !tbaa !5
  %177 = load i32, ptr %176, align 4, !tbaa !9
  %178 = icmp sge i32 %177, 2
  br i1 %178, label %179, label %195

179:                                              ; preds = %170
  %180 = load ptr, ptr %45, align 8, !tbaa !5
  %181 = getelementptr inbounds float, ptr %180, i64 2
  %182 = load float, ptr %181, align 4, !tbaa !11
  %183 = fcmp olt float %182, 0.000000e+00
  br i1 %183, label %184, label %189

184:                                              ; preds = %179
  %185 = load i32, ptr %75, align 4, !tbaa !9
  %186 = sitofp i32 %185 to float
  %187 = load ptr, ptr %45, align 8, !tbaa !5
  %188 = getelementptr inbounds float, ptr %187, i64 2
  store float %186, ptr %188, align 4, !tbaa !11
  br label %194

189:                                              ; preds = %179
  %190 = load ptr, ptr %45, align 8, !tbaa !5
  %191 = getelementptr inbounds float, ptr %190, i64 2
  %192 = load float, ptr %191, align 4, !tbaa !11
  %193 = fptosi float %192 to i32
  store i32 %193, ptr %75, align 4, !tbaa !9
  br label %194

194:                                              ; preds = %189, %184
  br label %195

195:                                              ; preds = %194, %170
  %196 = load ptr, ptr %44, align 8, !tbaa !5
  %197 = load i32, ptr %196, align 4, !tbaa !9
  %198 = icmp sge i32 %197, 3
  br i1 %198, label %199, label %221

199:                                              ; preds = %195
  %200 = load ptr, ptr %45, align 8, !tbaa !5
  %201 = getelementptr inbounds float, ptr %200, i64 3
  %202 = load float, ptr %201, align 4, !tbaa !11
  %203 = fcmp olt float %202, 0.000000e+00
  br i1 %203, label %204, label %214

204:                                              ; preds = %199
  %205 = load i32, ptr %69, align 4, !tbaa !9
  %206 = icmp ne i32 %205, 0
  br i1 %206, label %207, label %210

207:                                              ; preds = %204
  %208 = load ptr, ptr %45, align 8, !tbaa !5
  %209 = getelementptr inbounds float, ptr %208, i64 3
  store float 0.000000e+00, ptr %209, align 4, !tbaa !11
  br label %213

210:                                              ; preds = %204
  %211 = load ptr, ptr %45, align 8, !tbaa !5
  %212 = getelementptr inbounds float, ptr %211, i64 3
  store float 1.000000e+00, ptr %212, align 4, !tbaa !11
  br label %213

213:                                              ; preds = %210, %207
  br label %220

214:                                              ; preds = %199
  %215 = load ptr, ptr %45, align 8, !tbaa !5
  %216 = getelementptr inbounds float, ptr %215, i64 3
  %217 = load float, ptr %216, align 4, !tbaa !11
  %218 = fcmp oeq float %217, 0.000000e+00
  %219 = zext i1 %218 to i32
  store i32 %219, ptr %69, align 4, !tbaa !9
  br label %220

220:                                              ; preds = %214, %213
  br label %221

221:                                              ; preds = %220, %195
  %222 = load i32, ptr %68, align 4, !tbaa !9
  %223 = icmp eq i32 %222, 0
  br i1 %223, label %228, label %224

224:                                              ; preds = %221
  %225 = load ptr, ptr %41, align 8, !tbaa !5
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = icmp eq i32 %226, 0
  br i1 %227, label %228, label %229

228:                                              ; preds = %224, %221
  store i32 0, ptr %76, align 4, !tbaa !9
  br label %235

229:                                              ; preds = %224
  %230 = load i32, ptr %69, align 4, !tbaa !9
  %231 = icmp ne i32 %230, 0
  br i1 %231, label %232, label %233

232:                                              ; preds = %229
  store i32 1, ptr %76, align 4, !tbaa !9
  br label %234

233:                                              ; preds = %229
  store i32 2, ptr %76, align 4, !tbaa !9
  br label %234

234:                                              ; preds = %233, %232
  br label %235

235:                                              ; preds = %234, %228
  %236 = load ptr, ptr %26, align 8, !tbaa !5
  %237 = call i32 @lsame_(ptr noundef %236, ptr noundef @.str.1)
  store i32 %237, ptr %72, align 4, !tbaa !9
  %238 = load ptr, ptr %25, align 8, !tbaa !5
  %239 = call i32 @lsame_(ptr noundef %238, ptr noundef @.str.2)
  %240 = icmp ne i32 %239, 0
  br i1 %240, label %247, label %241

241:                                              ; preds = %235
  %242 = load ptr, ptr %25, align 8, !tbaa !5
  %243 = call i32 @lsame_(ptr noundef %242, ptr noundef @.str.3)
  %244 = icmp ne i32 %243, 0
  br i1 %244, label %247, label %245

245:                                              ; preds = %241
  %246 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -1, ptr %246, align 4, !tbaa !9
  br label %335

247:                                              ; preds = %241, %235
  %248 = load i32, ptr %72, align 4, !tbaa !9
  %249 = icmp ne i32 %248, 0
  br i1 %249, label %256, label %250

250:                                              ; preds = %247
  %251 = load ptr, ptr %26, align 8, !tbaa !5
  %252 = call i32 @lsame_(ptr noundef %251, ptr noundef @.str.4)
  %253 = icmp ne i32 %252, 0
  br i1 %253, label %256, label %254

254:                                              ; preds = %250
  %255 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -2, ptr %255, align 4, !tbaa !9
  br label %334

256:                                              ; preds = %250, %247
  %257 = load ptr, ptr %27, align 8, !tbaa !5
  %258 = load i32, ptr %257, align 4, !tbaa !9
  %259 = icmp slt i32 %258, 0
  br i1 %259, label %260, label %262

260:                                              ; preds = %256
  %261 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -3, ptr %261, align 4, !tbaa !9
  br label %333

262:                                              ; preds = %256
  %263 = load ptr, ptr %28, align 8, !tbaa !5
  %264 = load i32, ptr %263, align 4, !tbaa !9
  %265 = icmp slt i32 %264, 0
  br i1 %265, label %266, label %268

266:                                              ; preds = %262
  %267 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -4, ptr %267, align 4, !tbaa !9
  br label %332

268:                                              ; preds = %262
  %269 = load ptr, ptr %30, align 8, !tbaa !5
  %270 = load i32, ptr %269, align 4, !tbaa !9
  %271 = load ptr, ptr %27, align 8, !tbaa !5
  %272 = load i32, ptr %271, align 4, !tbaa !9
  %273 = icmp sge i32 1, %272
  br i1 %273, label %274, label %275

274:                                              ; preds = %268
  br label %278

275:                                              ; preds = %268
  %276 = load ptr, ptr %27, align 8, !tbaa !5
  %277 = load i32, ptr %276, align 4, !tbaa !9
  br label %278

278:                                              ; preds = %275, %274
  %279 = phi i32 [ 1, %274 ], [ %277, %275 ]
  %280 = icmp slt i32 %270, %279
  br i1 %280, label %281, label %283

281:                                              ; preds = %278
  %282 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -6, ptr %282, align 4, !tbaa !9
  br label %331

283:                                              ; preds = %278
  %284 = load ptr, ptr %32, align 8, !tbaa !5
  %285 = load i32, ptr %284, align 4, !tbaa !9
  %286 = load ptr, ptr %27, align 8, !tbaa !5
  %287 = load i32, ptr %286, align 4, !tbaa !9
  %288 = icmp sge i32 1, %287
  br i1 %288, label %289, label %290

289:                                              ; preds = %283
  br label %293

290:                                              ; preds = %283
  %291 = load ptr, ptr %27, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  br label %293

293:                                              ; preds = %290, %289
  %294 = phi i32 [ 1, %289 ], [ %292, %290 ]
  %295 = icmp slt i32 %285, %294
  br i1 %295, label %296, label %298

296:                                              ; preds = %293
  %297 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -8, ptr %297, align 4, !tbaa !9
  br label %330

298:                                              ; preds = %293
  %299 = load ptr, ptr %36, align 8, !tbaa !5
  %300 = load i32, ptr %299, align 4, !tbaa !9
  %301 = load ptr, ptr %27, align 8, !tbaa !5
  %302 = load i32, ptr %301, align 4, !tbaa !9
  %303 = icmp sge i32 1, %302
  br i1 %303, label %304, label %305

304:                                              ; preds = %298
  br label %308

305:                                              ; preds = %298
  %306 = load ptr, ptr %27, align 8, !tbaa !5
  %307 = load i32, ptr %306, align 4, !tbaa !9
  br label %308

308:                                              ; preds = %305, %304
  %309 = phi i32 [ 1, %304 ], [ %307, %305 ]
  %310 = icmp slt i32 %300, %309
  br i1 %310, label %311, label %313

311:                                              ; preds = %308
  %312 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -12, ptr %312, align 4, !tbaa !9
  br label %329

313:                                              ; preds = %308
  %314 = load ptr, ptr %38, align 8, !tbaa !5
  %315 = load i32, ptr %314, align 4, !tbaa !9
  %316 = load ptr, ptr %27, align 8, !tbaa !5
  %317 = load i32, ptr %316, align 4, !tbaa !9
  %318 = icmp sge i32 1, %317
  br i1 %318, label %319, label %320

319:                                              ; preds = %313
  br label %323

320:                                              ; preds = %313
  %321 = load ptr, ptr %27, align 8, !tbaa !5
  %322 = load i32, ptr %321, align 4, !tbaa !9
  br label %323

323:                                              ; preds = %320, %319
  %324 = phi i32 [ 1, %319 ], [ %322, %320 ]
  %325 = icmp slt i32 %315, %324
  br i1 %325, label %326, label %328

326:                                              ; preds = %323
  %327 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 -14, ptr %327, align 4, !tbaa !9
  br label %328

328:                                              ; preds = %326, %323
  br label %329

329:                                              ; preds = %328, %311
  br label %330

330:                                              ; preds = %329, %296
  br label %331

331:                                              ; preds = %330, %281
  br label %332

332:                                              ; preds = %331, %266
  br label %333

333:                                              ; preds = %332, %260
  br label %334

334:                                              ; preds = %333, %254
  br label %335

335:                                              ; preds = %334, %245
  %336 = load ptr, ptr %48, align 8, !tbaa !5
  %337 = load i32, ptr %336, align 4, !tbaa !9
  %338 = icmp ne i32 %337, 0
  br i1 %338, label %339, label %344

339:                                              ; preds = %335
  %340 = load ptr, ptr %48, align 8, !tbaa !5
  %341 = load i32, ptr %340, align 4, !tbaa !9
  %342 = sub nsw i32 0, %341
  store i32 %342, ptr %61, align 4, !tbaa !9
  %343 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %61, i32 noundef 7)
  store i32 1, ptr %79, align 4
  br label %921

344:                                              ; preds = %335
  %345 = load ptr, ptr %27, align 8, !tbaa !5
  %346 = load i32, ptr %345, align 4, !tbaa !9
  %347 = icmp eq i32 %346, 0
  br i1 %347, label %352, label %348

348:                                              ; preds = %344
  %349 = load ptr, ptr %28, align 8, !tbaa !5
  %350 = load i32, ptr %349, align 4, !tbaa !9
  %351 = icmp eq i32 %350, 0
  br i1 %351, label %352, label %424

352:                                              ; preds = %348, %344
  %353 = load ptr, ptr %39, align 8, !tbaa !5
  store float 1.000000e+00, ptr %353, align 4, !tbaa !11
  %354 = load ptr, ptr %28, align 8, !tbaa !5
  %355 = load i32, ptr %354, align 4, !tbaa !9
  store i32 %355, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %356

356:                                              ; preds = %420, %352
  %357 = load i32, ptr %70, align 4, !tbaa !9
  %358 = load i32, ptr %61, align 4, !tbaa !9
  %359 = icmp sle i32 %357, %358
  br i1 %359, label %360, label %423

360:                                              ; preds = %356
  %361 = load ptr, ptr %40, align 8, !tbaa !5
  %362 = load i32, ptr %70, align 4, !tbaa !9
  %363 = sext i32 %362 to i64
  %364 = getelementptr inbounds float, ptr %361, i64 %363
  store float 0.000000e+00, ptr %364, align 4, !tbaa !11
  %365 = load ptr, ptr %41, align 8, !tbaa !5
  %366 = load i32, ptr %365, align 4, !tbaa !9
  %367 = icmp sge i32 %366, 1
  br i1 %367, label %368, label %381

368:                                              ; preds = %360
  %369 = load ptr, ptr %42, align 8, !tbaa !5
  %370 = load i32, ptr %70, align 4, !tbaa !9
  %371 = load i32, ptr %57, align 4, !tbaa !9
  %372 = add nsw i32 %370, %371
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds float, ptr %369, i64 %373
  store float 1.000000e+00, ptr %374, align 4, !tbaa !11
  %375 = load ptr, ptr %43, align 8, !tbaa !5
  %376 = load i32, ptr %70, align 4, !tbaa !9
  %377 = load i32, ptr %59, align 4, !tbaa !9
  %378 = add nsw i32 %376, %377
  %379 = sext i32 %378 to i64
  %380 = getelementptr inbounds float, ptr %375, i64 %379
  store float 1.000000e+00, ptr %380, align 4, !tbaa !11
  br label %381

381:                                              ; preds = %368, %360
  %382 = load ptr, ptr %41, align 8, !tbaa !5
  %383 = load i32, ptr %382, align 4, !tbaa !9
  %384 = icmp sge i32 %383, 2
  br i1 %384, label %385, label %400

385:                                              ; preds = %381
  %386 = load ptr, ptr %42, align 8, !tbaa !5
  %387 = load i32, ptr %70, align 4, !tbaa !9
  %388 = load i32, ptr %57, align 4, !tbaa !9
  %389 = shl i32 %388, 1
  %390 = add nsw i32 %387, %389
  %391 = sext i32 %390 to i64
  %392 = getelementptr inbounds float, ptr %386, i64 %391
  store float 0.000000e+00, ptr %392, align 4, !tbaa !11
  %393 = load ptr, ptr %43, align 8, !tbaa !5
  %394 = load i32, ptr %70, align 4, !tbaa !9
  %395 = load i32, ptr %59, align 4, !tbaa !9
  %396 = shl i32 %395, 1
  %397 = add nsw i32 %394, %396
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds float, ptr %393, i64 %398
  store float 0.000000e+00, ptr %399, align 4, !tbaa !11
  br label %400

400:                                              ; preds = %385, %381
  %401 = load ptr, ptr %41, align 8, !tbaa !5
  %402 = load i32, ptr %401, align 4, !tbaa !9
  %403 = icmp sge i32 %402, 3
  br i1 %403, label %404, label %419

404:                                              ; preds = %400
  %405 = load ptr, ptr %42, align 8, !tbaa !5
  %406 = load i32, ptr %70, align 4, !tbaa !9
  %407 = load i32, ptr %57, align 4, !tbaa !9
  %408 = mul nsw i32 %407, 3
  %409 = add nsw i32 %406, %408
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds float, ptr %405, i64 %410
  store float 1.000000e+00, ptr %411, align 4, !tbaa !11
  %412 = load ptr, ptr %43, align 8, !tbaa !5
  %413 = load i32, ptr %70, align 4, !tbaa !9
  %414 = load i32, ptr %59, align 4, !tbaa !9
  %415 = mul nsw i32 %414, 3
  %416 = add nsw i32 %413, %415
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds float, ptr %412, i64 %417
  store float 1.000000e+00, ptr %418, align 4, !tbaa !11
  br label %419

419:                                              ; preds = %404, %400
  br label %420

420:                                              ; preds = %419
  %421 = load i32, ptr %70, align 4, !tbaa !9
  %422 = add nsw i32 %421, 1
  store i32 %422, ptr %70, align 4, !tbaa !9
  br label %356, !llvm.loop !13

423:                                              ; preds = %356
  store i32 1, ptr %79, align 4
  br label %921

424:                                              ; preds = %348
  %425 = load ptr, ptr %39, align 8, !tbaa !5
  store float 0.000000e+00, ptr %425, align 4, !tbaa !11
  %426 = load ptr, ptr %28, align 8, !tbaa !5
  %427 = load i32, ptr %426, align 4, !tbaa !9
  store i32 %427, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %428

428:                                              ; preds = %492, %424
  %429 = load i32, ptr %70, align 4, !tbaa !9
  %430 = load i32, ptr %61, align 4, !tbaa !9
  %431 = icmp sle i32 %429, %430
  br i1 %431, label %432, label %495

432:                                              ; preds = %428
  %433 = load ptr, ptr %40, align 8, !tbaa !5
  %434 = load i32, ptr %70, align 4, !tbaa !9
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds float, ptr %433, i64 %435
  store float 1.000000e+00, ptr %436, align 4, !tbaa !11
  %437 = load ptr, ptr %41, align 8, !tbaa !5
  %438 = load i32, ptr %437, align 4, !tbaa !9
  %439 = icmp sge i32 %438, 1
  br i1 %439, label %440, label %453

440:                                              ; preds = %432
  %441 = load ptr, ptr %42, align 8, !tbaa !5
  %442 = load i32, ptr %70, align 4, !tbaa !9
  %443 = load i32, ptr %57, align 4, !tbaa !9
  %444 = add nsw i32 %442, %443
  %445 = sext i32 %444 to i64
  %446 = getelementptr inbounds float, ptr %441, i64 %445
  store float 1.000000e+00, ptr %446, align 4, !tbaa !11
  %447 = load ptr, ptr %43, align 8, !tbaa !5
  %448 = load i32, ptr %70, align 4, !tbaa !9
  %449 = load i32, ptr %59, align 4, !tbaa !9
  %450 = add nsw i32 %448, %449
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds float, ptr %447, i64 %451
  store float 1.000000e+00, ptr %452, align 4, !tbaa !11
  br label %453

453:                                              ; preds = %440, %432
  %454 = load ptr, ptr %41, align 8, !tbaa !5
  %455 = load i32, ptr %454, align 4, !tbaa !9
  %456 = icmp sge i32 %455, 2
  br i1 %456, label %457, label %472

457:                                              ; preds = %453
  %458 = load ptr, ptr %42, align 8, !tbaa !5
  %459 = load i32, ptr %70, align 4, !tbaa !9
  %460 = load i32, ptr %57, align 4, !tbaa !9
  %461 = shl i32 %460, 1
  %462 = add nsw i32 %459, %461
  %463 = sext i32 %462 to i64
  %464 = getelementptr inbounds float, ptr %458, i64 %463
  store float 1.000000e+00, ptr %464, align 4, !tbaa !11
  %465 = load ptr, ptr %43, align 8, !tbaa !5
  %466 = load i32, ptr %70, align 4, !tbaa !9
  %467 = load i32, ptr %59, align 4, !tbaa !9
  %468 = shl i32 %467, 1
  %469 = add nsw i32 %466, %468
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds float, ptr %465, i64 %470
  store float 1.000000e+00, ptr %471, align 4, !tbaa !11
  br label %472

472:                                              ; preds = %457, %453
  %473 = load ptr, ptr %41, align 8, !tbaa !5
  %474 = load i32, ptr %473, align 4, !tbaa !9
  %475 = icmp sge i32 %474, 3
  br i1 %475, label %476, label %491

476:                                              ; preds = %472
  %477 = load ptr, ptr %42, align 8, !tbaa !5
  %478 = load i32, ptr %70, align 4, !tbaa !9
  %479 = load i32, ptr %57, align 4, !tbaa !9
  %480 = mul nsw i32 %479, 3
  %481 = add nsw i32 %478, %480
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds float, ptr %477, i64 %482
  store float 0.000000e+00, ptr %483, align 4, !tbaa !11
  %484 = load ptr, ptr %43, align 8, !tbaa !5
  %485 = load i32, ptr %70, align 4, !tbaa !9
  %486 = load i32, ptr %59, align 4, !tbaa !9
  %487 = mul nsw i32 %486, 3
  %488 = add nsw i32 %485, %487
  %489 = sext i32 %488 to i64
  %490 = getelementptr inbounds float, ptr %484, i64 %489
  store float 0.000000e+00, ptr %490, align 4, !tbaa !11
  br label %491

491:                                              ; preds = %476, %472
  br label %492

492:                                              ; preds = %491
  %493 = load i32, ptr %70, align 4, !tbaa !9
  %494 = add nsw i32 %493, 1
  store i32 %494, ptr %70, align 4, !tbaa !9
  br label %428, !llvm.loop !15

495:                                              ; preds = %428
  %496 = getelementptr inbounds [1 x i8], ptr %67, i64 0, i64 0
  store i8 73, ptr %496, align 1, !tbaa !16
  %497 = getelementptr inbounds [1 x i8], ptr %67, i64 0, i64 0
  %498 = load ptr, ptr %25, align 8, !tbaa !5
  %499 = load ptr, ptr %27, align 8, !tbaa !5
  %500 = load ptr, ptr %29, align 8, !tbaa !5
  %501 = load i32, ptr %50, align 4, !tbaa !9
  %502 = sext i32 %501 to i64
  %503 = getelementptr inbounds float, ptr %500, i64 %502
  %504 = load ptr, ptr %30, align 8, !tbaa !5
  %505 = load ptr, ptr %46, align 8, !tbaa !5
  %506 = getelementptr inbounds float, ptr %505, i64 1
  %507 = call float @slansy_(ptr noundef %497, ptr noundef %498, ptr noundef %499, ptr noundef %503, ptr noundef %504, ptr noundef %506)
  store float %507, ptr %71, align 4, !tbaa !11
  %508 = load ptr, ptr %25, align 8, !tbaa !5
  %509 = load ptr, ptr %27, align 8, !tbaa !5
  %510 = load ptr, ptr %31, align 8, !tbaa !5
  %511 = load i32, ptr %52, align 4, !tbaa !9
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds float, ptr %510, i64 %512
  %514 = load ptr, ptr %32, align 8, !tbaa !5
  %515 = load ptr, ptr %33, align 8, !tbaa !5
  %516 = getelementptr inbounds i32, ptr %515, i64 1
  %517 = load ptr, ptr %39, align 8, !tbaa !5
  %518 = load ptr, ptr %46, align 8, !tbaa !5
  %519 = getelementptr inbounds float, ptr %518, i64 1
  %520 = load ptr, ptr %47, align 8, !tbaa !5
  %521 = getelementptr inbounds i32, ptr %520, i64 1
  %522 = load ptr, ptr %48, align 8, !tbaa !5
  call void @ssycon_(ptr noundef %508, ptr noundef %509, ptr noundef %513, ptr noundef %514, ptr noundef %516, ptr noundef %71, ptr noundef %517, ptr noundef %519, ptr noundef %521, ptr noundef %522)
  %523 = load i32, ptr %68, align 4, !tbaa !9
  %524 = icmp ne i32 %523, 0
  br i1 %524, label %525, label %583

525:                                              ; preds = %495
  %526 = call i32 @ilaprec_(ptr noundef @.str.6)
  store i32 %526, ptr %74, align 4, !tbaa !9
  %527 = load ptr, ptr %25, align 8, !tbaa !5
  %528 = load ptr, ptr %27, align 8, !tbaa !5
  %529 = load ptr, ptr %28, align 8, !tbaa !5
  %530 = load ptr, ptr %29, align 8, !tbaa !5
  %531 = load i32, ptr %50, align 4, !tbaa !9
  %532 = sext i32 %531 to i64
  %533 = getelementptr inbounds float, ptr %530, i64 %532
  %534 = load ptr, ptr %30, align 8, !tbaa !5
  %535 = load ptr, ptr %31, align 8, !tbaa !5
  %536 = load i32, ptr %52, align 4, !tbaa !9
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds float, ptr %535, i64 %537
  %539 = load ptr, ptr %32, align 8, !tbaa !5
  %540 = load ptr, ptr %33, align 8, !tbaa !5
  %541 = getelementptr inbounds i32, ptr %540, i64 1
  %542 = load ptr, ptr %34, align 8, !tbaa !5
  %543 = getelementptr inbounds float, ptr %542, i64 1
  %544 = load ptr, ptr %35, align 8, !tbaa !5
  %545 = load i32, ptr %54, align 4, !tbaa !9
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds float, ptr %544, i64 %546
  %548 = load ptr, ptr %36, align 8, !tbaa !5
  %549 = load ptr, ptr %37, align 8, !tbaa !5
  %550 = load i32, ptr %56, align 4, !tbaa !9
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds float, ptr %549, i64 %551
  %553 = load ptr, ptr %38, align 8, !tbaa !5
  %554 = load ptr, ptr %40, align 8, !tbaa !5
  %555 = getelementptr inbounds float, ptr %554, i64 1
  %556 = load ptr, ptr %42, align 8, !tbaa !5
  %557 = load i32, ptr %58, align 4, !tbaa !9
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds float, ptr %556, i64 %558
  %560 = load ptr, ptr %43, align 8, !tbaa !5
  %561 = load i32, ptr %60, align 4, !tbaa !9
  %562 = sext i32 %561 to i64
  %563 = getelementptr inbounds float, ptr %560, i64 %562
  %564 = load ptr, ptr %46, align 8, !tbaa !5
  %565 = load ptr, ptr %27, align 8, !tbaa !5
  %566 = load i32, ptr %565, align 4, !tbaa !9
  %567 = add nsw i32 %566, 1
  %568 = sext i32 %567 to i64
  %569 = getelementptr inbounds float, ptr %564, i64 %568
  %570 = load ptr, ptr %46, align 8, !tbaa !5
  %571 = getelementptr inbounds float, ptr %570, i64 1
  %572 = load ptr, ptr %46, align 8, !tbaa !5
  %573 = load ptr, ptr %27, align 8, !tbaa !5
  %574 = load i32, ptr %573, align 4, !tbaa !9
  %575 = shl i32 %574, 1
  %576 = add nsw i32 %575, 1
  %577 = sext i32 %576 to i64
  %578 = getelementptr inbounds float, ptr %572, i64 %577
  %579 = load ptr, ptr %46, align 8, !tbaa !5
  %580 = getelementptr inbounds float, ptr %579, i64 1
  %581 = load ptr, ptr %39, align 8, !tbaa !5
  %582 = load ptr, ptr %48, align 8, !tbaa !5
  call void @sla_syrfsx_extended_(ptr noundef %74, ptr noundef %527, ptr noundef %528, ptr noundef %529, ptr noundef %533, ptr noundef %534, ptr noundef %538, ptr noundef %539, ptr noundef %541, ptr noundef %72, ptr noundef %543, ptr noundef %547, ptr noundef %548, ptr noundef %552, ptr noundef %553, ptr noundef %555, ptr noundef %76, ptr noundef %559, ptr noundef %563, ptr noundef %569, ptr noundef %571, ptr noundef %578, ptr noundef %580, ptr noundef %581, ptr noundef %75, ptr noundef %77, ptr noundef %65, ptr noundef %69, ptr noundef %582)
  br label %583

583:                                              ; preds = %525, %495
  store float 1.000000e+01, ptr %62, align 4, !tbaa !11
  %584 = load ptr, ptr %27, align 8, !tbaa !5
  %585 = load i32, ptr %584, align 4, !tbaa !9
  %586 = sitofp i32 %585 to float
  %587 = fpext float %586 to double
  %588 = call double @sqrt(double noundef %587) #4
  %589 = fptrunc double %588 to float
  store float %589, ptr %63, align 4, !tbaa !11
  %590 = load float, ptr %62, align 4, !tbaa !11
  %591 = load float, ptr %63, align 4, !tbaa !11
  %592 = fcmp oge float %590, %591
  br i1 %592, label %593, label %595

593:                                              ; preds = %583
  %594 = load float, ptr %62, align 4, !tbaa !11
  br label %597

595:                                              ; preds = %583
  %596 = load float, ptr %63, align 4, !tbaa !11
  br label %597

597:                                              ; preds = %595, %593
  %598 = phi float [ %594, %593 ], [ %596, %595 ]
  %599 = call float @slamch_(ptr noundef @.str)
  %600 = fmul float %598, %599
  store float %600, ptr %66, align 4, !tbaa !11
  %601 = load ptr, ptr %41, align 8, !tbaa !5
  %602 = load i32, ptr %601, align 4, !tbaa !9
  %603 = icmp sge i32 %602, 1
  br i1 %603, label %604, label %760

604:                                              ; preds = %597
  %605 = load i32, ptr %76, align 4, !tbaa !9
  %606 = icmp sge i32 %605, 1
  br i1 %606, label %607, label %760

607:                                              ; preds = %604
  %608 = load i32, ptr %72, align 4, !tbaa !9
  %609 = icmp ne i32 %608, 0
  br i1 %609, label %610, label %633

610:                                              ; preds = %607
  %611 = load ptr, ptr %25, align 8, !tbaa !5
  %612 = load ptr, ptr %27, align 8, !tbaa !5
  %613 = load ptr, ptr %29, align 8, !tbaa !5
  %614 = load i32, ptr %50, align 4, !tbaa !9
  %615 = sext i32 %614 to i64
  %616 = getelementptr inbounds float, ptr %613, i64 %615
  %617 = load ptr, ptr %30, align 8, !tbaa !5
  %618 = load ptr, ptr %31, align 8, !tbaa !5
  %619 = load i32, ptr %52, align 4, !tbaa !9
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds float, ptr %618, i64 %620
  %622 = load ptr, ptr %32, align 8, !tbaa !5
  %623 = load ptr, ptr %33, align 8, !tbaa !5
  %624 = getelementptr inbounds i32, ptr %623, i64 1
  %625 = load ptr, ptr %34, align 8, !tbaa !5
  %626 = getelementptr inbounds float, ptr %625, i64 1
  %627 = load ptr, ptr %48, align 8, !tbaa !5
  %628 = load ptr, ptr %46, align 8, !tbaa !5
  %629 = getelementptr inbounds float, ptr %628, i64 1
  %630 = load ptr, ptr %47, align 8, !tbaa !5
  %631 = getelementptr inbounds i32, ptr %630, i64 1
  %632 = call float @sla_syrcond_(ptr noundef %611, ptr noundef %612, ptr noundef %616, ptr noundef %617, ptr noundef %621, ptr noundef %622, ptr noundef %624, ptr noundef @c_n1, ptr noundef %626, ptr noundef %627, ptr noundef %629, ptr noundef %631)
  store float %632, ptr %73, align 4, !tbaa !11
  br label %656

633:                                              ; preds = %607
  %634 = load ptr, ptr %25, align 8, !tbaa !5
  %635 = load ptr, ptr %27, align 8, !tbaa !5
  %636 = load ptr, ptr %29, align 8, !tbaa !5
  %637 = load i32, ptr %50, align 4, !tbaa !9
  %638 = sext i32 %637 to i64
  %639 = getelementptr inbounds float, ptr %636, i64 %638
  %640 = load ptr, ptr %30, align 8, !tbaa !5
  %641 = load ptr, ptr %31, align 8, !tbaa !5
  %642 = load i32, ptr %52, align 4, !tbaa !9
  %643 = sext i32 %642 to i64
  %644 = getelementptr inbounds float, ptr %641, i64 %643
  %645 = load ptr, ptr %32, align 8, !tbaa !5
  %646 = load ptr, ptr %33, align 8, !tbaa !5
  %647 = getelementptr inbounds i32, ptr %646, i64 1
  %648 = load ptr, ptr %34, align 8, !tbaa !5
  %649 = getelementptr inbounds float, ptr %648, i64 1
  %650 = load ptr, ptr %48, align 8, !tbaa !5
  %651 = load ptr, ptr %46, align 8, !tbaa !5
  %652 = getelementptr inbounds float, ptr %651, i64 1
  %653 = load ptr, ptr %47, align 8, !tbaa !5
  %654 = getelementptr inbounds i32, ptr %653, i64 1
  %655 = call float @sla_syrcond_(ptr noundef %634, ptr noundef %635, ptr noundef %639, ptr noundef %640, ptr noundef %644, ptr noundef %645, ptr noundef %647, ptr noundef @c__0, ptr noundef %649, ptr noundef %650, ptr noundef %652, ptr noundef %654)
  store float %655, ptr %73, align 4, !tbaa !11
  br label %656

656:                                              ; preds = %633, %610
  %657 = load ptr, ptr %28, align 8, !tbaa !5
  %658 = load i32, ptr %657, align 4, !tbaa !9
  store i32 %658, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %659

659:                                              ; preds = %756, %656
  %660 = load i32, ptr %70, align 4, !tbaa !9
  %661 = load i32, ptr %61, align 4, !tbaa !9
  %662 = icmp sle i32 %660, %661
  br i1 %662, label %663, label %759

663:                                              ; preds = %659
  %664 = load ptr, ptr %41, align 8, !tbaa !5
  %665 = load i32, ptr %664, align 4, !tbaa !9
  %666 = icmp sge i32 %665, 2
  br i1 %666, label %667, label %685

667:                                              ; preds = %663
  %668 = load ptr, ptr %42, align 8, !tbaa !5
  %669 = load i32, ptr %70, align 4, !tbaa !9
  %670 = load i32, ptr %57, align 4, !tbaa !9
  %671 = shl i32 %670, 1
  %672 = add nsw i32 %669, %671
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds float, ptr %668, i64 %673
  %675 = load float, ptr %674, align 4, !tbaa !11
  %676 = fcmp ogt float %675, 1.000000e+00
  br i1 %676, label %677, label %685

677:                                              ; preds = %667
  %678 = load ptr, ptr %42, align 8, !tbaa !5
  %679 = load i32, ptr %70, align 4, !tbaa !9
  %680 = load i32, ptr %57, align 4, !tbaa !9
  %681 = shl i32 %680, 1
  %682 = add nsw i32 %679, %681
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds float, ptr %678, i64 %683
  store float 1.000000e+00, ptr %684, align 4, !tbaa !11
  br label %685

685:                                              ; preds = %677, %667, %663
  %686 = load float, ptr %73, align 4, !tbaa !11
  %687 = load float, ptr %64, align 4, !tbaa !11
  %688 = fcmp olt float %686, %687
  br i1 %688, label %689, label %715

689:                                              ; preds = %685
  %690 = load ptr, ptr %42, align 8, !tbaa !5
  %691 = load i32, ptr %70, align 4, !tbaa !9
  %692 = load i32, ptr %57, align 4, !tbaa !9
  %693 = shl i32 %692, 1
  %694 = add nsw i32 %691, %693
  %695 = sext i32 %694 to i64
  %696 = getelementptr inbounds float, ptr %690, i64 %695
  store float 1.000000e+00, ptr %696, align 4, !tbaa !11
  %697 = load ptr, ptr %42, align 8, !tbaa !5
  %698 = load i32, ptr %70, align 4, !tbaa !9
  %699 = load i32, ptr %57, align 4, !tbaa !9
  %700 = add nsw i32 %698, %699
  %701 = sext i32 %700 to i64
  %702 = getelementptr inbounds float, ptr %697, i64 %701
  store float 0.000000e+00, ptr %702, align 4, !tbaa !11
  %703 = load ptr, ptr %48, align 8, !tbaa !5
  %704 = load i32, ptr %703, align 4, !tbaa !9
  %705 = load ptr, ptr %27, align 8, !tbaa !5
  %706 = load i32, ptr %705, align 4, !tbaa !9
  %707 = icmp sle i32 %704, %706
  br i1 %707, label %708, label %714

708:                                              ; preds = %689
  %709 = load ptr, ptr %27, align 8, !tbaa !5
  %710 = load i32, ptr %709, align 4, !tbaa !9
  %711 = load i32, ptr %70, align 4, !tbaa !9
  %712 = add nsw i32 %710, %711
  %713 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 %712, ptr %713, align 4, !tbaa !9
  br label %714

714:                                              ; preds = %708, %689
  br label %742

715:                                              ; preds = %685
  %716 = load ptr, ptr %42, align 8, !tbaa !5
  %717 = load i32, ptr %70, align 4, !tbaa !9
  %718 = load i32, ptr %57, align 4, !tbaa !9
  %719 = shl i32 %718, 1
  %720 = add nsw i32 %717, %719
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds float, ptr %716, i64 %721
  %723 = load float, ptr %722, align 4, !tbaa !11
  %724 = load float, ptr %66, align 4, !tbaa !11
  %725 = fcmp olt float %723, %724
  br i1 %725, label %726, label %741

726:                                              ; preds = %715
  %727 = load float, ptr %66, align 4, !tbaa !11
  %728 = load ptr, ptr %42, align 8, !tbaa !5
  %729 = load i32, ptr %70, align 4, !tbaa !9
  %730 = load i32, ptr %57, align 4, !tbaa !9
  %731 = shl i32 %730, 1
  %732 = add nsw i32 %729, %731
  %733 = sext i32 %732 to i64
  %734 = getelementptr inbounds float, ptr %728, i64 %733
  store float %727, ptr %734, align 4, !tbaa !11
  %735 = load ptr, ptr %42, align 8, !tbaa !5
  %736 = load i32, ptr %70, align 4, !tbaa !9
  %737 = load i32, ptr %57, align 4, !tbaa !9
  %738 = add nsw i32 %736, %737
  %739 = sext i32 %738 to i64
  %740 = getelementptr inbounds float, ptr %735, i64 %739
  store float 1.000000e+00, ptr %740, align 4, !tbaa !11
  br label %741

741:                                              ; preds = %726, %715
  br label %742

742:                                              ; preds = %741, %714
  %743 = load ptr, ptr %41, align 8, !tbaa !5
  %744 = load i32, ptr %743, align 4, !tbaa !9
  %745 = icmp sge i32 %744, 3
  br i1 %745, label %746, label %755

746:                                              ; preds = %742
  %747 = load float, ptr %73, align 4, !tbaa !11
  %748 = load ptr, ptr %42, align 8, !tbaa !5
  %749 = load i32, ptr %70, align 4, !tbaa !9
  %750 = load i32, ptr %57, align 4, !tbaa !9
  %751 = mul nsw i32 %750, 3
  %752 = add nsw i32 %749, %751
  %753 = sext i32 %752 to i64
  %754 = getelementptr inbounds float, ptr %748, i64 %753
  store float %747, ptr %754, align 4, !tbaa !11
  br label %755

755:                                              ; preds = %746, %742
  br label %756

756:                                              ; preds = %755
  %757 = load i32, ptr %70, align 4, !tbaa !9
  %758 = add nsw i32 %757, 1
  store i32 %758, ptr %70, align 4, !tbaa !9
  br label %659, !llvm.loop !17

759:                                              ; preds = %659
  br label %760

760:                                              ; preds = %759, %604, %597
  %761 = load ptr, ptr %41, align 8, !tbaa !5
  %762 = load i32, ptr %761, align 4, !tbaa !9
  %763 = icmp sge i32 %762, 1
  br i1 %763, label %764, label %920

764:                                              ; preds = %760
  %765 = load i32, ptr %76, align 4, !tbaa !9
  %766 = icmp sge i32 %765, 2
  br i1 %766, label %767, label %920

767:                                              ; preds = %764
  %768 = call float @slamch_(ptr noundef @.str)
  %769 = fpext float %768 to double
  %770 = call double @sqrt(double noundef %769) #4
  %771 = fptrunc double %770 to float
  store float %771, ptr %78, align 4, !tbaa !11
  %772 = load ptr, ptr %28, align 8, !tbaa !5
  %773 = load i32, ptr %772, align 4, !tbaa !9
  store i32 %773, ptr %61, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  br label %774

774:                                              ; preds = %916, %767
  %775 = load i32, ptr %70, align 4, !tbaa !9
  %776 = load i32, ptr %61, align 4, !tbaa !9
  %777 = icmp sle i32 %775, %776
  br i1 %777, label %778, label %919

778:                                              ; preds = %774
  %779 = load ptr, ptr %43, align 8, !tbaa !5
  %780 = load i32, ptr %70, align 4, !tbaa !9
  %781 = load i32, ptr %59, align 4, !tbaa !9
  %782 = shl i32 %781, 1
  %783 = add nsw i32 %780, %782
  %784 = sext i32 %783 to i64
  %785 = getelementptr inbounds float, ptr %779, i64 %784
  %786 = load float, ptr %785, align 4, !tbaa !11
  %787 = load float, ptr %78, align 4, !tbaa !11
  %788 = fcmp olt float %786, %787
  br i1 %788, label %789, label %817

789:                                              ; preds = %778
  %790 = load ptr, ptr %25, align 8, !tbaa !5
  %791 = load ptr, ptr %27, align 8, !tbaa !5
  %792 = load ptr, ptr %29, align 8, !tbaa !5
  %793 = load i32, ptr %50, align 4, !tbaa !9
  %794 = sext i32 %793 to i64
  %795 = getelementptr inbounds float, ptr %792, i64 %794
  %796 = load ptr, ptr %30, align 8, !tbaa !5
  %797 = load ptr, ptr %31, align 8, !tbaa !5
  %798 = load i32, ptr %52, align 4, !tbaa !9
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds float, ptr %797, i64 %799
  %801 = load ptr, ptr %32, align 8, !tbaa !5
  %802 = load ptr, ptr %33, align 8, !tbaa !5
  %803 = getelementptr inbounds i32, ptr %802, i64 1
  %804 = load ptr, ptr %37, align 8, !tbaa !5
  %805 = load i32, ptr %70, align 4, !tbaa !9
  %806 = load i32, ptr %55, align 4, !tbaa !9
  %807 = mul nsw i32 %805, %806
  %808 = add nsw i32 %807, 1
  %809 = sext i32 %808 to i64
  %810 = getelementptr inbounds float, ptr %804, i64 %809
  %811 = load ptr, ptr %48, align 8, !tbaa !5
  %812 = load ptr, ptr %46, align 8, !tbaa !5
  %813 = getelementptr inbounds float, ptr %812, i64 1
  %814 = load ptr, ptr %47, align 8, !tbaa !5
  %815 = getelementptr inbounds i32, ptr %814, i64 1
  %816 = call float @sla_syrcond_(ptr noundef %790, ptr noundef %791, ptr noundef %795, ptr noundef %796, ptr noundef %800, ptr noundef %801, ptr noundef %803, ptr noundef @c__1, ptr noundef %810, ptr noundef %811, ptr noundef %813, ptr noundef %815)
  store float %816, ptr %73, align 4, !tbaa !11
  br label %818

817:                                              ; preds = %778
  store float 0.000000e+00, ptr %73, align 4, !tbaa !11
  br label %818

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

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

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

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

844:                                              ; preds = %840
  %845 = load ptr, ptr %43, align 8, !tbaa !5
  %846 = load i32, ptr %70, align 4, !tbaa !9
  %847 = load i32, ptr %59, align 4, !tbaa !9
  %848 = shl i32 %847, 1
  %849 = add nsw i32 %846, %848
  %850 = sext i32 %849 to i64
  %851 = getelementptr inbounds float, ptr %845, i64 %850
  store float 1.000000e+00, ptr %851, align 4, !tbaa !11
  %852 = load ptr, ptr %43, align 8, !tbaa !5
  %853 = load i32, ptr %70, align 4, !tbaa !9
  %854 = load i32, ptr %59, align 4, !tbaa !9
  %855 = add nsw i32 %853, %854
  %856 = sext i32 %855 to i64
  %857 = getelementptr inbounds float, ptr %852, i64 %856
  store float 0.000000e+00, ptr %857, align 4, !tbaa !11
  %858 = load i32, ptr %69, align 4, !tbaa !9
  %859 = icmp ne i32 %858, 0
  br i1 %859, label %874, label %860

860:                                              ; preds = %844
  %861 = load ptr, ptr %48, align 8, !tbaa !5
  %862 = load i32, ptr %861, align 4, !tbaa !9
  %863 = load ptr, ptr %27, align 8, !tbaa !5
  %864 = load i32, ptr %863, align 4, !tbaa !9
  %865 = load i32, ptr %70, align 4, !tbaa !9
  %866 = add nsw i32 %864, %865
  %867 = icmp slt i32 %862, %866
  br i1 %867, label %868, label %874

868:                                              ; preds = %860
  %869 = load ptr, ptr %27, align 8, !tbaa !5
  %870 = load i32, ptr %869, align 4, !tbaa !9
  %871 = load i32, ptr %70, align 4, !tbaa !9
  %872 = add nsw i32 %870, %871
  %873 = load ptr, ptr %48, align 8, !tbaa !5
  store i32 %872, ptr %873, align 4, !tbaa !9
  br label %874

874:                                              ; preds = %868, %860, %844
  br label %902

875:                                              ; preds = %840
  %876 = load ptr, ptr %43, align 8, !tbaa !5
  %877 = load i32, ptr %70, align 4, !tbaa !9
  %878 = load i32, ptr %59, align 4, !tbaa !9
  %879 = shl i32 %878, 1
  %880 = add nsw i32 %877, %879
  %881 = sext i32 %880 to i64
  %882 = getelementptr inbounds float, ptr %876, i64 %881
  %883 = load float, ptr %882, align 4, !tbaa !11
  %884 = load float, ptr %66, align 4, !tbaa !11
  %885 = fcmp olt float %883, %884
  br i1 %885, label %886, label %901

886:                                              ; preds = %875
  %887 = load float, ptr %66, align 4, !tbaa !11
  %888 = load ptr, ptr %43, align 8, !tbaa !5
  %889 = load i32, ptr %70, align 4, !tbaa !9
  %890 = load i32, ptr %59, align 4, !tbaa !9
  %891 = shl i32 %890, 1
  %892 = add nsw i32 %889, %891
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds float, ptr %888, i64 %893
  store float %887, ptr %894, align 4, !tbaa !11
  %895 = load ptr, ptr %43, align 8, !tbaa !5
  %896 = load i32, ptr %70, align 4, !tbaa !9
  %897 = load i32, ptr %59, align 4, !tbaa !9
  %898 = add nsw i32 %896, %897
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds float, ptr %895, i64 %899
  store float 1.000000e+00, ptr %900, align 4, !tbaa !11
  br label %901

901:                                              ; preds = %886, %875
  br label %902

902:                                              ; preds = %901, %874
  %903 = load ptr, ptr %41, align 8, !tbaa !5
  %904 = load i32, ptr %903, align 4, !tbaa !9
  %905 = icmp sge i32 %904, 3
  br i1 %905, label %906, label %915

906:                                              ; preds = %902
  %907 = load float, ptr %73, align 4, !tbaa !11
  %908 = load ptr, ptr %43, align 8, !tbaa !5
  %909 = load i32, ptr %70, align 4, !tbaa !9
  %910 = load i32, ptr %59, align 4, !tbaa !9
  %911 = mul nsw i32 %910, 3
  %912 = add nsw i32 %909, %911
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds float, ptr %908, i64 %913
  store float %907, ptr %914, align 4, !tbaa !11
  br label %915

915:                                              ; preds = %906, %902
  br label %916

916:                                              ; preds = %915
  %917 = load i32, ptr %70, align 4, !tbaa !9
  %918 = add nsw i32 %917, 1
  store i32 %918, ptr %70, align 4, !tbaa !9
  br label %774, !llvm.loop !18

919:                                              ; preds = %774
  br label %920

920:                                              ; preds = %919, %764, %760
  store i32 1, ptr %79, align 4
  br label %921

921:                                              ; preds = %920, %423, %339
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  ret void
}

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

declare i32 @ilaprec_(ptr noundef) #2

declare void @sla_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) #2

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

declare float @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) #2

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

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

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

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


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

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

; Function Attrs: nounwind uwtable
define dso_local void @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 i32, align 4
  %32 = alloca float, align 4
  %33 = alloca [1 x i8], align 1
  %34 = alloca i32, align 4
  %35 = alloca float, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #5
  %41 = load i32, ptr %3, align 4, !tbaa !5
  %narrow334 = xor i32 %41, -1
  %42 = sext i32 %narrow334 to i64
  %43 = getelementptr inbounds float, ptr %18, i64 %42
  %44 = getelementptr inbounds float, ptr %17, i64 %42
  %45 = load i32, ptr %13, align 4, !tbaa !5
  %narrow = xor i32 %45, -1
  %46 = sext i32 %narrow to i64
  %47 = getelementptr inbounds float, ptr %12, i64 %46
  %48 = getelementptr inbounds i8, ptr %15, i64 -4
  %49 = getelementptr inbounds i8, ptr %21, i64 -4
  store i32 0, ptr %23, align 4, !tbaa !5
  %50 = load i32, ptr %19, align 4, !tbaa !5
  %51 = icmp sgt i32 %50, 0
  br i1 %51, label %52, label %58

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

55:                                               ; preds = %52
  store float 1.000000e+00, ptr %20, align 4, !tbaa !9
  br label %58

56:                                               ; preds = %52
  %57 = fptosi float %53 to i32
  br label %58

58:                                               ; preds = %55, %56, %24
  %.0313 = phi i32 [ 1, %55 ], [ %57, %56 ], [ 1, %24 ]
  %59 = load i32, ptr %2, align 4, !tbaa !5
  %60 = sitofp i32 %59 to float
  %61 = tail call float @slamch_(ptr noundef nonnull @.str) #5
  %62 = fmul float %61, %60
  store i32 10, ptr %38, align 4, !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 i32 0, ptr %34, align 4, !tbaa !5
  %63 = load i32, ptr %19, align 4, !tbaa !5
  %64 = icmp sgt i32 %63, 1
  br i1 %64, label %65, label %.thread

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

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

70:                                               ; preds = %65
  %71 = fptosi float %67 to i32
  store i32 %71, ptr %38, align 4, !tbaa !5
  br label %72

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

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

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

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

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

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

86:                                               ; preds = %83, %.thread
  store i32 0, ptr %39, align 4, !tbaa !5
  br label %90

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

88:                                               ; preds = %87
  store i32 1, ptr %39, align 4, !tbaa !5
  br label %90

89:                                               ; preds = %87
  store i32 2, ptr %39, align 4, !tbaa !5
  br label %90

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

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

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

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

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

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

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

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

110:                                              ; preds = %107
  %111 = load i32, ptr %11, align 4, !tbaa !5
  %112 = icmp slt i32 %111, %spec.select
  br i1 %112, label %.thread345.sink.split, label %113

113:                                              ; preds = %110
  %114 = load i32, ptr %13, align 4, !tbaa !5
  %115 = icmp slt i32 %114, %spec.select
  br i1 %115, label %.thread345.sink.split, label %116

116:                                              ; preds = %113
  %.pr = load i32, ptr %23, align 4, !tbaa !5
  %.not331 = icmp eq i32 %.pr, 0
  br i1 %.not331, label %120, label %.thread345

.thread345.sink.split:                            ; preds = %113, %110, %107, %104, %101, %98, %96, %93
  %.sink = phi i32 [ -1, %93 ], [ -2, %96 ], [ -3, %98 ], [ -4, %101 ], [ -6, %104 ], [ -8, %107 ], [ -12, %110 ], [ -14, %113 ]
  store i32 %.sink, ptr %23, align 4, !tbaa !5
  br label %.thread345

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

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

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

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

124:                                              ; preds = %120
  store float 1.000000e+00, ptr %14, align 4, !tbaa !9
  %.not341367 = icmp eq i32 %102, 0
  br i1 %.not341367, label %.loopexit, label %.lr.ph370

.lr.ph370:                                        ; preds = %124
  %125 = load i32, ptr %16, align 4, !tbaa !5
  %126 = icmp sgt i32 %125, 0
  %127 = shl i32 %41, 1
  %128 = icmp ugt i32 %125, 2
  %129 = mul nsw i32 %41, 3
  br i1 %126, label %.lr.ph370.split.us, label %.thread349.preheader

.thread349.preheader:                             ; preds = %.lr.ph370
  %130 = zext nneg i32 %102 to i64
  %131 = shl nuw nsw i64 %130, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %15, i8 0, i64 %131, i1 false), !tbaa !9
  br label %.loopexit

.lr.ph370.split.us:                               ; preds = %.lr.ph370
  %.not354 = icmp eq i32 %125, 1
  %132 = sext i32 %41 to i64
  br i1 %.not354, label %.thread349.us.us.preheader, label %.lr.ph370.split.us.split.preheader

.lr.ph370.split.us.split.preheader:               ; preds = %.lr.ph370.split.us
  %133 = sext i32 %127 to i64
  %134 = sext i32 %129 to i64
  %135 = add nuw i32 %102, 1
  %wide.trip.count401 = zext i32 %135 to i64
  br label %.lr.ph370.split.us.split

.thread349.us.us.preheader:                       ; preds = %.lr.ph370.split.us
  %136 = add nuw i32 %102, 1
  %wide.trip.count406 = zext i32 %136 to i64
  %137 = zext nneg i32 %102 to i64
  %min.iters.check464 = icmp ult i32 %102, 20
  br i1 %min.iters.check464, label %.thread349.us.us.preheader475, label %vector.memcheck456

vector.memcheck456:                               ; preds = %.thread349.us.us.preheader
  %138 = shl nsw i64 %132, 2
  %139 = add i64 %138, %27
  %140 = shl nsw i64 %42, 2
  %141 = add i64 %139, %140
  %142 = add i64 %141, 4
  %143 = sub i64 %142, %26
  %diff.check457 = icmp ult i64 %143, 32
  %144 = add i64 %138, %25
  %145 = add i64 %144, %140
  %146 = add i64 %145, 4
  %147 = sub i64 %146, %26
  %diff.check458 = icmp ult i64 %147, 32
  %conflict.rdx459 = or i1 %diff.check457, %diff.check458
  %148 = sub i64 %25, %27
  %diff.check460 = icmp ult i64 %148, 32
  %conflict.rdx461 = or i1 %conflict.rdx459, %diff.check460
  br i1 %conflict.rdx461, label %.thread349.us.us.preheader475, label %vector.ph465

vector.ph465:                                     ; preds = %vector.memcheck456
  %n.vec467 = and i64 %137, 2147483640
  %ind.end468 = or disjoint i64 %n.vec467, 1
  br label %vector.body470

vector.body470:                                   ; preds = %vector.body470, %vector.ph465
  %index471 = phi i64 [ 0, %vector.ph465 ], [ %index.next473, %vector.body470 ]
  %offset.idx472 = or disjoint i64 %index471, 1
  %149 = getelementptr float, ptr %15, i64 %index471
  %150 = getelementptr inbounds i8, ptr %149, i64 16
  store <4 x float> zeroinitializer, ptr %149, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %150, align 4, !tbaa !9
  %151 = add nsw i64 %offset.idx472, %132
  %152 = getelementptr inbounds float, ptr %44, i64 %151
  %153 = getelementptr inbounds i8, ptr %152, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %152, 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 %153, align 4, !tbaa !9
  %154 = getelementptr inbounds float, ptr %43, i64 %151
  %155 = getelementptr inbounds i8, ptr %154, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %154, 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 %155, align 4, !tbaa !9
  %index.next473 = add nuw i64 %index471, 8
  %156 = icmp eq i64 %index.next473, %n.vec467
  br i1 %156, label %middle.block462, label %vector.body470, !llvm.loop !11

middle.block462:                                  ; preds = %vector.body470
  %cmp.n474 = icmp eq i64 %n.vec467, %137
  br i1 %cmp.n474, label %.loopexit, label %.thread349.us.us.preheader475

.thread349.us.us.preheader475:                    ; preds = %middle.block462, %vector.memcheck456, %.thread349.us.us.preheader
  %indvars.iv403.ph = phi i64 [ 1, %vector.memcheck456 ], [ 1, %.thread349.us.us.preheader ], [ %ind.end468, %middle.block462 ]
  %157 = zext nneg i32 %102 to i64
  %158 = and i32 %102, 1
  %lcmp.mod483.not = icmp eq i32 %158, 0
  br i1 %lcmp.mod483.not, label %.thread349.us.us.prol.loopexit, label %.thread349.us.us.prol

.thread349.us.us.prol:                            ; preds = %.thread349.us.us.preheader475
  %159 = getelementptr inbounds float, ptr %48, i64 %indvars.iv403.ph
  store float 0.000000e+00, ptr %159, align 4, !tbaa !9
  %160 = add nsw i64 %indvars.iv403.ph, %132
  %161 = getelementptr inbounds float, ptr %44, i64 %160
  store float 1.000000e+00, ptr %161, align 4, !tbaa !9
  %162 = getelementptr inbounds float, ptr %43, i64 %160
  store float 1.000000e+00, ptr %162, align 4, !tbaa !9
  %indvars.iv.next404.prol = add nuw nsw i64 %indvars.iv403.ph, 1
  br label %.thread349.us.us.prol.loopexit

.thread349.us.us.prol.loopexit:                   ; preds = %.thread349.us.us.prol, %.thread349.us.us.preheader475
  %indvars.iv403.unr = phi i64 [ %indvars.iv403.ph, %.thread349.us.us.preheader475 ], [ %indvars.iv.next404.prol, %.thread349.us.us.prol ]
  %163 = icmp eq i64 %indvars.iv403.ph, %157
  br i1 %163, label %.loopexit, label %.thread349.us.us

.thread349.us.us:                                 ; preds = %.thread349.us.us.prol.loopexit, %.thread349.us.us
  %indvars.iv403 = phi i64 [ %indvars.iv.next404.1, %.thread349.us.us ], [ %indvars.iv403.unr, %.thread349.us.us.prol.loopexit ]
  %164 = getelementptr inbounds float, ptr %48, i64 %indvars.iv403
  store float 0.000000e+00, ptr %164, align 4, !tbaa !9
  %165 = add nsw i64 %indvars.iv403, %132
  %166 = getelementptr inbounds float, ptr %44, i64 %165
  store float 1.000000e+00, ptr %166, align 4, !tbaa !9
  %167 = getelementptr inbounds float, ptr %43, i64 %165
  store float 1.000000e+00, ptr %167, align 4, !tbaa !9
  %indvars.iv.next404 = add nuw nsw i64 %indvars.iv403, 1
  %168 = getelementptr float, ptr %15, i64 %indvars.iv403
  store float 0.000000e+00, ptr %168, align 4, !tbaa !9
  %169 = add nsw i64 %indvars.iv.next404, %132
  %170 = getelementptr inbounds float, ptr %44, i64 %169
  store float 1.000000e+00, ptr %170, align 4, !tbaa !9
  %171 = getelementptr inbounds float, ptr %43, i64 %169
  store float 1.000000e+00, ptr %171, align 4, !tbaa !9
  %indvars.iv.next404.1 = add nuw nsw i64 %indvars.iv403, 2
  %exitcond407.not.1 = icmp eq i64 %indvars.iv.next404.1, %wide.trip.count406
  br i1 %exitcond407.not.1, label %.loopexit, label %.thread349.us.us, !llvm.loop !15

.lr.ph370.split.us.split:                         ; preds = %.lr.ph370.split.us.split.preheader, %.thread349.us
  %indvars.iv398 = phi i64 [ 1, %.lr.ph370.split.us.split.preheader ], [ %indvars.iv.next399, %.thread349.us ]
  %172 = getelementptr inbounds float, ptr %48, i64 %indvars.iv398
  store float 0.000000e+00, ptr %172, align 4, !tbaa !9
  %173 = add nsw i64 %indvars.iv398, %132
  %174 = getelementptr inbounds float, ptr %44, i64 %173
  store float 1.000000e+00, ptr %174, align 4, !tbaa !9
  %175 = getelementptr inbounds float, ptr %43, i64 %173
  store float 1.000000e+00, ptr %175, align 4, !tbaa !9
  %176 = add nsw i64 %indvars.iv398, %133
  %177 = getelementptr inbounds float, ptr %44, i64 %176
  store float 0.000000e+00, ptr %177, align 4, !tbaa !9
  %178 = getelementptr inbounds float, ptr %43, i64 %176
  store float 0.000000e+00, ptr %178, align 4, !tbaa !9
  br i1 %128, label %179, label %.thread349.us

179:                                              ; preds = %.lr.ph370.split.us.split
  %180 = add nsw i64 %indvars.iv398, %134
  %181 = getelementptr inbounds float, ptr %44, i64 %180
  store float 1.000000e+00, ptr %181, align 4, !tbaa !9
  %182 = getelementptr inbounds float, ptr %43, i64 %180
  store float 1.000000e+00, ptr %182, align 4, !tbaa !9
  br label %.thread349.us

.thread349.us:                                    ; preds = %179, %.lr.ph370.split.us.split
  %indvars.iv.next399 = add nuw nsw i64 %indvars.iv398, 1
  %exitcond402.not = icmp eq i64 %indvars.iv.next399, %wide.trip.count401
  br i1 %exitcond402.not, label %.loopexit, label %.lr.ph370.split.us.split, !llvm.loop !16

.lr.ph:                                           ; preds = %122
  store float 0.000000e+00, ptr %14, align 4, !tbaa !9
  %183 = load i32, ptr %16, align 4, !tbaa !5
  %184 = icmp sgt i32 %183, 0
  %185 = shl i32 %41, 1
  %186 = icmp ugt i32 %183, 2
  %187 = mul nsw i32 %41, 3
  br i1 %184, label %.lr.ph.split.us, label %.thread352.preheader

.thread352.preheader:                             ; preds = %.lr.ph
  %188 = add nuw i32 %102, 1
  %wide.trip.count = zext i32 %188 to i64
  %189 = zext nneg i32 %102 to i64
  %min.iters.check = icmp ult i32 %102, 8
  br i1 %min.iters.check, label %.thread352.preheader480, label %vector.ph

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

vector.ph:                                        ; preds = %.thread352.preheader
  %n.vec = and i64 %189, 2147483640
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %190 = getelementptr float, ptr %15, i64 %index
  %191 = getelementptr inbounds i8, ptr %190, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %190, 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 %191, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %192 = icmp eq i64 %index.next, %n.vec
  br i1 %192, label %middle.block, label %vector.body, !llvm.loop !17

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %189
  br i1 %cmp.n, label %._crit_edge, label %.thread352.preheader480

.lr.ph.split.us:                                  ; preds = %.lr.ph
  %.not353 = icmp eq i32 %183, 1
  %193 = sext i32 %41 to i64
  br i1 %.not353, label %.thread352.us.us.preheader, label %.lr.ph.split.us.split.preheader

.lr.ph.split.us.split.preheader:                  ; preds = %.lr.ph.split.us
  %194 = sext i32 %185 to i64
  %195 = sext i32 %187 to i64
  %196 = add nuw i32 %102, 1
  %wide.trip.count380 = zext i32 %196 to i64
  br label %.lr.ph.split.us.split

.thread352.us.us.preheader:                       ; preds = %.lr.ph.split.us
  %197 = add nuw i32 %102, 1
  %wide.trip.count385 = zext i32 %197 to i64
  %198 = zext nneg i32 %102 to i64
  %min.iters.check445 = icmp ult i32 %102, 20
  br i1 %min.iters.check445, label %.thread352.us.us.preheader478, label %vector.memcheck

vector.memcheck:                                  ; preds = %.thread352.us.us.preheader
  %199 = shl nsw i64 %193, 2
  %200 = add i64 %199, %30
  %201 = shl nsw i64 %42, 2
  %202 = add i64 %200, %201
  %203 = add i64 %202, 4
  %204 = sub i64 %203, %29
  %diff.check = icmp ult i64 %204, 32
  %205 = add i64 %199, %28
  %206 = add i64 %205, %201
  %207 = add i64 %206, 4
  %208 = sub i64 %207, %29
  %diff.check440 = icmp ult i64 %208, 32
  %conflict.rdx = or i1 %diff.check, %diff.check440
  %209 = sub i64 %28, %30
  %diff.check441 = icmp ult i64 %209, 32
  %conflict.rdx442 = or i1 %conflict.rdx, %diff.check441
  br i1 %conflict.rdx442, label %.thread352.us.us.preheader478, label %vector.ph446

vector.ph446:                                     ; preds = %vector.memcheck
  %n.vec448 = and i64 %198, 2147483640
  %ind.end449 = or disjoint i64 %n.vec448, 1
  br label %vector.body451

vector.body451:                                   ; preds = %vector.body451, %vector.ph446
  %index452 = phi i64 [ 0, %vector.ph446 ], [ %index.next454, %vector.body451 ]
  %offset.idx453 = or disjoint i64 %index452, 1
  %210 = getelementptr float, ptr %15, i64 %index452
  %211 = getelementptr inbounds i8, ptr %210, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %210, 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 %211, align 4, !tbaa !9
  %212 = add nsw i64 %offset.idx453, %193
  %213 = getelementptr inbounds float, ptr %44, i64 %212
  %214 = getelementptr inbounds i8, ptr %213, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %213, 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 %214, align 4, !tbaa !9
  %215 = getelementptr inbounds float, ptr %43, i64 %212
  %216 = getelementptr inbounds i8, ptr %215, i64 16
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %215, align 4, !tbaa !9
  store <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, ptr %216, align 4, !tbaa !9
  %index.next454 = add nuw i64 %index452, 8
  %217 = icmp eq i64 %index.next454, %n.vec448
  br i1 %217, label %middle.block443, label %vector.body451, !llvm.loop !18

middle.block443:                                  ; preds = %vector.body451
  %cmp.n455 = icmp eq i64 %n.vec448, %198
  br i1 %cmp.n455, label %._crit_edge, label %.thread352.us.us.preheader478

.thread352.us.us.preheader478:                    ; preds = %middle.block443, %vector.memcheck, %.thread352.us.us.preheader
  %indvars.iv382.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.thread352.us.us.preheader ], [ %ind.end449, %middle.block443 ]
  %218 = zext nneg i32 %102 to i64
  %219 = and i32 %102, 1
  %lcmp.mod.not = icmp eq i32 %219, 0
  br i1 %lcmp.mod.not, label %.thread352.us.us.prol.loopexit, label %.thread352.us.us.prol

.thread352.us.us.prol:                            ; preds = %.thread352.us.us.preheader478
  %220 = getelementptr inbounds float, ptr %48, i64 %indvars.iv382.ph
  store float 1.000000e+00, ptr %220, align 4, !tbaa !9
  %221 = add nsw i64 %indvars.iv382.ph, %193
  %222 = getelementptr inbounds float, ptr %44, i64 %221
  store float 1.000000e+00, ptr %222, align 4, !tbaa !9
  %223 = getelementptr inbounds float, ptr %43, i64 %221
  store float 1.000000e+00, ptr %223, align 4, !tbaa !9
  %indvars.iv.next383.prol = add nuw nsw i64 %indvars.iv382.ph, 1
  br label %.thread352.us.us.prol.loopexit

.thread352.us.us.prol.loopexit:                   ; preds = %.thread352.us.us.prol, %.thread352.us.us.preheader478
  %indvars.iv382.unr = phi i64 [ %indvars.iv382.ph, %.thread352.us.us.preheader478 ], [ %indvars.iv.next383.prol, %.thread352.us.us.prol ]
  %224 = icmp eq i64 %indvars.iv382.ph, %218
  br i1 %224, label %._crit_edge, label %.thread352.us.us

.thread352.us.us:                                 ; preds = %.thread352.us.us.prol.loopexit, %.thread352.us.us
  %indvars.iv382 = phi i64 [ %indvars.iv.next383.1, %.thread352.us.us ], [ %indvars.iv382.unr, %.thread352.us.us.prol.loopexit ]
  %225 = getelementptr inbounds float, ptr %48, i64 %indvars.iv382
  store float 1.000000e+00, ptr %225, align 4, !tbaa !9
  %226 = add nsw i64 %indvars.iv382, %193
  %227 = getelementptr inbounds float, ptr %44, i64 %226
  store float 1.000000e+00, ptr %227, align 4, !tbaa !9
  %228 = getelementptr inbounds float, ptr %43, i64 %226
  store float 1.000000e+00, ptr %228, align 4, !tbaa !9
  %indvars.iv.next383 = add nuw nsw i64 %indvars.iv382, 1
  %229 = getelementptr float, ptr %15, i64 %indvars.iv382
  store float 1.000000e+00, ptr %229, align 4, !tbaa !9
  %230 = add nsw i64 %indvars.iv.next383, %193
  %231 = getelementptr inbounds float, ptr %44, i64 %230
  store float 1.000000e+00, ptr %231, align 4, !tbaa !9
  %232 = getelementptr inbounds float, ptr %43, i64 %230
  store float 1.000000e+00, ptr %232, align 4, !tbaa !9
  %indvars.iv.next383.1 = add nuw nsw i64 %indvars.iv382, 2
  %exitcond386.not.1 = icmp eq i64 %indvars.iv.next383.1, %wide.trip.count385
  br i1 %exitcond386.not.1, label %._crit_edge, label %.thread352.us.us, !llvm.loop !19

.lr.ph.split.us.split:                            ; preds = %.lr.ph.split.us.split.preheader, %.thread352.us
  %indvars.iv377 = phi i64 [ 1, %.lr.ph.split.us.split.preheader ], [ %indvars.iv.next378, %.thread352.us ]
  %233 = getelementptr inbounds float, ptr %48, i64 %indvars.iv377
  store float 1.000000e+00, ptr %233, align 4, !tbaa !9
  %234 = add nsw i64 %indvars.iv377, %193
  %235 = getelementptr inbounds float, ptr %44, i64 %234
  store float 1.000000e+00, ptr %235, align 4, !tbaa !9
  %236 = getelementptr inbounds float, ptr %43, i64 %234
  store float 1.000000e+00, ptr %236, align 4, !tbaa !9
  %237 = add nsw i64 %indvars.iv377, %194
  %238 = getelementptr inbounds float, ptr %44, i64 %237
  store float 1.000000e+00, ptr %238, align 4, !tbaa !9
  %239 = getelementptr inbounds float, ptr %43, i64 %237
  store float 1.000000e+00, ptr %239, align 4, !tbaa !9
  br i1 %186, label %240, label %.thread352.us

240:                                              ; preds = %.lr.ph.split.us.split
  %241 = add nsw i64 %indvars.iv377, %195
  %242 = getelementptr inbounds float, ptr %44, i64 %241
  store float 0.000000e+00, ptr %242, align 4, !tbaa !9
  %243 = getelementptr inbounds float, ptr %43, i64 %241
  store float 0.000000e+00, ptr %243, align 4, !tbaa !9
  br label %.thread352.us

.thread352.us:                                    ; preds = %240, %.lr.ph.split.us.split
  %indvars.iv.next378 = add nuw nsw i64 %indvars.iv377, 1
  %exitcond381.not = icmp eq i64 %indvars.iv.next378, %wide.trip.count380
  br i1 %exitcond381.not, label %._crit_edge, label %.lr.ph.split.us.split, !llvm.loop !20

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

._crit_edge:                                      ; preds = %.thread352, %.thread352.us, %.thread352.us.us.prol.loopexit, %.thread352.us.us, %middle.block, %middle.block443
  store i8 73, ptr %33, align 1, !tbaa !22
  %245 = call float @slansy_(ptr noundef nonnull %33, ptr noundef %0, ptr noundef nonnull %2, ptr noundef %4, ptr noundef nonnull %5, ptr noundef %21) #5
  store float %245, ptr %35, align 4, !tbaa !9
  call void @ssycon_(ptr noundef %0, ptr noundef nonnull %2, ptr noundef %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %35, ptr noundef nonnull %14, ptr noundef %21, ptr noundef %22, ptr noundef nonnull %23) #5
  br i1 %82, label %256, label %246

246:                                              ; preds = %._crit_edge
  %247 = call i32 @ilaprec_(ptr noundef nonnull @.str.6) #5
  store i32 %247, ptr %37, align 4, !tbaa !5
  %248 = load i32, ptr %2, align 4, !tbaa !5
  %249 = sext i32 %248 to i64
  %250 = getelementptr float, ptr %49, i64 %249
  %251 = getelementptr i8, ptr %250, i64 4
  %252 = shl i32 %248, 1
  %253 = or disjoint i32 %252, 1
  %254 = sext i32 %253 to i64
  %255 = getelementptr inbounds float, ptr %49, i64 %254
  call void @sla_syrfsx_extended_(ptr noundef nonnull %37, 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 %36, 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 %251, ptr noundef %21, ptr noundef nonnull %255, ptr noundef %21, ptr noundef nonnull %14, ptr noundef nonnull %38, ptr noundef nonnull %40, ptr noundef nonnull %32, ptr noundef nonnull %34, ptr noundef nonnull %23) #5
  br label %256

256:                                              ; preds = %246, %._crit_edge
  %257 = load i32, ptr %2, align 4, !tbaa !5
  %258 = sitofp i32 %257 to float
  %sqrtf = call float @sqrtf(float noundef %258) #6
  %259 = fcmp ole float %sqrtf, 1.000000e+01
  %260 = select i1 %259, float 1.000000e+01, float %sqrtf
  %261 = call float @slamch_(ptr noundef nonnull @.str) #5
  %262 = fmul float %261, %260
  %263 = load i32, ptr %16, align 4, !tbaa !5
  %264 = icmp sgt i32 %263, 0
  %265 = load i32, ptr %39, align 4
  %266 = icmp sgt i32 %265, 0
  %or.cond = select i1 %264, i1 %266, i1 false
  br i1 %or.cond, label %267, label %.loopexit356

267:                                              ; preds = %256
  %268 = load i32, ptr %36, align 4, !tbaa !5
  %.not335 = icmp eq i32 %268, 0
  %c__0.c_n1 = select i1 %.not335, ptr @c__0, ptr @c_n1
  %269 = call float @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) #5
  %270 = load i32, ptr %3, align 4, !tbaa !5
  %.not336359 = icmp slt i32 %270, 1
  %.pre409 = load i32, ptr %16, align 4, !tbaa !5
  br i1 %.not336359, label %.loopexit356, label %.lr.ph362

.lr.ph362:                                        ; preds = %267
  %271 = shl i32 %41, 1
  %272 = fcmp olt float %269, %62
  %273 = mul nsw i32 %41, 3
  %274 = sext i32 %271 to i64
  %275 = sext i32 %41 to i64
  %276 = sext i32 %273 to i64
  %277 = add nuw i32 %270, 1
  %wide.trip.count390 = zext i32 %277 to i64
  %invariant.gep416 = getelementptr float, ptr %44, i64 %274
  %invariant.gep418 = getelementptr float, ptr %44, i64 %274
  %invariant.gep420 = getelementptr float, ptr %44, i64 %275
  %invariant.gep422 = getelementptr float, ptr %44, i64 %274
  %invariant.gep424 = getelementptr float, ptr %44, i64 %275
  %invariant.gep426 = getelementptr float, ptr %44, i64 %276
  br label %278

278:                                              ; preds = %.lr.ph362, %300
  %279 = phi i32 [ %.pre409, %.lr.ph362 ], [ %297, %300 ]
  %indvars.iv387 = phi i64 [ 1, %.lr.ph362 ], [ %indvars.iv.next388, %300 ]
  %280 = icmp sgt i32 %279, 1
  br i1 %280, label %281, label %285

281:                                              ; preds = %278
  %gep417 = getelementptr float, ptr %invariant.gep416, i64 %indvars.iv387
  %282 = load float, ptr %gep417, align 4, !tbaa !9
  %283 = fcmp ogt float %282, 1.000000e+00
  br i1 %283, label %284, label %285

284:                                              ; preds = %281
  store float 1.000000e+00, ptr %gep417, align 4, !tbaa !9
  br label %285

285:                                              ; preds = %284, %281, %278
  br i1 %272, label %286, label %292

286:                                              ; preds = %285
  %gep423 = getelementptr float, ptr %invariant.gep422, i64 %indvars.iv387
  store float 1.000000e+00, ptr %gep423, align 4, !tbaa !9
  %gep425 = getelementptr float, ptr %invariant.gep424, i64 %indvars.iv387
  store float 0.000000e+00, ptr %gep425, align 4, !tbaa !9
  %287 = load i32, ptr %23, align 4, !tbaa !5
  %288 = load i32, ptr %2, align 4, !tbaa !5
  %.not340 = icmp sgt i32 %287, %288
  br i1 %.not340, label %296, label %289

289:                                              ; preds = %286
  %290 = trunc nuw nsw i64 %indvars.iv387 to i32
  %291 = add nsw i32 %288, %290
  store i32 %291, ptr %23, align 4, !tbaa !5
  %.pre408 = load i32, ptr %16, align 4, !tbaa !5
  br label %296

292:                                              ; preds = %285
  %gep419 = getelementptr float, ptr %invariant.gep418, i64 %indvars.iv387
  %293 = load float, ptr %gep419, align 4, !tbaa !9
  %294 = fcmp olt float %293, %262
  br i1 %294, label %295, label %296

295:                                              ; preds = %292
  store float %262, ptr %gep419, align 4, !tbaa !9
  %gep421 = getelementptr float, ptr %invariant.gep420, i64 %indvars.iv387
  store float 1.000000e+00, ptr %gep421, align 4, !tbaa !9
  br label %296

296:                                              ; preds = %292, %295, %286, %289
  %297 = phi i32 [ %279, %292 ], [ %279, %295 ], [ %279, %286 ], [ %.pre408, %289 ]
  %298 = icmp sgt i32 %297, 2
  br i1 %298, label %299, label %300

299:                                              ; preds = %296
  %gep427 = getelementptr float, ptr %invariant.gep426, i64 %indvars.iv387
  store float %269, ptr %gep427, align 4, !tbaa !9
  br label %300

300:                                              ; preds = %296, %299
  %indvars.iv.next388 = add nuw nsw i64 %indvars.iv387, 1
  %exitcond391.not = icmp eq i64 %indvars.iv.next388, %wide.trip.count390
  br i1 %exitcond391.not, label %.loopexit356, label %278, !llvm.loop !23

.loopexit356:                                     ; preds = %300, %267, %256
  %301 = phi i32 [ %.pre409, %267 ], [ %263, %256 ], [ %297, %300 ]
  %302 = icmp sgt i32 %301, 0
  %303 = load i32, ptr %39, align 4
  %304 = icmp sgt i32 %303, 1
  %or.cond3 = select i1 %302, i1 %304, i1 false
  br i1 %or.cond3, label %305, label %.loopexit

305:                                              ; preds = %.loopexit356
  %306 = call float @slamch_(ptr noundef nonnull @.str) #5
  %sqrtf337 = call float @sqrtf(float noundef %306) #6
  %307 = load i32, ptr %3, align 4, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %47, i64 4
  %.not338363 = icmp slt i32 %307, 1
  br i1 %.not338363, label %.loopexit, label %.lr.ph366

.lr.ph366:                                        ; preds = %305
  %308 = shl i32 %41, 1
  %309 = mul nsw i32 %41, 3
  %310 = sext i32 %308 to i64
  %311 = sext i32 %45 to i64
  %312 = sext i32 %41 to i64
  %313 = sext i32 %309 to i64
  %invariant.gep428 = getelementptr float, ptr %43, i64 %310
  %invariant.gep430 = getelementptr float, ptr %43, i64 %312
  %invariant.gep432 = getelementptr float, ptr %43, i64 %312
  %invariant.gep434 = getelementptr float, ptr %43, i64 %313
  %314 = zext nneg i32 %307 to i64
  br label %315

315:                                              ; preds = %.lr.ph366, %347
  %indvars.iv392 = phi i64 [ 1, %.lr.ph366 ], [ %indvars.iv.next393, %347 ]
  %gep429 = getelementptr float, ptr %invariant.gep428, i64 %indvars.iv392
  %316 = load float, ptr %gep429, align 4, !tbaa !9
  %317 = fcmp olt float %316, %sqrtf337
  br i1 %317, label %318, label %321

318:                                              ; preds = %315
  %319 = mul nsw i64 %indvars.iv392, %311
  %gep = getelementptr float, ptr %invariant.gep, i64 %319
  %320 = call float @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 %gep, ptr noundef nonnull %23, ptr noundef %21, ptr noundef %22) #5
  br label %321

321:                                              ; preds = %315, %318
  %.1 = phi float [ %320, %318 ], [ 0.000000e+00, %315 ]
  %322 = load i32, ptr %16, align 4, !tbaa !5
  %323 = icmp sgt i32 %322, 1
  br i1 %323, label %324, label %328

324:                                              ; preds = %321
  %325 = load float, ptr %gep429, align 4, !tbaa !9
  %326 = fcmp ogt float %325, 1.000000e+00
  br i1 %326, label %327, label %328

327:                                              ; preds = %324
  store float 1.000000e+00, ptr %gep429, align 4, !tbaa !9
  br label %328

328:                                              ; preds = %327, %324, %321
  %329 = fcmp olt float %.1, %62
  br i1 %329, label %330, label %339

330:                                              ; preds = %328
  store float 1.000000e+00, ptr %gep429, align 4, !tbaa !9
  %gep433 = getelementptr float, ptr %invariant.gep432, i64 %indvars.iv392
  store float 0.000000e+00, ptr %gep433, align 4, !tbaa !9
  %331 = load i32, ptr %34, align 4, !tbaa !5
  %.not339 = icmp eq i32 %331, 0
  br i1 %.not339, label %332, label %343

332:                                              ; preds = %330
  %333 = load i32, ptr %23, align 4, !tbaa !5
  %334 = load i32, ptr %2, align 4, !tbaa !5
  %335 = trunc nuw nsw i64 %indvars.iv392 to i32
  %336 = add nsw i32 %334, %335
  %337 = icmp slt i32 %333, %336
  br i1 %337, label %338, label %343

338:                                              ; preds = %332
  store i32 %336, ptr %23, align 4, !tbaa !5
  %.pre = load i32, ptr %16, align 4, !tbaa !5
  br label %343

339:                                              ; preds = %328
  %340 = load float, ptr %gep429, align 4, !tbaa !9
  %341 = fcmp olt float %340, %262
  br i1 %341, label %342, label %343

342:                                              ; preds = %339
  store float %262, ptr %gep429, align 4, !tbaa !9
  %gep431 = getelementptr float, ptr %invariant.gep430, i64 %indvars.iv392
  store float 1.000000e+00, ptr %gep431, align 4, !tbaa !9
  br label %343

343:                                              ; preds = %339, %342, %330, %332, %338
  %344 = phi i32 [ %322, %339 ], [ %322, %342 ], [ %322, %330 ], [ %322, %332 ], [ %.pre, %338 ]
  %345 = icmp sgt i32 %344, 2
  br i1 %345, label %346, label %347

346:                                              ; preds = %343
  %gep435 = getelementptr float, ptr %invariant.gep434, i64 %indvars.iv392
  store float %.1, ptr %gep435, align 4, !tbaa !9
  br label %347

347:                                              ; preds = %343, %346
  %indvars.iv.next393 = add nuw nsw i64 %indvars.iv392, 1
  %.not338.not = icmp ult i64 %indvars.iv392, %314
  br i1 %.not338.not, label %315, label %.loopexit, !llvm.loop !24

.loopexit:                                        ; preds = %347, %.thread349.us, %.thread349.us.us.prol.loopexit, %.thread349.us.us, %middle.block462, %.thread410, %.thread349.preheader, %305, %124, %.loopexit356, %.thread345
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #5
  ret void
}

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

declare void @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) local_unnamed_addr #2

declare float @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) local_unnamed_addr #2

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

declare float @sqrtf(float) local_unnamed_addr

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

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

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

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

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


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