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

; 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 [7 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
@c__1 = external hidden global i32, align 4
@.str.3 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i32, align 4
@c_b28 = external hidden global float, align 4

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

146:                                              ; preds = %25
  %147 = load ptr, ptr %49, align 8, !tbaa !5
  %148 = load i32, ptr %147, align 4, !tbaa !9
  %149 = icmp eq i32 %148, -1
  br label %150

150:                                              ; preds = %146, %25
  %151 = phi i1 [ true, %25 ], [ %149, %146 ]
  %152 = zext i1 %151 to i32
  store i32 %152, ptr %84, align 4, !tbaa !9
  %153 = load ptr, ptr %26, align 8, !tbaa !5
  %154 = load i32, ptr %153, align 4, !tbaa !9
  %155 = icmp slt i32 %154, 0
  br i1 %155, label %160, label %156

156:                                              ; preds = %150
  %157 = load ptr, ptr %26, align 8, !tbaa !5
  %158 = load i32, ptr %157, align 4, !tbaa !9
  %159 = icmp sgt i32 %158, 5
  br i1 %159, label %160, label %162

160:                                              ; preds = %156, %150
  %161 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -1, ptr %161, align 4, !tbaa !9
  br label %235

162:                                              ; preds = %156
  %163 = load ptr, ptr %30, align 8, !tbaa !5
  %164 = load i32, ptr %163, align 4, !tbaa !9
  %165 = icmp slt i32 %164, 0
  br i1 %165, label %166, label %168

166:                                              ; preds = %162
  %167 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -5, ptr %167, align 4, !tbaa !9
  br label %234

168:                                              ; preds = %162
  %169 = load ptr, ptr %32, align 8, !tbaa !5
  %170 = load i32, ptr %169, align 4, !tbaa !9
  %171 = load ptr, ptr %30, align 8, !tbaa !5
  %172 = load i32, ptr %171, align 4, !tbaa !9
  %173 = icmp sge i32 1, %172
  br i1 %173, label %174, label %175

174:                                              ; preds = %168
  br label %178

175:                                              ; preds = %168
  %176 = load ptr, ptr %30, align 8, !tbaa !5
  %177 = load i32, ptr %176, align 4, !tbaa !9
  br label %178

178:                                              ; preds = %175, %174
  %179 = phi i32 [ 1, %174 ], [ %177, %175 ]
  %180 = icmp slt i32 %170, %179
  br i1 %180, label %181, label %183

181:                                              ; preds = %178
  %182 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -7, ptr %182, align 4, !tbaa !9
  br label %233

183:                                              ; preds = %178
  %184 = load ptr, ptr %34, align 8, !tbaa !5
  %185 = load i32, ptr %184, align 4, !tbaa !9
  %186 = load ptr, ptr %30, align 8, !tbaa !5
  %187 = load i32, ptr %186, align 4, !tbaa !9
  %188 = icmp sge i32 1, %187
  br i1 %188, label %189, label %190

189:                                              ; preds = %183
  br label %193

190:                                              ; preds = %183
  %191 = load ptr, ptr %30, align 8, !tbaa !5
  %192 = load i32, ptr %191, align 4, !tbaa !9
  br label %193

193:                                              ; preds = %190, %189
  %194 = phi i32 [ 1, %189 ], [ %192, %190 ]
  %195 = icmp slt i32 %185, %194
  br i1 %195, label %196, label %198

196:                                              ; preds = %193
  %197 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -9, ptr %197, align 4, !tbaa !9
  br label %232

198:                                              ; preds = %193
  %199 = load ptr, ptr %39, align 8, !tbaa !5
  %200 = load i32, ptr %199, align 4, !tbaa !9
  %201 = icmp slt i32 %200, 1
  br i1 %201, label %212, label %202

202:                                              ; preds = %198
  %203 = load ptr, ptr %27, align 8, !tbaa !5
  %204 = load i32, ptr %203, align 4, !tbaa !9
  %205 = icmp ne i32 %204, 0
  br i1 %205, label %206, label %214

206:                                              ; preds = %202
  %207 = load ptr, ptr %39, align 8, !tbaa !5
  %208 = load i32, ptr %207, align 4, !tbaa !9
  %209 = load ptr, ptr %30, align 8, !tbaa !5
  %210 = load i32, ptr %209, align 4, !tbaa !9
  %211 = icmp slt i32 %208, %210
  br i1 %211, label %212, label %214

212:                                              ; preds = %206, %198
  %213 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -14, ptr %213, align 4, !tbaa !9
  br label %231

214:                                              ; preds = %206, %202
  %215 = load ptr, ptr %41, align 8, !tbaa !5
  %216 = load i32, ptr %215, align 4, !tbaa !9
  %217 = icmp slt i32 %216, 1
  br i1 %217, label %228, label %218

218:                                              ; preds = %214
  %219 = load ptr, ptr %28, align 8, !tbaa !5
  %220 = load i32, ptr %219, align 4, !tbaa !9
  %221 = icmp ne i32 %220, 0
  br i1 %221, label %222, label %230

222:                                              ; preds = %218
  %223 = load ptr, ptr %41, align 8, !tbaa !5
  %224 = load i32, ptr %223, align 4, !tbaa !9
  %225 = load ptr, ptr %30, align 8, !tbaa !5
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = icmp slt i32 %224, %226
  br i1 %227, label %228, label %230

228:                                              ; preds = %222, %214
  %229 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -16, ptr %229, align 4, !tbaa !9
  br label %230

230:                                              ; preds = %228, %222, %218
  br label %231

231:                                              ; preds = %230, %212
  br label %232

232:                                              ; preds = %231, %196
  br label %233

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

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

235:                                              ; preds = %234, %160
  %236 = load ptr, ptr %50, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = icmp ne i32 %237, 0
  br i1 %238, label %239, label %244

239:                                              ; preds = %235
  %240 = load ptr, ptr %50, align 8, !tbaa !5
  %241 = load i32, ptr %240, align 4, !tbaa !9
  %242 = sub nsw i32 0, %241
  store i32 %242, ptr %59, align 4, !tbaa !9
  %243 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %59, i32 noundef 6)
  store i32 1, ptr %87, align 4
  br label %1662

244:                                              ; preds = %235
  %245 = call float @slamch_(ptr noundef @.str.1)
  store float %245, ptr %86, align 4, !tbaa !11
  %246 = call float @slamch_(ptr noundef @.str.2)
  %247 = load float, ptr %86, align 4, !tbaa !11
  %248 = fdiv float %246, %247
  store float %248, ptr %82, align 4, !tbaa !11
  store i32 0, ptr %64, align 4, !tbaa !9
  %249 = load ptr, ptr %26, align 8, !tbaa !5
  %250 = load i32, ptr %249, align 4, !tbaa !9
  %251 = icmp eq i32 %250, 1
  br i1 %251, label %256, label %252

252:                                              ; preds = %244
  %253 = load ptr, ptr %26, align 8, !tbaa !5
  %254 = load i32, ptr %253, align 4, !tbaa !9
  %255 = icmp sge i32 %254, 4
  br label %256

256:                                              ; preds = %252, %244
  %257 = phi i1 [ true, %244 ], [ %255, %252 ]
  %258 = zext i1 %257 to i32
  store i32 %258, ptr %72, align 4, !tbaa !9
  %259 = load ptr, ptr %26, align 8, !tbaa !5
  %260 = load i32, ptr %259, align 4, !tbaa !9
  %261 = icmp eq i32 %260, 2
  br i1 %261, label %266, label %262

262:                                              ; preds = %256
  %263 = load ptr, ptr %26, align 8, !tbaa !5
  %264 = load i32, ptr %263, align 4, !tbaa !9
  %265 = icmp eq i32 %264, 4
  br label %266

266:                                              ; preds = %262, %256
  %267 = phi i1 [ true, %256 ], [ %265, %262 ]
  %268 = zext i1 %267 to i32
  store i32 %268, ptr %75, align 4, !tbaa !9
  %269 = load ptr, ptr %26, align 8, !tbaa !5
  %270 = load i32, ptr %269, align 4, !tbaa !9
  %271 = icmp eq i32 %270, 3
  br i1 %271, label %276, label %272

272:                                              ; preds = %266
  %273 = load ptr, ptr %26, align 8, !tbaa !5
  %274 = load i32, ptr %273, align 4, !tbaa !9
  %275 = icmp eq i32 %274, 5
  br label %276

276:                                              ; preds = %272, %266
  %277 = phi i1 [ true, %266 ], [ %275, %272 ]
  %278 = zext i1 %277 to i32
  store i32 %278, ptr %76, align 4, !tbaa !9
  %279 = load i32, ptr %75, align 4, !tbaa !9
  %280 = icmp ne i32 %279, 0
  br i1 %280, label %284, label %281

281:                                              ; preds = %276
  %282 = load i32, ptr %76, align 4, !tbaa !9
  %283 = icmp ne i32 %282, 0
  br label %284

284:                                              ; preds = %281, %276
  %285 = phi i1 [ true, %276 ], [ %283, %281 ]
  %286 = zext i1 %285 to i32
  store i32 %286, ptr %70, align 4, !tbaa !9
  %287 = load ptr, ptr %42, align 8, !tbaa !5
  store i32 0, ptr %287, align 4, !tbaa !9
  store i32 0, ptr %63, align 4, !tbaa !9
  %288 = load i32, ptr %84, align 4, !tbaa !9
  %289 = icmp ne i32 %288, 0
  br i1 %289, label %290, label %294

290:                                              ; preds = %284
  %291 = load ptr, ptr %26, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = icmp ne i32 %292, 0
  br i1 %293, label %294, label %374

294:                                              ; preds = %290, %284
  %295 = load ptr, ptr %30, align 8, !tbaa !5
  %296 = load i32, ptr %295, align 4, !tbaa !9
  store i32 %296, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %297

297:                                              ; preds = %370, %294
  %298 = load i32, ptr %68, align 4, !tbaa !9
  %299 = load i32, ptr %59, align 4, !tbaa !9
  %300 = icmp sle i32 %298, %299
  br i1 %300, label %301, label %373

301:                                              ; preds = %297
  %302 = load i32, ptr %63, align 4, !tbaa !9
  %303 = icmp ne i32 %302, 0
  br i1 %303, label %304, label %305

304:                                              ; preds = %301
  store i32 0, ptr %63, align 4, !tbaa !9
  br label %369

305:                                              ; preds = %301
  %306 = load i32, ptr %68, align 4, !tbaa !9
  %307 = load ptr, ptr %30, align 8, !tbaa !5
  %308 = load i32, ptr %307, align 4, !tbaa !9
  %309 = icmp slt i32 %306, %308
  br i1 %309, label %310, label %355

310:                                              ; preds = %305
  %311 = load ptr, ptr %31, align 8, !tbaa !5
  %312 = load i32, ptr %68, align 4, !tbaa !9
  %313 = add nsw i32 %312, 1
  %314 = load i32, ptr %68, align 4, !tbaa !9
  %315 = load i32, ptr %51, align 4, !tbaa !9
  %316 = mul nsw i32 %314, %315
  %317 = add nsw i32 %313, %316
  %318 = sext i32 %317 to i64
  %319 = getelementptr inbounds float, ptr %311, i64 %318
  %320 = load float, ptr %319, align 4, !tbaa !11
  %321 = fcmp oeq float %320, 0.000000e+00
  br i1 %321, label %322, label %334

322:                                              ; preds = %310
  %323 = load ptr, ptr %29, align 8, !tbaa !5
  %324 = load i32, ptr %68, align 4, !tbaa !9
  %325 = sext i32 %324 to i64
  %326 = getelementptr inbounds i32, ptr %323, i64 %325
  %327 = load i32, ptr %326, align 4, !tbaa !9
  %328 = icmp ne i32 %327, 0
  br i1 %328, label %329, label %333

329:                                              ; preds = %322
  %330 = load ptr, ptr %42, align 8, !tbaa !5
  %331 = load i32, ptr %330, align 4, !tbaa !9
  %332 = add nsw i32 %331, 1
  store i32 %332, ptr %330, align 4, !tbaa !9
  br label %333

333:                                              ; preds = %329, %322
  br label %354

334:                                              ; preds = %310
  store i32 1, ptr %63, align 4, !tbaa !9
  %335 = load ptr, ptr %29, align 8, !tbaa !5
  %336 = load i32, ptr %68, align 4, !tbaa !9
  %337 = sext i32 %336 to i64
  %338 = getelementptr inbounds i32, ptr %335, i64 %337
  %339 = load i32, ptr %338, align 4, !tbaa !9
  %340 = icmp ne i32 %339, 0
  br i1 %340, label %349, label %341

341:                                              ; preds = %334
  %342 = load ptr, ptr %29, align 8, !tbaa !5
  %343 = load i32, ptr %68, align 4, !tbaa !9
  %344 = add nsw i32 %343, 1
  %345 = sext i32 %344 to i64
  %346 = getelementptr inbounds i32, ptr %342, i64 %345
  %347 = load i32, ptr %346, align 4, !tbaa !9
  %348 = icmp ne i32 %347, 0
  br i1 %348, label %349, label %353

349:                                              ; preds = %341, %334
  %350 = load ptr, ptr %42, align 8, !tbaa !5
  %351 = load i32, ptr %350, align 4, !tbaa !9
  %352 = add nsw i32 %351, 2
  store i32 %352, ptr %350, align 4, !tbaa !9
  br label %353

353:                                              ; preds = %349, %341
  br label %354

354:                                              ; preds = %353, %333
  br label %368

355:                                              ; preds = %305
  %356 = load ptr, ptr %29, align 8, !tbaa !5
  %357 = load ptr, ptr %30, align 8, !tbaa !5
  %358 = load i32, ptr %357, align 4, !tbaa !9
  %359 = sext i32 %358 to i64
  %360 = getelementptr inbounds i32, ptr %356, i64 %359
  %361 = load i32, ptr %360, align 4, !tbaa !9
  %362 = icmp ne i32 %361, 0
  br i1 %362, label %363, label %367

363:                                              ; preds = %355
  %364 = load ptr, ptr %42, align 8, !tbaa !5
  %365 = load i32, ptr %364, align 4, !tbaa !9
  %366 = add nsw i32 %365, 1
  store i32 %366, ptr %364, align 4, !tbaa !9
  br label %367

367:                                              ; preds = %363, %355
  br label %368

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

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

370:                                              ; preds = %369
  %371 = load i32, ptr %68, align 4, !tbaa !9
  %372 = add nsw i32 %371, 1
  store i32 %372, ptr %68, align 4, !tbaa !9
  br label %297, !llvm.loop !13

373:                                              ; preds = %297
  br label %374

374:                                              ; preds = %373, %290
  %375 = load ptr, ptr %26, align 8, !tbaa !5
  %376 = load i32, ptr %375, align 4, !tbaa !9
  %377 = icmp eq i32 %376, 1
  br i1 %377, label %386, label %378

378:                                              ; preds = %374
  %379 = load ptr, ptr %26, align 8, !tbaa !5
  %380 = load i32, ptr %379, align 4, !tbaa !9
  %381 = icmp eq i32 %380, 2
  br i1 %381, label %386, label %382

382:                                              ; preds = %378
  %383 = load ptr, ptr %26, align 8, !tbaa !5
  %384 = load i32, ptr %383, align 4, !tbaa !9
  %385 = icmp eq i32 %384, 4
  br i1 %385, label %386, label %430

386:                                              ; preds = %382, %378, %374
  store i32 1, ptr %59, align 4, !tbaa !9
  %387 = load ptr, ptr %30, align 8, !tbaa !5
  %388 = load i32, ptr %387, align 4, !tbaa !9
  %389 = shl i32 %388, 2
  %390 = add nsw i32 %389, 16
  store i32 %390, ptr %60, align 4, !tbaa !9
  %391 = load i32, ptr %59, align 4, !tbaa !9
  %392 = load i32, ptr %60, align 4, !tbaa !9
  %393 = icmp sge i32 %391, %392
  br i1 %393, label %394, label %396

394:                                              ; preds = %386
  %395 = load i32, ptr %59, align 4, !tbaa !9
  br label %398

396:                                              ; preds = %386
  %397 = load i32, ptr %60, align 4, !tbaa !9
  br label %398

398:                                              ; preds = %396, %394
  %399 = phi i32 [ %395, %394 ], [ %397, %396 ]
  store i32 %399, ptr %59, align 4, !tbaa !9
  %400 = load ptr, ptr %42, align 8, !tbaa !5
  %401 = load i32, ptr %400, align 4, !tbaa !9
  %402 = shl i32 %401, 1
  %403 = load ptr, ptr %30, align 8, !tbaa !5
  %404 = load i32, ptr %403, align 4, !tbaa !9
  %405 = load ptr, ptr %42, align 8, !tbaa !5
  %406 = load i32, ptr %405, align 4, !tbaa !9
  %407 = sub nsw i32 %404, %406
  %408 = mul nsw i32 %402, %407
  store i32 %408, ptr %60, align 4, !tbaa !9
  %409 = load i32, ptr %59, align 4, !tbaa !9
  %410 = load i32, ptr %60, align 4, !tbaa !9
  %411 = icmp sge i32 %409, %410
  br i1 %411, label %412, label %414

412:                                              ; preds = %398
  %413 = load i32, ptr %59, align 4, !tbaa !9
  br label %416

414:                                              ; preds = %398
  %415 = load i32, ptr %60, align 4, !tbaa !9
  br label %416

416:                                              ; preds = %414, %412
  %417 = phi i32 [ %413, %412 ], [ %415, %414 ]
  store i32 %417, ptr %71, align 4, !tbaa !9
  store i32 1, ptr %59, align 4, !tbaa !9
  %418 = load ptr, ptr %30, align 8, !tbaa !5
  %419 = load i32, ptr %418, align 4, !tbaa !9
  %420 = add nsw i32 %419, 6
  store i32 %420, ptr %60, align 4, !tbaa !9
  %421 = load i32, ptr %59, align 4, !tbaa !9
  %422 = load i32, ptr %60, align 4, !tbaa !9
  %423 = icmp sge i32 %421, %422
  br i1 %423, label %424, label %426

424:                                              ; preds = %416
  %425 = load i32, ptr %59, align 4, !tbaa !9
  br label %428

426:                                              ; preds = %416
  %427 = load i32, ptr %60, align 4, !tbaa !9
  br label %428

428:                                              ; preds = %426, %424
  %429 = phi i32 [ %425, %424 ], [ %427, %426 ]
  store i32 %429, ptr %81, align 4, !tbaa !9
  br label %515

430:                                              ; preds = %382
  %431 = load ptr, ptr %26, align 8, !tbaa !5
  %432 = load i32, ptr %431, align 4, !tbaa !9
  %433 = icmp eq i32 %432, 3
  br i1 %433, label %438, label %434

434:                                              ; preds = %430
  %435 = load ptr, ptr %26, align 8, !tbaa !5
  %436 = load i32, ptr %435, align 4, !tbaa !9
  %437 = icmp eq i32 %436, 5
  br i1 %437, label %438, label %500

438:                                              ; preds = %434, %430
  store i32 1, ptr %59, align 4, !tbaa !9
  %439 = load ptr, ptr %30, align 8, !tbaa !5
  %440 = load i32, ptr %439, align 4, !tbaa !9
  %441 = shl i32 %440, 2
  %442 = add nsw i32 %441, 16
  store i32 %442, ptr %60, align 4, !tbaa !9
  %443 = load i32, ptr %59, align 4, !tbaa !9
  %444 = load i32, ptr %60, align 4, !tbaa !9
  %445 = icmp sge i32 %443, %444
  br i1 %445, label %446, label %448

446:                                              ; preds = %438
  %447 = load i32, ptr %59, align 4, !tbaa !9
  br label %450

448:                                              ; preds = %438
  %449 = load i32, ptr %60, align 4, !tbaa !9
  br label %450

450:                                              ; preds = %448, %446
  %451 = phi i32 [ %447, %446 ], [ %449, %448 ]
  store i32 %451, ptr %59, align 4, !tbaa !9
  %452 = load ptr, ptr %42, align 8, !tbaa !5
  %453 = load i32, ptr %452, align 4, !tbaa !9
  %454 = shl i32 %453, 2
  %455 = load ptr, ptr %30, align 8, !tbaa !5
  %456 = load i32, ptr %455, align 4, !tbaa !9
  %457 = load ptr, ptr %42, align 8, !tbaa !5
  %458 = load i32, ptr %457, align 4, !tbaa !9
  %459 = sub nsw i32 %456, %458
  %460 = mul nsw i32 %454, %459
  store i32 %460, ptr %60, align 4, !tbaa !9
  %461 = load i32, ptr %59, align 4, !tbaa !9
  %462 = load i32, ptr %60, align 4, !tbaa !9
  %463 = icmp sge i32 %461, %462
  br i1 %463, label %464, label %466

464:                                              ; preds = %450
  %465 = load i32, ptr %59, align 4, !tbaa !9
  br label %468

466:                                              ; preds = %450
  %467 = load i32, ptr %60, align 4, !tbaa !9
  br label %468

468:                                              ; preds = %466, %464
  %469 = phi i32 [ %465, %464 ], [ %467, %466 ]
  store i32 %469, ptr %71, align 4, !tbaa !9
  store i32 1, ptr %59, align 4, !tbaa !9
  %470 = load ptr, ptr %42, align 8, !tbaa !5
  %471 = load i32, ptr %470, align 4, !tbaa !9
  %472 = shl i32 %471, 1
  %473 = load ptr, ptr %30, align 8, !tbaa !5
  %474 = load i32, ptr %473, align 4, !tbaa !9
  %475 = load ptr, ptr %42, align 8, !tbaa !5
  %476 = load i32, ptr %475, align 4, !tbaa !9
  %477 = sub nsw i32 %474, %476
  %478 = mul nsw i32 %472, %477
  store i32 %478, ptr %60, align 4, !tbaa !9
  %479 = load i32, ptr %59, align 4, !tbaa !9
  %480 = load i32, ptr %60, align 4, !tbaa !9
  %481 = icmp sge i32 %479, %480
  br i1 %481, label %482, label %484

482:                                              ; preds = %468
  %483 = load i32, ptr %59, align 4, !tbaa !9
  br label %486

484:                                              ; preds = %468
  %485 = load i32, ptr %60, align 4, !tbaa !9
  br label %486

486:                                              ; preds = %484, %482
  %487 = phi i32 [ %483, %482 ], [ %485, %484 ]
  store i32 %487, ptr %59, align 4, !tbaa !9
  %488 = load ptr, ptr %30, align 8, !tbaa !5
  %489 = load i32, ptr %488, align 4, !tbaa !9
  %490 = add nsw i32 %489, 6
  store i32 %490, ptr %60, align 4, !tbaa !9
  %491 = load i32, ptr %59, align 4, !tbaa !9
  %492 = load i32, ptr %60, align 4, !tbaa !9
  %493 = icmp sge i32 %491, %492
  br i1 %493, label %494, label %496

494:                                              ; preds = %486
  %495 = load i32, ptr %59, align 4, !tbaa !9
  br label %498

496:                                              ; preds = %486
  %497 = load i32, ptr %60, align 4, !tbaa !9
  br label %498

498:                                              ; preds = %496, %494
  %499 = phi i32 [ %495, %494 ], [ %497, %496 ]
  store i32 %499, ptr %81, align 4, !tbaa !9
  br label %514

500:                                              ; preds = %434
  store i32 1, ptr %59, align 4, !tbaa !9
  %501 = load ptr, ptr %30, align 8, !tbaa !5
  %502 = load i32, ptr %501, align 4, !tbaa !9
  %503 = shl i32 %502, 2
  %504 = add nsw i32 %503, 16
  store i32 %504, ptr %60, align 4, !tbaa !9
  %505 = load i32, ptr %59, align 4, !tbaa !9
  %506 = load i32, ptr %60, align 4, !tbaa !9
  %507 = icmp sge i32 %505, %506
  br i1 %507, label %508, label %510

508:                                              ; preds = %500
  %509 = load i32, ptr %59, align 4, !tbaa !9
  br label %512

510:                                              ; preds = %500
  %511 = load i32, ptr %60, align 4, !tbaa !9
  br label %512

512:                                              ; preds = %510, %508
  %513 = phi i32 [ %509, %508 ], [ %511, %510 ]
  store i32 %513, ptr %71, align 4, !tbaa !9
  store i32 1, ptr %81, align 4, !tbaa !9
  br label %514

514:                                              ; preds = %512, %498
  br label %515

515:                                              ; preds = %514, %428
  %516 = load i32, ptr %71, align 4, !tbaa !9
  %517 = sitofp i32 %516 to float
  %518 = load ptr, ptr %46, align 8, !tbaa !5
  %519 = getelementptr inbounds float, ptr %518, i64 1
  store float %517, ptr %519, align 4, !tbaa !11
  %520 = load i32, ptr %81, align 4, !tbaa !9
  %521 = load ptr, ptr %48, align 8, !tbaa !5
  %522 = getelementptr inbounds i32, ptr %521, i64 1
  store i32 %520, ptr %522, align 4, !tbaa !9
  %523 = load ptr, ptr %47, align 8, !tbaa !5
  %524 = load i32, ptr %523, align 4, !tbaa !9
  %525 = load i32, ptr %71, align 4, !tbaa !9
  %526 = icmp slt i32 %524, %525
  br i1 %526, label %527, label %532

527:                                              ; preds = %515
  %528 = load i32, ptr %84, align 4, !tbaa !9
  %529 = icmp ne i32 %528, 0
  br i1 %529, label %532, label %530

530:                                              ; preds = %527
  %531 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -22, ptr %531, align 4, !tbaa !9
  br label %543

532:                                              ; preds = %527, %515
  %533 = load ptr, ptr %49, align 8, !tbaa !5
  %534 = load i32, ptr %533, align 4, !tbaa !9
  %535 = load i32, ptr %81, align 4, !tbaa !9
  %536 = icmp slt i32 %534, %535
  br i1 %536, label %537, label %542

537:                                              ; preds = %532
  %538 = load i32, ptr %84, align 4, !tbaa !9
  %539 = icmp ne i32 %538, 0
  br i1 %539, label %542, label %540

540:                                              ; preds = %537
  %541 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -24, ptr %541, align 4, !tbaa !9
  br label %542

542:                                              ; preds = %540, %537, %532
  br label %543

543:                                              ; preds = %542, %530
  %544 = load ptr, ptr %50, align 8, !tbaa !5
  %545 = load i32, ptr %544, align 4, !tbaa !9
  %546 = icmp ne i32 %545, 0
  br i1 %546, label %547, label %552

547:                                              ; preds = %543
  %548 = load ptr, ptr %50, align 8, !tbaa !5
  %549 = load i32, ptr %548, align 4, !tbaa !9
  %550 = sub nsw i32 0, %549
  store i32 %550, ptr %59, align 4, !tbaa !9
  %551 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %59, i32 noundef 6)
  store i32 1, ptr %87, align 4
  br label %1662

552:                                              ; preds = %543
  %553 = load i32, ptr %84, align 4, !tbaa !9
  %554 = icmp ne i32 %553, 0
  br i1 %554, label %555, label %556

555:                                              ; preds = %552
  store i32 1, ptr %87, align 4
  br label %1662

556:                                              ; preds = %552
  br label %557

557:                                              ; preds = %556
  %558 = load ptr, ptr %42, align 8, !tbaa !5
  %559 = load i32, ptr %558, align 4, !tbaa !9
  %560 = load ptr, ptr %30, align 8, !tbaa !5
  %561 = load i32, ptr %560, align 4, !tbaa !9
  %562 = icmp eq i32 %559, %561
  br i1 %562, label %567, label %563

563:                                              ; preds = %557
  %564 = load ptr, ptr %42, align 8, !tbaa !5
  %565 = load i32, ptr %564, align 4, !tbaa !9
  %566 = icmp eq i32 %565, 0
  br i1 %566, label %567, label %619

567:                                              ; preds = %563, %557
  %568 = load i32, ptr %72, align 4, !tbaa !9
  %569 = icmp ne i32 %568, 0
  br i1 %569, label %570, label %573

570:                                              ; preds = %567
  %571 = load ptr, ptr %43, align 8, !tbaa !5
  store float 1.000000e+00, ptr %571, align 4, !tbaa !11
  %572 = load ptr, ptr %44, align 8, !tbaa !5
  store float 1.000000e+00, ptr %572, align 4, !tbaa !11
  br label %573

573:                                              ; preds = %570, %567
  %574 = load i32, ptr %70, align 4, !tbaa !9
  %575 = icmp ne i32 %574, 0
  br i1 %575, label %576, label %618

576:                                              ; preds = %573
  store float 0.000000e+00, ptr %78, align 4, !tbaa !11
  store float 1.000000e+00, ptr %65, align 4, !tbaa !11
  %577 = load ptr, ptr %30, align 8, !tbaa !5
  %578 = load i32, ptr %577, align 4, !tbaa !9
  store i32 %578, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %579

579:                                              ; preds = %600, %576
  %580 = load i32, ptr %67, align 4, !tbaa !9
  %581 = load i32, ptr %59, align 4, !tbaa !9
  %582 = icmp sle i32 %580, %581
  br i1 %582, label %583, label %603

583:                                              ; preds = %579
  %584 = load ptr, ptr %30, align 8, !tbaa !5
  %585 = load ptr, ptr %31, align 8, !tbaa !5
  %586 = load i32, ptr %67, align 4, !tbaa !9
  %587 = load i32, ptr %51, align 4, !tbaa !9
  %588 = mul nsw i32 %586, %587
  %589 = add nsw i32 %588, 1
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds float, ptr %585, i64 %590
  call void @slassq_(ptr noundef %584, ptr noundef %591, ptr noundef @c__1, ptr noundef %78, ptr noundef %65)
  %592 = load ptr, ptr %30, align 8, !tbaa !5
  %593 = load ptr, ptr %33, align 8, !tbaa !5
  %594 = load i32, ptr %67, align 4, !tbaa !9
  %595 = load i32, ptr %53, align 4, !tbaa !9
  %596 = mul nsw i32 %594, %595
  %597 = add nsw i32 %596, 1
  %598 = sext i32 %597 to i64
  %599 = getelementptr inbounds float, ptr %593, i64 %598
  call void @slassq_(ptr noundef %592, ptr noundef %599, ptr noundef @c__1, ptr noundef %78, ptr noundef %65)
  br label %600

600:                                              ; preds = %583
  %601 = load i32, ptr %67, align 4, !tbaa !9
  %602 = add nsw i32 %601, 1
  store i32 %602, ptr %67, align 4, !tbaa !9
  br label %579, !llvm.loop !15

603:                                              ; preds = %579
  %604 = load float, ptr %78, align 4, !tbaa !11
  %605 = fpext float %604 to double
  %606 = load float, ptr %65, align 4, !tbaa !11
  %607 = fpext float %606 to double
  %608 = call double @sqrt(double noundef %607) #4
  %609 = fmul double %605, %608
  %610 = fptrunc double %609 to float
  %611 = load ptr, ptr %45, align 8, !tbaa !5
  %612 = getelementptr inbounds float, ptr %611, i64 1
  store float %610, ptr %612, align 4, !tbaa !11
  %613 = load ptr, ptr %45, align 8, !tbaa !5
  %614 = getelementptr inbounds float, ptr %613, i64 1
  %615 = load float, ptr %614, align 4, !tbaa !11
  %616 = load ptr, ptr %45, align 8, !tbaa !5
  %617 = getelementptr inbounds float, ptr %616, i64 2
  store float %615, ptr %617, align 4, !tbaa !11
  br label %618

618:                                              ; preds = %603, %573
  br label %1342

619:                                              ; preds = %563
  store i32 0, ptr %79, align 4, !tbaa !9
  store i32 0, ptr %63, align 4, !tbaa !9
  %620 = load ptr, ptr %30, align 8, !tbaa !5
  %621 = load i32, ptr %620, align 4, !tbaa !9
  store i32 %621, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %622

622:                                              ; preds = %732, %619
  %623 = load i32, ptr %68, align 4, !tbaa !9
  %624 = load i32, ptr %59, align 4, !tbaa !9
  %625 = icmp sle i32 %623, %624
  br i1 %625, label %626, label %735

626:                                              ; preds = %622
  %627 = load i32, ptr %63, align 4, !tbaa !9
  %628 = icmp ne i32 %627, 0
  br i1 %628, label %629, label %630

629:                                              ; preds = %626
  store i32 0, ptr %63, align 4, !tbaa !9
  br label %731

630:                                              ; preds = %626
  %631 = load ptr, ptr %29, align 8, !tbaa !5
  %632 = load i32, ptr %68, align 4, !tbaa !9
  %633 = sext i32 %632 to i64
  %634 = getelementptr inbounds i32, ptr %631, i64 %633
  %635 = load i32, ptr %634, align 4, !tbaa !9
  store i32 %635, ptr %66, align 4, !tbaa !9
  %636 = load i32, ptr %68, align 4, !tbaa !9
  %637 = load ptr, ptr %30, align 8, !tbaa !5
  %638 = load i32, ptr %637, align 4, !tbaa !9
  %639 = icmp slt i32 %636, %638
  br i1 %639, label %640, label %667

640:                                              ; preds = %630
  %641 = load ptr, ptr %31, align 8, !tbaa !5
  %642 = load i32, ptr %68, align 4, !tbaa !9
  %643 = add nsw i32 %642, 1
  %644 = load i32, ptr %68, align 4, !tbaa !9
  %645 = load i32, ptr %51, align 4, !tbaa !9
  %646 = mul nsw i32 %644, %645
  %647 = add nsw i32 %643, %646
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds float, ptr %641, i64 %648
  %650 = load float, ptr %649, align 4, !tbaa !11
  %651 = fcmp une float %650, 0.000000e+00
  br i1 %651, label %652, label %666

652:                                              ; preds = %640
  store i32 1, ptr %63, align 4, !tbaa !9
  %653 = load i32, ptr %66, align 4, !tbaa !9
  %654 = icmp ne i32 %653, 0
  br i1 %654, label %663, label %655

655:                                              ; preds = %652
  %656 = load ptr, ptr %29, align 8, !tbaa !5
  %657 = load i32, ptr %68, align 4, !tbaa !9
  %658 = add nsw i32 %657, 1
  %659 = sext i32 %658 to i64
  %660 = getelementptr inbounds i32, ptr %656, i64 %659
  %661 = load i32, ptr %660, align 4, !tbaa !9
  %662 = icmp ne i32 %661, 0
  br label %663

663:                                              ; preds = %655, %652
  %664 = phi i1 [ true, %652 ], [ %662, %655 ]
  %665 = zext i1 %664 to i32
  store i32 %665, ptr %66, align 4, !tbaa !9
  br label %666

666:                                              ; preds = %663, %640
  br label %667

667:                                              ; preds = %666, %630
  %668 = load i32, ptr %66, align 4, !tbaa !9
  %669 = icmp ne i32 %668, 0
  br i1 %669, label %670, label %730

670:                                              ; preds = %667
  %671 = load i32, ptr %79, align 4, !tbaa !9
  %672 = add nsw i32 %671, 1
  store i32 %672, ptr %79, align 4, !tbaa !9
  %673 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %673, ptr %77, align 4, !tbaa !9
  %674 = load i32, ptr %68, align 4, !tbaa !9
  %675 = load i32, ptr %79, align 4, !tbaa !9
  %676 = icmp ne i32 %674, %675
  br i1 %676, label %677, label %704

677:                                              ; preds = %670
  %678 = load ptr, ptr %27, align 8, !tbaa !5
  %679 = load ptr, ptr %28, align 8, !tbaa !5
  %680 = load ptr, ptr %30, align 8, !tbaa !5
  %681 = load ptr, ptr %31, align 8, !tbaa !5
  %682 = load i32, ptr %52, align 4, !tbaa !9
  %683 = sext i32 %682 to i64
  %684 = getelementptr inbounds float, ptr %681, i64 %683
  %685 = load ptr, ptr %32, align 8, !tbaa !5
  %686 = load ptr, ptr %33, align 8, !tbaa !5
  %687 = load i32, ptr %54, align 4, !tbaa !9
  %688 = sext i32 %687 to i64
  %689 = getelementptr inbounds float, ptr %686, i64 %688
  %690 = load ptr, ptr %34, align 8, !tbaa !5
  %691 = load ptr, ptr %38, align 8, !tbaa !5
  %692 = load i32, ptr %56, align 4, !tbaa !9
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds float, ptr %691, i64 %693
  %695 = load ptr, ptr %39, align 8, !tbaa !5
  %696 = load ptr, ptr %40, align 8, !tbaa !5
  %697 = load i32, ptr %58, align 4, !tbaa !9
  %698 = sext i32 %697 to i64
  %699 = getelementptr inbounds float, ptr %696, i64 %698
  %700 = load ptr, ptr %41, align 8, !tbaa !5
  %701 = load ptr, ptr %46, align 8, !tbaa !5
  %702 = getelementptr inbounds float, ptr %701, i64 1
  %703 = load ptr, ptr %47, align 8, !tbaa !5
  call void @stgexc_(ptr noundef %678, ptr noundef %679, ptr noundef %680, ptr noundef %684, ptr noundef %685, ptr noundef %689, ptr noundef %690, ptr noundef %694, ptr noundef %695, ptr noundef %699, ptr noundef %700, ptr noundef %77, ptr noundef %79, ptr noundef %702, ptr noundef %703, ptr noundef %64)
  br label %704

704:                                              ; preds = %677, %670
  %705 = load i32, ptr %64, align 4, !tbaa !9
  %706 = icmp sgt i32 %705, 0
  br i1 %706, label %707, label %723

707:                                              ; preds = %704
  %708 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 1, ptr %708, align 4, !tbaa !9
  %709 = load i32, ptr %72, align 4, !tbaa !9
  %710 = icmp ne i32 %709, 0
  br i1 %710, label %711, label %714

711:                                              ; preds = %707
  %712 = load ptr, ptr %43, align 8, !tbaa !5
  store float 0.000000e+00, ptr %712, align 4, !tbaa !11
  %713 = load ptr, ptr %44, align 8, !tbaa !5
  store float 0.000000e+00, ptr %713, align 4, !tbaa !11
  br label %714

714:                                              ; preds = %711, %707
  %715 = load i32, ptr %70, align 4, !tbaa !9
  %716 = icmp ne i32 %715, 0
  br i1 %716, label %717, label %722

717:                                              ; preds = %714
  %718 = load ptr, ptr %45, align 8, !tbaa !5
  %719 = getelementptr inbounds float, ptr %718, i64 1
  store float 0.000000e+00, ptr %719, align 4, !tbaa !11
  %720 = load ptr, ptr %45, align 8, !tbaa !5
  %721 = getelementptr inbounds float, ptr %720, i64 2
  store float 0.000000e+00, ptr %721, align 4, !tbaa !11
  br label %722

722:                                              ; preds = %717, %714
  br label %1342

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

726:                                              ; preds = %723
  %727 = load i32, ptr %79, align 4, !tbaa !9
  %728 = add nsw i32 %727, 1
  store i32 %728, ptr %79, align 4, !tbaa !9
  br label %729

729:                                              ; preds = %726, %723
  br label %730

730:                                              ; preds = %729, %667
  br label %731

731:                                              ; preds = %730, %629
  br label %732

732:                                              ; preds = %731
  %733 = load i32, ptr %68, align 4, !tbaa !9
  %734 = add nsw i32 %733, 1
  store i32 %734, ptr %68, align 4, !tbaa !9
  br label %622, !llvm.loop !16

735:                                              ; preds = %622
  %736 = load i32, ptr %72, align 4, !tbaa !9
  %737 = icmp ne i32 %736, 0
  br i1 %737, label %738, label %916

738:                                              ; preds = %735
  %739 = load ptr, ptr %42, align 8, !tbaa !5
  %740 = load i32, ptr %739, align 4, !tbaa !9
  store i32 %740, ptr %73, align 4, !tbaa !9
  %741 = load ptr, ptr %30, align 8, !tbaa !5
  %742 = load i32, ptr %741, align 4, !tbaa !9
  %743 = load ptr, ptr %42, align 8, !tbaa !5
  %744 = load i32, ptr %743, align 4, !tbaa !9
  %745 = sub nsw i32 %742, %744
  store i32 %745, ptr %74, align 4, !tbaa !9
  %746 = load i32, ptr %73, align 4, !tbaa !9
  %747 = add nsw i32 %746, 1
  store i32 %747, ptr %67, align 4, !tbaa !9
  store i32 0, ptr %85, align 4, !tbaa !9
  %748 = load ptr, ptr %31, align 8, !tbaa !5
  %749 = load i32, ptr %67, align 4, !tbaa !9
  %750 = load i32, ptr %51, align 4, !tbaa !9
  %751 = mul nsw i32 %749, %750
  %752 = add nsw i32 %751, 1
  %753 = sext i32 %752 to i64
  %754 = getelementptr inbounds float, ptr %748, i64 %753
  %755 = load ptr, ptr %32, align 8, !tbaa !5
  %756 = load ptr, ptr %46, align 8, !tbaa !5
  %757 = getelementptr inbounds float, ptr %756, i64 1
  call void @slacpy_(ptr noundef @.str.3, ptr noundef %73, ptr noundef %74, ptr noundef %754, ptr noundef %755, ptr noundef %757, ptr noundef %73)
  %758 = load ptr, ptr %33, align 8, !tbaa !5
  %759 = load i32, ptr %67, align 4, !tbaa !9
  %760 = load i32, ptr %53, align 4, !tbaa !9
  %761 = mul nsw i32 %759, %760
  %762 = add nsw i32 %761, 1
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds float, ptr %758, i64 %763
  %765 = load ptr, ptr %34, align 8, !tbaa !5
  %766 = load ptr, ptr %46, align 8, !tbaa !5
  %767 = load i32, ptr %73, align 4, !tbaa !9
  %768 = load i32, ptr %74, align 4, !tbaa !9
  %769 = mul nsw i32 %767, %768
  %770 = add nsw i32 %769, 1
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds float, ptr %766, i64 %771
  call void @slacpy_(ptr noundef @.str.3, ptr noundef %73, ptr noundef %74, ptr noundef %764, ptr noundef %765, ptr noundef %772, ptr noundef %73)
  %773 = load ptr, ptr %47, align 8, !tbaa !5
  %774 = load i32, ptr %773, align 4, !tbaa !9
  %775 = load i32, ptr %73, align 4, !tbaa !9
  %776 = shl i32 %775, 1
  %777 = load i32, ptr %74, align 4, !tbaa !9
  %778 = mul nsw i32 %776, %777
  %779 = sub nsw i32 %774, %778
  store i32 %779, ptr %59, align 4, !tbaa !9
  %780 = load ptr, ptr %31, align 8, !tbaa !5
  %781 = load i32, ptr %52, align 4, !tbaa !9
  %782 = sext i32 %781 to i64
  %783 = getelementptr inbounds float, ptr %780, i64 %782
  %784 = load ptr, ptr %32, align 8, !tbaa !5
  %785 = load ptr, ptr %31, align 8, !tbaa !5
  %786 = load i32, ptr %67, align 4, !tbaa !9
  %787 = load i32, ptr %67, align 4, !tbaa !9
  %788 = load i32, ptr %51, align 4, !tbaa !9
  %789 = mul nsw i32 %787, %788
  %790 = add nsw i32 %786, %789
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds float, ptr %785, i64 %791
  %793 = load ptr, ptr %32, align 8, !tbaa !5
  %794 = load ptr, ptr %46, align 8, !tbaa !5
  %795 = getelementptr inbounds float, ptr %794, i64 1
  %796 = load ptr, ptr %33, align 8, !tbaa !5
  %797 = load i32, ptr %54, align 4, !tbaa !9
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds float, ptr %796, i64 %798
  %800 = load ptr, ptr %34, align 8, !tbaa !5
  %801 = load ptr, ptr %33, align 8, !tbaa !5
  %802 = load i32, ptr %67, align 4, !tbaa !9
  %803 = load i32, ptr %67, align 4, !tbaa !9
  %804 = load i32, ptr %53, align 4, !tbaa !9
  %805 = mul nsw i32 %803, %804
  %806 = add nsw i32 %802, %805
  %807 = sext i32 %806 to i64
  %808 = getelementptr inbounds float, ptr %801, i64 %807
  %809 = load ptr, ptr %34, align 8, !tbaa !5
  %810 = load ptr, ptr %46, align 8, !tbaa !5
  %811 = load i32, ptr %73, align 4, !tbaa !9
  %812 = load i32, ptr %74, align 4, !tbaa !9
  %813 = mul nsw i32 %811, %812
  %814 = add nsw i32 %813, 1
  %815 = sext i32 %814 to i64
  %816 = getelementptr inbounds float, ptr %810, i64 %815
  %817 = load ptr, ptr %45, align 8, !tbaa !5
  %818 = getelementptr inbounds float, ptr %817, i64 1
  %819 = load ptr, ptr %46, align 8, !tbaa !5
  %820 = load i32, ptr %73, align 4, !tbaa !9
  %821 = load i32, ptr %74, align 4, !tbaa !9
  %822 = mul nsw i32 %820, %821
  %823 = shl i32 %822, 1
  %824 = add nsw i32 %823, 1
  %825 = sext i32 %824 to i64
  %826 = getelementptr inbounds float, ptr %819, i64 %825
  %827 = load ptr, ptr %48, align 8, !tbaa !5
  %828 = getelementptr inbounds i32, ptr %827, i64 1
  call void @stgsyl_(ptr noundef @.str.4, ptr noundef %85, ptr noundef %73, ptr noundef %74, ptr noundef %783, ptr noundef %784, ptr noundef %792, ptr noundef %793, ptr noundef %795, ptr noundef %73, ptr noundef %799, ptr noundef %800, ptr noundef %808, ptr noundef %809, ptr noundef %816, ptr noundef %73, ptr noundef %78, ptr noundef %818, ptr noundef %826, ptr noundef %59, ptr noundef %828, ptr noundef %64)
  store float 0.000000e+00, ptr %80, align 4, !tbaa !11
  store float 1.000000e+00, ptr %65, align 4, !tbaa !11
  %829 = load i32, ptr %73, align 4, !tbaa !9
  %830 = load i32, ptr %74, align 4, !tbaa !9
  %831 = mul nsw i32 %829, %830
  store i32 %831, ptr %59, align 4, !tbaa !9
  %832 = load ptr, ptr %46, align 8, !tbaa !5
  %833 = getelementptr inbounds float, ptr %832, i64 1
  call void @slassq_(ptr noundef %59, ptr noundef %833, ptr noundef @c__1, ptr noundef %80, ptr noundef %65)
  %834 = load float, ptr %80, align 4, !tbaa !11
  %835 = fpext float %834 to double
  %836 = load float, ptr %65, align 4, !tbaa !11
  %837 = fpext float %836 to double
  %838 = call double @sqrt(double noundef %837) #4
  %839 = fmul double %835, %838
  %840 = fptrunc double %839 to float
  %841 = load ptr, ptr %43, align 8, !tbaa !5
  store float %840, ptr %841, align 4, !tbaa !11
  %842 = load ptr, ptr %43, align 8, !tbaa !5
  %843 = load float, ptr %842, align 4, !tbaa !11
  %844 = fcmp oeq float %843, 0.000000e+00
  br i1 %844, label %845, label %847

845:                                              ; preds = %738
  %846 = load ptr, ptr %43, align 8, !tbaa !5
  store float 1.000000e+00, ptr %846, align 4, !tbaa !11
  br label %869

847:                                              ; preds = %738
  %848 = load float, ptr %78, align 4, !tbaa !11
  %849 = fpext float %848 to double
  %850 = load float, ptr %78, align 4, !tbaa !11
  %851 = load float, ptr %78, align 4, !tbaa !11
  %852 = fmul float %850, %851
  %853 = load ptr, ptr %43, align 8, !tbaa !5
  %854 = load float, ptr %853, align 4, !tbaa !11
  %855 = fdiv float %852, %854
  %856 = load ptr, ptr %43, align 8, !tbaa !5
  %857 = load float, ptr %856, align 4, !tbaa !11
  %858 = fadd float %855, %857
  %859 = fpext float %858 to double
  %860 = call double @sqrt(double noundef %859) #4
  %861 = load ptr, ptr %43, align 8, !tbaa !5
  %862 = load float, ptr %861, align 4, !tbaa !11
  %863 = fpext float %862 to double
  %864 = call double @sqrt(double noundef %863) #4
  %865 = fmul double %860, %864
  %866 = fdiv double %849, %865
  %867 = fptrunc double %866 to float
  %868 = load ptr, ptr %43, align 8, !tbaa !5
  store float %867, ptr %868, align 4, !tbaa !11
  br label %869

869:                                              ; preds = %847, %845
  store float 0.000000e+00, ptr %80, align 4, !tbaa !11
  store float 1.000000e+00, ptr %65, align 4, !tbaa !11
  %870 = load i32, ptr %73, align 4, !tbaa !9
  %871 = load i32, ptr %74, align 4, !tbaa !9
  %872 = mul nsw i32 %870, %871
  store i32 %872, ptr %59, align 4, !tbaa !9
  %873 = load ptr, ptr %46, align 8, !tbaa !5
  %874 = load i32, ptr %73, align 4, !tbaa !9
  %875 = load i32, ptr %74, align 4, !tbaa !9
  %876 = mul nsw i32 %874, %875
  %877 = add nsw i32 %876, 1
  %878 = sext i32 %877 to i64
  %879 = getelementptr inbounds float, ptr %873, i64 %878
  call void @slassq_(ptr noundef %59, ptr noundef %879, ptr noundef @c__1, ptr noundef %80, ptr noundef %65)
  %880 = load float, ptr %80, align 4, !tbaa !11
  %881 = fpext float %880 to double
  %882 = load float, ptr %65, align 4, !tbaa !11
  %883 = fpext float %882 to double
  %884 = call double @sqrt(double noundef %883) #4
  %885 = fmul double %881, %884
  %886 = fptrunc double %885 to float
  %887 = load ptr, ptr %44, align 8, !tbaa !5
  store float %886, ptr %887, align 4, !tbaa !11
  %888 = load ptr, ptr %44, align 8, !tbaa !5
  %889 = load float, ptr %888, align 4, !tbaa !11
  %890 = fcmp oeq float %889, 0.000000e+00
  br i1 %890, label %891, label %893

891:                                              ; preds = %869
  %892 = load ptr, ptr %44, align 8, !tbaa !5
  store float 1.000000e+00, ptr %892, align 4, !tbaa !11
  br label %915

893:                                              ; preds = %869
  %894 = load float, ptr %78, align 4, !tbaa !11
  %895 = fpext float %894 to double
  %896 = load float, ptr %78, align 4, !tbaa !11
  %897 = load float, ptr %78, align 4, !tbaa !11
  %898 = fmul float %896, %897
  %899 = load ptr, ptr %44, align 8, !tbaa !5
  %900 = load float, ptr %899, align 4, !tbaa !11
  %901 = fdiv float %898, %900
  %902 = load ptr, ptr %44, align 8, !tbaa !5
  %903 = load float, ptr %902, align 4, !tbaa !11
  %904 = fadd float %901, %903
  %905 = fpext float %904 to double
  %906 = call double @sqrt(double noundef %905) #4
  %907 = load ptr, ptr %44, align 8, !tbaa !5
  %908 = load float, ptr %907, align 4, !tbaa !11
  %909 = fpext float %908 to double
  %910 = call double @sqrt(double noundef %909) #4
  %911 = fmul double %906, %910
  %912 = fdiv double %895, %911
  %913 = fptrunc double %912 to float
  %914 = load ptr, ptr %44, align 8, !tbaa !5
  store float %913, ptr %914, align 4, !tbaa !11
  br label %915

915:                                              ; preds = %893, %891
  br label %916

916:                                              ; preds = %915, %735
  %917 = load i32, ptr %70, align 4, !tbaa !9
  %918 = icmp ne i32 %917, 0
  br i1 %918, label %919, label %1341

919:                                              ; preds = %916
  %920 = load i32, ptr %75, align 4, !tbaa !9
  %921 = icmp ne i32 %920, 0
  br i1 %921, label %922, label %1044

922:                                              ; preds = %919
  %923 = load ptr, ptr %42, align 8, !tbaa !5
  %924 = load i32, ptr %923, align 4, !tbaa !9
  store i32 %924, ptr %73, align 4, !tbaa !9
  %925 = load ptr, ptr %30, align 8, !tbaa !5
  %926 = load i32, ptr %925, align 4, !tbaa !9
  %927 = load ptr, ptr %42, align 8, !tbaa !5
  %928 = load i32, ptr %927, align 4, !tbaa !9
  %929 = sub nsw i32 %926, %928
  store i32 %929, ptr %74, align 4, !tbaa !9
  %930 = load i32, ptr %73, align 4, !tbaa !9
  %931 = add nsw i32 %930, 1
  store i32 %931, ptr %67, align 4, !tbaa !9
  store i32 3, ptr %85, align 4, !tbaa !9
  %932 = load ptr, ptr %47, align 8, !tbaa !5
  %933 = load i32, ptr %932, align 4, !tbaa !9
  %934 = load i32, ptr %73, align 4, !tbaa !9
  %935 = shl i32 %934, 1
  %936 = load i32, ptr %74, align 4, !tbaa !9
  %937 = mul nsw i32 %935, %936
  %938 = sub nsw i32 %933, %937
  store i32 %938, ptr %59, align 4, !tbaa !9
  %939 = load ptr, ptr %31, align 8, !tbaa !5
  %940 = load i32, ptr %52, align 4, !tbaa !9
  %941 = sext i32 %940 to i64
  %942 = getelementptr inbounds float, ptr %939, i64 %941
  %943 = load ptr, ptr %32, align 8, !tbaa !5
  %944 = load ptr, ptr %31, align 8, !tbaa !5
  %945 = load i32, ptr %67, align 4, !tbaa !9
  %946 = load i32, ptr %67, align 4, !tbaa !9
  %947 = load i32, ptr %51, align 4, !tbaa !9
  %948 = mul nsw i32 %946, %947
  %949 = add nsw i32 %945, %948
  %950 = sext i32 %949 to i64
  %951 = getelementptr inbounds float, ptr %944, i64 %950
  %952 = load ptr, ptr %32, align 8, !tbaa !5
  %953 = load ptr, ptr %46, align 8, !tbaa !5
  %954 = getelementptr inbounds float, ptr %953, i64 1
  %955 = load ptr, ptr %33, align 8, !tbaa !5
  %956 = load i32, ptr %54, align 4, !tbaa !9
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds float, ptr %955, i64 %957
  %959 = load ptr, ptr %34, align 8, !tbaa !5
  %960 = load ptr, ptr %33, align 8, !tbaa !5
  %961 = load i32, ptr %67, align 4, !tbaa !9
  %962 = load i32, ptr %67, align 4, !tbaa !9
  %963 = load i32, ptr %53, align 4, !tbaa !9
  %964 = mul nsw i32 %962, %963
  %965 = add nsw i32 %961, %964
  %966 = sext i32 %965 to i64
  %967 = getelementptr inbounds float, ptr %960, i64 %966
  %968 = load ptr, ptr %34, align 8, !tbaa !5
  %969 = load ptr, ptr %46, align 8, !tbaa !5
  %970 = load i32, ptr %73, align 4, !tbaa !9
  %971 = load i32, ptr %74, align 4, !tbaa !9
  %972 = mul nsw i32 %970, %971
  %973 = add nsw i32 %972, 1
  %974 = sext i32 %973 to i64
  %975 = getelementptr inbounds float, ptr %969, i64 %974
  %976 = load ptr, ptr %45, align 8, !tbaa !5
  %977 = getelementptr inbounds float, ptr %976, i64 1
  %978 = load ptr, ptr %46, align 8, !tbaa !5
  %979 = load i32, ptr %73, align 4, !tbaa !9
  %980 = shl i32 %979, 1
  %981 = load i32, ptr %74, align 4, !tbaa !9
  %982 = mul nsw i32 %980, %981
  %983 = add nsw i32 %982, 1
  %984 = sext i32 %983 to i64
  %985 = getelementptr inbounds float, ptr %978, i64 %984
  %986 = load ptr, ptr %48, align 8, !tbaa !5
  %987 = getelementptr inbounds i32, ptr %986, i64 1
  call void @stgsyl_(ptr noundef @.str.4, ptr noundef %85, ptr noundef %73, ptr noundef %74, ptr noundef %942, ptr noundef %943, ptr noundef %951, ptr noundef %952, ptr noundef %954, ptr noundef %73, ptr noundef %958, ptr noundef %959, ptr noundef %967, ptr noundef %968, ptr noundef %975, ptr noundef %73, ptr noundef %78, ptr noundef %977, ptr noundef %985, ptr noundef %59, ptr noundef %987, ptr noundef %64)
  %988 = load ptr, ptr %47, align 8, !tbaa !5
  %989 = load i32, ptr %988, align 4, !tbaa !9
  %990 = load i32, ptr %73, align 4, !tbaa !9
  %991 = shl i32 %990, 1
  %992 = load i32, ptr %74, align 4, !tbaa !9
  %993 = mul nsw i32 %991, %992
  %994 = sub nsw i32 %989, %993
  store i32 %994, ptr %59, align 4, !tbaa !9
  %995 = load ptr, ptr %31, align 8, !tbaa !5
  %996 = load i32, ptr %67, align 4, !tbaa !9
  %997 = load i32, ptr %67, align 4, !tbaa !9
  %998 = load i32, ptr %51, align 4, !tbaa !9
  %999 = mul nsw i32 %997, %998
  %1000 = add nsw i32 %996, %999
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds float, ptr %995, i64 %1001
  %1003 = load ptr, ptr %32, align 8, !tbaa !5
  %1004 = load ptr, ptr %31, align 8, !tbaa !5
  %1005 = load i32, ptr %52, align 4, !tbaa !9
  %1006 = sext i32 %1005 to i64
  %1007 = getelementptr inbounds float, ptr %1004, i64 %1006
  %1008 = load ptr, ptr %32, align 8, !tbaa !5
  %1009 = load ptr, ptr %46, align 8, !tbaa !5
  %1010 = getelementptr inbounds float, ptr %1009, i64 1
  %1011 = load ptr, ptr %33, align 8, !tbaa !5
  %1012 = load i32, ptr %67, align 4, !tbaa !9
  %1013 = load i32, ptr %67, align 4, !tbaa !9
  %1014 = load i32, ptr %53, align 4, !tbaa !9
  %1015 = mul nsw i32 %1013, %1014
  %1016 = add nsw i32 %1012, %1015
  %1017 = sext i32 %1016 to i64
  %1018 = getelementptr inbounds float, ptr %1011, i64 %1017
  %1019 = load ptr, ptr %34, align 8, !tbaa !5
  %1020 = load ptr, ptr %33, align 8, !tbaa !5
  %1021 = load i32, ptr %54, align 4, !tbaa !9
  %1022 = sext i32 %1021 to i64
  %1023 = getelementptr inbounds float, ptr %1020, i64 %1022
  %1024 = load ptr, ptr %34, align 8, !tbaa !5
  %1025 = load ptr, ptr %46, align 8, !tbaa !5
  %1026 = load i32, ptr %73, align 4, !tbaa !9
  %1027 = load i32, ptr %74, align 4, !tbaa !9
  %1028 = mul nsw i32 %1026, %1027
  %1029 = add nsw i32 %1028, 1
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds float, ptr %1025, i64 %1030
  %1032 = load ptr, ptr %45, align 8, !tbaa !5
  %1033 = getelementptr inbounds float, ptr %1032, i64 2
  %1034 = load ptr, ptr %46, align 8, !tbaa !5
  %1035 = load i32, ptr %73, align 4, !tbaa !9
  %1036 = shl i32 %1035, 1
  %1037 = load i32, ptr %74, align 4, !tbaa !9
  %1038 = mul nsw i32 %1036, %1037
  %1039 = add nsw i32 %1038, 1
  %1040 = sext i32 %1039 to i64
  %1041 = getelementptr inbounds float, ptr %1034, i64 %1040
  %1042 = load ptr, ptr %48, align 8, !tbaa !5
  %1043 = getelementptr inbounds i32, ptr %1042, i64 1
  call void @stgsyl_(ptr noundef @.str.4, ptr noundef %85, ptr noundef %74, ptr noundef %73, ptr noundef %1002, ptr noundef %1003, ptr noundef %1007, ptr noundef %1008, ptr noundef %1010, ptr noundef %74, ptr noundef %1018, ptr noundef %1019, ptr noundef %1023, ptr noundef %1024, ptr noundef %1031, ptr noundef %74, ptr noundef %78, ptr noundef %1033, ptr noundef %1041, ptr noundef %59, ptr noundef %1043, ptr noundef %64)
  br label %1340

1044:                                             ; preds = %919
  store i32 0, ptr %62, align 4, !tbaa !9
  %1045 = load ptr, ptr %42, align 8, !tbaa !5
  %1046 = load i32, ptr %1045, align 4, !tbaa !9
  store i32 %1046, ptr %73, align 4, !tbaa !9
  %1047 = load ptr, ptr %30, align 8, !tbaa !5
  %1048 = load i32, ptr %1047, align 4, !tbaa !9
  %1049 = load ptr, ptr %42, align 8, !tbaa !5
  %1050 = load i32, ptr %1049, align 4, !tbaa !9
  %1051 = sub nsw i32 %1048, %1050
  store i32 %1051, ptr %74, align 4, !tbaa !9
  %1052 = load i32, ptr %73, align 4, !tbaa !9
  %1053 = add nsw i32 %1052, 1
  store i32 %1053, ptr %67, align 4, !tbaa !9
  store i32 0, ptr %85, align 4, !tbaa !9
  %1054 = load i32, ptr %73, align 4, !tbaa !9
  %1055 = shl i32 %1054, 1
  %1056 = load i32, ptr %74, align 4, !tbaa !9
  %1057 = mul nsw i32 %1055, %1056
  store i32 %1057, ptr %83, align 4, !tbaa !9
  br label %1058

1058:                                             ; preds = %1190, %1044
  %1059 = load ptr, ptr %46, align 8, !tbaa !5
  %1060 = load i32, ptr %83, align 4, !tbaa !9
  %1061 = add nsw i32 %1060, 1
  %1062 = sext i32 %1061 to i64
  %1063 = getelementptr inbounds float, ptr %1059, i64 %1062
  %1064 = load ptr, ptr %46, align 8, !tbaa !5
  %1065 = getelementptr inbounds float, ptr %1064, i64 1
  %1066 = load ptr, ptr %48, align 8, !tbaa !5
  %1067 = getelementptr inbounds i32, ptr %1066, i64 1
  %1068 = load ptr, ptr %45, align 8, !tbaa !5
  %1069 = getelementptr inbounds float, ptr %1068, i64 1
  %1070 = getelementptr inbounds [3 x i32], ptr %69, i64 0, i64 0
  call void @slacn2_(ptr noundef %83, ptr noundef %1063, ptr noundef %1065, ptr noundef %1067, ptr noundef %1069, ptr noundef %62, ptr noundef %1070)
  %1071 = load i32, ptr %62, align 4, !tbaa !9
  %1072 = icmp ne i32 %1071, 0
  br i1 %1072, label %1073, label %1191

1073:                                             ; preds = %1058
  %1074 = load i32, ptr %62, align 4, !tbaa !9
  %1075 = icmp eq i32 %1074, 1
  br i1 %1075, label %1076, label %1133

1076:                                             ; preds = %1073
  %1077 = load ptr, ptr %47, align 8, !tbaa !5
  %1078 = load i32, ptr %1077, align 4, !tbaa !9
  %1079 = load i32, ptr %73, align 4, !tbaa !9
  %1080 = shl i32 %1079, 1
  %1081 = load i32, ptr %74, align 4, !tbaa !9
  %1082 = mul nsw i32 %1080, %1081
  %1083 = sub nsw i32 %1078, %1082
  store i32 %1083, ptr %59, align 4, !tbaa !9
  %1084 = load ptr, ptr %31, align 8, !tbaa !5
  %1085 = load i32, ptr %52, align 4, !tbaa !9
  %1086 = sext i32 %1085 to i64
  %1087 = getelementptr inbounds float, ptr %1084, i64 %1086
  %1088 = load ptr, ptr %32, align 8, !tbaa !5
  %1089 = load ptr, ptr %31, align 8, !tbaa !5
  %1090 = load i32, ptr %67, align 4, !tbaa !9
  %1091 = load i32, ptr %67, align 4, !tbaa !9
  %1092 = load i32, ptr %51, align 4, !tbaa !9
  %1093 = mul nsw i32 %1091, %1092
  %1094 = add nsw i32 %1090, %1093
  %1095 = sext i32 %1094 to i64
  %1096 = getelementptr inbounds float, ptr %1089, i64 %1095
  %1097 = load ptr, ptr %32, align 8, !tbaa !5
  %1098 = load ptr, ptr %46, align 8, !tbaa !5
  %1099 = getelementptr inbounds float, ptr %1098, i64 1
  %1100 = load ptr, ptr %33, align 8, !tbaa !5
  %1101 = load i32, ptr %54, align 4, !tbaa !9
  %1102 = sext i32 %1101 to i64
  %1103 = getelementptr inbounds float, ptr %1100, i64 %1102
  %1104 = load ptr, ptr %34, align 8, !tbaa !5
  %1105 = load ptr, ptr %33, align 8, !tbaa !5
  %1106 = load i32, ptr %67, align 4, !tbaa !9
  %1107 = load i32, ptr %67, align 4, !tbaa !9
  %1108 = load i32, ptr %53, align 4, !tbaa !9
  %1109 = mul nsw i32 %1107, %1108
  %1110 = add nsw i32 %1106, %1109
  %1111 = sext i32 %1110 to i64
  %1112 = getelementptr inbounds float, ptr %1105, i64 %1111
  %1113 = load ptr, ptr %34, align 8, !tbaa !5
  %1114 = load ptr, ptr %46, align 8, !tbaa !5
  %1115 = load i32, ptr %73, align 4, !tbaa !9
  %1116 = load i32, ptr %74, align 4, !tbaa !9
  %1117 = mul nsw i32 %1115, %1116
  %1118 = add nsw i32 %1117, 1
  %1119 = sext i32 %1118 to i64
  %1120 = getelementptr inbounds float, ptr %1114, i64 %1119
  %1121 = load ptr, ptr %45, align 8, !tbaa !5
  %1122 = getelementptr inbounds float, ptr %1121, i64 1
  %1123 = load ptr, ptr %46, align 8, !tbaa !5
  %1124 = load i32, ptr %73, align 4, !tbaa !9
  %1125 = shl i32 %1124, 1
  %1126 = load i32, ptr %74, align 4, !tbaa !9
  %1127 = mul nsw i32 %1125, %1126
  %1128 = add nsw i32 %1127, 1
  %1129 = sext i32 %1128 to i64
  %1130 = getelementptr inbounds float, ptr %1123, i64 %1129
  %1131 = load ptr, ptr %48, align 8, !tbaa !5
  %1132 = getelementptr inbounds i32, ptr %1131, i64 1
  call void @stgsyl_(ptr noundef @.str.4, ptr noundef %85, ptr noundef %73, ptr noundef %74, ptr noundef %1087, ptr noundef %1088, ptr noundef %1096, ptr noundef %1097, ptr noundef %1099, ptr noundef %73, ptr noundef %1103, ptr noundef %1104, ptr noundef %1112, ptr noundef %1113, ptr noundef %1120, ptr noundef %73, ptr noundef %78, ptr noundef %1122, ptr noundef %1130, ptr noundef %59, ptr noundef %1132, ptr noundef %64)
  br label %1190

1133:                                             ; preds = %1073
  %1134 = load ptr, ptr %47, align 8, !tbaa !5
  %1135 = load i32, ptr %1134, align 4, !tbaa !9
  %1136 = load i32, ptr %73, align 4, !tbaa !9
  %1137 = shl i32 %1136, 1
  %1138 = load i32, ptr %74, align 4, !tbaa !9
  %1139 = mul nsw i32 %1137, %1138
  %1140 = sub nsw i32 %1135, %1139
  store i32 %1140, ptr %59, align 4, !tbaa !9
  %1141 = load ptr, ptr %31, align 8, !tbaa !5
  %1142 = load i32, ptr %52, align 4, !tbaa !9
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds float, ptr %1141, i64 %1143
  %1145 = load ptr, ptr %32, align 8, !tbaa !5
  %1146 = load ptr, ptr %31, align 8, !tbaa !5
  %1147 = load i32, ptr %67, align 4, !tbaa !9
  %1148 = load i32, ptr %67, align 4, !tbaa !9
  %1149 = load i32, ptr %51, align 4, !tbaa !9
  %1150 = mul nsw i32 %1148, %1149
  %1151 = add nsw i32 %1147, %1150
  %1152 = sext i32 %1151 to i64
  %1153 = getelementptr inbounds float, ptr %1146, i64 %1152
  %1154 = load ptr, ptr %32, align 8, !tbaa !5
  %1155 = load ptr, ptr %46, align 8, !tbaa !5
  %1156 = getelementptr inbounds float, ptr %1155, i64 1
  %1157 = load ptr, ptr %33, align 8, !tbaa !5
  %1158 = load i32, ptr %54, align 4, !tbaa !9
  %1159 = sext i32 %1158 to i64
  %1160 = getelementptr inbounds float, ptr %1157, i64 %1159
  %1161 = load ptr, ptr %34, align 8, !tbaa !5
  %1162 = load ptr, ptr %33, align 8, !tbaa !5
  %1163 = load i32, ptr %67, align 4, !tbaa !9
  %1164 = load i32, ptr %67, align 4, !tbaa !9
  %1165 = load i32, ptr %53, align 4, !tbaa !9
  %1166 = mul nsw i32 %1164, %1165
  %1167 = add nsw i32 %1163, %1166
  %1168 = sext i32 %1167 to i64
  %1169 = getelementptr inbounds float, ptr %1162, i64 %1168
  %1170 = load ptr, ptr %34, align 8, !tbaa !5
  %1171 = load ptr, ptr %46, align 8, !tbaa !5
  %1172 = load i32, ptr %73, align 4, !tbaa !9
  %1173 = load i32, ptr %74, align 4, !tbaa !9
  %1174 = mul nsw i32 %1172, %1173
  %1175 = add nsw i32 %1174, 1
  %1176 = sext i32 %1175 to i64
  %1177 = getelementptr inbounds float, ptr %1171, i64 %1176
  %1178 = load ptr, ptr %45, align 8, !tbaa !5
  %1179 = getelementptr inbounds float, ptr %1178, i64 1
  %1180 = load ptr, ptr %46, align 8, !tbaa !5
  %1181 = load i32, ptr %73, align 4, !tbaa !9
  %1182 = shl i32 %1181, 1
  %1183 = load i32, ptr %74, align 4, !tbaa !9
  %1184 = mul nsw i32 %1182, %1183
  %1185 = add nsw i32 %1184, 1
  %1186 = sext i32 %1185 to i64
  %1187 = getelementptr inbounds float, ptr %1180, i64 %1186
  %1188 = load ptr, ptr %48, align 8, !tbaa !5
  %1189 = getelementptr inbounds i32, ptr %1188, i64 1
  call void @stgsyl_(ptr noundef @.str.5, ptr noundef %85, ptr noundef %73, ptr noundef %74, ptr noundef %1144, ptr noundef %1145, ptr noundef %1153, ptr noundef %1154, ptr noundef %1156, ptr noundef %73, ptr noundef %1160, ptr noundef %1161, ptr noundef %1169, ptr noundef %1170, ptr noundef %1177, ptr noundef %73, ptr noundef %78, ptr noundef %1179, ptr noundef %1187, ptr noundef %59, ptr noundef %1189, ptr noundef %64)
  br label %1190

1190:                                             ; preds = %1133, %1076
  br label %1058

1191:                                             ; preds = %1058
  %1192 = load float, ptr %78, align 4, !tbaa !11
  %1193 = load ptr, ptr %45, align 8, !tbaa !5
  %1194 = getelementptr inbounds float, ptr %1193, i64 1
  %1195 = load float, ptr %1194, align 4, !tbaa !11
  %1196 = fdiv float %1192, %1195
  %1197 = load ptr, ptr %45, align 8, !tbaa !5
  %1198 = getelementptr inbounds float, ptr %1197, i64 1
  store float %1196, ptr %1198, align 4, !tbaa !11
  br label %1199

1199:                                             ; preds = %1331, %1191
  %1200 = load ptr, ptr %46, align 8, !tbaa !5
  %1201 = load i32, ptr %83, align 4, !tbaa !9
  %1202 = add nsw i32 %1201, 1
  %1203 = sext i32 %1202 to i64
  %1204 = getelementptr inbounds float, ptr %1200, i64 %1203
  %1205 = load ptr, ptr %46, align 8, !tbaa !5
  %1206 = getelementptr inbounds float, ptr %1205, i64 1
  %1207 = load ptr, ptr %48, align 8, !tbaa !5
  %1208 = getelementptr inbounds i32, ptr %1207, i64 1
  %1209 = load ptr, ptr %45, align 8, !tbaa !5
  %1210 = getelementptr inbounds float, ptr %1209, i64 2
  %1211 = getelementptr inbounds [3 x i32], ptr %69, i64 0, i64 0
  call void @slacn2_(ptr noundef %83, ptr noundef %1204, ptr noundef %1206, ptr noundef %1208, ptr noundef %1210, ptr noundef %62, ptr noundef %1211)
  %1212 = load i32, ptr %62, align 4, !tbaa !9
  %1213 = icmp ne i32 %1212, 0
  br i1 %1213, label %1214, label %1332

1214:                                             ; preds = %1199
  %1215 = load i32, ptr %62, align 4, !tbaa !9
  %1216 = icmp eq i32 %1215, 1
  br i1 %1216, label %1217, label %1274

1217:                                             ; preds = %1214
  %1218 = load ptr, ptr %47, align 8, !tbaa !5
  %1219 = load i32, ptr %1218, align 4, !tbaa !9
  %1220 = load i32, ptr %73, align 4, !tbaa !9
  %1221 = shl i32 %1220, 1
  %1222 = load i32, ptr %74, align 4, !tbaa !9
  %1223 = mul nsw i32 %1221, %1222
  %1224 = sub nsw i32 %1219, %1223
  store i32 %1224, ptr %59, align 4, !tbaa !9
  %1225 = load ptr, ptr %31, align 8, !tbaa !5
  %1226 = load i32, ptr %67, align 4, !tbaa !9
  %1227 = load i32, ptr %67, align 4, !tbaa !9
  %1228 = load i32, ptr %51, align 4, !tbaa !9
  %1229 = mul nsw i32 %1227, %1228
  %1230 = add nsw i32 %1226, %1229
  %1231 = sext i32 %1230 to i64
  %1232 = getelementptr inbounds float, ptr %1225, i64 %1231
  %1233 = load ptr, ptr %32, align 8, !tbaa !5
  %1234 = load ptr, ptr %31, align 8, !tbaa !5
  %1235 = load i32, ptr %52, align 4, !tbaa !9
  %1236 = sext i32 %1235 to i64
  %1237 = getelementptr inbounds float, ptr %1234, i64 %1236
  %1238 = load ptr, ptr %32, align 8, !tbaa !5
  %1239 = load ptr, ptr %46, align 8, !tbaa !5
  %1240 = getelementptr inbounds float, ptr %1239, i64 1
  %1241 = load ptr, ptr %33, align 8, !tbaa !5
  %1242 = load i32, ptr %67, align 4, !tbaa !9
  %1243 = load i32, ptr %67, align 4, !tbaa !9
  %1244 = load i32, ptr %53, align 4, !tbaa !9
  %1245 = mul nsw i32 %1243, %1244
  %1246 = add nsw i32 %1242, %1245
  %1247 = sext i32 %1246 to i64
  %1248 = getelementptr inbounds float, ptr %1241, i64 %1247
  %1249 = load ptr, ptr %34, align 8, !tbaa !5
  %1250 = load ptr, ptr %33, align 8, !tbaa !5
  %1251 = load i32, ptr %54, align 4, !tbaa !9
  %1252 = sext i32 %1251 to i64
  %1253 = getelementptr inbounds float, ptr %1250, i64 %1252
  %1254 = load ptr, ptr %34, align 8, !tbaa !5
  %1255 = load ptr, ptr %46, align 8, !tbaa !5
  %1256 = load i32, ptr %73, align 4, !tbaa !9
  %1257 = load i32, ptr %74, align 4, !tbaa !9
  %1258 = mul nsw i32 %1256, %1257
  %1259 = add nsw i32 %1258, 1
  %1260 = sext i32 %1259 to i64
  %1261 = getelementptr inbounds float, ptr %1255, i64 %1260
  %1262 = load ptr, ptr %45, align 8, !tbaa !5
  %1263 = getelementptr inbounds float, ptr %1262, i64 2
  %1264 = load ptr, ptr %46, align 8, !tbaa !5
  %1265 = load i32, ptr %73, align 4, !tbaa !9
  %1266 = shl i32 %1265, 1
  %1267 = load i32, ptr %74, align 4, !tbaa !9
  %1268 = mul nsw i32 %1266, %1267
  %1269 = add nsw i32 %1268, 1
  %1270 = sext i32 %1269 to i64
  %1271 = getelementptr inbounds float, ptr %1264, i64 %1270
  %1272 = load ptr, ptr %48, align 8, !tbaa !5
  %1273 = getelementptr inbounds i32, ptr %1272, i64 1
  call void @stgsyl_(ptr noundef @.str.4, ptr noundef %85, ptr noundef %74, ptr noundef %73, ptr noundef %1232, ptr noundef %1233, ptr noundef %1237, ptr noundef %1238, ptr noundef %1240, ptr noundef %74, ptr noundef %1248, ptr noundef %1249, ptr noundef %1253, ptr noundef %1254, ptr noundef %1261, ptr noundef %74, ptr noundef %78, ptr noundef %1263, ptr noundef %1271, ptr noundef %59, ptr noundef %1273, ptr noundef %64)
  br label %1331

1274:                                             ; preds = %1214
  %1275 = load ptr, ptr %47, align 8, !tbaa !5
  %1276 = load i32, ptr %1275, align 4, !tbaa !9
  %1277 = load i32, ptr %73, align 4, !tbaa !9
  %1278 = shl i32 %1277, 1
  %1279 = load i32, ptr %74, align 4, !tbaa !9
  %1280 = mul nsw i32 %1278, %1279
  %1281 = sub nsw i32 %1276, %1280
  store i32 %1281, ptr %59, align 4, !tbaa !9
  %1282 = load ptr, ptr %31, align 8, !tbaa !5
  %1283 = load i32, ptr %67, align 4, !tbaa !9
  %1284 = load i32, ptr %67, align 4, !tbaa !9
  %1285 = load i32, ptr %51, align 4, !tbaa !9
  %1286 = mul nsw i32 %1284, %1285
  %1287 = add nsw i32 %1283, %1286
  %1288 = sext i32 %1287 to i64
  %1289 = getelementptr inbounds float, ptr %1282, i64 %1288
  %1290 = load ptr, ptr %32, align 8, !tbaa !5
  %1291 = load ptr, ptr %31, align 8, !tbaa !5
  %1292 = load i32, ptr %52, align 4, !tbaa !9
  %1293 = sext i32 %1292 to i64
  %1294 = getelementptr inbounds float, ptr %1291, i64 %1293
  %1295 = load ptr, ptr %32, align 8, !tbaa !5
  %1296 = load ptr, ptr %46, align 8, !tbaa !5
  %1297 = getelementptr inbounds float, ptr %1296, i64 1
  %1298 = load ptr, ptr %33, align 8, !tbaa !5
  %1299 = load i32, ptr %67, align 4, !tbaa !9
  %1300 = load i32, ptr %67, align 4, !tbaa !9
  %1301 = load i32, ptr %53, align 4, !tbaa !9
  %1302 = mul nsw i32 %1300, %1301
  %1303 = add nsw i32 %1299, %1302
  %1304 = sext i32 %1303 to i64
  %1305 = getelementptr inbounds float, ptr %1298, i64 %1304
  %1306 = load ptr, ptr %34, align 8, !tbaa !5
  %1307 = load ptr, ptr %33, align 8, !tbaa !5
  %1308 = load i32, ptr %54, align 4, !tbaa !9
  %1309 = sext i32 %1308 to i64
  %1310 = getelementptr inbounds float, ptr %1307, i64 %1309
  %1311 = load ptr, ptr %34, align 8, !tbaa !5
  %1312 = load ptr, ptr %46, align 8, !tbaa !5
  %1313 = load i32, ptr %73, align 4, !tbaa !9
  %1314 = load i32, ptr %74, align 4, !tbaa !9
  %1315 = mul nsw i32 %1313, %1314
  %1316 = add nsw i32 %1315, 1
  %1317 = sext i32 %1316 to i64
  %1318 = getelementptr inbounds float, ptr %1312, i64 %1317
  %1319 = load ptr, ptr %45, align 8, !tbaa !5
  %1320 = getelementptr inbounds float, ptr %1319, i64 2
  %1321 = load ptr, ptr %46, align 8, !tbaa !5
  %1322 = load i32, ptr %73, align 4, !tbaa !9
  %1323 = shl i32 %1322, 1
  %1324 = load i32, ptr %74, align 4, !tbaa !9
  %1325 = mul nsw i32 %1323, %1324
  %1326 = add nsw i32 %1325, 1
  %1327 = sext i32 %1326 to i64
  %1328 = getelementptr inbounds float, ptr %1321, i64 %1327
  %1329 = load ptr, ptr %48, align 8, !tbaa !5
  %1330 = getelementptr inbounds i32, ptr %1329, i64 1
  call void @stgsyl_(ptr noundef @.str.5, ptr noundef %85, ptr noundef %74, ptr noundef %73, ptr noundef %1289, ptr noundef %1290, ptr noundef %1294, ptr noundef %1295, ptr noundef %1297, ptr noundef %74, ptr noundef %1305, ptr noundef %1306, ptr noundef %1310, ptr noundef %1311, ptr noundef %1318, ptr noundef %74, ptr noundef %78, ptr noundef %1320, ptr noundef %1328, ptr noundef %59, ptr noundef %1330, ptr noundef %64)
  br label %1331

1331:                                             ; preds = %1274, %1217
  br label %1199

1332:                                             ; preds = %1199
  %1333 = load float, ptr %78, align 4, !tbaa !11
  %1334 = load ptr, ptr %45, align 8, !tbaa !5
  %1335 = getelementptr inbounds float, ptr %1334, i64 2
  %1336 = load float, ptr %1335, align 4, !tbaa !11
  %1337 = fdiv float %1333, %1336
  %1338 = load ptr, ptr %45, align 8, !tbaa !5
  %1339 = getelementptr inbounds float, ptr %1338, i64 2
  store float %1337, ptr %1339, align 4, !tbaa !11
  br label %1340

1340:                                             ; preds = %1332, %922
  br label %1341

1341:                                             ; preds = %1340, %916
  br label %1342

1342:                                             ; preds = %1341, %722, %618
  store i32 0, ptr %63, align 4, !tbaa !9
  %1343 = load ptr, ptr %30, align 8, !tbaa !5
  %1344 = load i32, ptr %1343, align 4, !tbaa !9
  store i32 %1344, ptr %59, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %1345

1345:                                             ; preds = %1651, %1342
  %1346 = load i32, ptr %68, align 4, !tbaa !9
  %1347 = load i32, ptr %59, align 4, !tbaa !9
  %1348 = icmp sle i32 %1346, %1347
  br i1 %1348, label %1349, label %1654

1349:                                             ; preds = %1345
  %1350 = load i32, ptr %63, align 4, !tbaa !9
  %1351 = icmp ne i32 %1350, 0
  br i1 %1351, label %1352, label %1353

1352:                                             ; preds = %1349
  store i32 0, ptr %63, align 4, !tbaa !9
  br label %1650

1353:                                             ; preds = %1349
  %1354 = load i32, ptr %68, align 4, !tbaa !9
  %1355 = load ptr, ptr %30, align 8, !tbaa !5
  %1356 = load i32, ptr %1355, align 4, !tbaa !9
  %1357 = icmp slt i32 %1354, %1356
  br i1 %1357, label %1358, label %1372

1358:                                             ; preds = %1353
  %1359 = load ptr, ptr %31, align 8, !tbaa !5
  %1360 = load i32, ptr %68, align 4, !tbaa !9
  %1361 = add nsw i32 %1360, 1
  %1362 = load i32, ptr %68, align 4, !tbaa !9
  %1363 = load i32, ptr %51, align 4, !tbaa !9
  %1364 = mul nsw i32 %1362, %1363
  %1365 = add nsw i32 %1361, %1364
  %1366 = sext i32 %1365 to i64
  %1367 = getelementptr inbounds float, ptr %1359, i64 %1366
  %1368 = load float, ptr %1367, align 4, !tbaa !11
  %1369 = fcmp une float %1368, 0.000000e+00
  br i1 %1369, label %1370, label %1371

1370:                                             ; preds = %1358
  store i32 1, ptr %63, align 4, !tbaa !9
  br label %1371

1371:                                             ; preds = %1370, %1358
  br label %1372

1372:                                             ; preds = %1371, %1353
  %1373 = load i32, ptr %63, align 4, !tbaa !9
  %1374 = icmp ne i32 %1373, 0
  br i1 %1374, label %1375, label %1512

1375:                                             ; preds = %1372
  %1376 = load ptr, ptr %31, align 8, !tbaa !5
  %1377 = load i32, ptr %68, align 4, !tbaa !9
  %1378 = load i32, ptr %68, align 4, !tbaa !9
  %1379 = load i32, ptr %51, align 4, !tbaa !9
  %1380 = mul nsw i32 %1378, %1379
  %1381 = add nsw i32 %1377, %1380
  %1382 = sext i32 %1381 to i64
  %1383 = getelementptr inbounds float, ptr %1376, i64 %1382
  %1384 = load float, ptr %1383, align 4, !tbaa !11
  %1385 = load ptr, ptr %46, align 8, !tbaa !5
  %1386 = getelementptr inbounds float, ptr %1385, i64 1
  store float %1384, ptr %1386, align 4, !tbaa !11
  %1387 = load ptr, ptr %31, align 8, !tbaa !5
  %1388 = load i32, ptr %68, align 4, !tbaa !9
  %1389 = add nsw i32 %1388, 1
  %1390 = load i32, ptr %68, align 4, !tbaa !9
  %1391 = load i32, ptr %51, align 4, !tbaa !9
  %1392 = mul nsw i32 %1390, %1391
  %1393 = add nsw i32 %1389, %1392
  %1394 = sext i32 %1393 to i64
  %1395 = getelementptr inbounds float, ptr %1387, i64 %1394
  %1396 = load float, ptr %1395, align 4, !tbaa !11
  %1397 = load ptr, ptr %46, align 8, !tbaa !5
  %1398 = getelementptr inbounds float, ptr %1397, i64 2
  store float %1396, ptr %1398, align 4, !tbaa !11
  %1399 = load ptr, ptr %31, align 8, !tbaa !5
  %1400 = load i32, ptr %68, align 4, !tbaa !9
  %1401 = load i32, ptr %68, align 4, !tbaa !9
  %1402 = add nsw i32 %1401, 1
  %1403 = load i32, ptr %51, align 4, !tbaa !9
  %1404 = mul nsw i32 %1402, %1403
  %1405 = add nsw i32 %1400, %1404
  %1406 = sext i32 %1405 to i64
  %1407 = getelementptr inbounds float, ptr %1399, i64 %1406
  %1408 = load float, ptr %1407, align 4, !tbaa !11
  %1409 = load ptr, ptr %46, align 8, !tbaa !5
  %1410 = getelementptr inbounds float, ptr %1409, i64 3
  store float %1408, ptr %1410, align 4, !tbaa !11
  %1411 = load ptr, ptr %31, align 8, !tbaa !5
  %1412 = load i32, ptr %68, align 4, !tbaa !9
  %1413 = add nsw i32 %1412, 1
  %1414 = load i32, ptr %68, align 4, !tbaa !9
  %1415 = add nsw i32 %1414, 1
  %1416 = load i32, ptr %51, align 4, !tbaa !9
  %1417 = mul nsw i32 %1415, %1416
  %1418 = add nsw i32 %1413, %1417
  %1419 = sext i32 %1418 to i64
  %1420 = getelementptr inbounds float, ptr %1411, i64 %1419
  %1421 = load float, ptr %1420, align 4, !tbaa !11
  %1422 = load ptr, ptr %46, align 8, !tbaa !5
  %1423 = getelementptr inbounds float, ptr %1422, i64 4
  store float %1421, ptr %1423, align 4, !tbaa !11
  %1424 = load ptr, ptr %33, align 8, !tbaa !5
  %1425 = load i32, ptr %68, align 4, !tbaa !9
  %1426 = load i32, ptr %68, align 4, !tbaa !9
  %1427 = load i32, ptr %53, align 4, !tbaa !9
  %1428 = mul nsw i32 %1426, %1427
  %1429 = add nsw i32 %1425, %1428
  %1430 = sext i32 %1429 to i64
  %1431 = getelementptr inbounds float, ptr %1424, i64 %1430
  %1432 = load float, ptr %1431, align 4, !tbaa !11
  %1433 = load ptr, ptr %46, align 8, !tbaa !5
  %1434 = getelementptr inbounds float, ptr %1433, i64 5
  store float %1432, ptr %1434, align 4, !tbaa !11
  %1435 = load ptr, ptr %33, align 8, !tbaa !5
  %1436 = load i32, ptr %68, align 4, !tbaa !9
  %1437 = add nsw i32 %1436, 1
  %1438 = load i32, ptr %68, align 4, !tbaa !9
  %1439 = load i32, ptr %53, align 4, !tbaa !9
  %1440 = mul nsw i32 %1438, %1439
  %1441 = add nsw i32 %1437, %1440
  %1442 = sext i32 %1441 to i64
  %1443 = getelementptr inbounds float, ptr %1435, i64 %1442
  %1444 = load float, ptr %1443, align 4, !tbaa !11
  %1445 = load ptr, ptr %46, align 8, !tbaa !5
  %1446 = getelementptr inbounds float, ptr %1445, i64 6
  store float %1444, ptr %1446, align 4, !tbaa !11
  %1447 = load ptr, ptr %33, align 8, !tbaa !5
  %1448 = load i32, ptr %68, align 4, !tbaa !9
  %1449 = load i32, ptr %68, align 4, !tbaa !9
  %1450 = add nsw i32 %1449, 1
  %1451 = load i32, ptr %53, align 4, !tbaa !9
  %1452 = mul nsw i32 %1450, %1451
  %1453 = add nsw i32 %1448, %1452
  %1454 = sext i32 %1453 to i64
  %1455 = getelementptr inbounds float, ptr %1447, i64 %1454
  %1456 = load float, ptr %1455, align 4, !tbaa !11
  %1457 = load ptr, ptr %46, align 8, !tbaa !5
  %1458 = getelementptr inbounds float, ptr %1457, i64 7
  store float %1456, ptr %1458, align 4, !tbaa !11
  %1459 = load ptr, ptr %33, align 8, !tbaa !5
  %1460 = load i32, ptr %68, align 4, !tbaa !9
  %1461 = add nsw i32 %1460, 1
  %1462 = load i32, ptr %68, align 4, !tbaa !9
  %1463 = add nsw i32 %1462, 1
  %1464 = load i32, ptr %53, align 4, !tbaa !9
  %1465 = mul nsw i32 %1463, %1464
  %1466 = add nsw i32 %1461, %1465
  %1467 = sext i32 %1466 to i64
  %1468 = getelementptr inbounds float, ptr %1459, i64 %1467
  %1469 = load float, ptr %1468, align 4, !tbaa !11
  %1470 = load ptr, ptr %46, align 8, !tbaa !5
  %1471 = getelementptr inbounds float, ptr %1470, i64 8
  store float %1469, ptr %1471, align 4, !tbaa !11
  %1472 = load float, ptr %82, align 4, !tbaa !11
  %1473 = load float, ptr %86, align 4, !tbaa !11
  %1474 = fmul float %1472, %1473
  store float %1474, ptr %61, align 4, !tbaa !11
  %1475 = load ptr, ptr %46, align 8, !tbaa !5
  %1476 = getelementptr inbounds float, ptr %1475, i64 1
  %1477 = load ptr, ptr %46, align 8, !tbaa !5
  %1478 = getelementptr inbounds float, ptr %1477, i64 5
  %1479 = load ptr, ptr %37, align 8, !tbaa !5
  %1480 = load i32, ptr %68, align 4, !tbaa !9
  %1481 = sext i32 %1480 to i64
  %1482 = getelementptr inbounds float, ptr %1479, i64 %1481
  %1483 = load ptr, ptr %37, align 8, !tbaa !5
  %1484 = load i32, ptr %68, align 4, !tbaa !9
  %1485 = add nsw i32 %1484, 1
  %1486 = sext i32 %1485 to i64
  %1487 = getelementptr inbounds float, ptr %1483, i64 %1486
  %1488 = load ptr, ptr %35, align 8, !tbaa !5
  %1489 = load i32, ptr %68, align 4, !tbaa !9
  %1490 = sext i32 %1489 to i64
  %1491 = getelementptr inbounds float, ptr %1488, i64 %1490
  %1492 = load ptr, ptr %35, align 8, !tbaa !5
  %1493 = load i32, ptr %68, align 4, !tbaa !9
  %1494 = add nsw i32 %1493, 1
  %1495 = sext i32 %1494 to i64
  %1496 = getelementptr inbounds float, ptr %1492, i64 %1495
  %1497 = load ptr, ptr %36, align 8, !tbaa !5
  %1498 = load i32, ptr %68, align 4, !tbaa !9
  %1499 = sext i32 %1498 to i64
  %1500 = getelementptr inbounds float, ptr %1497, i64 %1499
  call void @slag2_(ptr noundef %1476, ptr noundef @c__2, ptr noundef %1478, ptr noundef @c__2, ptr noundef %61, ptr noundef %1482, ptr noundef %1487, ptr noundef %1491, ptr noundef %1496, ptr noundef %1500)
  %1501 = load ptr, ptr %36, align 8, !tbaa !5
  %1502 = load i32, ptr %68, align 4, !tbaa !9
  %1503 = sext i32 %1502 to i64
  %1504 = getelementptr inbounds float, ptr %1501, i64 %1503
  %1505 = load float, ptr %1504, align 4, !tbaa !11
  %1506 = fneg float %1505
  %1507 = load ptr, ptr %36, align 8, !tbaa !5
  %1508 = load i32, ptr %68, align 4, !tbaa !9
  %1509 = add nsw i32 %1508, 1
  %1510 = sext i32 %1509 to i64
  %1511 = getelementptr inbounds float, ptr %1507, i64 %1510
  store float %1506, ptr %1511, align 4, !tbaa !11
  br label %1649

1512:                                             ; preds = %1372
  %1513 = load ptr, ptr %33, align 8, !tbaa !5
  %1514 = load i32, ptr %68, align 4, !tbaa !9
  %1515 = load i32, ptr %68, align 4, !tbaa !9
  %1516 = load i32, ptr %53, align 4, !tbaa !9
  %1517 = mul nsw i32 %1515, %1516
  %1518 = add nsw i32 %1514, %1517
  %1519 = sext i32 %1518 to i64
  %1520 = getelementptr inbounds float, ptr %1513, i64 %1519
  %1521 = load float, ptr %1520, align 4, !tbaa !11
  %1522 = fcmp oge float %1521, 0.000000e+00
  br i1 %1522, label %1523, label %1533

1523:                                             ; preds = %1512
  %1524 = load float, ptr @c_b28, align 4, !tbaa !11
  %1525 = fcmp oge float %1524, 0.000000e+00
  br i1 %1525, label %1526, label %1528

1526:                                             ; preds = %1523
  %1527 = load float, ptr @c_b28, align 4, !tbaa !11
  br label %1531

1528:                                             ; preds = %1523
  %1529 = load float, ptr @c_b28, align 4, !tbaa !11
  %1530 = fneg float %1529
  br label %1531

1531:                                             ; preds = %1528, %1526
  %1532 = phi float [ %1527, %1526 ], [ %1530, %1528 ]
  br label %1544

1533:                                             ; preds = %1512
  %1534 = load float, ptr @c_b28, align 4, !tbaa !11
  %1535 = fcmp oge float %1534, 0.000000e+00
  br i1 %1535, label %1536, label %1538

1536:                                             ; preds = %1533
  %1537 = load float, ptr @c_b28, align 4, !tbaa !11
  br label %1541

1538:                                             ; preds = %1533
  %1539 = load float, ptr @c_b28, align 4, !tbaa !11
  %1540 = fneg float %1539
  br label %1541

1541:                                             ; preds = %1538, %1536
  %1542 = phi float [ %1537, %1536 ], [ %1540, %1538 ]
  %1543 = fneg float %1542
  br label %1544

1544:                                             ; preds = %1541, %1531
  %1545 = phi float [ %1532, %1531 ], [ %1543, %1541 ]
  %1546 = fcmp olt float %1545, 0.000000e+00
  br i1 %1546, label %1547, label %1618

1547:                                             ; preds = %1544
  %1548 = load ptr, ptr %30, align 8, !tbaa !5
  %1549 = load i32, ptr %1548, align 4, !tbaa !9
  store i32 %1549, ptr %60, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1550

1550:                                             ; preds = %1614, %1547
  %1551 = load i32, ptr %67, align 4, !tbaa !9
  %1552 = load i32, ptr %60, align 4, !tbaa !9
  %1553 = icmp sle i32 %1551, %1552
  br i1 %1553, label %1554, label %1617

1554:                                             ; preds = %1550
  %1555 = load ptr, ptr %31, align 8, !tbaa !5
  %1556 = load i32, ptr %68, align 4, !tbaa !9
  %1557 = load i32, ptr %67, align 4, !tbaa !9
  %1558 = load i32, ptr %51, align 4, !tbaa !9
  %1559 = mul nsw i32 %1557, %1558
  %1560 = add nsw i32 %1556, %1559
  %1561 = sext i32 %1560 to i64
  %1562 = getelementptr inbounds float, ptr %1555, i64 %1561
  %1563 = load float, ptr %1562, align 4, !tbaa !11
  %1564 = fneg float %1563
  %1565 = load ptr, ptr %31, align 8, !tbaa !5
  %1566 = load i32, ptr %68, align 4, !tbaa !9
  %1567 = load i32, ptr %67, align 4, !tbaa !9
  %1568 = load i32, ptr %51, align 4, !tbaa !9
  %1569 = mul nsw i32 %1567, %1568
  %1570 = add nsw i32 %1566, %1569
  %1571 = sext i32 %1570 to i64
  %1572 = getelementptr inbounds float, ptr %1565, i64 %1571
  store float %1564, ptr %1572, align 4, !tbaa !11
  %1573 = load ptr, ptr %33, align 8, !tbaa !5
  %1574 = load i32, ptr %68, align 4, !tbaa !9
  %1575 = load i32, ptr %67, align 4, !tbaa !9
  %1576 = load i32, ptr %53, align 4, !tbaa !9
  %1577 = mul nsw i32 %1575, %1576
  %1578 = add nsw i32 %1574, %1577
  %1579 = sext i32 %1578 to i64
  %1580 = getelementptr inbounds float, ptr %1573, i64 %1579
  %1581 = load float, ptr %1580, align 4, !tbaa !11
  %1582 = fneg float %1581
  %1583 = load ptr, ptr %33, align 8, !tbaa !5
  %1584 = load i32, ptr %68, align 4, !tbaa !9
  %1585 = load i32, ptr %67, align 4, !tbaa !9
  %1586 = load i32, ptr %53, align 4, !tbaa !9
  %1587 = mul nsw i32 %1585, %1586
  %1588 = add nsw i32 %1584, %1587
  %1589 = sext i32 %1588 to i64
  %1590 = getelementptr inbounds float, ptr %1583, i64 %1589
  store float %1582, ptr %1590, align 4, !tbaa !11
  %1591 = load ptr, ptr %27, align 8, !tbaa !5
  %1592 = load i32, ptr %1591, align 4, !tbaa !9
  %1593 = icmp ne i32 %1592, 0
  br i1 %1593, label %1594, label %1613

1594:                                             ; preds = %1554
  %1595 = load ptr, ptr %38, align 8, !tbaa !5
  %1596 = load i32, ptr %67, align 4, !tbaa !9
  %1597 = load i32, ptr %68, align 4, !tbaa !9
  %1598 = load i32, ptr %55, align 4, !tbaa !9
  %1599 = mul nsw i32 %1597, %1598
  %1600 = add nsw i32 %1596, %1599
  %1601 = sext i32 %1600 to i64
  %1602 = getelementptr inbounds float, ptr %1595, i64 %1601
  %1603 = load float, ptr %1602, align 4, !tbaa !11
  %1604 = fneg float %1603
  %1605 = load ptr, ptr %38, align 8, !tbaa !5
  %1606 = load i32, ptr %67, align 4, !tbaa !9
  %1607 = load i32, ptr %68, align 4, !tbaa !9
  %1608 = load i32, ptr %55, align 4, !tbaa !9
  %1609 = mul nsw i32 %1607, %1608
  %1610 = add nsw i32 %1606, %1609
  %1611 = sext i32 %1610 to i64
  %1612 = getelementptr inbounds float, ptr %1605, i64 %1611
  store float %1604, ptr %1612, align 4, !tbaa !11
  br label %1613

1613:                                             ; preds = %1594, %1554
  br label %1614

1614:                                             ; preds = %1613
  %1615 = load i32, ptr %67, align 4, !tbaa !9
  %1616 = add nsw i32 %1615, 1
  store i32 %1616, ptr %67, align 4, !tbaa !9
  br label %1550, !llvm.loop !17

1617:                                             ; preds = %1550
  br label %1618

1618:                                             ; preds = %1617, %1544
  %1619 = load ptr, ptr %31, align 8, !tbaa !5
  %1620 = load i32, ptr %68, align 4, !tbaa !9
  %1621 = load i32, ptr %68, align 4, !tbaa !9
  %1622 = load i32, ptr %51, align 4, !tbaa !9
  %1623 = mul nsw i32 %1621, %1622
  %1624 = add nsw i32 %1620, %1623
  %1625 = sext i32 %1624 to i64
  %1626 = getelementptr inbounds float, ptr %1619, i64 %1625
  %1627 = load float, ptr %1626, align 4, !tbaa !11
  %1628 = load ptr, ptr %35, align 8, !tbaa !5
  %1629 = load i32, ptr %68, align 4, !tbaa !9
  %1630 = sext i32 %1629 to i64
  %1631 = getelementptr inbounds float, ptr %1628, i64 %1630
  store float %1627, ptr %1631, align 4, !tbaa !11
  %1632 = load ptr, ptr %36, align 8, !tbaa !5
  %1633 = load i32, ptr %68, align 4, !tbaa !9
  %1634 = sext i32 %1633 to i64
  %1635 = getelementptr inbounds float, ptr %1632, i64 %1634
  store float 0.000000e+00, ptr %1635, align 4, !tbaa !11
  %1636 = load ptr, ptr %33, align 8, !tbaa !5
  %1637 = load i32, ptr %68, align 4, !tbaa !9
  %1638 = load i32, ptr %68, align 4, !tbaa !9
  %1639 = load i32, ptr %53, align 4, !tbaa !9
  %1640 = mul nsw i32 %1638, %1639
  %1641 = add nsw i32 %1637, %1640
  %1642 = sext i32 %1641 to i64
  %1643 = getelementptr inbounds float, ptr %1636, i64 %1642
  %1644 = load float, ptr %1643, align 4, !tbaa !11
  %1645 = load ptr, ptr %37, align 8, !tbaa !5
  %1646 = load i32, ptr %68, align 4, !tbaa !9
  %1647 = sext i32 %1646 to i64
  %1648 = getelementptr inbounds float, ptr %1645, i64 %1647
  store float %1644, ptr %1648, align 4, !tbaa !11
  br label %1649

1649:                                             ; preds = %1618, %1375
  br label %1650

1650:                                             ; preds = %1649, %1352
  br label %1651

1651:                                             ; preds = %1650
  %1652 = load i32, ptr %68, align 4, !tbaa !9
  %1653 = add nsw i32 %1652, 1
  store i32 %1653, ptr %68, align 4, !tbaa !9
  br label %1345, !llvm.loop !18

1654:                                             ; preds = %1345
  %1655 = load i32, ptr %71, align 4, !tbaa !9
  %1656 = sitofp i32 %1655 to float
  %1657 = load ptr, ptr %46, align 8, !tbaa !5
  %1658 = getelementptr inbounds float, ptr %1657, i64 1
  store float %1656, ptr %1658, align 4, !tbaa !11
  %1659 = load i32, ptr %81, align 4, !tbaa !9
  %1660 = load ptr, ptr %48, align 8, !tbaa !5
  %1661 = getelementptr inbounds i32, ptr %1660, i64 1
  store i32 %1659, ptr %1661, align 4, !tbaa !9
  store i32 1, ptr %87, align 4
  br label %1662

1662:                                             ; preds = %1654, %555, %547, %239
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 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 12, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  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
  ret void
}

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

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

declare float @slamch_(ptr noundef) #2

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

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

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

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

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

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

declare void @slag2_(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 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}


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

@.str = external hidden unnamed_addr constant [7 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
@c__1 = external hidden global i32, align 4
@.str.3 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i32, align 4
@c_b28 = external hidden local_unnamed_addr global float, align 4

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

56:                                               ; preds = %25
  %57 = load i32, ptr %23, align 4, !tbaa !5
  %58 = icmp eq i32 %57, -1
  br label %59

59:                                               ; preds = %56, %25
  %60 = phi i1 [ true, %25 ], [ %58, %56 ]
  %61 = load i32, ptr %0, align 4, !tbaa !5
  %or.cond578 = icmp ugt i32 %61, 5
  br i1 %or.cond578, label %.thread, label %62

62:                                               ; preds = %59
  %63 = load i32, ptr %4, align 4, !tbaa !5
  %64 = icmp slt i32 %63, 0
  br i1 %64, label %.thread, label %65

65:                                               ; preds = %62
  %66 = load i32, ptr %6, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %63, i32 1)
  %67 = icmp slt i32 %66, %spec.select
  br i1 %67, label %.thread, label %68

68:                                               ; preds = %65
  %69 = load i32, ptr %8, align 4, !tbaa !5
  %70 = icmp slt i32 %69, %spec.select
  br i1 %70, label %.thread, label %71

71:                                               ; preds = %68
  %72 = load i32, ptr %13, align 4, !tbaa !5
  %73 = icmp slt i32 %72, 1
  br i1 %73, label %.thread, label %74

74:                                               ; preds = %71
  %75 = load i32, ptr %1, align 4, !tbaa !5
  %.not = icmp ne i32 %75, 0
  %76 = icmp ult i32 %72, %63
  %or.cond592 = and i1 %76, %.not
  br i1 %or.cond592, label %.thread, label %77

77:                                               ; preds = %74
  %78 = load i32, ptr %15, align 4, !tbaa !5
  %79 = icmp slt i32 %78, 1
  br i1 %79, label %.thread, label %80

80:                                               ; preds = %77
  %81 = load i32, ptr %2, align 4, !tbaa !5
  %.not549 = icmp ne i32 %81, 0
  %82 = icmp ult i32 %78, %63
  %or.cond593 = and i1 %82, %.not549
  br i1 %or.cond593, label %.thread, label %84

.thread:                                          ; preds = %77, %80, %71, %74, %68, %65, %62, %59
  %.sink = phi i32 [ -1, %59 ], [ -5, %62 ], [ -7, %65 ], [ -9, %68 ], [ -14, %74 ], [ -14, %71 ], [ -16, %80 ], [ -16, %77 ]
  %.neg663 = phi i32 [ 1, %59 ], [ 5, %62 ], [ 7, %65 ], [ 9, %68 ], [ 14, %74 ], [ 14, %71 ], [ 16, %80 ], [ 16, %77 ]
  store i32 %.sink, ptr %24, align 4, !tbaa !5
  store i32 %.neg663, ptr %26, align 4, !tbaa !5
  %83 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %26, i32 noundef 6) #5
  br label %600

84:                                               ; preds = %80
  %85 = tail call float @slamch_(ptr noundef nonnull @.str.1) #5
  %86 = tail call float @slamch_(ptr noundef nonnull @.str.2) #5
  %87 = fdiv float %86, %85
  store i32 0, ptr %29, align 4, !tbaa !5
  %88 = load i32, ptr %0, align 4, !tbaa !5
  %89 = icmp eq i32 %88, 1
  %90 = icmp sgt i32 %88, 3
  %spec.select580 = or i1 %89, %90
  store i32 0, ptr %16, align 4, !tbaa !5
  br i1 %60, label %91, label %93

91:                                               ; preds = %84
  %92 = load i32, ptr %0, align 4, !tbaa !5
  %.not551 = icmp eq i32 %92, 0
  br i1 %.not551, label %.thread585, label %93

93:                                               ; preds = %91, %84
  %94 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %94, ptr %26, align 4, !tbaa !5
  %.not552596 = icmp slt i32 %94, 1
  br i1 %.not552596, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %93
  %95 = sext i32 %41 to i64
  %96 = add nuw i32 %94, 1
  %wide.trip.count = zext i32 %96 to i64
  %invariant.gep = getelementptr i8, ptr %43, i64 4
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %118
  %97 = phi i32 [ 0, %.lr.ph.preheader ], [ %119, %118 ]
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %118 ]
  %.0529597 = phi i32 [ 0, %.lr.ph.preheader ], [ %.1530, %118 ]
  %.not573 = icmp eq i32 %.0529597, 0
  br i1 %.not573, label %98, label %118

98:                                               ; preds = %.lr.ph
  %99 = load i32, ptr %4, align 4, !tbaa !5
  %100 = sext i32 %99 to i64
  %101 = icmp slt i64 %indvars.iv, %100
  br i1 %101, label %102, label %114

102:                                              ; preds = %98
  %103 = mul nsw i64 %indvars.iv, %95
  %gep665 = getelementptr float, ptr %invariant.gep, i64 %indvars.iv
  %104 = getelementptr float, ptr %gep665, i64 %103
  %105 = load float, ptr %104, align 4, !tbaa !9
  %106 = fcmp oeq float %105, 0.000000e+00
  %107 = getelementptr inbounds i32, ptr %40, i64 %indvars.iv
  %108 = load i32, ptr %107, align 4, !tbaa !5
  %.not577 = icmp eq i32 %108, 0
  br i1 %106, label %109, label %110

109:                                              ; preds = %102
  br i1 %.not577, label %118, label %.sink.split

110:                                              ; preds = %102
  br i1 %.not577, label %111, label %.sink.split

111:                                              ; preds = %110
  %112 = getelementptr i32, ptr %3, i64 %indvars.iv
  %113 = load i32, ptr %112, align 4, !tbaa !5
  %.not576 = icmp eq i32 %113, 0
  br i1 %.not576, label %118, label %.sink.split

114:                                              ; preds = %98
  %115 = getelementptr inbounds i32, ptr %40, i64 %100
  %116 = load i32, ptr %115, align 4, !tbaa !5
  %.not574 = icmp eq i32 %116, 0
  br i1 %.not574, label %118, label %.sink.split

.sink.split:                                      ; preds = %114, %110, %111, %109
  %.sink679 = phi i32 [ 1, %109 ], [ 2, %111 ], [ 2, %110 ], [ 1, %114 ]
  %.1530.ph = phi i32 [ 0, %109 ], [ 1, %111 ], [ 1, %110 ], [ 0, %114 ]
  %117 = add nsw i32 %97, %.sink679
  store i32 %117, ptr %16, align 4, !tbaa !5
  br label %118

118:                                              ; preds = %.sink.split, %.lr.ph, %114, %109, %111
  %119 = phi i32 [ %97, %109 ], [ %97, %111 ], [ %97, %114 ], [ %97, %.lr.ph ], [ %117, %.sink.split ]
  %.1530 = phi i32 [ 0, %109 ], [ 1, %111 ], [ 0, %114 ], [ 0, %.lr.ph ], [ %.1530.ph, %.sink.split ]
  %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 %.lr.ph, !llvm.loop !11

._crit_edge:                                      ; preds = %118, %93
  %120 = phi i32 [ 0, %93 ], [ %119, %118 ]
  %.pr584 = load i32, ptr %0, align 4, !tbaa !5
  switch i32 %.pr584, label %.thread585 [
    i32 1, label %121
    i32 2, label %121
    i32 4, label %121
    i32 3, label %134
    i32 5, label %134
  ]

121:                                              ; preds = %._crit_edge, %._crit_edge, %._crit_edge
  %122 = load i32, ptr %4, align 4, !tbaa !5
  %123 = shl i32 %122, 2
  %124 = add nsw i32 %123, 16
  %125 = icmp slt i32 %123, -14
  %126 = select i1 %125, i32 1, i32 %124
  %127 = shl i32 %120, 1
  %128 = sub nsw i32 %122, %120
  %129 = mul nsw i32 %127, %128
  %130 = tail call i32 @llvm.smax.i32(i32 %126, i32 %129)
  %131 = add nsw i32 %122, 6
  %132 = icmp slt i32 %122, -4
  %133 = select i1 %132, i32 1, i32 %131
  br label %154

134:                                              ; preds = %._crit_edge, %._crit_edge
  %135 = load i32, ptr %4, align 4, !tbaa !5
  %136 = shl i32 %135, 2
  %137 = add nsw i32 %136, 16
  %138 = icmp slt i32 %136, -14
  %139 = select i1 %138, i32 1, i32 %137
  %140 = shl i32 %120, 2
  %141 = sub nsw i32 %135, %120
  %142 = mul nsw i32 %140, %141
  %143 = tail call i32 @llvm.smax.i32(i32 %139, i32 %142)
  %144 = shl i32 %120, 1
  %145 = mul nsw i32 %144, %141
  %146 = add nsw i32 %135, 6
  %147 = tail call i32 @llvm.smax.i32(i32 %145, i32 %146)
  %148 = tail call i32 @llvm.smax.i32(i32 %147, i32 1)
  br label %154

.thread585:                                       ; preds = %91, %._crit_edge
  %149 = load i32, ptr %4, align 4, !tbaa !5
  %150 = shl i32 %149, 2
  %151 = add nsw i32 %150, 16
  %152 = icmp slt i32 %150, -14
  %153 = select i1 %152, i32 1, i32 %151
  br label %154

154:                                              ; preds = %134, %.thread585, %121
  %.0524 = phi i32 [ %130, %121 ], [ %143, %134 ], [ %153, %.thread585 ]
  %.0 = phi i32 [ %133, %121 ], [ %148, %134 ], [ 1, %.thread585 ]
  %155 = sitofp i32 %.0524 to float
  store float %155, ptr %20, align 4, !tbaa !9
  store i32 %.0, ptr %22, align 4, !tbaa !5
  %156 = load i32, ptr %21, align 4, !tbaa !5
  %157 = icmp sge i32 %156, %.0524
  %or.cond = select i1 %157, i1 true, i1 %60
  br i1 %or.cond, label %158, label %.thread590.sink.split

158:                                              ; preds = %154
  %159 = load i32, ptr %23, align 4, !tbaa !5
  %160 = icmp sge i32 %159, %.0
  %or.cond3 = select i1 %160, i1 true, i1 %60
  br i1 %or.cond3, label %161, label %.thread590.sink.split

161:                                              ; preds = %158
  %.pr587 = load i32, ptr %24, align 4, !tbaa !5
  %.not556 = icmp eq i32 %.pr587, 0
  br i1 %.not556, label %165, label %.thread590

.thread590.sink.split:                            ; preds = %158, %154
  %.sink680 = phi i32 [ -22, %154 ], [ -24, %158 ]
  store i32 %.sink680, ptr %24, align 4, !tbaa !5
  br label %.thread590

.thread590:                                       ; preds = %.thread590.sink.split, %161
  %162 = phi i32 [ %.pr587, %161 ], [ %.sink680, %.thread590.sink.split ]
  %163 = sub nsw i32 0, %162
  store i32 %163, ptr %26, align 4, !tbaa !5
  %164 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %26, i32 noundef 6) #5
  br label %600

165:                                              ; preds = %161
  br i1 %60, label %600, label %166

166:                                              ; preds = %165
  %167 = load i32, ptr %16, align 4, !tbaa !5
  %168 = load i32, ptr %4, align 4, !tbaa !5
  %169 = icmp eq i32 %167, %168
  %170 = icmp eq i32 %167, 0
  %or.cond581 = or i1 %170, %169
  br i1 %or.cond581, label %171, label %189

171:                                              ; preds = %166
  br i1 %spec.select580, label %172, label %173

172:                                              ; preds = %171
  store float 1.000000e+00, ptr %17, align 4, !tbaa !9
  store float 1.000000e+00, ptr %18, align 4, !tbaa !9
  br label %173

173:                                              ; preds = %172, %171
  %.off = add i32 %88, -2
  %switch = icmp ult i32 %.off, 4
  br i1 %switch, label %174, label %439

174:                                              ; preds = %173
  store float 0.000000e+00, ptr %35, align 4, !tbaa !9
  store float 1.000000e+00, ptr %30, align 4, !tbaa !9
  store i32 %168, ptr %26, align 4, !tbaa !5
  %invariant.gep616 = getelementptr i8, ptr %43, i64 4
  %invariant.gep618 = getelementptr i8, ptr %46, i64 4
  %.not567620 = icmp slt i32 %168, 1
  br i1 %.not567620, label %._crit_edge624, label %.lr.ph623.preheader

.lr.ph623.preheader:                              ; preds = %174
  %175 = sext i32 %41 to i64
  %176 = sext i32 %44 to i64
  br label %.lr.ph623

.lr.ph623:                                        ; preds = %.lr.ph623.preheader, %.lr.ph623
  %indvars.iv643 = phi i64 [ 1, %.lr.ph623.preheader ], [ %indvars.iv.next644, %.lr.ph623 ]
  %177 = mul nsw i64 %indvars.iv643, %175
  %gep617 = getelementptr float, ptr %invariant.gep616, i64 %177
  call void @slassq_(ptr noundef nonnull %4, ptr noundef %gep617, ptr noundef nonnull @c__1, ptr noundef nonnull %35, ptr noundef nonnull %30) #5
  %178 = mul nsw i64 %indvars.iv643, %176
  %gep619 = getelementptr float, ptr %invariant.gep618, i64 %178
  call void @slassq_(ptr noundef nonnull %4, ptr noundef %gep619, ptr noundef nonnull @c__1, ptr noundef nonnull %35, ptr noundef nonnull %30) #5
  %indvars.iv.next644 = add nuw nsw i64 %indvars.iv643, 1
  %179 = load i32, ptr %26, align 4, !tbaa !5
  %180 = sext i32 %179 to i64
  %.not567.not = icmp slt i64 %indvars.iv643, %180
  br i1 %.not567.not, label %.lr.ph623, label %._crit_edge624.loopexit, !llvm.loop !13

._crit_edge624.loopexit:                          ; preds = %.lr.ph623
  %.pre660 = load float, ptr %35, align 4, !tbaa !9
  %.pre661 = load float, ptr %30, align 4, !tbaa !9
  %181 = fpext float %.pre660 to double
  %182 = fpext float %.pre661 to double
  br label %._crit_edge624

._crit_edge624:                                   ; preds = %._crit_edge624.loopexit, %174
  %183 = phi double [ %182, %._crit_edge624.loopexit ], [ 1.000000e+00, %174 ]
  %184 = phi double [ %181, %._crit_edge624.loopexit ], [ 0.000000e+00, %174 ]
  %185 = call double @sqrt(double noundef %183) #5
  %186 = fmul double %185, %184
  %187 = fptrunc double %186 to float
  store float %187, ptr %19, align 4, !tbaa !9
  %188 = getelementptr inbounds i8, ptr %19, i64 4
  store float %187, ptr %188, align 4, !tbaa !9
  br label %439

189:                                              ; preds = %166
  store i32 0, ptr %36, align 4, !tbaa !5
  store i32 %168, ptr %26, align 4, !tbaa !5
  %.not557599 = icmp slt i32 %168, 1
  br i1 %.not557599, label %._crit_edge605, label %.lr.ph604.preheader

.lr.ph604.preheader:                              ; preds = %189
  %190 = sext i32 %41 to i64
  %invariant.gep666 = getelementptr i8, ptr %43, i64 4
  br label %.lr.ph604

.lr.ph604:                                        ; preds = %.lr.ph604.preheader, %229
  %191 = phi i32 [ 0, %.lr.ph604.preheader ], [ %230, %229 ]
  %indvars.iv640 = phi i64 [ 1, %.lr.ph604.preheader ], [ %indvars.iv.next641, %229 ]
  %.2531600 = phi i32 [ 0, %.lr.ph604.preheader ], [ %.4, %229 ]
  %.not560 = icmp eq i32 %.2531600, 0
  br i1 %.not560, label %192, label %229

192:                                              ; preds = %.lr.ph604
  %193 = getelementptr inbounds i32, ptr %40, i64 %indvars.iv640
  %194 = load i32, ptr %193, align 4, !tbaa !5
  %195 = load i32, ptr %4, align 4, !tbaa !5
  %196 = sext i32 %195 to i64
  %197 = icmp slt i64 %indvars.iv640, %196
  br i1 %197, label %198, label %211

198:                                              ; preds = %192
  %199 = mul nsw i64 %indvars.iv640, %190
  %gep667 = getelementptr float, ptr %invariant.gep666, i64 %indvars.iv640
  %200 = getelementptr float, ptr %gep667, i64 %199
  %201 = load float, ptr %200, align 4, !tbaa !9
  %202 = fcmp une float %201, 0.000000e+00
  br i1 %202, label %203, label %211

203:                                              ; preds = %198
  %.not561 = icmp eq i32 %194, 0
  br i1 %.not561, label %204, label %208

204:                                              ; preds = %203
  %205 = getelementptr i32, ptr %3, i64 %indvars.iv640
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = icmp ne i32 %206, 0
  br label %208

208:                                              ; preds = %204, %203
  %209 = phi i1 [ true, %203 ], [ %207, %204 ]
  %210 = zext i1 %209 to i32
  br label %211

211:                                              ; preds = %198, %208, %192
  %.not566 = phi i1 [ false, %208 ], [ true, %198 ], [ true, %192 ]
  %.3 = phi i32 [ 1, %208 ], [ 0, %198 ], [ 0, %192 ]
  %.0528 = phi i32 [ %210, %208 ], [ %194, %198 ], [ %194, %192 ]
  %.not562 = icmp eq i32 %.0528, 0
  br i1 %.not562, label %229, label %212

212:                                              ; preds = %211
  %213 = load i32, ptr %36, align 4, !tbaa !5
  %214 = add nsw i32 %213, 1
  store i32 %214, ptr %36, align 4, !tbaa !5
  %215 = trunc nuw nsw i64 %indvars.iv640 to i32
  store i32 %215, ptr %34, align 4, !tbaa !5
  %216 = zext i32 %214 to i64
  %.not563 = icmp eq i64 %indvars.iv640, %216
  br i1 %.not563, label %218, label %217

217:                                              ; preds = %212
  call void @stgexc_(ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %12, ptr noundef nonnull %13, ptr noundef %14, ptr noundef nonnull %15, ptr noundef nonnull %34, ptr noundef nonnull %36, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %29) #5
  %.pre = load i32, ptr %29, align 4, !tbaa !5
  br label %218

218:                                              ; preds = %217, %212
  %219 = phi i32 [ %.pre, %217 ], [ %191, %212 ]
  %220 = icmp sgt i32 %219, 0
  br i1 %220, label %221, label %225

221:                                              ; preds = %218
  store i32 1, ptr %24, align 4, !tbaa !5
  br i1 %spec.select580, label %222, label %223

222:                                              ; preds = %221
  store float 0.000000e+00, ptr %17, align 4, !tbaa !9
  store float 0.000000e+00, ptr %18, align 4, !tbaa !9
  br label %223

223:                                              ; preds = %222, %221
  %.off594 = add i32 %88, -2
  %switch595 = icmp ult i32 %.off594, 4
  br i1 %switch595, label %224, label %439

224:                                              ; preds = %223
  store <2 x float> zeroinitializer, ptr %19, align 4, !tbaa !9
  br label %439

225:                                              ; preds = %218
  br i1 %.not566, label %229, label %226

226:                                              ; preds = %225
  %227 = load i32, ptr %36, align 4, !tbaa !5
  %228 = add nsw i32 %227, 1
  store i32 %228, ptr %36, align 4, !tbaa !5
  br label %229

229:                                              ; preds = %.lr.ph604, %225, %226, %211
  %230 = phi i32 [ %219, %226 ], [ %219, %225 ], [ %191, %211 ], [ %191, %.lr.ph604 ]
  %.4 = phi i32 [ 1, %226 ], [ 0, %225 ], [ %.3, %211 ], [ 0, %.lr.ph604 ]
  %indvars.iv.next641 = add nuw nsw i64 %indvars.iv640, 1
  %231 = load i32, ptr %26, align 4, !tbaa !5
  %232 = sext i32 %231 to i64
  %.not557.not = icmp slt i64 %indvars.iv640, %232
  br i1 %.not557.not, label %.lr.ph604, label %._crit_edge605, !llvm.loop !14

._crit_edge605:                                   ; preds = %229, %189
  br i1 %spec.select580, label %233, label %326

233:                                              ; preds = %._crit_edge605
  %234 = load i32, ptr %16, align 4, !tbaa !5
  store i32 %234, ptr %32, align 4, !tbaa !5
  %235 = load i32, ptr %4, align 4, !tbaa !5
  %236 = sub nsw i32 %235, %234
  store i32 %236, ptr %33, align 4, !tbaa !5
  %237 = add nsw i32 %234, 1
  store i32 0, ptr %39, align 4, !tbaa !5
  %238 = mul nsw i32 %237, %41
  %239 = sext i32 %238 to i64
  %240 = getelementptr float, ptr %43, i64 %239
  %241 = getelementptr i8, ptr %240, i64 4
  call void @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef %241, ptr noundef nonnull %6, ptr noundef nonnull %20, ptr noundef nonnull %32) #5
  %242 = mul nsw i32 %237, %44
  %243 = sext i32 %242 to i64
  %244 = getelementptr float, ptr %46, i64 %243
  %245 = getelementptr i8, ptr %244, i64 4
  %246 = load i32, ptr %32, align 4, !tbaa !5
  %247 = load i32, ptr %33, align 4, !tbaa !5
  %248 = mul nsw i32 %247, %246
  %249 = sext i32 %248 to i64
  %250 = getelementptr float, ptr %53, i64 %249
  %251 = getelementptr i8, ptr %250, i64 4
  call void @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef %245, ptr noundef nonnull %8, ptr noundef %251, ptr noundef nonnull %32) #5
  %252 = load i32, ptr %21, align 4, !tbaa !5
  %253 = load i32, ptr %32, align 4, !tbaa !5
  %254 = shl i32 %253, 1
  %255 = load i32, ptr %33, align 4, !tbaa !5
  %256 = mul nsw i32 %254, %255
  %257 = sub nsw i32 %252, %256
  store i32 %257, ptr %26, align 4, !tbaa !5
  %258 = add nsw i32 %238, %237
  %259 = sext i32 %258 to i64
  %260 = getelementptr inbounds float, ptr %43, i64 %259
  %261 = add nsw i32 %242, %237
  %262 = sext i32 %261 to i64
  %263 = getelementptr inbounds float, ptr %46, i64 %262
  %264 = mul nsw i32 %255, %253
  %265 = sext i32 %264 to i64
  %266 = getelementptr float, ptr %53, i64 %265
  %267 = getelementptr i8, ptr %266, i64 4
  %268 = shl i32 %264, 1
  %269 = or disjoint i32 %268, 1
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds float, ptr %53, i64 %270
  call void @stgsyl_(ptr noundef nonnull @.str.4, ptr noundef nonnull %39, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %260, ptr noundef nonnull %6, ptr noundef nonnull %20, ptr noundef nonnull %32, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %263, ptr noundef nonnull %8, ptr noundef %267, ptr noundef nonnull %32, ptr noundef nonnull %35, ptr noundef %19, ptr noundef nonnull %271, ptr noundef nonnull %26, ptr noundef nonnull %22, ptr noundef nonnull %29) #5
  store float 0.000000e+00, ptr %37, align 4, !tbaa !9
  store float 1.000000e+00, ptr %30, align 4, !tbaa !9
  %272 = load i32, ptr %32, align 4, !tbaa !5
  %273 = load i32, ptr %33, align 4, !tbaa !5
  %274 = mul nsw i32 %273, %272
  store i32 %274, ptr %26, align 4, !tbaa !5
  call void @slassq_(ptr noundef nonnull %26, ptr noundef nonnull %20, ptr noundef nonnull @c__1, ptr noundef nonnull %37, ptr noundef nonnull %30) #5
  %275 = load float, ptr %37, align 4, !tbaa !9
  %276 = fpext float %275 to double
  %277 = load float, ptr %30, align 4, !tbaa !9
  %278 = fpext float %277 to double
  %279 = call double @sqrt(double noundef %278) #5
  %280 = fmul double %279, %276
  %281 = fptrunc double %280 to float
  store float %281, ptr %17, align 4, !tbaa !9
  %282 = fcmp oeq float %281, 0.000000e+00
  br i1 %282, label %297, label %283

283:                                              ; preds = %233
  %284 = load float, ptr %35, align 4, !tbaa !9
  %285 = fpext float %284 to double
  %286 = fmul float %284, %284
  %287 = fdiv float %286, %281
  %288 = fadd float %287, %281
  %289 = fpext float %288 to double
  %290 = call double @sqrt(double noundef %289) #5
  %291 = load float, ptr %17, align 4, !tbaa !9
  %292 = fpext float %291 to double
  %293 = call double @sqrt(double noundef %292) #5
  %294 = fmul double %290, %293
  %295 = fdiv double %285, %294
  %296 = fptrunc double %295 to float
  br label %297

297:                                              ; preds = %233, %283
  %storemerge = phi float [ %296, %283 ], [ 1.000000e+00, %233 ]
  store float %storemerge, ptr %17, align 4, !tbaa !9
  store float 0.000000e+00, ptr %37, align 4, !tbaa !9
  store float 1.000000e+00, ptr %30, align 4, !tbaa !9
  %298 = load i32, ptr %32, align 4, !tbaa !5
  %299 = load i32, ptr %33, align 4, !tbaa !5
  %300 = mul nsw i32 %299, %298
  store i32 %300, ptr %26, align 4, !tbaa !5
  %301 = sext i32 %300 to i64
  %302 = getelementptr float, ptr %53, i64 %301
  %303 = getelementptr i8, ptr %302, i64 4
  call void @slassq_(ptr noundef nonnull %26, ptr noundef %303, ptr noundef nonnull @c__1, ptr noundef nonnull %37, ptr noundef nonnull %30) #5
  %304 = load float, ptr %37, align 4, !tbaa !9
  %305 = fpext float %304 to double
  %306 = load float, ptr %30, align 4, !tbaa !9
  %307 = fpext float %306 to double
  %308 = call double @sqrt(double noundef %307) #5
  %309 = fmul double %308, %305
  %310 = fptrunc double %309 to float
  store float %310, ptr %18, align 4, !tbaa !9
  %311 = fcmp oeq float %310, 0.000000e+00
  br i1 %311, label %.sink.split681, label %312

312:                                              ; preds = %297
  %313 = load float, ptr %35, align 4, !tbaa !9
  %314 = fpext float %313 to double
  %315 = fmul float %313, %313
  %316 = fdiv float %315, %310
  %317 = fadd float %316, %310
  %318 = fpext float %317 to double
  %319 = call double @sqrt(double noundef %318) #5
  %320 = load float, ptr %18, align 4, !tbaa !9
  %321 = fpext float %320 to double
  %322 = call double @sqrt(double noundef %321) #5
  %323 = fmul double %319, %322
  %324 = fdiv double %314, %323
  %325 = fptrunc double %324 to float
  br label %.sink.split681

.sink.split681:                                   ; preds = %297, %312
  %.sink682 = phi float [ %325, %312 ], [ 1.000000e+00, %297 ]
  store float %.sink682, ptr %18, align 4, !tbaa !9
  br label %326

326:                                              ; preds = %.sink.split681, %._crit_edge605
  switch i32 %88, label %439 [
    i32 4, label %327
    i32 2, label %327
    i32 3, label %365
    i32 5, label %365
  ]

327:                                              ; preds = %326, %326
  %328 = load i32, ptr %16, align 4, !tbaa !5
  store i32 %328, ptr %32, align 4, !tbaa !5
  %329 = load i32, ptr %4, align 4, !tbaa !5
  %330 = sub nsw i32 %329, %328
  store i32 %330, ptr %33, align 4, !tbaa !5
  %331 = add nsw i32 %328, 1
  store i32 3, ptr %39, align 4, !tbaa !5
  %332 = load i32, ptr %21, align 4, !tbaa !5
  %333 = shl i32 %328, 1
  %334 = mul nsw i32 %330, %333
  %335 = sub nsw i32 %332, %334
  store i32 %335, ptr %26, align 4, !tbaa !5
  %336 = add i32 %41, 1
  %337 = mul i32 %331, %336
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds float, ptr %43, i64 %338
  %340 = add i32 %44, 1
  %341 = mul i32 %331, %340
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds float, ptr %46, i64 %342
  %344 = mul nsw i32 %330, %328
  %345 = sext i32 %344 to i64
  %346 = getelementptr float, ptr %53, i64 %345
  %347 = getelementptr i8, ptr %346, i64 4
  %348 = or disjoint i32 %334, 1
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds float, ptr %53, i64 %349
  call void @stgsyl_(ptr noundef nonnull @.str.4, ptr noundef nonnull %39, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %339, ptr noundef nonnull %6, ptr noundef nonnull %20, ptr noundef nonnull %32, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %343, ptr noundef nonnull %8, ptr noundef %347, ptr noundef nonnull %32, ptr noundef nonnull %35, ptr noundef %19, ptr noundef nonnull %350, ptr noundef nonnull %26, ptr noundef nonnull %22, ptr noundef nonnull %29) #5
  %351 = load i32, ptr %21, align 4, !tbaa !5
  %352 = load i32, ptr %32, align 4, !tbaa !5
  %353 = shl i32 %352, 1
  %354 = load i32, ptr %33, align 4, !tbaa !5
  %355 = mul nsw i32 %353, %354
  %356 = sub nsw i32 %351, %355
  store i32 %356, ptr %26, align 4, !tbaa !5
  %357 = mul nsw i32 %354, %352
  %358 = sext i32 %357 to i64
  %359 = getelementptr float, ptr %53, i64 %358
  %360 = getelementptr i8, ptr %359, i64 4
  %361 = getelementptr inbounds i8, ptr %19, i64 4
  %362 = or disjoint i32 %355, 1
  %363 = sext i32 %362 to i64
  %364 = getelementptr inbounds float, ptr %53, i64 %363
  call void @stgsyl_(ptr noundef nonnull @.str.4, ptr noundef nonnull %39, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef %339, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %20, ptr noundef nonnull %33, ptr noundef %343, ptr noundef nonnull %8, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %360, ptr noundef nonnull %33, ptr noundef nonnull %35, ptr noundef nonnull %361, ptr noundef nonnull %364, ptr noundef nonnull %26, ptr noundef nonnull %22, ptr noundef nonnull %29) #5
  br label %439

365:                                              ; preds = %326, %326
  store i32 0, ptr %28, align 4, !tbaa !5
  %366 = load i32, ptr %16, align 4, !tbaa !5
  store i32 %366, ptr %32, align 4, !tbaa !5
  %367 = load i32, ptr %4, align 4, !tbaa !5
  %368 = sub nsw i32 %367, %366
  store i32 %368, ptr %33, align 4, !tbaa !5
  %369 = add nsw i32 %366, 1
  store i32 0, ptr %39, align 4, !tbaa !5
  %370 = shl i32 %366, 1
  %371 = mul nsw i32 %370, %368
  store i32 %371, ptr %38, align 4, !tbaa !5
  %372 = add i32 %41, 1
  %373 = mul i32 %369, %372
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds float, ptr %43, i64 %374
  %376 = add i32 %44, 1
  %377 = mul i32 %369, %376
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds float, ptr %46, i64 %378
  br label %380

380:                                              ; preds = %400, %365
  %381 = phi i32 [ %.pre659, %400 ], [ %371, %365 ]
  %382 = sext i32 %381 to i64
  %gep = getelementptr float, ptr %20, i64 %382
  call void @slacn2_(ptr noundef nonnull %38, ptr noundef %gep, ptr noundef nonnull %20, ptr noundef nonnull %22, ptr noundef %19, ptr noundef nonnull %28, ptr noundef nonnull %31) #5
  %383 = load i32, ptr %28, align 4, !tbaa !5
  switch i32 %383, label %392 [
    i32 0, label %405
    i32 1, label %384
  ]

384:                                              ; preds = %380
  %385 = load i32, ptr %21, align 4, !tbaa !5
  %386 = load i32, ptr %32, align 4, !tbaa !5
  %387 = shl i32 %386, 1
  %388 = load i32, ptr %33, align 4, !tbaa !5
  %389 = mul nsw i32 %387, %388
  %390 = sub nsw i32 %385, %389
  store i32 %390, ptr %26, align 4, !tbaa !5
  %391 = mul nsw i32 %388, %386
  br label %400

392:                                              ; preds = %380
  %393 = load i32, ptr %21, align 4, !tbaa !5
  %394 = load i32, ptr %32, align 4, !tbaa !5
  %395 = shl i32 %394, 1
  %396 = load i32, ptr %33, align 4, !tbaa !5
  %397 = mul nsw i32 %395, %396
  %398 = sub nsw i32 %393, %397
  store i32 %398, ptr %26, align 4, !tbaa !5
  %399 = mul nsw i32 %396, %394
  br label %400

400:                                              ; preds = %392, %384
  %.sink688 = phi i32 [ %399, %392 ], [ %391, %384 ]
  %.sink686 = phi i32 [ %397, %392 ], [ %389, %384 ]
  %.str.5.sink = phi ptr [ @.str.5, %392 ], [ @.str.4, %384 ]
  %401 = sext i32 %.sink688 to i64
  %gep609 = getelementptr float, ptr %20, i64 %401
  %402 = or disjoint i32 %.sink686, 1
  %403 = sext i32 %402 to i64
  %404 = getelementptr inbounds float, ptr %53, i64 %403
  call void @stgsyl_(ptr noundef nonnull %.str.5.sink, ptr noundef nonnull %39, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %375, ptr noundef nonnull %6, ptr noundef nonnull %20, ptr noundef nonnull %32, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %379, ptr noundef nonnull %8, ptr noundef %gep609, ptr noundef nonnull %32, ptr noundef nonnull %35, ptr noundef %19, ptr noundef nonnull %404, ptr noundef nonnull %26, ptr noundef nonnull %22, ptr noundef nonnull %29) #5
  %.pre659 = load i32, ptr %38, align 4, !tbaa !5
  br label %380

405:                                              ; preds = %380
  %406 = load float, ptr %35, align 4, !tbaa !9
  %407 = load float, ptr %19, align 4, !tbaa !9
  %408 = fdiv float %406, %407
  store float %408, ptr %19, align 4, !tbaa !9
  %409 = getelementptr inbounds i8, ptr %19, i64 4
  br label %410

410:                                              ; preds = %430, %405
  %411 = load i32, ptr %38, align 4, !tbaa !5
  %412 = sext i32 %411 to i64
  %gep611 = getelementptr float, ptr %20, i64 %412
  call void @slacn2_(ptr noundef nonnull %38, ptr noundef %gep611, ptr noundef nonnull %20, ptr noundef nonnull %22, ptr noundef nonnull %409, ptr noundef nonnull %28, ptr noundef nonnull %31) #5
  %413 = load i32, ptr %28, align 4, !tbaa !5
  switch i32 %413, label %422 [
    i32 0, label %435
    i32 1, label %414
  ]

414:                                              ; preds = %410
  %415 = load i32, ptr %21, align 4, !tbaa !5
  %416 = load i32, ptr %32, align 4, !tbaa !5
  %417 = shl i32 %416, 1
  %418 = load i32, ptr %33, align 4, !tbaa !5
  %419 = mul nsw i32 %417, %418
  %420 = sub nsw i32 %415, %419
  store i32 %420, ptr %26, align 4, !tbaa !5
  %421 = mul nsw i32 %418, %416
  br label %430

422:                                              ; preds = %410
  %423 = load i32, ptr %21, align 4, !tbaa !5
  %424 = load i32, ptr %32, align 4, !tbaa !5
  %425 = shl i32 %424, 1
  %426 = load i32, ptr %33, align 4, !tbaa !5
  %427 = mul nsw i32 %425, %426
  %428 = sub nsw i32 %423, %427
  store i32 %428, ptr %26, align 4, !tbaa !5
  %429 = mul nsw i32 %426, %424
  br label %430

430:                                              ; preds = %422, %414
  %.sink695 = phi i32 [ %429, %422 ], [ %421, %414 ]
  %.sink693 = phi i32 [ %427, %422 ], [ %419, %414 ]
  %.str.5.sink689 = phi ptr [ @.str.5, %422 ], [ @.str.4, %414 ]
  %431 = sext i32 %.sink695 to i64
  %gep615 = getelementptr float, ptr %20, i64 %431
  %432 = or disjoint i32 %.sink693, 1
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds float, ptr %53, i64 %433
  call void @stgsyl_(ptr noundef nonnull %.str.5.sink689, ptr noundef nonnull %39, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef %375, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %20, ptr noundef nonnull %33, ptr noundef %379, ptr noundef nonnull %8, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %gep615, ptr noundef nonnull %33, ptr noundef nonnull %35, ptr noundef nonnull %409, ptr noundef nonnull %434, ptr noundef nonnull %26, ptr noundef nonnull %22, ptr noundef nonnull %29) #5
  br label %410

435:                                              ; preds = %410
  %436 = load float, ptr %35, align 4, !tbaa !9
  %437 = load float, ptr %409, align 4, !tbaa !9
  %438 = fdiv float %436, %437
  store float %438, ptr %409, align 4, !tbaa !9
  br label %439

439:                                              ; preds = %223, %173, %326, %435, %327, %224, %._crit_edge624
  %440 = load i32, ptr %4, align 4, !tbaa !5
  store i32 %440, ptr %26, align 4, !tbaa !5
  %.not568628 = icmp slt i32 %440, 1
  br i1 %.not568628, label %._crit_edge636, label %.lr.ph635

.lr.ph635:                                        ; preds = %439
  %441 = add i32 %44, 1
  %442 = add i32 %41, 1
  %443 = getelementptr inbounds i8, ptr %20, i64 4
  %444 = getelementptr inbounds i8, ptr %20, i64 8
  %445 = getelementptr inbounds i8, ptr %20, i64 12
  %446 = getelementptr inbounds i8, ptr %20, i64 16
  %447 = getelementptr inbounds i8, ptr %20, i64 20
  %448 = getelementptr inbounds i8, ptr %20, i64 24
  %449 = getelementptr inbounds i8, ptr %20, i64 28
  %450 = fmul float %85, %87
  %451 = sext i32 %41 to i64
  %452 = sext i32 %44 to i64
  %453 = sext i32 %50 to i64
  %454 = add nsw i64 %451, 1
  %455 = add nsw i64 %452, 1
  %456 = add nsw i64 %453, %51
  %457 = shl nsw i64 %456, 2
  %458 = shl nsw i64 %453, 2
  %459 = getelementptr i8, ptr %12, i64 %457
  %460 = getelementptr i8, ptr %459, i64 4
  %461 = getelementptr i8, ptr %12, i64 %457
  %ident.check707 = icmp ne i32 %41, 1
  %ident.check708 = icmp ne i32 %44, 1
  %462 = or i1 %ident.check707, %ident.check708
  %ident.check = icmp ne i32 %41, 1
  %ident.check697 = icmp ne i32 %44, 1
  %463 = or i1 %ident.check, %ident.check697
  br label %464

464:                                              ; preds = %.lr.ph635, %597
  %indvar = phi i64 [ 0, %.lr.ph635 ], [ %indvar.next, %597 ]
  %465 = phi i32 [ %440, %.lr.ph635 ], [ %598, %597 ]
  %indvars.iv656 = phi i64 [ 1, %.lr.ph635 ], [ %indvars.iv.next657, %597 ]
  %.5629 = phi i32 [ 0, %.lr.ph635 ], [ %.7, %597 ]
  %466 = shl nuw nsw i64 %indvar, 2
  %scevgep710 = getelementptr i8, ptr %5, i64 %466
  %467 = add nsw i64 %466, -4
  %scevgep711 = getelementptr i8, ptr %5, i64 %467
  %scevgep713 = getelementptr i8, ptr %7, i64 %466
  %scevgep714 = getelementptr i8, ptr %7, i64 %467
  %468 = mul i64 %458, %indvar
  %scevgep716 = getelementptr i8, ptr %460, i64 %468
  %scevgep717 = getelementptr i8, ptr %461, i64 %468
  %469 = shl nuw nsw i64 %indvar, 2
  %scevgep = getelementptr i8, ptr %5, i64 %469
  %470 = add nsw i64 %469, -4
  %scevgep698 = getelementptr i8, ptr %5, i64 %470
  %scevgep700 = getelementptr i8, ptr %7, i64 %469
  %scevgep701 = getelementptr i8, ptr %7, i64 %470
  %indvars658 = trunc i64 %indvars.iv656 to i32
  %.not569 = icmp eq i32 %.5629, 0
  br i1 %.not569, label %471, label %597

471:                                              ; preds = %464
  %472 = load i32, ptr %4, align 4, !tbaa !5
  %473 = sext i32 %472 to i64
  %474 = icmp slt i64 %indvars.iv656, %473
  br i1 %474, label %475, label %522

475:                                              ; preds = %471
  %476 = add nuw nsw i64 %indvars.iv656, 1
  %477 = mul nsw i64 %indvars.iv656, %451
  %478 = getelementptr float, ptr %43, i64 %476
  %479 = getelementptr float, ptr %478, i64 %477
  %480 = load float, ptr %479, align 4, !tbaa !9
  %481 = fcmp une float %480, 0.000000e+00
  br i1 %481, label %.critedge, label %522

.critedge:                                        ; preds = %475
  %482 = mul nsw i32 %41, %indvars658
  %483 = add nuw nsw i32 %indvars658, 1
  %484 = sext i32 %482 to i64
  %485 = getelementptr float, ptr %43, i64 %indvars.iv656
  %486 = getelementptr float, ptr %485, i64 %484
  %487 = load float, ptr %486, align 4, !tbaa !9
  store float %487, ptr %20, align 4, !tbaa !9
  %488 = load float, ptr %479, align 4, !tbaa !9
  store float %488, ptr %443, align 4, !tbaa !9
  %489 = mul nsw i32 %483, %41
  %490 = sext i32 %489 to i64
  %491 = getelementptr float, ptr %43, i64 %indvars.iv656
  %492 = getelementptr float, ptr %491, i64 %490
  %493 = load float, ptr %492, align 4, !tbaa !9
  store float %493, ptr %444, align 4, !tbaa !9
  %494 = mul i64 %476, %454
  %495 = getelementptr inbounds float, ptr %43, i64 %494
  %496 = load float, ptr %495, align 4, !tbaa !9
  store float %496, ptr %445, align 4, !tbaa !9
  %497 = mul nsw i64 %indvars.iv656, %452
  %498 = mul nsw i32 %44, %indvars658
  %499 = sext i32 %498 to i64
  %500 = getelementptr float, ptr %46, i64 %indvars.iv656
  %501 = getelementptr float, ptr %500, i64 %499
  %502 = load float, ptr %501, align 4, !tbaa !9
  store float %502, ptr %446, align 4, !tbaa !9
  %503 = getelementptr float, ptr %46, i64 %476
  %504 = getelementptr float, ptr %503, i64 %497
  %505 = load float, ptr %504, align 4, !tbaa !9
  store float %505, ptr %447, align 4, !tbaa !9
  %506 = mul nsw i32 %483, %44
  %507 = sext i32 %506 to i64
  %508 = getelementptr float, ptr %46, i64 %indvars.iv656
  %509 = getelementptr float, ptr %508, i64 %507
  %510 = load float, ptr %509, align 4, !tbaa !9
  store float %510, ptr %448, align 4, !tbaa !9
  %511 = mul i64 %476, %455
  %512 = getelementptr inbounds float, ptr %46, i64 %511
  %513 = load float, ptr %512, align 4, !tbaa !9
  store float %513, ptr %449, align 4, !tbaa !9
  store float %450, ptr %27, align 4, !tbaa !9
  %514 = getelementptr inbounds float, ptr %49, i64 %indvars.iv656
  %515 = getelementptr float, ptr %11, i64 %indvars.iv656
  %516 = getelementptr inbounds float, ptr %47, i64 %indvars.iv656
  %517 = getelementptr float, ptr %9, i64 %indvars.iv656
  %518 = getelementptr inbounds float, ptr %48, i64 %indvars.iv656
  call void @slag2_(ptr noundef nonnull %20, ptr noundef nonnull @c__2, ptr noundef nonnull %446, ptr noundef nonnull @c__2, ptr noundef nonnull %27, ptr noundef nonnull %514, ptr noundef nonnull %515, ptr noundef nonnull %516, ptr noundef nonnull %517, ptr noundef nonnull %518) #5
  %519 = load float, ptr %518, align 4, !tbaa !9
  %520 = fneg float %519
  %521 = getelementptr float, ptr %10, i64 %indvars.iv656
  store float %520, ptr %521, align 4, !tbaa !9
  %.pre662 = load i32, ptr %26, align 4, !tbaa !5
  br label %597

522:                                              ; preds = %471, %475
  %523 = mul i32 %441, %indvars658
  %524 = sext i32 %523 to i64
  %525 = getelementptr inbounds float, ptr %46, i64 %524
  %526 = load float, ptr %525, align 4, !tbaa !9
  %527 = fcmp ult float %526, 0.000000e+00
  %528 = load float, ptr @c_b28, align 4
  %529 = fcmp oge float %528, 0.000000e+00
  %.neg = fneg float %528
  br i1 %527, label %532, label %530

530:                                              ; preds = %522
  %531 = select i1 %529, float %528, float %.neg
  br label %534

532:                                              ; preds = %522
  %533 = select i1 %529, float %.neg, float %528
  br label %534

534:                                              ; preds = %532, %530
  %535 = phi float [ %531, %530 ], [ %533, %532 ]
  %536 = fcmp uge float %535, 0.000000e+00
  %.not571625 = icmp slt i32 %472, 1
  %or.cond637 = or i1 %536, %.not571625
  br i1 %or.cond637, label %.loopexit, label %.lr.ph627

.lr.ph627:                                        ; preds = %534
  %537 = load i32, ptr %1, align 4, !tbaa !5
  %.not572 = icmp eq i32 %537, 0
  %538 = add nuw i32 %472, 1
  %wide.trip.count654 = zext i32 %538 to i64
  %invariant.gep674 = getelementptr float, ptr %43, i64 %indvars.iv656
  %invariant.gep676 = getelementptr float, ptr %46, i64 %indvars.iv656
  br i1 %.not572, label %.lr.ph627.split.us.preheader, label %.lr.ph627.split.preheader

.lr.ph627.split.us.preheader:                     ; preds = %.lr.ph627
  %539 = zext nneg i32 %472 to i64
  %min.iters.check = icmp ult i32 %472, 8
  %brmerge = select i1 %min.iters.check, i1 true, i1 %463
  br i1 %brmerge, label %.lr.ph627.split.us.preheader745, label %vector.memcheck

.lr.ph627.split.us.preheader745:                  ; preds = %.lr.ph627.split.us.preheader, %middle.block, %vector.memcheck
  %indvars.iv651.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph627.split.us.preheader ], [ %ind.end, %middle.block ]
  %540 = zext nneg i32 %472 to i64
  %541 = and i32 %472, 1
  %lcmp.mod.not = icmp eq i32 %541, 0
  br i1 %lcmp.mod.not, label %.lr.ph627.split.us.prol.loopexit, label %.lr.ph627.split.us.prol

.lr.ph627.split.us.prol:                          ; preds = %.lr.ph627.split.us.preheader745
  %542 = mul nsw i64 %indvars.iv651.ph, %451
  %gep675.prol = getelementptr float, ptr %invariant.gep674, i64 %542
  %543 = load float, ptr %gep675.prol, align 4, !tbaa !9
  %544 = fneg float %543
  store float %544, ptr %gep675.prol, align 4, !tbaa !9
  %545 = mul nsw i64 %indvars.iv651.ph, %452
  %gep677.prol = getelementptr float, ptr %invariant.gep676, i64 %545
  %546 = load float, ptr %gep677.prol, align 4, !tbaa !9
  %547 = fneg float %546
  store float %547, ptr %gep677.prol, align 4, !tbaa !9
  %indvars.iv.next652.prol = add nuw nsw i64 %indvars.iv651.ph, 1
  br label %.lr.ph627.split.us.prol.loopexit

.lr.ph627.split.us.prol.loopexit:                 ; preds = %.lr.ph627.split.us.prol, %.lr.ph627.split.us.preheader745
  %indvars.iv651.unr = phi i64 [ %indvars.iv651.ph, %.lr.ph627.split.us.preheader745 ], [ %indvars.iv.next652.prol, %.lr.ph627.split.us.prol ]
  %548 = icmp eq i64 %indvars.iv651.ph, %540
  br i1 %548, label %.loopexit, label %.lr.ph627.split.us

vector.memcheck:                                  ; preds = %.lr.ph627.split.us.preheader
  %549 = shl nuw nsw i64 %wide.trip.count654, 2
  %scevgep699 = getelementptr i8, ptr %scevgep698, i64 %549
  %scevgep702 = getelementptr i8, ptr %scevgep701, i64 %549
  %bound0 = icmp ult ptr %scevgep, %scevgep702
  %bound1 = icmp ult ptr %scevgep700, %scevgep699
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %.lr.ph627.split.us.preheader745, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %539, 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 ]
  %offset.idx = or disjoint i64 %index, 1
  %550 = getelementptr float, ptr %invariant.gep674, i64 %offset.idx
  %551 = getelementptr i8, ptr %550, i64 16
  %wide.load = load <4 x float>, ptr %550, align 4, !tbaa !9, !alias.scope !15, !noalias !18
  %wide.load703 = load <4 x float>, ptr %551, align 4, !tbaa !9, !alias.scope !15, !noalias !18
  %552 = fneg <4 x float> %wide.load
  %553 = fneg <4 x float> %wide.load703
  store <4 x float> %552, ptr %550, align 4, !tbaa !9, !alias.scope !15, !noalias !18
  store <4 x float> %553, ptr %551, align 4, !tbaa !9, !alias.scope !15, !noalias !18
  %554 = getelementptr float, ptr %invariant.gep676, i64 %offset.idx
  %555 = getelementptr i8, ptr %554, i64 16
  %wide.load704 = load <4 x float>, ptr %554, align 4, !tbaa !9, !alias.scope !18
  %wide.load705 = load <4 x float>, ptr %555, align 4, !tbaa !9, !alias.scope !18
  %556 = fneg <4 x float> %wide.load704
  %557 = fneg <4 x float> %wide.load705
  store <4 x float> %556, ptr %554, align 4, !tbaa !9, !alias.scope !18
  store <4 x float> %557, ptr %555, align 4, !tbaa !9, !alias.scope !18
  %index.next = add nuw i64 %index, 8
  %558 = icmp eq i64 %index.next, %n.vec
  br i1 %558, label %middle.block, label %vector.body, !llvm.loop !20

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %539
  br i1 %cmp.n, label %.loopexit, label %.lr.ph627.split.us.preheader745

.lr.ph627.split.preheader:                        ; preds = %.lr.ph627
  %559 = mul nsw i64 %indvars.iv656, %453
  %invariant.gep672 = getelementptr float, ptr %52, i64 %559
  %560 = zext nneg i32 %472 to i64
  %min.iters.check731 = icmp ult i32 %472, 12
  %brmerge748 = select i1 %min.iters.check731, i1 true, i1 %462
  br i1 %brmerge748, label %.lr.ph627.split.preheader746, label %vector.memcheck709

.lr.ph627.split.preheader746:                     ; preds = %.lr.ph627.split.preheader, %middle.block729, %vector.memcheck709
  %indvars.iv646.ph = phi i64 [ 1, %vector.memcheck709 ], [ 1, %.lr.ph627.split.preheader ], [ %ind.end735, %middle.block729 ]
  br label %.lr.ph627.split

vector.memcheck709:                               ; preds = %.lr.ph627.split.preheader
  %561 = shl nuw nsw i64 %wide.trip.count654, 2
  %scevgep712 = getelementptr i8, ptr %scevgep711, i64 %561
  %scevgep715 = getelementptr i8, ptr %scevgep714, i64 %561
  %scevgep718 = getelementptr i8, ptr %scevgep717, i64 %561
  %bound0719 = icmp ult ptr %scevgep710, %scevgep715
  %bound1720 = icmp ult ptr %scevgep713, %scevgep712
  %found.conflict721 = and i1 %bound0719, %bound1720
  %bound0722 = icmp ult ptr %scevgep710, %scevgep718
  %bound1723 = icmp ult ptr %scevgep716, %scevgep712
  %found.conflict724 = and i1 %bound0722, %bound1723
  %conflict.rdx = or i1 %found.conflict721, %found.conflict724
  %bound0725 = icmp ult ptr %scevgep713, %scevgep718
  %bound1726 = icmp ult ptr %scevgep716, %scevgep715
  %found.conflict727 = and i1 %bound0725, %bound1726
  %conflict.rdx728 = or i1 %conflict.rdx, %found.conflict727
  br i1 %conflict.rdx728, label %.lr.ph627.split.preheader746, label %vector.ph732

vector.ph732:                                     ; preds = %vector.memcheck709
  %n.vec734 = and i64 %560, 2147483644
  %ind.end735 = or disjoint i64 %n.vec734, 1
  br label %vector.body737

vector.body737:                                   ; preds = %vector.body737, %vector.ph732
  %index738 = phi i64 [ 0, %vector.ph732 ], [ %index.next743, %vector.body737 ]
  %offset.idx739 = or disjoint i64 %index738, 1
  %562 = getelementptr float, ptr %invariant.gep674, i64 %offset.idx739
  %wide.load740 = load <4 x float>, ptr %562, align 4, !tbaa !9, !alias.scope !23, !noalias !26
  %563 = fneg <4 x float> %wide.load740
  store <4 x float> %563, ptr %562, align 4, !tbaa !9, !alias.scope !23, !noalias !26
  %564 = getelementptr float, ptr %invariant.gep676, i64 %offset.idx739
  %wide.load741 = load <4 x float>, ptr %564, align 4, !tbaa !9, !alias.scope !29, !noalias !30
  %565 = fneg <4 x float> %wide.load741
  store <4 x float> %565, ptr %564, align 4, !tbaa !9, !alias.scope !29, !noalias !30
  %566 = getelementptr float, ptr %invariant.gep672, i64 %offset.idx739
  %wide.load742 = load <4 x float>, ptr %566, align 4, !tbaa !9, !alias.scope !30
  %567 = fneg <4 x float> %wide.load742
  store <4 x float> %567, ptr %566, align 4, !tbaa !9, !alias.scope !30
  %index.next743 = add nuw i64 %index738, 4
  %568 = icmp eq i64 %index.next743, %n.vec734
  br i1 %568, label %middle.block729, label %vector.body737, !llvm.loop !31

middle.block729:                                  ; preds = %vector.body737
  %cmp.n744 = icmp eq i64 %n.vec734, %560
  br i1 %cmp.n744, label %.loopexit, label %.lr.ph627.split.preheader746

.lr.ph627.split.us:                               ; preds = %.lr.ph627.split.us.prol.loopexit, %.lr.ph627.split.us
  %indvars.iv651 = phi i64 [ %indvars.iv.next652.1, %.lr.ph627.split.us ], [ %indvars.iv651.unr, %.lr.ph627.split.us.prol.loopexit ]
  %569 = mul nsw i64 %indvars.iv651, %451
  %gep675 = getelementptr float, ptr %invariant.gep674, i64 %569
  %570 = load float, ptr %gep675, align 4, !tbaa !9
  %571 = fneg float %570
  store float %571, ptr %gep675, align 4, !tbaa !9
  %572 = mul nsw i64 %indvars.iv651, %452
  %gep677 = getelementptr float, ptr %invariant.gep676, i64 %572
  %573 = load float, ptr %gep677, align 4, !tbaa !9
  %574 = fneg float %573
  store float %574, ptr %gep677, align 4, !tbaa !9
  %indvars.iv.next652 = add nuw nsw i64 %indvars.iv651, 1
  %575 = mul nsw i64 %indvars.iv.next652, %451
  %gep675.1 = getelementptr float, ptr %invariant.gep674, i64 %575
  %576 = load float, ptr %gep675.1, align 4, !tbaa !9
  %577 = fneg float %576
  store float %577, ptr %gep675.1, align 4, !tbaa !9
  %578 = mul nsw i64 %indvars.iv.next652, %452
  %gep677.1 = getelementptr float, ptr %invariant.gep676, i64 %578
  %579 = load float, ptr %gep677.1, align 4, !tbaa !9
  %580 = fneg float %579
  store float %580, ptr %gep677.1, align 4, !tbaa !9
  %indvars.iv.next652.1 = add nuw nsw i64 %indvars.iv651, 2
  %exitcond655.not.1 = icmp eq i64 %indvars.iv.next652.1, %wide.trip.count654
  br i1 %exitcond655.not.1, label %.loopexit, label %.lr.ph627.split.us, !llvm.loop !32

.lr.ph627.split:                                  ; preds = %.lr.ph627.split.preheader746, %.lr.ph627.split
  %indvars.iv646 = phi i64 [ %indvars.iv.next647, %.lr.ph627.split ], [ %indvars.iv646.ph, %.lr.ph627.split.preheader746 ]
  %581 = mul nsw i64 %indvars.iv646, %451
  %gep669 = getelementptr float, ptr %invariant.gep674, i64 %581
  %582 = load float, ptr %gep669, align 4, !tbaa !9
  %583 = fneg float %582
  store float %583, ptr %gep669, align 4, !tbaa !9
  %584 = mul nsw i64 %indvars.iv646, %452
  %gep671 = getelementptr float, ptr %invariant.gep676, i64 %584
  %585 = load float, ptr %gep671, align 4, !tbaa !9
  %586 = fneg float %585
  store float %586, ptr %gep671, align 4, !tbaa !9
  %gep673 = getelementptr float, ptr %invariant.gep672, i64 %indvars.iv646
  %587 = load float, ptr %gep673, align 4, !tbaa !9
  %588 = fneg float %587
  store float %588, ptr %gep673, align 4, !tbaa !9
  %indvars.iv.next647 = add nuw nsw i64 %indvars.iv646, 1
  %exitcond650.not = icmp eq i64 %indvars.iv.next647, %wide.trip.count654
  br i1 %exitcond650.not, label %.loopexit, label %.lr.ph627.split, !llvm.loop !33

.loopexit:                                        ; preds = %.lr.ph627.split, %.lr.ph627.split.us.prol.loopexit, %.lr.ph627.split.us, %middle.block729, %middle.block, %534
  %589 = mul i32 %442, %indvars658
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds float, ptr %43, i64 %590
  %592 = load float, ptr %591, align 4, !tbaa !9
  %593 = getelementptr inbounds float, ptr %47, i64 %indvars.iv656
  store float %592, ptr %593, align 4, !tbaa !9
  %594 = getelementptr inbounds float, ptr %48, i64 %indvars.iv656
  store float 0.000000e+00, ptr %594, align 4, !tbaa !9
  %595 = load float, ptr %525, align 4, !tbaa !9
  %596 = getelementptr inbounds float, ptr %49, i64 %indvars.iv656
  store float %595, ptr %596, align 4, !tbaa !9
  br label %597

597:                                              ; preds = %464, %.loopexit, %.critedge
  %598 = phi i32 [ %.pre662, %.critedge ], [ %465, %.loopexit ], [ %465, %464 ]
  %.7 = phi i32 [ 1, %.critedge ], [ 0, %.loopexit ], [ 0, %464 ]
  %indvars.iv.next657 = add nuw nsw i64 %indvars.iv656, 1
  %599 = sext i32 %598 to i64
  %.not568.not = icmp slt i64 %indvars.iv656, %599
  %indvar.next = add i64 %indvar, 1
  br i1 %.not568.not, label %464, label %._crit_edge636, !llvm.loop !34

._crit_edge636:                                   ; preds = %597, %439
  store float %155, ptr %20, align 4, !tbaa !9
  store i32 %.0, ptr %22, align 4, !tbaa !5
  br label %600

600:                                              ; preds = %165, %._crit_edge636, %.thread590, %.thread
  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 4, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  ret void
}

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

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

declare void @stgexc_(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 void @slacpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @stgsyl_(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 void @slacn2_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @slag2_(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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"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}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = !{!16}
!16 = distinct !{!16, !17}
!17 = distinct !{!17, !"LVerDomain"}
!18 = !{!19}
!19 = distinct !{!19, !17}
!20 = distinct !{!20, !12, !21, !22}
!21 = !{!"llvm.loop.isvectorized", i32 1}
!22 = !{!"llvm.loop.unroll.runtime.disable"}
!23 = !{!24}
!24 = distinct !{!24, !25}
!25 = distinct !{!25, !"LVerDomain"}
!26 = !{!27, !28}
!27 = distinct !{!27, !25}
!28 = distinct !{!28, !25}
!29 = !{!27}
!30 = !{!28}
!31 = distinct !{!31, !12, !21, !22}
!32 = distinct !{!32, !12, !21}
!33 = distinct !{!33, !12, !21}
!34 = distinct !{!34, !12}


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