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

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

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

143:                                              ; preds = %139, %25
  %144 = phi i1 [ true, %25 ], [ %142, %139 ]
  %145 = zext i1 %144 to i32
  %146 = sext i32 %145 to i64
  store i64 %146, ptr %87, align 8, !tbaa !9
  %147 = load ptr, ptr %27, align 8, !tbaa !5
  %148 = load i64, ptr %147, align 8, !tbaa !9
  %149 = icmp slt i64 %148, 0
  br i1 %149, label %154, label %150

150:                                              ; preds = %143
  %151 = load ptr, ptr %27, align 8, !tbaa !5
  %152 = load i64, ptr %151, align 8, !tbaa !9
  %153 = icmp sgt i64 %152, 5
  br i1 %153, label %154, label %156

154:                                              ; preds = %150, %143
  %155 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -1, ptr %155, align 8, !tbaa !9
  br label %229

156:                                              ; preds = %150
  %157 = load ptr, ptr %31, align 8, !tbaa !5
  %158 = load i64, ptr %157, align 8, !tbaa !9
  %159 = icmp slt i64 %158, 0
  br i1 %159, label %160, label %162

160:                                              ; preds = %156
  %161 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -5, ptr %161, align 8, !tbaa !9
  br label %228

162:                                              ; preds = %156
  %163 = load ptr, ptr %33, align 8, !tbaa !5
  %164 = load i64, ptr %163, align 8, !tbaa !9
  %165 = load ptr, ptr %31, align 8, !tbaa !5
  %166 = load i64, ptr %165, align 8, !tbaa !9
  %167 = icmp sge i64 1, %166
  br i1 %167, label %168, label %169

168:                                              ; preds = %162
  br label %172

169:                                              ; preds = %162
  %170 = load ptr, ptr %31, align 8, !tbaa !5
  %171 = load i64, ptr %170, align 8, !tbaa !9
  br label %172

172:                                              ; preds = %169, %168
  %173 = phi i64 [ 1, %168 ], [ %171, %169 ]
  %174 = icmp slt i64 %164, %173
  br i1 %174, label %175, label %177

175:                                              ; preds = %172
  %176 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -7, ptr %176, align 8, !tbaa !9
  br label %227

177:                                              ; preds = %172
  %178 = load ptr, ptr %35, align 8, !tbaa !5
  %179 = load i64, ptr %178, align 8, !tbaa !9
  %180 = load ptr, ptr %31, align 8, !tbaa !5
  %181 = load i64, ptr %180, align 8, !tbaa !9
  %182 = icmp sge i64 1, %181
  br i1 %182, label %183, label %184

183:                                              ; preds = %177
  br label %187

184:                                              ; preds = %177
  %185 = load ptr, ptr %31, align 8, !tbaa !5
  %186 = load i64, ptr %185, align 8, !tbaa !9
  br label %187

187:                                              ; preds = %184, %183
  %188 = phi i64 [ 1, %183 ], [ %186, %184 ]
  %189 = icmp slt i64 %179, %188
  br i1 %189, label %190, label %192

190:                                              ; preds = %187
  %191 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -9, ptr %191, align 8, !tbaa !9
  br label %226

192:                                              ; preds = %187
  %193 = load ptr, ptr %40, align 8, !tbaa !5
  %194 = load i64, ptr %193, align 8, !tbaa !9
  %195 = icmp slt i64 %194, 1
  br i1 %195, label %206, label %196

196:                                              ; preds = %192
  %197 = load ptr, ptr %28, align 8, !tbaa !5
  %198 = load i64, ptr %197, align 8, !tbaa !9
  %199 = icmp ne i64 %198, 0
  br i1 %199, label %200, label %208

200:                                              ; preds = %196
  %201 = load ptr, ptr %40, align 8, !tbaa !5
  %202 = load i64, ptr %201, align 8, !tbaa !9
  %203 = load ptr, ptr %31, align 8, !tbaa !5
  %204 = load i64, ptr %203, align 8, !tbaa !9
  %205 = icmp slt i64 %202, %204
  br i1 %205, label %206, label %208

206:                                              ; preds = %200, %192
  %207 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -14, ptr %207, align 8, !tbaa !9
  br label %225

208:                                              ; preds = %200, %196
  %209 = load ptr, ptr %42, align 8, !tbaa !5
  %210 = load i64, ptr %209, align 8, !tbaa !9
  %211 = icmp slt i64 %210, 1
  br i1 %211, label %222, label %212

212:                                              ; preds = %208
  %213 = load ptr, ptr %29, align 8, !tbaa !5
  %214 = load i64, ptr %213, align 8, !tbaa !9
  %215 = icmp ne i64 %214, 0
  br i1 %215, label %216, label %224

216:                                              ; preds = %212
  %217 = load ptr, ptr %42, align 8, !tbaa !5
  %218 = load i64, ptr %217, align 8, !tbaa !9
  %219 = load ptr, ptr %31, align 8, !tbaa !5
  %220 = load i64, ptr %219, align 8, !tbaa !9
  %221 = icmp slt i64 %218, %220
  br i1 %221, label %222, label %224

222:                                              ; preds = %216, %208
  %223 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -16, ptr %223, align 8, !tbaa !9
  br label %224

224:                                              ; preds = %222, %216, %212
  br label %225

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

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

227:                                              ; preds = %226, %175
  br label %228

228:                                              ; preds = %227, %160
  br label %229

229:                                              ; preds = %228, %154
  %230 = load ptr, ptr %51, align 8, !tbaa !5
  %231 = load i64, ptr %230, align 8, !tbaa !9
  %232 = icmp ne i64 %231, 0
  br i1 %232, label %233, label %238

233:                                              ; preds = %229
  %234 = load ptr, ptr %51, align 8, !tbaa !5
  %235 = load i64, ptr %234, align 8, !tbaa !9
  %236 = sub nsw i64 0, %235
  store i64 %236, ptr %60, align 8, !tbaa !9
  %237 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %60)
  store i32 0, ptr %26, align 4
  store i32 1, ptr %88, align 4
  br label %1559

238:                                              ; preds = %229
  %239 = call double @slamch_(ptr noundef @.str.1)
  %240 = fptrunc double %239 to float
  store float %240, ptr %71, align 4, !tbaa !11
  %241 = call double @slamch_(ptr noundef @.str.2)
  %242 = load float, ptr %71, align 4, !tbaa !11
  %243 = fpext float %242 to double
  %244 = fdiv double %241, %243
  %245 = fptrunc double %244 to float
  store float %245, ptr %86, align 4, !tbaa !11
  store i64 0, ptr %74, align 8, !tbaa !9
  %246 = load ptr, ptr %27, align 8, !tbaa !5
  %247 = load i64, ptr %246, align 8, !tbaa !9
  %248 = icmp eq i64 %247, 1
  br i1 %248, label %253, label %249

249:                                              ; preds = %238
  %250 = load ptr, ptr %27, align 8, !tbaa !5
  %251 = load i64, ptr %250, align 8, !tbaa !9
  %252 = icmp sge i64 %251, 4
  br label %253

253:                                              ; preds = %249, %238
  %254 = phi i1 [ true, %238 ], [ %252, %249 ]
  %255 = zext i1 %254 to i32
  %256 = sext i32 %255 to i64
  store i64 %256, ptr %80, align 8, !tbaa !9
  %257 = load ptr, ptr %27, align 8, !tbaa !5
  %258 = load i64, ptr %257, align 8, !tbaa !9
  %259 = icmp eq i64 %258, 2
  br i1 %259, label %264, label %260

260:                                              ; preds = %253
  %261 = load ptr, ptr %27, align 8, !tbaa !5
  %262 = load i64, ptr %261, align 8, !tbaa !9
  %263 = icmp eq i64 %262, 4
  br label %264

264:                                              ; preds = %260, %253
  %265 = phi i1 [ true, %253 ], [ %263, %260 ]
  %266 = zext i1 %265 to i32
  %267 = sext i32 %266 to i64
  store i64 %267, ptr %81, align 8, !tbaa !9
  %268 = load ptr, ptr %27, align 8, !tbaa !5
  %269 = load i64, ptr %268, align 8, !tbaa !9
  %270 = icmp eq i64 %269, 3
  br i1 %270, label %275, label %271

271:                                              ; preds = %264
  %272 = load ptr, ptr %27, align 8, !tbaa !5
  %273 = load i64, ptr %272, align 8, !tbaa !9
  %274 = icmp eq i64 %273, 5
  br label %275

275:                                              ; preds = %271, %264
  %276 = phi i1 [ true, %264 ], [ %274, %271 ]
  %277 = zext i1 %276 to i32
  %278 = sext i32 %277 to i64
  store i64 %278, ptr %82, align 8, !tbaa !9
  %279 = load i64, ptr %81, align 8, !tbaa !9
  %280 = icmp ne i64 %279, 0
  br i1 %280, label %284, label %281

281:                                              ; preds = %275
  %282 = load i64, ptr %82, align 8, !tbaa !9
  %283 = icmp ne i64 %282, 0
  br label %284

284:                                              ; preds = %281, %275
  %285 = phi i1 [ true, %275 ], [ %283, %281 ]
  %286 = zext i1 %285 to i32
  %287 = sext i32 %286 to i64
  store i64 %287, ptr %78, align 8, !tbaa !9
  %288 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 0, ptr %288, align 8, !tbaa !9
  store i64 0, ptr %73, align 8, !tbaa !9
  %289 = load ptr, ptr %31, align 8, !tbaa !5
  %290 = load i64, ptr %289, align 8, !tbaa !9
  store i64 %290, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %64, align 8, !tbaa !9
  br label %291

291:                                              ; preds = %359, %284
  %292 = load i64, ptr %64, align 8, !tbaa !9
  %293 = load i64, ptr %60, align 8, !tbaa !9
  %294 = icmp sle i64 %292, %293
  br i1 %294, label %295, label %362

295:                                              ; preds = %291
  %296 = load i64, ptr %73, align 8, !tbaa !9
  %297 = icmp ne i64 %296, 0
  br i1 %297, label %298, label %299

298:                                              ; preds = %295
  store i64 0, ptr %73, align 8, !tbaa !9
  br label %358

299:                                              ; preds = %295
  %300 = load i64, ptr %64, align 8, !tbaa !9
  %301 = load ptr, ptr %31, align 8, !tbaa !5
  %302 = load i64, ptr %301, align 8, !tbaa !9
  %303 = icmp slt i64 %300, %302
  br i1 %303, label %304, label %345

304:                                              ; preds = %299
  %305 = load ptr, ptr %32, align 8, !tbaa !5
  %306 = load i64, ptr %64, align 8, !tbaa !9
  %307 = add nsw i64 %306, 1
  %308 = load i64, ptr %64, align 8, !tbaa !9
  %309 = load i64, ptr %52, align 8, !tbaa !9
  %310 = mul nsw i64 %308, %309
  %311 = add nsw i64 %307, %310
  %312 = getelementptr inbounds float, ptr %305, i64 %311
  %313 = load float, ptr %312, align 4, !tbaa !11
  %314 = fcmp oeq float %313, 0.000000e+00
  br i1 %314, label %315, label %326

315:                                              ; preds = %304
  %316 = load ptr, ptr %30, align 8, !tbaa !5
  %317 = load i64, ptr %64, align 8, !tbaa !9
  %318 = getelementptr inbounds i64, ptr %316, i64 %317
  %319 = load i64, ptr %318, align 8, !tbaa !9
  %320 = icmp ne i64 %319, 0
  br i1 %320, label %321, label %325

321:                                              ; preds = %315
  %322 = load ptr, ptr %43, align 8, !tbaa !5
  %323 = load i64, ptr %322, align 8, !tbaa !9
  %324 = add nsw i64 %323, 1
  store i64 %324, ptr %322, align 8, !tbaa !9
  br label %325

325:                                              ; preds = %321, %315
  br label %344

326:                                              ; preds = %304
  store i64 1, ptr %73, align 8, !tbaa !9
  %327 = load ptr, ptr %30, align 8, !tbaa !5
  %328 = load i64, ptr %64, align 8, !tbaa !9
  %329 = getelementptr inbounds i64, ptr %327, i64 %328
  %330 = load i64, ptr %329, align 8, !tbaa !9
  %331 = icmp ne i64 %330, 0
  br i1 %331, label %339, label %332

332:                                              ; preds = %326
  %333 = load ptr, ptr %30, align 8, !tbaa !5
  %334 = load i64, ptr %64, align 8, !tbaa !9
  %335 = add nsw i64 %334, 1
  %336 = getelementptr inbounds i64, ptr %333, i64 %335
  %337 = load i64, ptr %336, align 8, !tbaa !9
  %338 = icmp ne i64 %337, 0
  br i1 %338, label %339, label %343

339:                                              ; preds = %332, %326
  %340 = load ptr, ptr %43, align 8, !tbaa !5
  %341 = load i64, ptr %340, align 8, !tbaa !9
  %342 = add nsw i64 %341, 2
  store i64 %342, ptr %340, align 8, !tbaa !9
  br label %343

343:                                              ; preds = %339, %332
  br label %344

344:                                              ; preds = %343, %325
  br label %357

345:                                              ; preds = %299
  %346 = load ptr, ptr %30, align 8, !tbaa !5
  %347 = load ptr, ptr %31, align 8, !tbaa !5
  %348 = load i64, ptr %347, align 8, !tbaa !9
  %349 = getelementptr inbounds i64, ptr %346, i64 %348
  %350 = load i64, ptr %349, align 8, !tbaa !9
  %351 = icmp ne i64 %350, 0
  br i1 %351, label %352, label %356

352:                                              ; preds = %345
  %353 = load ptr, ptr %43, align 8, !tbaa !5
  %354 = load i64, ptr %353, align 8, !tbaa !9
  %355 = add nsw i64 %354, 1
  store i64 %355, ptr %353, align 8, !tbaa !9
  br label %356

356:                                              ; preds = %352, %345
  br label %357

357:                                              ; preds = %356, %344
  br label %358

358:                                              ; preds = %357, %298
  br label %359

359:                                              ; preds = %358
  %360 = load i64, ptr %64, align 8, !tbaa !9
  %361 = add nsw i64 %360, 1
  store i64 %361, ptr %64, align 8, !tbaa !9
  br label %291, !llvm.loop !13

362:                                              ; preds = %291
  %363 = load ptr, ptr %27, align 8, !tbaa !5
  %364 = load i64, ptr %363, align 8, !tbaa !9
  %365 = icmp eq i64 %364, 1
  br i1 %365, label %374, label %366

366:                                              ; preds = %362
  %367 = load ptr, ptr %27, align 8, !tbaa !5
  %368 = load i64, ptr %367, align 8, !tbaa !9
  %369 = icmp eq i64 %368, 2
  br i1 %369, label %374, label %370

370:                                              ; preds = %366
  %371 = load ptr, ptr %27, align 8, !tbaa !5
  %372 = load i64, ptr %371, align 8, !tbaa !9
  %373 = icmp eq i64 %372, 4
  br i1 %373, label %374, label %418

374:                                              ; preds = %370, %366, %362
  store i64 1, ptr %60, align 8, !tbaa !9
  %375 = load ptr, ptr %31, align 8, !tbaa !5
  %376 = load i64, ptr %375, align 8, !tbaa !9
  %377 = shl i64 %376, 2
  %378 = add nsw i64 %377, 16
  store i64 %378, ptr %61, align 8, !tbaa !9
  %379 = load i64, ptr %60, align 8, !tbaa !9
  %380 = load i64, ptr %61, align 8, !tbaa !9
  %381 = icmp sge i64 %379, %380
  br i1 %381, label %382, label %384

382:                                              ; preds = %374
  %383 = load i64, ptr %60, align 8, !tbaa !9
  br label %386

384:                                              ; preds = %374
  %385 = load i64, ptr %61, align 8, !tbaa !9
  br label %386

386:                                              ; preds = %384, %382
  %387 = phi i64 [ %383, %382 ], [ %385, %384 ]
  store i64 %387, ptr %60, align 8, !tbaa !9
  %388 = load ptr, ptr %43, align 8, !tbaa !5
  %389 = load i64, ptr %388, align 8, !tbaa !9
  %390 = shl i64 %389, 1
  %391 = load ptr, ptr %31, align 8, !tbaa !5
  %392 = load i64, ptr %391, align 8, !tbaa !9
  %393 = load ptr, ptr %43, align 8, !tbaa !5
  %394 = load i64, ptr %393, align 8, !tbaa !9
  %395 = sub nsw i64 %392, %394
  %396 = mul nsw i64 %390, %395
  store i64 %396, ptr %61, align 8, !tbaa !9
  %397 = load i64, ptr %60, align 8, !tbaa !9
  %398 = load i64, ptr %61, align 8, !tbaa !9
  %399 = icmp sge i64 %397, %398
  br i1 %399, label %400, label %402

400:                                              ; preds = %386
  %401 = load i64, ptr %60, align 8, !tbaa !9
  br label %404

402:                                              ; preds = %386
  %403 = load i64, ptr %61, align 8, !tbaa !9
  br label %404

404:                                              ; preds = %402, %400
  %405 = phi i64 [ %401, %400 ], [ %403, %402 ]
  store i64 %405, ptr %79, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  %406 = load ptr, ptr %31, align 8, !tbaa !5
  %407 = load i64, ptr %406, align 8, !tbaa !9
  %408 = add nsw i64 %407, 6
  store i64 %408, ptr %61, align 8, !tbaa !9
  %409 = load i64, ptr %60, align 8, !tbaa !9
  %410 = load i64, ptr %61, align 8, !tbaa !9
  %411 = icmp sge i64 %409, %410
  br i1 %411, label %412, label %414

412:                                              ; preds = %404
  %413 = load i64, ptr %60, align 8, !tbaa !9
  br label %416

414:                                              ; preds = %404
  %415 = load i64, ptr %61, align 8, !tbaa !9
  br label %416

416:                                              ; preds = %414, %412
  %417 = phi i64 [ %413, %412 ], [ %415, %414 ]
  store i64 %417, ptr %85, align 8, !tbaa !9
  br label %503

418:                                              ; preds = %370
  %419 = load ptr, ptr %27, align 8, !tbaa !5
  %420 = load i64, ptr %419, align 8, !tbaa !9
  %421 = icmp eq i64 %420, 3
  br i1 %421, label %426, label %422

422:                                              ; preds = %418
  %423 = load ptr, ptr %27, align 8, !tbaa !5
  %424 = load i64, ptr %423, align 8, !tbaa !9
  %425 = icmp eq i64 %424, 5
  br i1 %425, label %426, label %488

426:                                              ; preds = %422, %418
  store i64 1, ptr %60, align 8, !tbaa !9
  %427 = load ptr, ptr %31, align 8, !tbaa !5
  %428 = load i64, ptr %427, align 8, !tbaa !9
  %429 = shl i64 %428, 2
  %430 = add nsw i64 %429, 16
  store i64 %430, ptr %61, align 8, !tbaa !9
  %431 = load i64, ptr %60, align 8, !tbaa !9
  %432 = load i64, ptr %61, align 8, !tbaa !9
  %433 = icmp sge i64 %431, %432
  br i1 %433, label %434, label %436

434:                                              ; preds = %426
  %435 = load i64, ptr %60, align 8, !tbaa !9
  br label %438

436:                                              ; preds = %426
  %437 = load i64, ptr %61, align 8, !tbaa !9
  br label %438

438:                                              ; preds = %436, %434
  %439 = phi i64 [ %435, %434 ], [ %437, %436 ]
  store i64 %439, ptr %60, align 8, !tbaa !9
  %440 = load ptr, ptr %43, align 8, !tbaa !5
  %441 = load i64, ptr %440, align 8, !tbaa !9
  %442 = shl i64 %441, 2
  %443 = load ptr, ptr %31, align 8, !tbaa !5
  %444 = load i64, ptr %443, align 8, !tbaa !9
  %445 = load ptr, ptr %43, align 8, !tbaa !5
  %446 = load i64, ptr %445, align 8, !tbaa !9
  %447 = sub nsw i64 %444, %446
  %448 = mul nsw i64 %442, %447
  store i64 %448, ptr %61, align 8, !tbaa !9
  %449 = load i64, ptr %60, align 8, !tbaa !9
  %450 = load i64, ptr %61, align 8, !tbaa !9
  %451 = icmp sge i64 %449, %450
  br i1 %451, label %452, label %454

452:                                              ; preds = %438
  %453 = load i64, ptr %60, align 8, !tbaa !9
  br label %456

454:                                              ; preds = %438
  %455 = load i64, ptr %61, align 8, !tbaa !9
  br label %456

456:                                              ; preds = %454, %452
  %457 = phi i64 [ %453, %452 ], [ %455, %454 ]
  store i64 %457, ptr %79, align 8, !tbaa !9
  store i64 1, ptr %60, align 8, !tbaa !9
  %458 = load ptr, ptr %43, align 8, !tbaa !5
  %459 = load i64, ptr %458, align 8, !tbaa !9
  %460 = shl i64 %459, 1
  %461 = load ptr, ptr %31, align 8, !tbaa !5
  %462 = load i64, ptr %461, align 8, !tbaa !9
  %463 = load ptr, ptr %43, align 8, !tbaa !5
  %464 = load i64, ptr %463, align 8, !tbaa !9
  %465 = sub nsw i64 %462, %464
  %466 = mul nsw i64 %460, %465
  store i64 %466, ptr %61, align 8, !tbaa !9
  %467 = load i64, ptr %60, align 8, !tbaa !9
  %468 = load i64, ptr %61, align 8, !tbaa !9
  %469 = icmp sge i64 %467, %468
  br i1 %469, label %470, label %472

470:                                              ; preds = %456
  %471 = load i64, ptr %60, align 8, !tbaa !9
  br label %474

472:                                              ; preds = %456
  %473 = load i64, ptr %61, align 8, !tbaa !9
  br label %474

474:                                              ; preds = %472, %470
  %475 = phi i64 [ %471, %470 ], [ %473, %472 ]
  store i64 %475, ptr %60, align 8, !tbaa !9
  %476 = load ptr, ptr %31, align 8, !tbaa !5
  %477 = load i64, ptr %476, align 8, !tbaa !9
  %478 = add nsw i64 %477, 6
  store i64 %478, ptr %61, align 8, !tbaa !9
  %479 = load i64, ptr %60, align 8, !tbaa !9
  %480 = load i64, ptr %61, align 8, !tbaa !9
  %481 = icmp sge i64 %479, %480
  br i1 %481, label %482, label %484

482:                                              ; preds = %474
  %483 = load i64, ptr %60, align 8, !tbaa !9
  br label %486

484:                                              ; preds = %474
  %485 = load i64, ptr %61, align 8, !tbaa !9
  br label %486

486:                                              ; preds = %484, %482
  %487 = phi i64 [ %483, %482 ], [ %485, %484 ]
  store i64 %487, ptr %85, align 8, !tbaa !9
  br label %502

488:                                              ; preds = %422
  store i64 1, ptr %60, align 8, !tbaa !9
  %489 = load ptr, ptr %31, align 8, !tbaa !5
  %490 = load i64, ptr %489, align 8, !tbaa !9
  %491 = shl i64 %490, 2
  %492 = add nsw i64 %491, 16
  store i64 %492, ptr %61, align 8, !tbaa !9
  %493 = load i64, ptr %60, align 8, !tbaa !9
  %494 = load i64, ptr %61, align 8, !tbaa !9
  %495 = icmp sge i64 %493, %494
  br i1 %495, label %496, label %498

496:                                              ; preds = %488
  %497 = load i64, ptr %60, align 8, !tbaa !9
  br label %500

498:                                              ; preds = %488
  %499 = load i64, ptr %61, align 8, !tbaa !9
  br label %500

500:                                              ; preds = %498, %496
  %501 = phi i64 [ %497, %496 ], [ %499, %498 ]
  store i64 %501, ptr %79, align 8, !tbaa !9
  store i64 1, ptr %85, align 8, !tbaa !9
  br label %502

502:                                              ; preds = %500, %486
  br label %503

503:                                              ; preds = %502, %416
  %504 = load i64, ptr %79, align 8, !tbaa !9
  %505 = sitofp i64 %504 to float
  %506 = load ptr, ptr %47, align 8, !tbaa !5
  %507 = getelementptr inbounds float, ptr %506, i64 1
  store float %505, ptr %507, align 4, !tbaa !11
  %508 = load i64, ptr %85, align 8, !tbaa !9
  %509 = load ptr, ptr %49, align 8, !tbaa !5
  %510 = getelementptr inbounds i64, ptr %509, i64 1
  store i64 %508, ptr %510, align 8, !tbaa !9
  %511 = load ptr, ptr %48, align 8, !tbaa !5
  %512 = load i64, ptr %511, align 8, !tbaa !9
  %513 = load i64, ptr %79, align 8, !tbaa !9
  %514 = icmp slt i64 %512, %513
  br i1 %514, label %515, label %520

515:                                              ; preds = %503
  %516 = load i64, ptr %87, align 8, !tbaa !9
  %517 = icmp ne i64 %516, 0
  br i1 %517, label %520, label %518

518:                                              ; preds = %515
  %519 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -22, ptr %519, align 8, !tbaa !9
  br label %531

520:                                              ; preds = %515, %503
  %521 = load ptr, ptr %50, align 8, !tbaa !5
  %522 = load i64, ptr %521, align 8, !tbaa !9
  %523 = load i64, ptr %85, align 8, !tbaa !9
  %524 = icmp slt i64 %522, %523
  br i1 %524, label %525, label %530

525:                                              ; preds = %520
  %526 = load i64, ptr %87, align 8, !tbaa !9
  %527 = icmp ne i64 %526, 0
  br i1 %527, label %530, label %528

528:                                              ; preds = %525
  %529 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -24, ptr %529, align 8, !tbaa !9
  br label %530

530:                                              ; preds = %528, %525, %520
  br label %531

531:                                              ; preds = %530, %518
  %532 = load ptr, ptr %51, align 8, !tbaa !5
  %533 = load i64, ptr %532, align 8, !tbaa !9
  %534 = icmp ne i64 %533, 0
  br i1 %534, label %535, label %540

535:                                              ; preds = %531
  %536 = load ptr, ptr %51, align 8, !tbaa !5
  %537 = load i64, ptr %536, align 8, !tbaa !9
  %538 = sub nsw i64 0, %537
  store i64 %538, ptr %60, align 8, !tbaa !9
  %539 = call i32 @xerbla_(ptr noundef @.str, ptr noundef %60)
  store i32 0, ptr %26, align 4
  store i32 1, ptr %88, align 4
  br label %1559

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

543:                                              ; preds = %540
  store i32 0, ptr %26, align 4
  store i32 1, ptr %88, align 4
  br label %1559

544:                                              ; preds = %540
  br label %545

545:                                              ; preds = %544
  %546 = load ptr, ptr %43, align 8, !tbaa !5
  %547 = load i64, ptr %546, align 8, !tbaa !9
  %548 = load ptr, ptr %31, align 8, !tbaa !5
  %549 = load i64, ptr %548, align 8, !tbaa !9
  %550 = icmp eq i64 %547, %549
  br i1 %550, label %555, label %551

551:                                              ; preds = %545
  %552 = load ptr, ptr %43, align 8, !tbaa !5
  %553 = load i64, ptr %552, align 8, !tbaa !9
  %554 = icmp eq i64 %553, 0
  br i1 %554, label %555, label %607

555:                                              ; preds = %551, %545
  %556 = load i64, ptr %80, align 8, !tbaa !9
  %557 = icmp ne i64 %556, 0
  br i1 %557, label %558, label %561

558:                                              ; preds = %555
  %559 = load ptr, ptr %44, align 8, !tbaa !5
  store float 1.000000e+00, ptr %559, align 4, !tbaa !11
  %560 = load ptr, ptr %45, align 8, !tbaa !5
  store float 1.000000e+00, ptr %560, align 4, !tbaa !11
  br label %561

561:                                              ; preds = %558, %555
  %562 = load i64, ptr %78, align 8, !tbaa !9
  %563 = icmp ne i64 %562, 0
  br i1 %563, label %564, label %606

564:                                              ; preds = %561
  store float 0.000000e+00, ptr %83, align 4, !tbaa !11
  store float 1.000000e+00, ptr %75, align 4, !tbaa !11
  %565 = load ptr, ptr %31, align 8, !tbaa !5
  %566 = load i64, ptr %565, align 8, !tbaa !9
  store i64 %566, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %567

567:                                              ; preds = %588, %564
  %568 = load i64, ptr %63, align 8, !tbaa !9
  %569 = load i64, ptr %60, align 8, !tbaa !9
  %570 = icmp sle i64 %568, %569
  br i1 %570, label %571, label %591

571:                                              ; preds = %567
  %572 = load ptr, ptr %31, align 8, !tbaa !5
  %573 = load ptr, ptr %32, align 8, !tbaa !5
  %574 = load i64, ptr %63, align 8, !tbaa !9
  %575 = load i64, ptr %52, align 8, !tbaa !9
  %576 = mul nsw i64 %574, %575
  %577 = add nsw i64 %576, 1
  %578 = getelementptr inbounds float, ptr %573, i64 %577
  %579 = call i32 @slassq_(ptr noundef %572, ptr noundef %578, ptr noundef @c__1, ptr noundef %83, ptr noundef %75)
  %580 = load ptr, ptr %31, align 8, !tbaa !5
  %581 = load ptr, ptr %34, align 8, !tbaa !5
  %582 = load i64, ptr %63, align 8, !tbaa !9
  %583 = load i64, ptr %54, align 8, !tbaa !9
  %584 = mul nsw i64 %582, %583
  %585 = add nsw i64 %584, 1
  %586 = getelementptr inbounds float, ptr %581, i64 %585
  %587 = call i32 @slassq_(ptr noundef %580, ptr noundef %586, ptr noundef @c__1, ptr noundef %83, ptr noundef %75)
  br label %588

588:                                              ; preds = %571
  %589 = load i64, ptr %63, align 8, !tbaa !9
  %590 = add nsw i64 %589, 1
  store i64 %590, ptr %63, align 8, !tbaa !9
  br label %567, !llvm.loop !15

591:                                              ; preds = %567
  %592 = load float, ptr %83, align 4, !tbaa !11
  %593 = fpext float %592 to double
  %594 = load float, ptr %75, align 4, !tbaa !11
  %595 = fpext float %594 to double
  %596 = call double @sqrt(double noundef %595) #4
  %597 = fmul double %593, %596
  %598 = fptrunc double %597 to float
  %599 = load ptr, ptr %46, align 8, !tbaa !5
  %600 = getelementptr inbounds float, ptr %599, i64 1
  store float %598, ptr %600, align 4, !tbaa !11
  %601 = load ptr, ptr %46, align 8, !tbaa !5
  %602 = getelementptr inbounds float, ptr %601, i64 1
  %603 = load float, ptr %602, align 4, !tbaa !11
  %604 = load ptr, ptr %46, align 8, !tbaa !5
  %605 = getelementptr inbounds float, ptr %604, i64 2
  store float %603, ptr %605, align 4, !tbaa !11
  br label %606

606:                                              ; preds = %591, %561
  br label %1290

607:                                              ; preds = %551
  store i64 0, ptr %68, align 8, !tbaa !9
  store i64 0, ptr %73, align 8, !tbaa !9
  %608 = load ptr, ptr %31, align 8, !tbaa !5
  %609 = load i64, ptr %608, align 8, !tbaa !9
  store i64 %609, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %64, align 8, !tbaa !9
  br label %610

610:                                              ; preds = %715, %607
  %611 = load i64, ptr %64, align 8, !tbaa !9
  %612 = load i64, ptr %60, align 8, !tbaa !9
  %613 = icmp sle i64 %611, %612
  br i1 %613, label %614, label %718

614:                                              ; preds = %610
  %615 = load i64, ptr %73, align 8, !tbaa !9
  %616 = icmp ne i64 %615, 0
  br i1 %616, label %617, label %618

617:                                              ; preds = %614
  store i64 0, ptr %73, align 8, !tbaa !9
  br label %714

618:                                              ; preds = %614
  %619 = load ptr, ptr %30, align 8, !tbaa !5
  %620 = load i64, ptr %64, align 8, !tbaa !9
  %621 = getelementptr inbounds i64, ptr %619, i64 %620
  %622 = load i64, ptr %621, align 8, !tbaa !9
  store i64 %622, ptr %76, align 8, !tbaa !9
  %623 = load i64, ptr %64, align 8, !tbaa !9
  %624 = load ptr, ptr %31, align 8, !tbaa !5
  %625 = load i64, ptr %624, align 8, !tbaa !9
  %626 = icmp slt i64 %623, %625
  br i1 %626, label %627, label %653

627:                                              ; preds = %618
  %628 = load ptr, ptr %32, align 8, !tbaa !5
  %629 = load i64, ptr %64, align 8, !tbaa !9
  %630 = add nsw i64 %629, 1
  %631 = load i64, ptr %64, align 8, !tbaa !9
  %632 = load i64, ptr %52, align 8, !tbaa !9
  %633 = mul nsw i64 %631, %632
  %634 = add nsw i64 %630, %633
  %635 = getelementptr inbounds float, ptr %628, i64 %634
  %636 = load float, ptr %635, align 4, !tbaa !11
  %637 = fcmp une float %636, 0.000000e+00
  br i1 %637, label %638, label %652

638:                                              ; preds = %627
  store i64 1, ptr %73, align 8, !tbaa !9
  %639 = load i64, ptr %76, align 8, !tbaa !9
  %640 = icmp ne i64 %639, 0
  br i1 %640, label %648, label %641

641:                                              ; preds = %638
  %642 = load ptr, ptr %30, align 8, !tbaa !5
  %643 = load i64, ptr %64, align 8, !tbaa !9
  %644 = add nsw i64 %643, 1
  %645 = getelementptr inbounds i64, ptr %642, i64 %644
  %646 = load i64, ptr %645, align 8, !tbaa !9
  %647 = icmp ne i64 %646, 0
  br label %648

648:                                              ; preds = %641, %638
  %649 = phi i1 [ true, %638 ], [ %647, %641 ]
  %650 = zext i1 %649 to i32
  %651 = sext i32 %650 to i64
  store i64 %651, ptr %76, align 8, !tbaa !9
  br label %652

652:                                              ; preds = %648, %627
  br label %653

653:                                              ; preds = %652, %618
  %654 = load i64, ptr %76, align 8, !tbaa !9
  %655 = icmp ne i64 %654, 0
  br i1 %655, label %656, label %713

656:                                              ; preds = %653
  %657 = load i64, ptr %68, align 8, !tbaa !9
  %658 = add nsw i64 %657, 1
  store i64 %658, ptr %68, align 8, !tbaa !9
  %659 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %659, ptr %67, align 8, !tbaa !9
  %660 = load i64, ptr %64, align 8, !tbaa !9
  %661 = load i64, ptr %68, align 8, !tbaa !9
  %662 = icmp ne i64 %660, %661
  br i1 %662, label %663, label %687

663:                                              ; preds = %656
  %664 = load ptr, ptr %28, align 8, !tbaa !5
  %665 = load ptr, ptr %29, align 8, !tbaa !5
  %666 = load ptr, ptr %31, align 8, !tbaa !5
  %667 = load ptr, ptr %32, align 8, !tbaa !5
  %668 = load i64, ptr %53, align 8, !tbaa !9
  %669 = getelementptr inbounds float, ptr %667, i64 %668
  %670 = load ptr, ptr %33, align 8, !tbaa !5
  %671 = load ptr, ptr %34, align 8, !tbaa !5
  %672 = load i64, ptr %55, align 8, !tbaa !9
  %673 = getelementptr inbounds float, ptr %671, i64 %672
  %674 = load ptr, ptr %35, align 8, !tbaa !5
  %675 = load ptr, ptr %39, align 8, !tbaa !5
  %676 = load i64, ptr %57, align 8, !tbaa !9
  %677 = getelementptr inbounds float, ptr %675, i64 %676
  %678 = load ptr, ptr %40, align 8, !tbaa !5
  %679 = load ptr, ptr %41, align 8, !tbaa !5
  %680 = load i64, ptr %59, align 8, !tbaa !9
  %681 = getelementptr inbounds float, ptr %679, i64 %680
  %682 = load ptr, ptr %42, align 8, !tbaa !5
  %683 = load ptr, ptr %47, align 8, !tbaa !5
  %684 = getelementptr inbounds float, ptr %683, i64 1
  %685 = load ptr, ptr %48, align 8, !tbaa !5
  %686 = call i32 @stgexc_(ptr noundef %664, ptr noundef %665, ptr noundef %666, ptr noundef %669, ptr noundef %670, ptr noundef %673, ptr noundef %674, ptr noundef %677, ptr noundef %678, ptr noundef %681, ptr noundef %682, ptr noundef %67, ptr noundef %68, ptr noundef %684, ptr noundef %685, ptr noundef %74)
  br label %687

687:                                              ; preds = %663, %656
  %688 = load i64, ptr %74, align 8, !tbaa !9
  %689 = icmp sgt i64 %688, 0
  br i1 %689, label %690, label %706

690:                                              ; preds = %687
  %691 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 1, ptr %691, align 8, !tbaa !9
  %692 = load i64, ptr %80, align 8, !tbaa !9
  %693 = icmp ne i64 %692, 0
  br i1 %693, label %694, label %697

694:                                              ; preds = %690
  %695 = load ptr, ptr %44, align 8, !tbaa !5
  store float 0.000000e+00, ptr %695, align 4, !tbaa !11
  %696 = load ptr, ptr %45, align 8, !tbaa !5
  store float 0.000000e+00, ptr %696, align 4, !tbaa !11
  br label %697

697:                                              ; preds = %694, %690
  %698 = load i64, ptr %78, align 8, !tbaa !9
  %699 = icmp ne i64 %698, 0
  br i1 %699, label %700, label %705

700:                                              ; preds = %697
  %701 = load ptr, ptr %46, align 8, !tbaa !5
  %702 = getelementptr inbounds float, ptr %701, i64 1
  store float 0.000000e+00, ptr %702, align 4, !tbaa !11
  %703 = load ptr, ptr %46, align 8, !tbaa !5
  %704 = getelementptr inbounds float, ptr %703, i64 2
  store float 0.000000e+00, ptr %704, align 4, !tbaa !11
  br label %705

705:                                              ; preds = %700, %697
  br label %1290

706:                                              ; preds = %687
  %707 = load i64, ptr %73, align 8, !tbaa !9
  %708 = icmp ne i64 %707, 0
  br i1 %708, label %709, label %712

709:                                              ; preds = %706
  %710 = load i64, ptr %68, align 8, !tbaa !9
  %711 = add nsw i64 %710, 1
  store i64 %711, ptr %68, align 8, !tbaa !9
  br label %712

712:                                              ; preds = %709, %706
  br label %713

713:                                              ; preds = %712, %653
  br label %714

714:                                              ; preds = %713, %617
  br label %715

715:                                              ; preds = %714
  %716 = load i64, ptr %64, align 8, !tbaa !9
  %717 = add nsw i64 %716, 1
  store i64 %717, ptr %64, align 8, !tbaa !9
  br label %610, !llvm.loop !16

718:                                              ; preds = %610
  %719 = load i64, ptr %80, align 8, !tbaa !9
  %720 = icmp ne i64 %719, 0
  br i1 %720, label %721, label %894

721:                                              ; preds = %718
  %722 = load ptr, ptr %43, align 8, !tbaa !5
  %723 = load i64, ptr %722, align 8, !tbaa !9
  store i64 %723, ptr %65, align 8, !tbaa !9
  %724 = load ptr, ptr %31, align 8, !tbaa !5
  %725 = load i64, ptr %724, align 8, !tbaa !9
  %726 = load ptr, ptr %43, align 8, !tbaa !5
  %727 = load i64, ptr %726, align 8, !tbaa !9
  %728 = sub nsw i64 %725, %727
  store i64 %728, ptr %66, align 8, !tbaa !9
  %729 = load i64, ptr %65, align 8, !tbaa !9
  %730 = add nsw i64 %729, 1
  store i64 %730, ptr %63, align 8, !tbaa !9
  store i64 0, ptr %70, align 8, !tbaa !9
  %731 = load ptr, ptr %32, align 8, !tbaa !5
  %732 = load i64, ptr %63, align 8, !tbaa !9
  %733 = load i64, ptr %52, align 8, !tbaa !9
  %734 = mul nsw i64 %732, %733
  %735 = add nsw i64 %734, 1
  %736 = getelementptr inbounds float, ptr %731, i64 %735
  %737 = load ptr, ptr %33, align 8, !tbaa !5
  %738 = load ptr, ptr %47, align 8, !tbaa !5
  %739 = getelementptr inbounds float, ptr %738, i64 1
  %740 = call i32 @slacpy_(ptr noundef @.str.3, ptr noundef %65, ptr noundef %66, ptr noundef %736, ptr noundef %737, ptr noundef %739, ptr noundef %65)
  %741 = load ptr, ptr %34, align 8, !tbaa !5
  %742 = load i64, ptr %63, align 8, !tbaa !9
  %743 = load i64, ptr %54, align 8, !tbaa !9
  %744 = mul nsw i64 %742, %743
  %745 = add nsw i64 %744, 1
  %746 = getelementptr inbounds float, ptr %741, i64 %745
  %747 = load ptr, ptr %35, align 8, !tbaa !5
  %748 = load ptr, ptr %47, align 8, !tbaa !5
  %749 = load i64, ptr %65, align 8, !tbaa !9
  %750 = load i64, ptr %66, align 8, !tbaa !9
  %751 = mul nsw i64 %749, %750
  %752 = add nsw i64 %751, 1
  %753 = getelementptr inbounds float, ptr %748, i64 %752
  %754 = call i32 @slacpy_(ptr noundef @.str.3, ptr noundef %65, ptr noundef %66, ptr noundef %746, ptr noundef %747, ptr noundef %753, ptr noundef %65)
  %755 = load ptr, ptr %48, align 8, !tbaa !5
  %756 = load i64, ptr %755, align 8, !tbaa !9
  %757 = load i64, ptr %65, align 8, !tbaa !9
  %758 = shl i64 %757, 1
  %759 = load i64, ptr %66, align 8, !tbaa !9
  %760 = mul nsw i64 %758, %759
  %761 = sub nsw i64 %756, %760
  store i64 %761, ptr %60, align 8, !tbaa !9
  %762 = load ptr, ptr %32, align 8, !tbaa !5
  %763 = load i64, ptr %53, align 8, !tbaa !9
  %764 = getelementptr inbounds float, ptr %762, i64 %763
  %765 = load ptr, ptr %33, align 8, !tbaa !5
  %766 = load ptr, ptr %32, align 8, !tbaa !5
  %767 = load i64, ptr %63, align 8, !tbaa !9
  %768 = load i64, ptr %63, align 8, !tbaa !9
  %769 = load i64, ptr %52, align 8, !tbaa !9
  %770 = mul nsw i64 %768, %769
  %771 = add nsw i64 %767, %770
  %772 = getelementptr inbounds float, ptr %766, i64 %771
  %773 = load ptr, ptr %33, align 8, !tbaa !5
  %774 = load ptr, ptr %47, align 8, !tbaa !5
  %775 = getelementptr inbounds float, ptr %774, i64 1
  %776 = load ptr, ptr %34, align 8, !tbaa !5
  %777 = load i64, ptr %55, align 8, !tbaa !9
  %778 = getelementptr inbounds float, ptr %776, i64 %777
  %779 = load ptr, ptr %35, align 8, !tbaa !5
  %780 = load ptr, ptr %34, align 8, !tbaa !5
  %781 = load i64, ptr %63, align 8, !tbaa !9
  %782 = load i64, ptr %63, align 8, !tbaa !9
  %783 = load i64, ptr %54, align 8, !tbaa !9
  %784 = mul nsw i64 %782, %783
  %785 = add nsw i64 %781, %784
  %786 = getelementptr inbounds float, ptr %780, i64 %785
  %787 = load ptr, ptr %35, align 8, !tbaa !5
  %788 = load ptr, ptr %47, align 8, !tbaa !5
  %789 = load i64, ptr %65, align 8, !tbaa !9
  %790 = load i64, ptr %66, align 8, !tbaa !9
  %791 = mul nsw i64 %789, %790
  %792 = add nsw i64 %791, 1
  %793 = getelementptr inbounds float, ptr %788, i64 %792
  %794 = load ptr, ptr %46, align 8, !tbaa !5
  %795 = getelementptr inbounds float, ptr %794, i64 1
  %796 = load ptr, ptr %47, align 8, !tbaa !5
  %797 = load i64, ptr %65, align 8, !tbaa !9
  %798 = load i64, ptr %66, align 8, !tbaa !9
  %799 = mul nsw i64 %797, %798
  %800 = shl i64 %799, 1
  %801 = add nsw i64 %800, 1
  %802 = getelementptr inbounds float, ptr %796, i64 %801
  %803 = load ptr, ptr %49, align 8, !tbaa !5
  %804 = getelementptr inbounds i64, ptr %803, i64 1
  %805 = call i32 @stgsyl_(ptr noundef @.str.4, ptr noundef %70, ptr noundef %65, ptr noundef %66, ptr noundef %764, ptr noundef %765, ptr noundef %772, ptr noundef %773, ptr noundef %775, ptr noundef %65, ptr noundef %778, ptr noundef %779, ptr noundef %786, ptr noundef %787, ptr noundef %793, ptr noundef %65, ptr noundef %83, ptr noundef %795, ptr noundef %802, ptr noundef %60, ptr noundef %804, ptr noundef %74)
  store float 0.000000e+00, ptr %84, align 4, !tbaa !11
  store float 1.000000e+00, ptr %75, align 4, !tbaa !11
  %806 = load i64, ptr %65, align 8, !tbaa !9
  %807 = load i64, ptr %66, align 8, !tbaa !9
  %808 = mul nsw i64 %806, %807
  store i64 %808, ptr %60, align 8, !tbaa !9
  %809 = load ptr, ptr %47, align 8, !tbaa !5
  %810 = getelementptr inbounds float, ptr %809, i64 1
  %811 = call i32 @slassq_(ptr noundef %60, ptr noundef %810, ptr noundef @c__1, ptr noundef %84, ptr noundef %75)
  %812 = load float, ptr %84, align 4, !tbaa !11
  %813 = fpext float %812 to double
  %814 = load float, ptr %75, align 4, !tbaa !11
  %815 = fpext float %814 to double
  %816 = call double @sqrt(double noundef %815) #4
  %817 = fmul double %813, %816
  %818 = fptrunc double %817 to float
  %819 = load ptr, ptr %44, align 8, !tbaa !5
  store float %818, ptr %819, align 4, !tbaa !11
  %820 = load ptr, ptr %44, align 8, !tbaa !5
  %821 = load float, ptr %820, align 4, !tbaa !11
  %822 = fcmp oeq float %821, 0.000000e+00
  br i1 %822, label %823, label %825

823:                                              ; preds = %721
  %824 = load ptr, ptr %44, align 8, !tbaa !5
  store float 1.000000e+00, ptr %824, align 4, !tbaa !11
  br label %847

825:                                              ; preds = %721
  %826 = load float, ptr %83, align 4, !tbaa !11
  %827 = fpext float %826 to double
  %828 = load float, ptr %83, align 4, !tbaa !11
  %829 = load float, ptr %83, align 4, !tbaa !11
  %830 = fmul float %828, %829
  %831 = load ptr, ptr %44, align 8, !tbaa !5
  %832 = load float, ptr %831, align 4, !tbaa !11
  %833 = fdiv float %830, %832
  %834 = load ptr, ptr %44, align 8, !tbaa !5
  %835 = load float, ptr %834, align 4, !tbaa !11
  %836 = fadd float %833, %835
  %837 = fpext float %836 to double
  %838 = call double @sqrt(double noundef %837) #4
  %839 = load ptr, ptr %44, align 8, !tbaa !5
  %840 = load float, ptr %839, align 4, !tbaa !11
  %841 = fpext float %840 to double
  %842 = call double @sqrt(double noundef %841) #4
  %843 = fmul double %838, %842
  %844 = fdiv double %827, %843
  %845 = fptrunc double %844 to float
  %846 = load ptr, ptr %44, align 8, !tbaa !5
  store float %845, ptr %846, align 4, !tbaa !11
  br label %847

847:                                              ; preds = %825, %823
  store float 0.000000e+00, ptr %84, align 4, !tbaa !11
  store float 1.000000e+00, ptr %75, align 4, !tbaa !11
  %848 = load i64, ptr %65, align 8, !tbaa !9
  %849 = load i64, ptr %66, align 8, !tbaa !9
  %850 = mul nsw i64 %848, %849
  store i64 %850, ptr %60, align 8, !tbaa !9
  %851 = load ptr, ptr %47, align 8, !tbaa !5
  %852 = load i64, ptr %65, align 8, !tbaa !9
  %853 = load i64, ptr %66, align 8, !tbaa !9
  %854 = mul nsw i64 %852, %853
  %855 = add nsw i64 %854, 1
  %856 = getelementptr inbounds float, ptr %851, i64 %855
  %857 = call i32 @slassq_(ptr noundef %60, ptr noundef %856, ptr noundef @c__1, ptr noundef %84, ptr noundef %75)
  %858 = load float, ptr %84, align 4, !tbaa !11
  %859 = fpext float %858 to double
  %860 = load float, ptr %75, align 4, !tbaa !11
  %861 = fpext float %860 to double
  %862 = call double @sqrt(double noundef %861) #4
  %863 = fmul double %859, %862
  %864 = fptrunc double %863 to float
  %865 = load ptr, ptr %45, align 8, !tbaa !5
  store float %864, ptr %865, align 4, !tbaa !11
  %866 = load ptr, ptr %45, align 8, !tbaa !5
  %867 = load float, ptr %866, align 4, !tbaa !11
  %868 = fcmp oeq float %867, 0.000000e+00
  br i1 %868, label %869, label %871

869:                                              ; preds = %847
  %870 = load ptr, ptr %45, align 8, !tbaa !5
  store float 1.000000e+00, ptr %870, align 4, !tbaa !11
  br label %893

871:                                              ; preds = %847
  %872 = load float, ptr %83, align 4, !tbaa !11
  %873 = fpext float %872 to double
  %874 = load float, ptr %83, align 4, !tbaa !11
  %875 = load float, ptr %83, align 4, !tbaa !11
  %876 = fmul float %874, %875
  %877 = load ptr, ptr %45, align 8, !tbaa !5
  %878 = load float, ptr %877, align 4, !tbaa !11
  %879 = fdiv float %876, %878
  %880 = load ptr, ptr %45, align 8, !tbaa !5
  %881 = load float, ptr %880, align 4, !tbaa !11
  %882 = fadd float %879, %881
  %883 = fpext float %882 to double
  %884 = call double @sqrt(double noundef %883) #4
  %885 = load ptr, ptr %45, align 8, !tbaa !5
  %886 = load float, ptr %885, align 4, !tbaa !11
  %887 = fpext float %886 to double
  %888 = call double @sqrt(double noundef %887) #4
  %889 = fmul double %884, %888
  %890 = fdiv double %873, %889
  %891 = fptrunc double %890 to float
  %892 = load ptr, ptr %45, align 8, !tbaa !5
  store float %891, ptr %892, align 4, !tbaa !11
  br label %893

893:                                              ; preds = %871, %869
  br label %894

894:                                              ; preds = %893, %718
  %895 = load i64, ptr %78, align 8, !tbaa !9
  %896 = icmp ne i64 %895, 0
  br i1 %896, label %897, label %1289

897:                                              ; preds = %894
  %898 = load i64, ptr %81, align 8, !tbaa !9
  %899 = icmp ne i64 %898, 0
  br i1 %899, label %900, label %1012

900:                                              ; preds = %897
  %901 = load ptr, ptr %43, align 8, !tbaa !5
  %902 = load i64, ptr %901, align 8, !tbaa !9
  store i64 %902, ptr %65, align 8, !tbaa !9
  %903 = load ptr, ptr %31, align 8, !tbaa !5
  %904 = load i64, ptr %903, align 8, !tbaa !9
  %905 = load ptr, ptr %43, align 8, !tbaa !5
  %906 = load i64, ptr %905, align 8, !tbaa !9
  %907 = sub nsw i64 %904, %906
  store i64 %907, ptr %66, align 8, !tbaa !9
  %908 = load i64, ptr %65, align 8, !tbaa !9
  %909 = add nsw i64 %908, 1
  store i64 %909, ptr %63, align 8, !tbaa !9
  store i64 3, ptr %70, align 8, !tbaa !9
  %910 = load ptr, ptr %48, align 8, !tbaa !5
  %911 = load i64, ptr %910, align 8, !tbaa !9
  %912 = load i64, ptr %65, align 8, !tbaa !9
  %913 = shl i64 %912, 1
  %914 = load i64, ptr %66, align 8, !tbaa !9
  %915 = mul nsw i64 %913, %914
  %916 = sub nsw i64 %911, %915
  store i64 %916, ptr %60, align 8, !tbaa !9
  %917 = load ptr, ptr %32, align 8, !tbaa !5
  %918 = load i64, ptr %53, align 8, !tbaa !9
  %919 = getelementptr inbounds float, ptr %917, i64 %918
  %920 = load ptr, ptr %33, align 8, !tbaa !5
  %921 = load ptr, ptr %32, align 8, !tbaa !5
  %922 = load i64, ptr %63, align 8, !tbaa !9
  %923 = load i64, ptr %63, align 8, !tbaa !9
  %924 = load i64, ptr %52, align 8, !tbaa !9
  %925 = mul nsw i64 %923, %924
  %926 = add nsw i64 %922, %925
  %927 = getelementptr inbounds float, ptr %921, i64 %926
  %928 = load ptr, ptr %33, align 8, !tbaa !5
  %929 = load ptr, ptr %47, align 8, !tbaa !5
  %930 = getelementptr inbounds float, ptr %929, i64 1
  %931 = load ptr, ptr %34, align 8, !tbaa !5
  %932 = load i64, ptr %55, align 8, !tbaa !9
  %933 = getelementptr inbounds float, ptr %931, i64 %932
  %934 = load ptr, ptr %35, align 8, !tbaa !5
  %935 = load ptr, ptr %34, align 8, !tbaa !5
  %936 = load i64, ptr %63, align 8, !tbaa !9
  %937 = load i64, ptr %63, align 8, !tbaa !9
  %938 = load i64, ptr %54, align 8, !tbaa !9
  %939 = mul nsw i64 %937, %938
  %940 = add nsw i64 %936, %939
  %941 = getelementptr inbounds float, ptr %935, i64 %940
  %942 = load ptr, ptr %35, align 8, !tbaa !5
  %943 = load ptr, ptr %47, align 8, !tbaa !5
  %944 = load i64, ptr %65, align 8, !tbaa !9
  %945 = load i64, ptr %66, align 8, !tbaa !9
  %946 = mul nsw i64 %944, %945
  %947 = add nsw i64 %946, 1
  %948 = getelementptr inbounds float, ptr %943, i64 %947
  %949 = load ptr, ptr %46, align 8, !tbaa !5
  %950 = getelementptr inbounds float, ptr %949, i64 1
  %951 = load ptr, ptr %47, align 8, !tbaa !5
  %952 = load i64, ptr %65, align 8, !tbaa !9
  %953 = shl i64 %952, 1
  %954 = load i64, ptr %66, align 8, !tbaa !9
  %955 = mul nsw i64 %953, %954
  %956 = add nsw i64 %955, 1
  %957 = getelementptr inbounds float, ptr %951, i64 %956
  %958 = load ptr, ptr %49, align 8, !tbaa !5
  %959 = getelementptr inbounds i64, ptr %958, i64 1
  %960 = call i32 @stgsyl_(ptr noundef @.str.4, ptr noundef %70, ptr noundef %65, ptr noundef %66, ptr noundef %919, ptr noundef %920, ptr noundef %927, ptr noundef %928, ptr noundef %930, ptr noundef %65, ptr noundef %933, ptr noundef %934, ptr noundef %941, ptr noundef %942, ptr noundef %948, ptr noundef %65, ptr noundef %83, ptr noundef %950, ptr noundef %957, ptr noundef %60, ptr noundef %959, ptr noundef %74)
  %961 = load ptr, ptr %48, align 8, !tbaa !5
  %962 = load i64, ptr %961, align 8, !tbaa !9
  %963 = load i64, ptr %65, align 8, !tbaa !9
  %964 = shl i64 %963, 1
  %965 = load i64, ptr %66, align 8, !tbaa !9
  %966 = mul nsw i64 %964, %965
  %967 = sub nsw i64 %962, %966
  store i64 %967, ptr %60, align 8, !tbaa !9
  %968 = load ptr, ptr %32, align 8, !tbaa !5
  %969 = load i64, ptr %63, align 8, !tbaa !9
  %970 = load i64, ptr %63, align 8, !tbaa !9
  %971 = load i64, ptr %52, align 8, !tbaa !9
  %972 = mul nsw i64 %970, %971
  %973 = add nsw i64 %969, %972
  %974 = getelementptr inbounds float, ptr %968, i64 %973
  %975 = load ptr, ptr %33, align 8, !tbaa !5
  %976 = load ptr, ptr %32, align 8, !tbaa !5
  %977 = load i64, ptr %53, align 8, !tbaa !9
  %978 = getelementptr inbounds float, ptr %976, i64 %977
  %979 = load ptr, ptr %33, align 8, !tbaa !5
  %980 = load ptr, ptr %47, align 8, !tbaa !5
  %981 = getelementptr inbounds float, ptr %980, i64 1
  %982 = load ptr, ptr %34, align 8, !tbaa !5
  %983 = load i64, ptr %63, align 8, !tbaa !9
  %984 = load i64, ptr %63, align 8, !tbaa !9
  %985 = load i64, ptr %54, align 8, !tbaa !9
  %986 = mul nsw i64 %984, %985
  %987 = add nsw i64 %983, %986
  %988 = getelementptr inbounds float, ptr %982, i64 %987
  %989 = load ptr, ptr %35, align 8, !tbaa !5
  %990 = load ptr, ptr %34, align 8, !tbaa !5
  %991 = load i64, ptr %55, align 8, !tbaa !9
  %992 = getelementptr inbounds float, ptr %990, i64 %991
  %993 = load ptr, ptr %35, align 8, !tbaa !5
  %994 = load ptr, ptr %47, align 8, !tbaa !5
  %995 = load i64, ptr %65, align 8, !tbaa !9
  %996 = load i64, ptr %66, align 8, !tbaa !9
  %997 = mul nsw i64 %995, %996
  %998 = add nsw i64 %997, 1
  %999 = getelementptr inbounds float, ptr %994, i64 %998
  %1000 = load ptr, ptr %46, align 8, !tbaa !5
  %1001 = getelementptr inbounds float, ptr %1000, i64 2
  %1002 = load ptr, ptr %47, align 8, !tbaa !5
  %1003 = load i64, ptr %65, align 8, !tbaa !9
  %1004 = shl i64 %1003, 1
  %1005 = load i64, ptr %66, align 8, !tbaa !9
  %1006 = mul nsw i64 %1004, %1005
  %1007 = add nsw i64 %1006, 1
  %1008 = getelementptr inbounds float, ptr %1002, i64 %1007
  %1009 = load ptr, ptr %49, align 8, !tbaa !5
  %1010 = getelementptr inbounds i64, ptr %1009, i64 1
  %1011 = call i32 @stgsyl_(ptr noundef @.str.4, ptr noundef %70, ptr noundef %66, ptr noundef %65, ptr noundef %974, ptr noundef %975, ptr noundef %978, ptr noundef %979, ptr noundef %981, ptr noundef %66, ptr noundef %988, ptr noundef %989, ptr noundef %992, ptr noundef %993, ptr noundef %999, ptr noundef %66, ptr noundef %83, ptr noundef %1001, ptr noundef %1008, ptr noundef %60, ptr noundef %1010, ptr noundef %74)
  br label %1288

1012:                                             ; preds = %897
  store i64 0, ptr %72, align 8, !tbaa !9
  %1013 = load ptr, ptr %43, align 8, !tbaa !5
  %1014 = load i64, ptr %1013, align 8, !tbaa !9
  store i64 %1014, ptr %65, align 8, !tbaa !9
  %1015 = load ptr, ptr %31, align 8, !tbaa !5
  %1016 = load i64, ptr %1015, align 8, !tbaa !9
  %1017 = load ptr, ptr %43, align 8, !tbaa !5
  %1018 = load i64, ptr %1017, align 8, !tbaa !9
  %1019 = sub nsw i64 %1016, %1018
  store i64 %1019, ptr %66, align 8, !tbaa !9
  %1020 = load i64, ptr %65, align 8, !tbaa !9
  %1021 = add nsw i64 %1020, 1
  store i64 %1021, ptr %63, align 8, !tbaa !9
  store i64 0, ptr %70, align 8, !tbaa !9
  %1022 = load i64, ptr %65, align 8, !tbaa !9
  %1023 = shl i64 %1022, 1
  %1024 = load i64, ptr %66, align 8, !tbaa !9
  %1025 = mul nsw i64 %1023, %1024
  store i64 %1025, ptr %69, align 8, !tbaa !9
  br label %1026

1026:                                             ; preds = %1148, %1012
  %1027 = load ptr, ptr %47, align 8, !tbaa !5
  %1028 = load i64, ptr %69, align 8, !tbaa !9
  %1029 = add nsw i64 %1028, 1
  %1030 = getelementptr inbounds float, ptr %1027, i64 %1029
  %1031 = load ptr, ptr %47, align 8, !tbaa !5
  %1032 = getelementptr inbounds float, ptr %1031, i64 1
  %1033 = load ptr, ptr %49, align 8, !tbaa !5
  %1034 = getelementptr inbounds i64, ptr %1033, i64 1
  %1035 = load ptr, ptr %46, align 8, !tbaa !5
  %1036 = getelementptr inbounds float, ptr %1035, i64 1
  %1037 = getelementptr inbounds [3 x i64], ptr %77, i64 0, i64 0
  %1038 = call i32 @slacn2_(ptr noundef %69, ptr noundef %1030, ptr noundef %1032, ptr noundef %1034, ptr noundef %1036, ptr noundef %72, ptr noundef %1037)
  %1039 = load i64, ptr %72, align 8, !tbaa !9
  %1040 = icmp ne i64 %1039, 0
  br i1 %1040, label %1041, label %1149

1041:                                             ; preds = %1026
  %1042 = load i64, ptr %72, align 8, !tbaa !9
  %1043 = icmp eq i64 %1042, 1
  br i1 %1043, label %1044, label %1096

1044:                                             ; preds = %1041
  %1045 = load ptr, ptr %48, align 8, !tbaa !5
  %1046 = load i64, ptr %1045, align 8, !tbaa !9
  %1047 = load i64, ptr %65, align 8, !tbaa !9
  %1048 = shl i64 %1047, 1
  %1049 = load i64, ptr %66, align 8, !tbaa !9
  %1050 = mul nsw i64 %1048, %1049
  %1051 = sub nsw i64 %1046, %1050
  store i64 %1051, ptr %60, align 8, !tbaa !9
  %1052 = load ptr, ptr %32, align 8, !tbaa !5
  %1053 = load i64, ptr %53, align 8, !tbaa !9
  %1054 = getelementptr inbounds float, ptr %1052, i64 %1053
  %1055 = load ptr, ptr %33, align 8, !tbaa !5
  %1056 = load ptr, ptr %32, align 8, !tbaa !5
  %1057 = load i64, ptr %63, align 8, !tbaa !9
  %1058 = load i64, ptr %63, align 8, !tbaa !9
  %1059 = load i64, ptr %52, align 8, !tbaa !9
  %1060 = mul nsw i64 %1058, %1059
  %1061 = add nsw i64 %1057, %1060
  %1062 = getelementptr inbounds float, ptr %1056, i64 %1061
  %1063 = load ptr, ptr %33, align 8, !tbaa !5
  %1064 = load ptr, ptr %47, align 8, !tbaa !5
  %1065 = getelementptr inbounds float, ptr %1064, i64 1
  %1066 = load ptr, ptr %34, align 8, !tbaa !5
  %1067 = load i64, ptr %55, align 8, !tbaa !9
  %1068 = getelementptr inbounds float, ptr %1066, i64 %1067
  %1069 = load ptr, ptr %35, align 8, !tbaa !5
  %1070 = load ptr, ptr %34, align 8, !tbaa !5
  %1071 = load i64, ptr %63, align 8, !tbaa !9
  %1072 = load i64, ptr %63, align 8, !tbaa !9
  %1073 = load i64, ptr %54, align 8, !tbaa !9
  %1074 = mul nsw i64 %1072, %1073
  %1075 = add nsw i64 %1071, %1074
  %1076 = getelementptr inbounds float, ptr %1070, i64 %1075
  %1077 = load ptr, ptr %35, align 8, !tbaa !5
  %1078 = load ptr, ptr %47, align 8, !tbaa !5
  %1079 = load i64, ptr %65, align 8, !tbaa !9
  %1080 = load i64, ptr %66, align 8, !tbaa !9
  %1081 = mul nsw i64 %1079, %1080
  %1082 = add nsw i64 %1081, 1
  %1083 = getelementptr inbounds float, ptr %1078, i64 %1082
  %1084 = load ptr, ptr %46, align 8, !tbaa !5
  %1085 = getelementptr inbounds float, ptr %1084, i64 1
  %1086 = load ptr, ptr %47, align 8, !tbaa !5
  %1087 = load i64, ptr %65, align 8, !tbaa !9
  %1088 = shl i64 %1087, 1
  %1089 = load i64, ptr %66, align 8, !tbaa !9
  %1090 = mul nsw i64 %1088, %1089
  %1091 = add nsw i64 %1090, 1
  %1092 = getelementptr inbounds float, ptr %1086, i64 %1091
  %1093 = load ptr, ptr %49, align 8, !tbaa !5
  %1094 = getelementptr inbounds i64, ptr %1093, i64 1
  %1095 = call i32 @stgsyl_(ptr noundef @.str.4, ptr noundef %70, ptr noundef %65, ptr noundef %66, ptr noundef %1054, ptr noundef %1055, ptr noundef %1062, ptr noundef %1063, ptr noundef %1065, ptr noundef %65, ptr noundef %1068, ptr noundef %1069, ptr noundef %1076, ptr noundef %1077, ptr noundef %1083, ptr noundef %65, ptr noundef %83, ptr noundef %1085, ptr noundef %1092, ptr noundef %60, ptr noundef %1094, ptr noundef %74)
  br label %1148

1096:                                             ; preds = %1041
  %1097 = load ptr, ptr %48, align 8, !tbaa !5
  %1098 = load i64, ptr %1097, align 8, !tbaa !9
  %1099 = load i64, ptr %65, align 8, !tbaa !9
  %1100 = shl i64 %1099, 1
  %1101 = load i64, ptr %66, align 8, !tbaa !9
  %1102 = mul nsw i64 %1100, %1101
  %1103 = sub nsw i64 %1098, %1102
  store i64 %1103, ptr %60, align 8, !tbaa !9
  %1104 = load ptr, ptr %32, align 8, !tbaa !5
  %1105 = load i64, ptr %53, align 8, !tbaa !9
  %1106 = getelementptr inbounds float, ptr %1104, i64 %1105
  %1107 = load ptr, ptr %33, align 8, !tbaa !5
  %1108 = load ptr, ptr %32, align 8, !tbaa !5
  %1109 = load i64, ptr %63, align 8, !tbaa !9
  %1110 = load i64, ptr %63, align 8, !tbaa !9
  %1111 = load i64, ptr %52, align 8, !tbaa !9
  %1112 = mul nsw i64 %1110, %1111
  %1113 = add nsw i64 %1109, %1112
  %1114 = getelementptr inbounds float, ptr %1108, i64 %1113
  %1115 = load ptr, ptr %33, align 8, !tbaa !5
  %1116 = load ptr, ptr %47, align 8, !tbaa !5
  %1117 = getelementptr inbounds float, ptr %1116, i64 1
  %1118 = load ptr, ptr %34, align 8, !tbaa !5
  %1119 = load i64, ptr %55, align 8, !tbaa !9
  %1120 = getelementptr inbounds float, ptr %1118, i64 %1119
  %1121 = load ptr, ptr %35, align 8, !tbaa !5
  %1122 = load ptr, ptr %34, align 8, !tbaa !5
  %1123 = load i64, ptr %63, align 8, !tbaa !9
  %1124 = load i64, ptr %63, align 8, !tbaa !9
  %1125 = load i64, ptr %54, align 8, !tbaa !9
  %1126 = mul nsw i64 %1124, %1125
  %1127 = add nsw i64 %1123, %1126
  %1128 = getelementptr inbounds float, ptr %1122, i64 %1127
  %1129 = load ptr, ptr %35, align 8, !tbaa !5
  %1130 = load ptr, ptr %47, align 8, !tbaa !5
  %1131 = load i64, ptr %65, align 8, !tbaa !9
  %1132 = load i64, ptr %66, align 8, !tbaa !9
  %1133 = mul nsw i64 %1131, %1132
  %1134 = add nsw i64 %1133, 1
  %1135 = getelementptr inbounds float, ptr %1130, i64 %1134
  %1136 = load ptr, ptr %46, align 8, !tbaa !5
  %1137 = getelementptr inbounds float, ptr %1136, i64 1
  %1138 = load ptr, ptr %47, align 8, !tbaa !5
  %1139 = load i64, ptr %65, align 8, !tbaa !9
  %1140 = shl i64 %1139, 1
  %1141 = load i64, ptr %66, align 8, !tbaa !9
  %1142 = mul nsw i64 %1140, %1141
  %1143 = add nsw i64 %1142, 1
  %1144 = getelementptr inbounds float, ptr %1138, i64 %1143
  %1145 = load ptr, ptr %49, align 8, !tbaa !5
  %1146 = getelementptr inbounds i64, ptr %1145, i64 1
  %1147 = call i32 @stgsyl_(ptr noundef @.str.5, ptr noundef %70, ptr noundef %65, ptr noundef %66, ptr noundef %1106, ptr noundef %1107, ptr noundef %1114, ptr noundef %1115, ptr noundef %1117, ptr noundef %65, ptr noundef %1120, ptr noundef %1121, ptr noundef %1128, ptr noundef %1129, ptr noundef %1135, ptr noundef %65, ptr noundef %83, ptr noundef %1137, ptr noundef %1144, ptr noundef %60, ptr noundef %1146, ptr noundef %74)
  br label %1148

1148:                                             ; preds = %1096, %1044
  br label %1026

1149:                                             ; preds = %1026
  %1150 = load float, ptr %83, align 4, !tbaa !11
  %1151 = load ptr, ptr %46, align 8, !tbaa !5
  %1152 = getelementptr inbounds float, ptr %1151, i64 1
  %1153 = load float, ptr %1152, align 4, !tbaa !11
  %1154 = fdiv float %1150, %1153
  %1155 = load ptr, ptr %46, align 8, !tbaa !5
  %1156 = getelementptr inbounds float, ptr %1155, i64 1
  store float %1154, ptr %1156, align 4, !tbaa !11
  br label %1157

1157:                                             ; preds = %1279, %1149
  %1158 = load ptr, ptr %47, align 8, !tbaa !5
  %1159 = load i64, ptr %69, align 8, !tbaa !9
  %1160 = add nsw i64 %1159, 1
  %1161 = getelementptr inbounds float, ptr %1158, i64 %1160
  %1162 = load ptr, ptr %47, align 8, !tbaa !5
  %1163 = getelementptr inbounds float, ptr %1162, i64 1
  %1164 = load ptr, ptr %49, align 8, !tbaa !5
  %1165 = getelementptr inbounds i64, ptr %1164, i64 1
  %1166 = load ptr, ptr %46, align 8, !tbaa !5
  %1167 = getelementptr inbounds float, ptr %1166, i64 2
  %1168 = getelementptr inbounds [3 x i64], ptr %77, i64 0, i64 0
  %1169 = call i32 @slacn2_(ptr noundef %69, ptr noundef %1161, ptr noundef %1163, ptr noundef %1165, ptr noundef %1167, ptr noundef %72, ptr noundef %1168)
  %1170 = load i64, ptr %72, align 8, !tbaa !9
  %1171 = icmp ne i64 %1170, 0
  br i1 %1171, label %1172, label %1280

1172:                                             ; preds = %1157
  %1173 = load i64, ptr %72, align 8, !tbaa !9
  %1174 = icmp eq i64 %1173, 1
  br i1 %1174, label %1175, label %1227

1175:                                             ; preds = %1172
  %1176 = load ptr, ptr %48, align 8, !tbaa !5
  %1177 = load i64, ptr %1176, align 8, !tbaa !9
  %1178 = load i64, ptr %65, align 8, !tbaa !9
  %1179 = shl i64 %1178, 1
  %1180 = load i64, ptr %66, align 8, !tbaa !9
  %1181 = mul nsw i64 %1179, %1180
  %1182 = sub nsw i64 %1177, %1181
  store i64 %1182, ptr %60, align 8, !tbaa !9
  %1183 = load ptr, ptr %32, align 8, !tbaa !5
  %1184 = load i64, ptr %63, align 8, !tbaa !9
  %1185 = load i64, ptr %63, align 8, !tbaa !9
  %1186 = load i64, ptr %52, align 8, !tbaa !9
  %1187 = mul nsw i64 %1185, %1186
  %1188 = add nsw i64 %1184, %1187
  %1189 = getelementptr inbounds float, ptr %1183, i64 %1188
  %1190 = load ptr, ptr %33, align 8, !tbaa !5
  %1191 = load ptr, ptr %32, align 8, !tbaa !5
  %1192 = load i64, ptr %53, align 8, !tbaa !9
  %1193 = getelementptr inbounds float, ptr %1191, i64 %1192
  %1194 = load ptr, ptr %33, align 8, !tbaa !5
  %1195 = load ptr, ptr %47, align 8, !tbaa !5
  %1196 = getelementptr inbounds float, ptr %1195, i64 1
  %1197 = load ptr, ptr %34, align 8, !tbaa !5
  %1198 = load i64, ptr %63, align 8, !tbaa !9
  %1199 = load i64, ptr %63, align 8, !tbaa !9
  %1200 = load i64, ptr %54, align 8, !tbaa !9
  %1201 = mul nsw i64 %1199, %1200
  %1202 = add nsw i64 %1198, %1201
  %1203 = getelementptr inbounds float, ptr %1197, i64 %1202
  %1204 = load ptr, ptr %35, align 8, !tbaa !5
  %1205 = load ptr, ptr %34, align 8, !tbaa !5
  %1206 = load i64, ptr %55, align 8, !tbaa !9
  %1207 = getelementptr inbounds float, ptr %1205, i64 %1206
  %1208 = load ptr, ptr %35, align 8, !tbaa !5
  %1209 = load ptr, ptr %47, align 8, !tbaa !5
  %1210 = load i64, ptr %65, align 8, !tbaa !9
  %1211 = load i64, ptr %66, align 8, !tbaa !9
  %1212 = mul nsw i64 %1210, %1211
  %1213 = add nsw i64 %1212, 1
  %1214 = getelementptr inbounds float, ptr %1209, i64 %1213
  %1215 = load ptr, ptr %46, align 8, !tbaa !5
  %1216 = getelementptr inbounds float, ptr %1215, i64 2
  %1217 = load ptr, ptr %47, align 8, !tbaa !5
  %1218 = load i64, ptr %65, align 8, !tbaa !9
  %1219 = shl i64 %1218, 1
  %1220 = load i64, ptr %66, align 8, !tbaa !9
  %1221 = mul nsw i64 %1219, %1220
  %1222 = add nsw i64 %1221, 1
  %1223 = getelementptr inbounds float, ptr %1217, i64 %1222
  %1224 = load ptr, ptr %49, align 8, !tbaa !5
  %1225 = getelementptr inbounds i64, ptr %1224, i64 1
  %1226 = call i32 @stgsyl_(ptr noundef @.str.4, ptr noundef %70, ptr noundef %66, ptr noundef %65, ptr noundef %1189, ptr noundef %1190, ptr noundef %1193, ptr noundef %1194, ptr noundef %1196, ptr noundef %66, ptr noundef %1203, ptr noundef %1204, ptr noundef %1207, ptr noundef %1208, ptr noundef %1214, ptr noundef %66, ptr noundef %83, ptr noundef %1216, ptr noundef %1223, ptr noundef %60, ptr noundef %1225, ptr noundef %74)
  br label %1279

1227:                                             ; preds = %1172
  %1228 = load ptr, ptr %48, align 8, !tbaa !5
  %1229 = load i64, ptr %1228, align 8, !tbaa !9
  %1230 = load i64, ptr %65, align 8, !tbaa !9
  %1231 = shl i64 %1230, 1
  %1232 = load i64, ptr %66, align 8, !tbaa !9
  %1233 = mul nsw i64 %1231, %1232
  %1234 = sub nsw i64 %1229, %1233
  store i64 %1234, ptr %60, align 8, !tbaa !9
  %1235 = load ptr, ptr %32, align 8, !tbaa !5
  %1236 = load i64, ptr %63, align 8, !tbaa !9
  %1237 = load i64, ptr %63, align 8, !tbaa !9
  %1238 = load i64, ptr %52, align 8, !tbaa !9
  %1239 = mul nsw i64 %1237, %1238
  %1240 = add nsw i64 %1236, %1239
  %1241 = getelementptr inbounds float, ptr %1235, i64 %1240
  %1242 = load ptr, ptr %33, align 8, !tbaa !5
  %1243 = load ptr, ptr %32, align 8, !tbaa !5
  %1244 = load i64, ptr %53, align 8, !tbaa !9
  %1245 = getelementptr inbounds float, ptr %1243, i64 %1244
  %1246 = load ptr, ptr %33, align 8, !tbaa !5
  %1247 = load ptr, ptr %47, align 8, !tbaa !5
  %1248 = getelementptr inbounds float, ptr %1247, i64 1
  %1249 = load ptr, ptr %34, align 8, !tbaa !5
  %1250 = load i64, ptr %63, align 8, !tbaa !9
  %1251 = load i64, ptr %63, align 8, !tbaa !9
  %1252 = load i64, ptr %54, align 8, !tbaa !9
  %1253 = mul nsw i64 %1251, %1252
  %1254 = add nsw i64 %1250, %1253
  %1255 = getelementptr inbounds float, ptr %1249, i64 %1254
  %1256 = load ptr, ptr %35, align 8, !tbaa !5
  %1257 = load ptr, ptr %34, align 8, !tbaa !5
  %1258 = load i64, ptr %55, align 8, !tbaa !9
  %1259 = getelementptr inbounds float, ptr %1257, i64 %1258
  %1260 = load ptr, ptr %35, align 8, !tbaa !5
  %1261 = load ptr, ptr %47, align 8, !tbaa !5
  %1262 = load i64, ptr %65, align 8, !tbaa !9
  %1263 = load i64, ptr %66, align 8, !tbaa !9
  %1264 = mul nsw i64 %1262, %1263
  %1265 = add nsw i64 %1264, 1
  %1266 = getelementptr inbounds float, ptr %1261, i64 %1265
  %1267 = load ptr, ptr %46, align 8, !tbaa !5
  %1268 = getelementptr inbounds float, ptr %1267, i64 2
  %1269 = load ptr, ptr %47, align 8, !tbaa !5
  %1270 = load i64, ptr %65, align 8, !tbaa !9
  %1271 = shl i64 %1270, 1
  %1272 = load i64, ptr %66, align 8, !tbaa !9
  %1273 = mul nsw i64 %1271, %1272
  %1274 = add nsw i64 %1273, 1
  %1275 = getelementptr inbounds float, ptr %1269, i64 %1274
  %1276 = load ptr, ptr %49, align 8, !tbaa !5
  %1277 = getelementptr inbounds i64, ptr %1276, i64 1
  %1278 = call i32 @stgsyl_(ptr noundef @.str.5, ptr noundef %70, ptr noundef %66, ptr noundef %65, ptr noundef %1241, ptr noundef %1242, ptr noundef %1245, ptr noundef %1246, ptr noundef %1248, ptr noundef %66, ptr noundef %1255, ptr noundef %1256, ptr noundef %1259, ptr noundef %1260, ptr noundef %1266, ptr noundef %66, ptr noundef %83, ptr noundef %1268, ptr noundef %1275, ptr noundef %60, ptr noundef %1277, ptr noundef %74)
  br label %1279

1279:                                             ; preds = %1227, %1175
  br label %1157

1280:                                             ; preds = %1157
  %1281 = load float, ptr %83, align 4, !tbaa !11
  %1282 = load ptr, ptr %46, align 8, !tbaa !5
  %1283 = getelementptr inbounds float, ptr %1282, i64 2
  %1284 = load float, ptr %1283, align 4, !tbaa !11
  %1285 = fdiv float %1281, %1284
  %1286 = load ptr, ptr %46, align 8, !tbaa !5
  %1287 = getelementptr inbounds float, ptr %1286, i64 2
  store float %1285, ptr %1287, align 4, !tbaa !11
  br label %1288

1288:                                             ; preds = %1280, %900
  br label %1289

1289:                                             ; preds = %1288, %894
  br label %1290

1290:                                             ; preds = %1289, %705, %606
  store i64 0, ptr %73, align 8, !tbaa !9
  %1291 = load ptr, ptr %31, align 8, !tbaa !5
  %1292 = load i64, ptr %1291, align 8, !tbaa !9
  store i64 %1292, ptr %60, align 8, !tbaa !9
  store i64 1, ptr %64, align 8, !tbaa !9
  br label %1293

1293:                                             ; preds = %1548, %1290
  %1294 = load i64, ptr %64, align 8, !tbaa !9
  %1295 = load i64, ptr %60, align 8, !tbaa !9
  %1296 = icmp sle i64 %1294, %1295
  br i1 %1296, label %1297, label %1551

1297:                                             ; preds = %1293
  %1298 = load i64, ptr %73, align 8, !tbaa !9
  %1299 = icmp ne i64 %1298, 0
  br i1 %1299, label %1300, label %1301

1300:                                             ; preds = %1297
  store i64 0, ptr %73, align 8, !tbaa !9
  br label %1547

1301:                                             ; preds = %1297
  %1302 = load i64, ptr %64, align 8, !tbaa !9
  %1303 = load ptr, ptr %31, align 8, !tbaa !5
  %1304 = load i64, ptr %1303, align 8, !tbaa !9
  %1305 = icmp slt i64 %1302, %1304
  br i1 %1305, label %1306, label %1319

1306:                                             ; preds = %1301
  %1307 = load ptr, ptr %32, align 8, !tbaa !5
  %1308 = load i64, ptr %64, align 8, !tbaa !9
  %1309 = add nsw i64 %1308, 1
  %1310 = load i64, ptr %64, align 8, !tbaa !9
  %1311 = load i64, ptr %52, align 8, !tbaa !9
  %1312 = mul nsw i64 %1310, %1311
  %1313 = add nsw i64 %1309, %1312
  %1314 = getelementptr inbounds float, ptr %1307, i64 %1313
  %1315 = load float, ptr %1314, align 4, !tbaa !11
  %1316 = fcmp une float %1315, 0.000000e+00
  br i1 %1316, label %1317, label %1318

1317:                                             ; preds = %1306
  store i64 1, ptr %73, align 8, !tbaa !9
  br label %1318

1318:                                             ; preds = %1317, %1306
  br label %1319

1319:                                             ; preds = %1318, %1301
  %1320 = load i64, ptr %73, align 8, !tbaa !9
  %1321 = icmp ne i64 %1320, 0
  br i1 %1321, label %1322, label %1445

1322:                                             ; preds = %1319
  %1323 = load ptr, ptr %32, align 8, !tbaa !5
  %1324 = load i64, ptr %64, align 8, !tbaa !9
  %1325 = load i64, ptr %64, align 8, !tbaa !9
  %1326 = load i64, ptr %52, align 8, !tbaa !9
  %1327 = mul nsw i64 %1325, %1326
  %1328 = add nsw i64 %1324, %1327
  %1329 = getelementptr inbounds float, ptr %1323, i64 %1328
  %1330 = load float, ptr %1329, align 4, !tbaa !11
  %1331 = load ptr, ptr %47, align 8, !tbaa !5
  %1332 = getelementptr inbounds float, ptr %1331, i64 1
  store float %1330, ptr %1332, align 4, !tbaa !11
  %1333 = load ptr, ptr %32, align 8, !tbaa !5
  %1334 = load i64, ptr %64, align 8, !tbaa !9
  %1335 = add nsw i64 %1334, 1
  %1336 = load i64, ptr %64, align 8, !tbaa !9
  %1337 = load i64, ptr %52, align 8, !tbaa !9
  %1338 = mul nsw i64 %1336, %1337
  %1339 = add nsw i64 %1335, %1338
  %1340 = getelementptr inbounds float, ptr %1333, i64 %1339
  %1341 = load float, ptr %1340, align 4, !tbaa !11
  %1342 = load ptr, ptr %47, align 8, !tbaa !5
  %1343 = getelementptr inbounds float, ptr %1342, i64 2
  store float %1341, ptr %1343, align 4, !tbaa !11
  %1344 = load ptr, ptr %32, align 8, !tbaa !5
  %1345 = load i64, ptr %64, align 8, !tbaa !9
  %1346 = load i64, ptr %64, align 8, !tbaa !9
  %1347 = add nsw i64 %1346, 1
  %1348 = load i64, ptr %52, align 8, !tbaa !9
  %1349 = mul nsw i64 %1347, %1348
  %1350 = add nsw i64 %1345, %1349
  %1351 = getelementptr inbounds float, ptr %1344, i64 %1350
  %1352 = load float, ptr %1351, align 4, !tbaa !11
  %1353 = load ptr, ptr %47, align 8, !tbaa !5
  %1354 = getelementptr inbounds float, ptr %1353, i64 3
  store float %1352, ptr %1354, align 4, !tbaa !11
  %1355 = load ptr, ptr %32, align 8, !tbaa !5
  %1356 = load i64, ptr %64, align 8, !tbaa !9
  %1357 = add nsw i64 %1356, 1
  %1358 = load i64, ptr %64, align 8, !tbaa !9
  %1359 = add nsw i64 %1358, 1
  %1360 = load i64, ptr %52, align 8, !tbaa !9
  %1361 = mul nsw i64 %1359, %1360
  %1362 = add nsw i64 %1357, %1361
  %1363 = getelementptr inbounds float, ptr %1355, i64 %1362
  %1364 = load float, ptr %1363, align 4, !tbaa !11
  %1365 = load ptr, ptr %47, align 8, !tbaa !5
  %1366 = getelementptr inbounds float, ptr %1365, i64 4
  store float %1364, ptr %1366, align 4, !tbaa !11
  %1367 = load ptr, ptr %34, align 8, !tbaa !5
  %1368 = load i64, ptr %64, align 8, !tbaa !9
  %1369 = load i64, ptr %64, align 8, !tbaa !9
  %1370 = load i64, ptr %54, align 8, !tbaa !9
  %1371 = mul nsw i64 %1369, %1370
  %1372 = add nsw i64 %1368, %1371
  %1373 = getelementptr inbounds float, ptr %1367, i64 %1372
  %1374 = load float, ptr %1373, align 4, !tbaa !11
  %1375 = load ptr, ptr %47, align 8, !tbaa !5
  %1376 = getelementptr inbounds float, ptr %1375, i64 5
  store float %1374, ptr %1376, align 4, !tbaa !11
  %1377 = load ptr, ptr %34, align 8, !tbaa !5
  %1378 = load i64, ptr %64, align 8, !tbaa !9
  %1379 = add nsw i64 %1378, 1
  %1380 = load i64, ptr %64, align 8, !tbaa !9
  %1381 = load i64, ptr %54, align 8, !tbaa !9
  %1382 = mul nsw i64 %1380, %1381
  %1383 = add nsw i64 %1379, %1382
  %1384 = getelementptr inbounds float, ptr %1377, i64 %1383
  %1385 = load float, ptr %1384, align 4, !tbaa !11
  %1386 = load ptr, ptr %47, align 8, !tbaa !5
  %1387 = getelementptr inbounds float, ptr %1386, i64 6
  store float %1385, ptr %1387, align 4, !tbaa !11
  %1388 = load ptr, ptr %34, align 8, !tbaa !5
  %1389 = load i64, ptr %64, align 8, !tbaa !9
  %1390 = load i64, ptr %64, align 8, !tbaa !9
  %1391 = add nsw i64 %1390, 1
  %1392 = load i64, ptr %54, align 8, !tbaa !9
  %1393 = mul nsw i64 %1391, %1392
  %1394 = add nsw i64 %1389, %1393
  %1395 = getelementptr inbounds float, ptr %1388, i64 %1394
  %1396 = load float, ptr %1395, align 4, !tbaa !11
  %1397 = load ptr, ptr %47, align 8, !tbaa !5
  %1398 = getelementptr inbounds float, ptr %1397, i64 7
  store float %1396, ptr %1398, align 4, !tbaa !11
  %1399 = load ptr, ptr %34, align 8, !tbaa !5
  %1400 = load i64, ptr %64, align 8, !tbaa !9
  %1401 = add nsw i64 %1400, 1
  %1402 = load i64, ptr %64, align 8, !tbaa !9
  %1403 = add nsw i64 %1402, 1
  %1404 = load i64, ptr %54, align 8, !tbaa !9
  %1405 = mul nsw i64 %1403, %1404
  %1406 = add nsw i64 %1401, %1405
  %1407 = getelementptr inbounds float, ptr %1399, i64 %1406
  %1408 = load float, ptr %1407, align 4, !tbaa !11
  %1409 = load ptr, ptr %47, align 8, !tbaa !5
  %1410 = getelementptr inbounds float, ptr %1409, i64 8
  store float %1408, ptr %1410, align 4, !tbaa !11
  %1411 = load float, ptr %86, align 4, !tbaa !11
  %1412 = load float, ptr %71, align 4, !tbaa !11
  %1413 = fmul float %1411, %1412
  store float %1413, ptr %62, align 4, !tbaa !11
  %1414 = load ptr, ptr %47, align 8, !tbaa !5
  %1415 = getelementptr inbounds float, ptr %1414, i64 1
  %1416 = load ptr, ptr %47, align 8, !tbaa !5
  %1417 = getelementptr inbounds float, ptr %1416, i64 5
  %1418 = load ptr, ptr %38, align 8, !tbaa !5
  %1419 = load i64, ptr %64, align 8, !tbaa !9
  %1420 = getelementptr inbounds float, ptr %1418, i64 %1419
  %1421 = load ptr, ptr %38, align 8, !tbaa !5
  %1422 = load i64, ptr %64, align 8, !tbaa !9
  %1423 = add nsw i64 %1422, 1
  %1424 = getelementptr inbounds float, ptr %1421, i64 %1423
  %1425 = load ptr, ptr %36, align 8, !tbaa !5
  %1426 = load i64, ptr %64, align 8, !tbaa !9
  %1427 = getelementptr inbounds float, ptr %1425, i64 %1426
  %1428 = load ptr, ptr %36, align 8, !tbaa !5
  %1429 = load i64, ptr %64, align 8, !tbaa !9
  %1430 = add nsw i64 %1429, 1
  %1431 = getelementptr inbounds float, ptr %1428, i64 %1430
  %1432 = load ptr, ptr %37, align 8, !tbaa !5
  %1433 = load i64, ptr %64, align 8, !tbaa !9
  %1434 = getelementptr inbounds float, ptr %1432, i64 %1433
  %1435 = call i32 @slag2_(ptr noundef %1415, ptr noundef @c__2, ptr noundef %1417, ptr noundef @c__2, ptr noundef %62, ptr noundef %1420, ptr noundef %1424, ptr noundef %1427, ptr noundef %1431, ptr noundef %1434)
  %1436 = load ptr, ptr %37, align 8, !tbaa !5
  %1437 = load i64, ptr %64, align 8, !tbaa !9
  %1438 = getelementptr inbounds float, ptr %1436, i64 %1437
  %1439 = load float, ptr %1438, align 4, !tbaa !11
  %1440 = fneg float %1439
  %1441 = load ptr, ptr %37, align 8, !tbaa !5
  %1442 = load i64, ptr %64, align 8, !tbaa !9
  %1443 = add nsw i64 %1442, 1
  %1444 = getelementptr inbounds float, ptr %1441, i64 %1443
  store float %1440, ptr %1444, align 4, !tbaa !11
  br label %1546

1445:                                             ; preds = %1319
  %1446 = load ptr, ptr %34, align 8, !tbaa !5
  %1447 = load i64, ptr %64, align 8, !tbaa !9
  %1448 = load i64, ptr %64, align 8, !tbaa !9
  %1449 = load i64, ptr %54, align 8, !tbaa !9
  %1450 = mul nsw i64 %1448, %1449
  %1451 = add nsw i64 %1447, %1450
  %1452 = getelementptr inbounds float, ptr %1446, i64 %1451
  %1453 = call double @r_sign(ptr noundef @c_b28, ptr noundef %1452)
  %1454 = fcmp olt double %1453, 0.000000e+00
  br i1 %1454, label %1455, label %1520

1455:                                             ; preds = %1445
  %1456 = load ptr, ptr %31, align 8, !tbaa !5
  %1457 = load i64, ptr %1456, align 8, !tbaa !9
  store i64 %1457, ptr %61, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %1458

1458:                                             ; preds = %1516, %1455
  %1459 = load i64, ptr %63, align 8, !tbaa !9
  %1460 = load i64, ptr %61, align 8, !tbaa !9
  %1461 = icmp sle i64 %1459, %1460
  br i1 %1461, label %1462, label %1519

1462:                                             ; preds = %1458
  %1463 = load ptr, ptr %32, align 8, !tbaa !5
  %1464 = load i64, ptr %64, align 8, !tbaa !9
  %1465 = load i64, ptr %63, align 8, !tbaa !9
  %1466 = load i64, ptr %52, align 8, !tbaa !9
  %1467 = mul nsw i64 %1465, %1466
  %1468 = add nsw i64 %1464, %1467
  %1469 = getelementptr inbounds float, ptr %1463, i64 %1468
  %1470 = load float, ptr %1469, align 4, !tbaa !11
  %1471 = fneg float %1470
  %1472 = load ptr, ptr %32, align 8, !tbaa !5
  %1473 = load i64, ptr %64, align 8, !tbaa !9
  %1474 = load i64, ptr %63, align 8, !tbaa !9
  %1475 = load i64, ptr %52, align 8, !tbaa !9
  %1476 = mul nsw i64 %1474, %1475
  %1477 = add nsw i64 %1473, %1476
  %1478 = getelementptr inbounds float, ptr %1472, i64 %1477
  store float %1471, ptr %1478, align 4, !tbaa !11
  %1479 = load ptr, ptr %34, align 8, !tbaa !5
  %1480 = load i64, ptr %64, align 8, !tbaa !9
  %1481 = load i64, ptr %63, align 8, !tbaa !9
  %1482 = load i64, ptr %54, align 8, !tbaa !9
  %1483 = mul nsw i64 %1481, %1482
  %1484 = add nsw i64 %1480, %1483
  %1485 = getelementptr inbounds float, ptr %1479, i64 %1484
  %1486 = load float, ptr %1485, align 4, !tbaa !11
  %1487 = fneg float %1486
  %1488 = load ptr, ptr %34, align 8, !tbaa !5
  %1489 = load i64, ptr %64, align 8, !tbaa !9
  %1490 = load i64, ptr %63, align 8, !tbaa !9
  %1491 = load i64, ptr %54, align 8, !tbaa !9
  %1492 = mul nsw i64 %1490, %1491
  %1493 = add nsw i64 %1489, %1492
  %1494 = getelementptr inbounds float, ptr %1488, i64 %1493
  store float %1487, ptr %1494, align 4, !tbaa !11
  %1495 = load ptr, ptr %28, align 8, !tbaa !5
  %1496 = load i64, ptr %1495, align 8, !tbaa !9
  %1497 = icmp ne i64 %1496, 0
  br i1 %1497, label %1498, label %1515

1498:                                             ; preds = %1462
  %1499 = load ptr, ptr %39, align 8, !tbaa !5
  %1500 = load i64, ptr %63, align 8, !tbaa !9
  %1501 = load i64, ptr %64, align 8, !tbaa !9
  %1502 = load i64, ptr %56, align 8, !tbaa !9
  %1503 = mul nsw i64 %1501, %1502
  %1504 = add nsw i64 %1500, %1503
  %1505 = getelementptr inbounds float, ptr %1499, i64 %1504
  %1506 = load float, ptr %1505, align 4, !tbaa !11
  %1507 = fneg float %1506
  %1508 = load ptr, ptr %39, align 8, !tbaa !5
  %1509 = load i64, ptr %63, align 8, !tbaa !9
  %1510 = load i64, ptr %64, align 8, !tbaa !9
  %1511 = load i64, ptr %56, align 8, !tbaa !9
  %1512 = mul nsw i64 %1510, %1511
  %1513 = add nsw i64 %1509, %1512
  %1514 = getelementptr inbounds float, ptr %1508, i64 %1513
  store float %1507, ptr %1514, align 4, !tbaa !11
  br label %1515

1515:                                             ; preds = %1498, %1462
  br label %1516

1516:                                             ; preds = %1515
  %1517 = load i64, ptr %63, align 8, !tbaa !9
  %1518 = add nsw i64 %1517, 1
  store i64 %1518, ptr %63, align 8, !tbaa !9
  br label %1458, !llvm.loop !17

1519:                                             ; preds = %1458
  br label %1520

1520:                                             ; preds = %1519, %1445
  %1521 = load ptr, ptr %32, align 8, !tbaa !5
  %1522 = load i64, ptr %64, align 8, !tbaa !9
  %1523 = load i64, ptr %64, align 8, !tbaa !9
  %1524 = load i64, ptr %52, align 8, !tbaa !9
  %1525 = mul nsw i64 %1523, %1524
  %1526 = add nsw i64 %1522, %1525
  %1527 = getelementptr inbounds float, ptr %1521, i64 %1526
  %1528 = load float, ptr %1527, align 4, !tbaa !11
  %1529 = load ptr, ptr %36, align 8, !tbaa !5
  %1530 = load i64, ptr %64, align 8, !tbaa !9
  %1531 = getelementptr inbounds float, ptr %1529, i64 %1530
  store float %1528, ptr %1531, align 4, !tbaa !11
  %1532 = load ptr, ptr %37, align 8, !tbaa !5
  %1533 = load i64, ptr %64, align 8, !tbaa !9
  %1534 = getelementptr inbounds float, ptr %1532, i64 %1533
  store float 0.000000e+00, ptr %1534, align 4, !tbaa !11
  %1535 = load ptr, ptr %34, align 8, !tbaa !5
  %1536 = load i64, ptr %64, align 8, !tbaa !9
  %1537 = load i64, ptr %64, align 8, !tbaa !9
  %1538 = load i64, ptr %54, align 8, !tbaa !9
  %1539 = mul nsw i64 %1537, %1538
  %1540 = add nsw i64 %1536, %1539
  %1541 = getelementptr inbounds float, ptr %1535, i64 %1540
  %1542 = load float, ptr %1541, align 4, !tbaa !11
  %1543 = load ptr, ptr %38, align 8, !tbaa !5
  %1544 = load i64, ptr %64, align 8, !tbaa !9
  %1545 = getelementptr inbounds float, ptr %1543, i64 %1544
  store float %1542, ptr %1545, align 4, !tbaa !11
  br label %1546

1546:                                             ; preds = %1520, %1322
  br label %1547

1547:                                             ; preds = %1546, %1300
  br label %1548

1548:                                             ; preds = %1547
  %1549 = load i64, ptr %64, align 8, !tbaa !9
  %1550 = add nsw i64 %1549, 1
  store i64 %1550, ptr %64, align 8, !tbaa !9
  br label %1293, !llvm.loop !18

1551:                                             ; preds = %1293
  %1552 = load i64, ptr %79, align 8, !tbaa !9
  %1553 = sitofp i64 %1552 to float
  %1554 = load ptr, ptr %47, align 8, !tbaa !5
  %1555 = getelementptr inbounds float, ptr %1554, i64 1
  store float %1553, ptr %1555, align 4, !tbaa !11
  %1556 = load i64, ptr %85, align 8, !tbaa !9
  %1557 = load ptr, ptr %49, align 8, !tbaa !5
  %1558 = getelementptr inbounds i64, ptr %1557, i64 1
  store i64 %1556, ptr %1558, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %88, align 4
  br label %1559

1559:                                             ; preds = %1551, %543, %535, %233
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  %1560 = load i32, ptr %26, align 4
  ret i32 %1560
}

; 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) #2

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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


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

@.str = external hidden unnamed_addr constant [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 i64, align 8
@.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 i64, align 8
@c_b28 = external hidden global float, align 4

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @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 i64, align 8
  %27 = alloca float, align 4
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca float, align 4
  %37 = alloca [3 x i64], align 16
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 24, 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 -8
  %41 = load i64, ptr %6, align 8, !tbaa !5
  %42 = xor i64 %41, -1
  %43 = getelementptr inbounds float, ptr %5, i64 %42
  %44 = load i64, ptr %8, align 8, !tbaa !5
  %45 = xor i64 %44, -1
  %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 i64, ptr %13, align 8, !tbaa !5
  %51 = xor i64 %50, -1
  %52 = getelementptr inbounds float, ptr %12, i64 %51
  store i64 0, ptr %24, align 8, !tbaa !5
  %53 = load i64, ptr %21, align 8, !tbaa !5
  %54 = icmp eq i64 %53, -1
  br i1 %54, label %58, label %55

55:                                               ; preds = %25
  %56 = load i64, ptr %23, align 8, !tbaa !5
  %57 = icmp eq i64 %56, -1
  br label %58

58:                                               ; preds = %55, %25
  %59 = phi i1 [ true, %25 ], [ %57, %55 ]
  %60 = load i64, ptr %0, align 8, !tbaa !5
  %or.cond574 = icmp ugt i64 %60, 5
  br i1 %or.cond574, label %.thread, label %61

61:                                               ; preds = %58
  %62 = load i64, ptr %4, align 8, !tbaa !5
  %63 = icmp slt i64 %62, 0
  br i1 %63, label %.thread, label %64

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

67:                                               ; preds = %64
  %68 = load i64, ptr %8, align 8, !tbaa !5
  %69 = icmp slt i64 %68, %spec.select
  br i1 %69, label %.thread, label %70

70:                                               ; preds = %67
  %71 = load i64, ptr %13, align 8, !tbaa !5
  %72 = icmp slt i64 %71, 1
  br i1 %72, label %.thread, label %73

73:                                               ; preds = %70
  %74 = load i64, ptr %1, align 8, !tbaa !5
  %.not = icmp ne i64 %74, 0
  %75 = icmp ult i64 %71, %62
  %or.cond585 = and i1 %75, %.not
  br i1 %or.cond585, label %.thread, label %76

76:                                               ; preds = %73
  %77 = load i64, ptr %15, align 8, !tbaa !5
  %78 = icmp slt i64 %77, 1
  br i1 %78, label %.thread, label %79

79:                                               ; preds = %76
  %80 = load i64, ptr %2, align 8, !tbaa !5
  %.not548 = icmp ne i64 %80, 0
  %81 = icmp ult i64 %77, %62
  %or.cond586 = and i1 %81, %.not548
  br i1 %or.cond586, label %.thread, label %83

.thread:                                          ; preds = %76, %79, %70, %73, %67, %64, %61, %58
  %.sink = phi i64 [ -1, %58 ], [ -5, %61 ], [ -7, %64 ], [ -9, %67 ], [ -14, %73 ], [ -14, %70 ], [ -16, %79 ], [ -16, %76 ]
  %.neg = phi i64 [ 1, %58 ], [ 5, %61 ], [ 7, %64 ], [ 9, %67 ], [ 14, %73 ], [ 14, %70 ], [ 16, %79 ], [ 16, %76 ]
  store i64 %.sink, ptr %24, align 8, !tbaa !5
  store i64 %.neg, ptr %26, align 8, !tbaa !5
  %82 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %26) #5
  br label %555

83:                                               ; preds = %79
  %84 = tail call double @slamch_(ptr noundef nonnull @.str.1) #5
  %85 = fptrunc double %84 to float
  %86 = tail call double @slamch_(ptr noundef nonnull @.str.2) #5
  %87 = fpext float %85 to double
  %88 = fdiv double %86, %87
  %89 = fptrunc double %88 to float
  store i64 0, ptr %35, align 8, !tbaa !5
  %90 = load i64, ptr %0, align 8, !tbaa !5
  %91 = icmp eq i64 %90, 1
  %92 = icmp sgt i64 %90, 3
  %spec.select576 = or i1 %91, %92
  store i64 0, ptr %16, align 8, !tbaa !5
  %93 = load i64, ptr %4, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %43, i64 4
  %.not550589 = icmp slt i64 %93, 1
  br i1 %.not550589, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %83, %114
  %94 = phi i64 [ %115, %114 ], [ 0, %83 ]
  %.0526592 = phi i64 [ %.1, %114 ], [ 0, %83 ]
  %.0527590 = phi i64 [ %116, %114 ], [ 1, %83 ]
  %.not569 = icmp eq i64 %.0526592, 0
  br i1 %.not569, label %95, label %114

95:                                               ; preds = %.lr.ph
  %96 = load i64, ptr %4, align 8, !tbaa !5
  %97 = icmp slt i64 %.0527590, %96
  br i1 %97, label %98, label %110

98:                                               ; preds = %95
  %99 = mul nsw i64 %.0527590, %41
  %gep = getelementptr float, ptr %invariant.gep, i64 %.0527590
  %100 = getelementptr float, ptr %gep, i64 %99
  %101 = load float, ptr %100, align 4, !tbaa !9
  %102 = fcmp oeq float %101, 0.000000e+00
  %103 = getelementptr inbounds i64, ptr %40, i64 %.0527590
  %104 = load i64, ptr %103, align 8, !tbaa !5
  %.not573 = icmp eq i64 %104, 0
  br i1 %102, label %105, label %106

105:                                              ; preds = %98
  br i1 %.not573, label %114, label %.sink.split

106:                                              ; preds = %98
  br i1 %.not573, label %107, label %.sink.split

107:                                              ; preds = %106
  %108 = getelementptr i64, ptr %3, i64 %.0527590
  %109 = load i64, ptr %108, align 8, !tbaa !5
  %.not572 = icmp eq i64 %109, 0
  br i1 %.not572, label %114, label %.sink.split

110:                                              ; preds = %95
  %111 = getelementptr inbounds i64, ptr %40, i64 %96
  %112 = load i64, ptr %111, align 8, !tbaa !5
  %.not570 = icmp eq i64 %112, 0
  br i1 %.not570, label %114, label %.sink.split

.sink.split:                                      ; preds = %110, %106, %107, %105
  %.sink634 = phi i64 [ 1, %105 ], [ 2, %107 ], [ 2, %106 ], [ 1, %110 ]
  %.1.ph = phi i64 [ 0, %105 ], [ 1, %107 ], [ 1, %106 ], [ 0, %110 ]
  %113 = add nsw i64 %94, %.sink634
  store i64 %113, ptr %16, align 8, !tbaa !5
  br label %114

114:                                              ; preds = %.sink.split, %.lr.ph, %110, %105, %107
  %115 = phi i64 [ %94, %105 ], [ %94, %107 ], [ %94, %110 ], [ %94, %.lr.ph ], [ %113, %.sink.split ]
  %.1 = phi i64 [ 0, %105 ], [ 1, %107 ], [ 0, %110 ], [ 0, %.lr.ph ], [ %.1.ph, %.sink.split ]
  %116 = add nuw i64 %.0527590, 1
  %exitcond.not = icmp eq i64 %.0527590, %93
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !11

._crit_edge:                                      ; preds = %114, %83
  %117 = phi i64 [ 0, %83 ], [ %115, %114 ]
  %118 = load i64, ptr %0, align 8, !tbaa !5
  switch i64 %118, label %147 [
    i64 1, label %119
    i64 2, label %119
    i64 4, label %119
    i64 3, label %132
    i64 5, label %132
  ]

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

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

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

153:                                              ; preds = %132, %147, %119
  %.0524 = phi i64 [ %128, %119 ], [ %141, %132 ], [ %152, %147 ]
  %.0523 = phi i64 [ %131, %119 ], [ %146, %132 ], [ 1, %147 ]
  %154 = sitofp i64 %.0524 to float
  store float %154, ptr %20, align 4, !tbaa !9
  store i64 %.0523, ptr %22, align 8, !tbaa !5
  %155 = load i64, ptr %21, align 8, !tbaa !5
  %156 = icmp sge i64 %155, %.0524
  %or.cond = select i1 %156, i1 true, i1 %59
  br i1 %or.cond, label %157, label %.thread583.sink.split

157:                                              ; preds = %153
  %158 = load i64, ptr %23, align 8, !tbaa !5
  %159 = icmp sge i64 %158, %.0523
  %or.cond3 = select i1 %159, i1 true, i1 %59
  br i1 %or.cond3, label %160, label %.thread583.sink.split

160:                                              ; preds = %157
  %.pr580 = load i64, ptr %24, align 8, !tbaa !5
  %.not554 = icmp eq i64 %.pr580, 0
  br i1 %.not554, label %164, label %.thread583

.thread583.sink.split:                            ; preds = %157, %153
  %.sink635 = phi i64 [ -22, %153 ], [ -24, %157 ]
  store i64 %.sink635, ptr %24, align 8, !tbaa !5
  br label %.thread583

.thread583:                                       ; preds = %.thread583.sink.split, %160
  %161 = phi i64 [ %.pr580, %160 ], [ %.sink635, %.thread583.sink.split ]
  %162 = sub nsw i64 0, %161
  store i64 %162, ptr %26, align 8, !tbaa !5
  %163 = call i32 @xerbla_(ptr noundef nonnull @.str, ptr noundef nonnull %26) #5
  br label %555

164:                                              ; preds = %160
  br i1 %59, label %555, label %165

165:                                              ; preds = %164
  %166 = load i64, ptr %16, align 8, !tbaa !5
  %167 = load i64, ptr %4, align 8, !tbaa !5
  %168 = icmp eq i64 %166, %167
  %169 = icmp eq i64 %166, 0
  %or.cond577 = or i1 %169, %168
  br i1 %or.cond577, label %170, label %188

170:                                              ; preds = %165
  br i1 %spec.select576, label %171, label %172

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

172:                                              ; preds = %171, %170
  %.off = add i64 %90, -2
  %switch = icmp ult i64 %.off, 4
  br i1 %switch, label %173, label %417

173:                                              ; preds = %172
  store float 0.000000e+00, ptr %38, align 4, !tbaa !9
  store float 1.000000e+00, ptr %36, align 4, !tbaa !9
  store i64 %167, ptr %26, align 8, !tbaa !5
  %invariant.gep605 = getelementptr i8, ptr %46, i64 4
  %.not563607 = icmp slt i64 %167, 1
  br i1 %.not563607, label %._crit_edge611, label %.lr.ph610

.lr.ph610:                                        ; preds = %173, %.lr.ph610
  %.0530608 = phi i64 [ %178, %.lr.ph610 ], [ 1, %173 ]
  %174 = mul nsw i64 %.0530608, %41
  %gep604 = getelementptr float, ptr %invariant.gep, i64 %174
  %175 = call i32 @slassq_(ptr noundef nonnull %4, ptr noundef %gep604, ptr noundef nonnull @c__1, ptr noundef nonnull %38, ptr noundef nonnull %36) #5
  %176 = mul nsw i64 %.0530608, %44
  %gep606 = getelementptr float, ptr %invariant.gep605, i64 %176
  %177 = call i32 @slassq_(ptr noundef nonnull %4, ptr noundef %gep606, ptr noundef nonnull @c__1, ptr noundef nonnull %38, ptr noundef nonnull %36) #5
  %178 = add nuw nsw i64 %.0530608, 1
  %179 = load i64, ptr %26, align 8, !tbaa !5
  %.not563.not = icmp slt i64 %.0530608, %179
  br i1 %.not563.not, label %.lr.ph610, label %._crit_edge611.loopexit, !llvm.loop !13

._crit_edge611.loopexit:                          ; preds = %.lr.ph610
  %.pre630 = load float, ptr %38, align 4, !tbaa !9
  %.pre631 = load float, ptr %36, align 4, !tbaa !9
  %180 = fpext float %.pre630 to double
  %181 = fpext float %.pre631 to double
  br label %._crit_edge611

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

188:                                              ; preds = %165
  store i64 0, ptr %31, align 8, !tbaa !5
  store i64 %167, ptr %26, align 8, !tbaa !5
  %.not555595 = icmp slt i64 %167, 1
  br i1 %.not555595, label %._crit_edge602, label %.lr.ph601

.lr.ph601:                                        ; preds = %188, %225
  %189 = phi i64 [ %226, %225 ], [ 0, %188 ]
  %.2599 = phi i64 [ %.4, %225 ], [ 0, %188 ]
  %.1528596 = phi i64 [ %227, %225 ], [ 1, %188 ]
  %.not558 = icmp eq i64 %.2599, 0
  br i1 %.not558, label %190, label %225

190:                                              ; preds = %.lr.ph601
  %191 = getelementptr inbounds i64, ptr %40, i64 %.1528596
  %192 = load i64, ptr %191, align 8, !tbaa !5
  %193 = load i64, ptr %4, align 8, !tbaa !5
  %194 = icmp slt i64 %.1528596, %193
  br i1 %194, label %195, label %208

195:                                              ; preds = %190
  %196 = mul nsw i64 %.1528596, %41
  %gep594 = getelementptr float, ptr %invariant.gep, i64 %.1528596
  %197 = getelementptr float, ptr %gep594, i64 %196
  %198 = load float, ptr %197, align 4, !tbaa !9
  %199 = fcmp une float %198, 0.000000e+00
  br i1 %199, label %200, label %208

200:                                              ; preds = %195
  %.not559 = icmp eq i64 %192, 0
  br i1 %.not559, label %201, label %205

201:                                              ; preds = %200
  %202 = getelementptr i64, ptr %3, i64 %.1528596
  %203 = load i64, ptr %202, align 8, !tbaa !5
  %204 = icmp ne i64 %203, 0
  br label %205

205:                                              ; preds = %201, %200
  %206 = phi i1 [ true, %200 ], [ %204, %201 ]
  %207 = zext i1 %206 to i64
  br label %208

208:                                              ; preds = %195, %205, %190
  %.not562 = phi i1 [ false, %205 ], [ true, %195 ], [ true, %190 ]
  %.3 = phi i64 [ 1, %205 ], [ 0, %195 ], [ 0, %190 ]
  %.0525 = phi i64 [ %207, %205 ], [ %192, %195 ], [ %192, %190 ]
  %.not560 = icmp eq i64 %.0525, 0
  br i1 %.not560, label %225, label %209

209:                                              ; preds = %208
  %210 = load i64, ptr %31, align 8, !tbaa !5
  %211 = add nsw i64 %210, 1
  store i64 %211, ptr %31, align 8, !tbaa !5
  store i64 %.1528596, ptr %30, align 8, !tbaa !5
  %.not561 = icmp eq i64 %.1528596, %211
  br i1 %.not561, label %214, label %212

212:                                              ; preds = %209
  %213 = call i32 @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 %30, ptr noundef nonnull %31, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %35) #5
  %.pre = load i64, ptr %35, align 8, !tbaa !5
  br label %214

214:                                              ; preds = %212, %209
  %215 = phi i64 [ %.pre, %212 ], [ %189, %209 ]
  %216 = icmp sgt i64 %215, 0
  br i1 %216, label %217, label %221

217:                                              ; preds = %214
  store i64 1, ptr %24, align 8, !tbaa !5
  br i1 %spec.select576, label %218, label %219

218:                                              ; preds = %217
  store float 0.000000e+00, ptr %17, align 4, !tbaa !9
  store float 0.000000e+00, ptr %18, align 4, !tbaa !9
  br label %219

219:                                              ; preds = %218, %217
  %.off587 = add i64 %90, -2
  %switch588 = icmp ult i64 %.off587, 4
  br i1 %switch588, label %220, label %417

220:                                              ; preds = %219
  store <2 x float> zeroinitializer, ptr %19, align 4, !tbaa !9
  br label %417

221:                                              ; preds = %214
  br i1 %.not562, label %225, label %222

222:                                              ; preds = %221
  %223 = load i64, ptr %31, align 8, !tbaa !5
  %224 = add nsw i64 %223, 1
  store i64 %224, ptr %31, align 8, !tbaa !5
  br label %225

225:                                              ; preds = %.lr.ph601, %221, %222, %208
  %226 = phi i64 [ %215, %222 ], [ %215, %221 ], [ %189, %208 ], [ %189, %.lr.ph601 ]
  %.4 = phi i64 [ 1, %222 ], [ 0, %221 ], [ %.3, %208 ], [ 0, %.lr.ph601 ]
  %227 = add nuw nsw i64 %.1528596, 1
  %228 = load i64, ptr %26, align 8, !tbaa !5
  %.not555.not = icmp slt i64 %.1528596, %228
  br i1 %.not555.not, label %.lr.ph601, label %._crit_edge602, !llvm.loop !14

._crit_edge602:                                   ; preds = %225, %188
  br i1 %spec.select576, label %229, label %314

229:                                              ; preds = %._crit_edge602
  %230 = load i64, ptr %16, align 8, !tbaa !5
  store i64 %230, ptr %28, align 8, !tbaa !5
  %231 = load i64, ptr %4, align 8, !tbaa !5
  %232 = sub nsw i64 %231, %230
  store i64 %232, ptr %29, align 8, !tbaa !5
  %233 = add nsw i64 %230, 1
  store i64 0, ptr %33, align 8, !tbaa !5
  %234 = mul nsw i64 %233, %41
  %235 = getelementptr float, ptr %43, i64 %234
  %236 = getelementptr i8, ptr %235, i64 4
  %237 = call i32 @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef %236, ptr noundef nonnull %6, ptr noundef nonnull %20, ptr noundef nonnull %28) #5
  %238 = mul nsw i64 %233, %44
  %239 = getelementptr float, ptr %46, i64 %238
  %240 = getelementptr i8, ptr %239, i64 4
  %241 = load i64, ptr %28, align 8, !tbaa !5
  %242 = load i64, ptr %29, align 8, !tbaa !5
  %243 = mul nsw i64 %242, %241
  %244 = getelementptr float, ptr %20, i64 %243
  %245 = call i32 @slacpy_(ptr noundef nonnull @.str.3, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef %240, ptr noundef nonnull %8, ptr noundef %244, ptr noundef nonnull %28) #5
  %246 = load i64, ptr %21, align 8, !tbaa !5
  %247 = load i64, ptr %28, align 8, !tbaa !5
  %248 = shl i64 %247, 1
  %249 = load i64, ptr %29, align 8, !tbaa !5
  %250 = mul nsw i64 %248, %249
  %251 = sub nsw i64 %246, %250
  store i64 %251, ptr %26, align 8, !tbaa !5
  %252 = getelementptr float, ptr %43, i64 %233
  %253 = getelementptr float, ptr %252, i64 %234
  %254 = getelementptr float, ptr %46, i64 %233
  %255 = getelementptr float, ptr %254, i64 %238
  %256 = mul nsw i64 %249, %247
  %257 = getelementptr float, ptr %20, i64 %256
  %.idx = shl i64 %256, 3
  %258 = getelementptr i8, ptr %20, i64 %.idx
  %259 = call i32 @stgsyl_(ptr noundef nonnull @.str.4, ptr noundef nonnull %33, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %253, ptr noundef nonnull %6, ptr noundef nonnull %20, ptr noundef nonnull %28, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %255, ptr noundef nonnull %8, ptr noundef %257, ptr noundef nonnull %28, ptr noundef nonnull %38, ptr noundef %19, ptr noundef %258, ptr noundef nonnull %26, ptr noundef nonnull %22, ptr noundef nonnull %35) #5
  store float 0.000000e+00, ptr %39, align 4, !tbaa !9
  store float 1.000000e+00, ptr %36, align 4, !tbaa !9
  %260 = load i64, ptr %28, align 8, !tbaa !5
  %261 = load i64, ptr %29, align 8, !tbaa !5
  %262 = mul nsw i64 %261, %260
  store i64 %262, ptr %26, align 8, !tbaa !5
  %263 = call i32 @slassq_(ptr noundef nonnull %26, ptr noundef nonnull %20, ptr noundef nonnull @c__1, ptr noundef nonnull %39, ptr noundef nonnull %36) #5
  %264 = load float, ptr %39, align 4, !tbaa !9
  %265 = fpext float %264 to double
  %266 = load float, ptr %36, align 4, !tbaa !9
  %267 = fpext float %266 to double
  %268 = call double @sqrt(double noundef %267) #5
  %269 = fmul double %268, %265
  %270 = fptrunc double %269 to float
  store float %270, ptr %17, align 4, !tbaa !9
  %271 = fcmp oeq float %270, 0.000000e+00
  br i1 %271, label %286, label %272

272:                                              ; preds = %229
  %273 = load float, ptr %38, align 4, !tbaa !9
  %274 = fpext float %273 to double
  %275 = fmul float %273, %273
  %276 = fdiv float %275, %270
  %277 = fadd float %276, %270
  %278 = fpext float %277 to double
  %279 = call double @sqrt(double noundef %278) #5
  %280 = load float, ptr %17, align 4, !tbaa !9
  %281 = fpext float %280 to double
  %282 = call double @sqrt(double noundef %281) #5
  %283 = fmul double %279, %282
  %284 = fdiv double %274, %283
  %285 = fptrunc double %284 to float
  br label %286

286:                                              ; preds = %229, %272
  %storemerge = phi float [ %285, %272 ], [ 1.000000e+00, %229 ]
  store float %storemerge, ptr %17, align 4, !tbaa !9
  store float 0.000000e+00, ptr %39, align 4, !tbaa !9
  store float 1.000000e+00, ptr %36, align 4, !tbaa !9
  %287 = load i64, ptr %28, align 8, !tbaa !5
  %288 = load i64, ptr %29, align 8, !tbaa !5
  %289 = mul nsw i64 %288, %287
  store i64 %289, ptr %26, align 8, !tbaa !5
  %290 = getelementptr float, ptr %20, i64 %289
  %291 = call i32 @slassq_(ptr noundef nonnull %26, ptr noundef %290, ptr noundef nonnull @c__1, ptr noundef nonnull %39, ptr noundef nonnull %36) #5
  %292 = load float, ptr %39, align 4, !tbaa !9
  %293 = fpext float %292 to double
  %294 = load float, ptr %36, align 4, !tbaa !9
  %295 = fpext float %294 to double
  %296 = call double @sqrt(double noundef %295) #5
  %297 = fmul double %296, %293
  %298 = fptrunc double %297 to float
  store float %298, ptr %18, align 4, !tbaa !9
  %299 = fcmp oeq float %298, 0.000000e+00
  br i1 %299, label %.sink.split636, label %300

300:                                              ; preds = %286
  %301 = load float, ptr %38, align 4, !tbaa !9
  %302 = fpext float %301 to double
  %303 = fmul float %301, %301
  %304 = fdiv float %303, %298
  %305 = fadd float %304, %298
  %306 = fpext float %305 to double
  %307 = call double @sqrt(double noundef %306) #5
  %308 = load float, ptr %18, align 4, !tbaa !9
  %309 = fpext float %308 to double
  %310 = call double @sqrt(double noundef %309) #5
  %311 = fmul double %307, %310
  %312 = fdiv double %302, %311
  %313 = fptrunc double %312 to float
  br label %.sink.split636

.sink.split636:                                   ; preds = %286, %300
  %.sink637 = phi float [ %313, %300 ], [ 1.000000e+00, %286 ]
  store float %.sink637, ptr %18, align 4, !tbaa !9
  br label %314

314:                                              ; preds = %.sink.split636, %._crit_edge602
  switch i64 %90, label %417 [
    i64 4, label %315
    i64 2, label %315
    i64 3, label %345
    i64 5, label %345
  ]

315:                                              ; preds = %314, %314
  %316 = load i64, ptr %16, align 8, !tbaa !5
  store i64 %316, ptr %28, align 8, !tbaa !5
  %317 = load i64, ptr %4, align 8, !tbaa !5
  %318 = sub nsw i64 %317, %316
  store i64 %318, ptr %29, align 8, !tbaa !5
  %319 = add nsw i64 %316, 1
  store i64 3, ptr %33, align 8, !tbaa !5
  %320 = load i64, ptr %21, align 8, !tbaa !5
  %321 = shl i64 %316, 1
  %322 = mul nsw i64 %318, %321
  %323 = sub nsw i64 %320, %322
  store i64 %323, ptr %26, align 8, !tbaa !5
  %324 = add i64 %41, 1
  %325 = mul i64 %319, %324
  %326 = getelementptr inbounds float, ptr %43, i64 %325
  %327 = add i64 %44, 1
  %328 = mul i64 %319, %327
  %329 = getelementptr inbounds float, ptr %46, i64 %328
  %330 = mul nsw i64 %318, %316
  %331 = getelementptr float, ptr %20, i64 %330
  %332 = getelementptr float, ptr %20, i64 %322
  %333 = call i32 @stgsyl_(ptr noundef nonnull @.str.4, ptr noundef nonnull %33, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %326, ptr noundef nonnull %6, ptr noundef nonnull %20, ptr noundef nonnull %28, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %329, ptr noundef nonnull %8, ptr noundef %331, ptr noundef nonnull %28, ptr noundef nonnull %38, ptr noundef %19, ptr noundef %332, ptr noundef nonnull %26, ptr noundef nonnull %22, ptr noundef nonnull %35) #5
  %334 = load i64, ptr %21, align 8, !tbaa !5
  %335 = load i64, ptr %28, align 8, !tbaa !5
  %336 = shl i64 %335, 1
  %337 = load i64, ptr %29, align 8, !tbaa !5
  %338 = mul nsw i64 %336, %337
  %339 = sub nsw i64 %334, %338
  store i64 %339, ptr %26, align 8, !tbaa !5
  %340 = mul nsw i64 %337, %335
  %341 = getelementptr float, ptr %20, i64 %340
  %342 = getelementptr inbounds i8, ptr %19, i64 4
  %343 = getelementptr float, ptr %20, i64 %338
  %344 = call i32 @stgsyl_(ptr noundef nonnull @.str.4, ptr noundef nonnull %33, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef %326, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %20, ptr noundef nonnull %29, ptr noundef %329, ptr noundef nonnull %8, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %341, ptr noundef nonnull %29, ptr noundef nonnull %38, ptr noundef nonnull %342, ptr noundef %343, ptr noundef nonnull %26, ptr noundef nonnull %22, ptr noundef nonnull %35) #5
  br label %417

345:                                              ; preds = %314, %314
  store i64 0, ptr %34, align 8, !tbaa !5
  %346 = load i64, ptr %16, align 8, !tbaa !5
  store i64 %346, ptr %28, align 8, !tbaa !5
  %347 = load i64, ptr %4, align 8, !tbaa !5
  %348 = sub nsw i64 %347, %346
  store i64 %348, ptr %29, align 8, !tbaa !5
  %349 = add nsw i64 %346, 1
  store i64 0, ptr %33, align 8, !tbaa !5
  %350 = shl i64 %346, 1
  %351 = mul nsw i64 %350, %348
  store i64 %351, ptr %32, align 8, !tbaa !5
  %352 = add i64 %41, 1
  %353 = mul i64 %349, %352
  %354 = getelementptr inbounds float, ptr %43, i64 %353
  %355 = add i64 %44, 1
  %356 = mul i64 %349, %355
  %357 = getelementptr inbounds float, ptr %46, i64 %356
  br label %358

358:                                              ; preds = %379, %345
  %359 = phi i64 [ %.pre629, %379 ], [ %351, %345 ]
  %360 = getelementptr float, ptr %20, i64 %359
  %361 = call i32 @slacn2_(ptr noundef nonnull %32, ptr noundef %360, ptr noundef nonnull %20, ptr noundef nonnull %22, ptr noundef %19, ptr noundef nonnull %34, ptr noundef nonnull %37) #5
  %362 = load i64, ptr %34, align 8, !tbaa !5
  switch i64 %362, label %371 [
    i64 0, label %383
    i64 1, label %363
  ]

363:                                              ; preds = %358
  %364 = load i64, ptr %21, align 8, !tbaa !5
  %365 = load i64, ptr %28, align 8, !tbaa !5
  %366 = shl i64 %365, 1
  %367 = load i64, ptr %29, align 8, !tbaa !5
  %368 = mul nsw i64 %366, %367
  %369 = sub nsw i64 %364, %368
  store i64 %369, ptr %26, align 8, !tbaa !5
  %370 = mul nsw i64 %367, %365
  br label %379

371:                                              ; preds = %358
  %372 = load i64, ptr %21, align 8, !tbaa !5
  %373 = load i64, ptr %28, align 8, !tbaa !5
  %374 = shl i64 %373, 1
  %375 = load i64, ptr %29, align 8, !tbaa !5
  %376 = mul nsw i64 %374, %375
  %377 = sub nsw i64 %372, %376
  store i64 %377, ptr %26, align 8, !tbaa !5
  %378 = mul nsw i64 %375, %373
  br label %379

379:                                              ; preds = %371, %363
  %.sink641 = phi i64 [ %378, %371 ], [ %370, %363 ]
  %.sink640 = phi i64 [ %376, %371 ], [ %368, %363 ]
  %.str.5.sink = phi ptr [ @.str.5, %371 ], [ @.str.4, %363 ]
  %380 = getelementptr float, ptr %20, i64 %.sink641
  %381 = getelementptr float, ptr %20, i64 %.sink640
  %382 = call i32 @stgsyl_(ptr noundef nonnull %.str.5.sink, ptr noundef nonnull %33, ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %354, ptr noundef nonnull %6, ptr noundef nonnull %20, ptr noundef nonnull %28, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %357, ptr noundef nonnull %8, ptr noundef %380, ptr noundef nonnull %28, ptr noundef nonnull %38, ptr noundef %19, ptr noundef %381, ptr noundef nonnull %26, ptr noundef nonnull %22, ptr noundef nonnull %35) #5
  %.pre629 = load i64, ptr %32, align 8, !tbaa !5
  br label %358

383:                                              ; preds = %358
  %384 = load float, ptr %38, align 4, !tbaa !9
  %385 = load float, ptr %19, align 4, !tbaa !9
  %386 = fdiv float %384, %385
  store float %386, ptr %19, align 4, !tbaa !9
  %387 = getelementptr inbounds i8, ptr %19, i64 4
  br label %388

388:                                              ; preds = %409, %383
  %389 = load i64, ptr %32, align 8, !tbaa !5
  %390 = getelementptr float, ptr %20, i64 %389
  %391 = call i32 @slacn2_(ptr noundef nonnull %32, ptr noundef %390, ptr noundef nonnull %20, ptr noundef nonnull %22, ptr noundef nonnull %387, ptr noundef nonnull %34, ptr noundef nonnull %37) #5
  %392 = load i64, ptr %34, align 8, !tbaa !5
  switch i64 %392, label %401 [
    i64 0, label %413
    i64 1, label %393
  ]

393:                                              ; preds = %388
  %394 = load i64, ptr %21, align 8, !tbaa !5
  %395 = load i64, ptr %28, align 8, !tbaa !5
  %396 = shl i64 %395, 1
  %397 = load i64, ptr %29, align 8, !tbaa !5
  %398 = mul nsw i64 %396, %397
  %399 = sub nsw i64 %394, %398
  store i64 %399, ptr %26, align 8, !tbaa !5
  %400 = mul nsw i64 %397, %395
  br label %409

401:                                              ; preds = %388
  %402 = load i64, ptr %21, align 8, !tbaa !5
  %403 = load i64, ptr %28, align 8, !tbaa !5
  %404 = shl i64 %403, 1
  %405 = load i64, ptr %29, align 8, !tbaa !5
  %406 = mul nsw i64 %404, %405
  %407 = sub nsw i64 %402, %406
  store i64 %407, ptr %26, align 8, !tbaa !5
  %408 = mul nsw i64 %405, %403
  br label %409

409:                                              ; preds = %401, %393
  %.sink646 = phi i64 [ %408, %401 ], [ %400, %393 ]
  %.sink645 = phi i64 [ %406, %401 ], [ %398, %393 ]
  %.str.5.sink642 = phi ptr [ @.str.5, %401 ], [ @.str.4, %393 ]
  %410 = getelementptr float, ptr %20, i64 %.sink646
  %411 = getelementptr float, ptr %20, i64 %.sink645
  %412 = call i32 @stgsyl_(ptr noundef nonnull %.str.5.sink642, ptr noundef nonnull %33, ptr noundef nonnull %29, ptr noundef nonnull %28, ptr noundef %354, ptr noundef nonnull %6, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %20, ptr noundef nonnull %29, ptr noundef %357, ptr noundef nonnull %8, ptr noundef %7, ptr noundef nonnull %8, ptr noundef %410, ptr noundef nonnull %29, ptr noundef nonnull %38, ptr noundef nonnull %387, ptr noundef %411, ptr noundef nonnull %26, ptr noundef nonnull %22, ptr noundef nonnull %35) #5
  br label %388

413:                                              ; preds = %388
  %414 = load float, ptr %38, align 4, !tbaa !9
  %415 = load float, ptr %387, align 4, !tbaa !9
  %416 = fdiv float %414, %415
  store float %416, ptr %387, align 4, !tbaa !9
  br label %417

417:                                              ; preds = %219, %172, %314, %413, %315, %220, %._crit_edge611
  %418 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %418, ptr %26, align 8, !tbaa !5
  %.not564618 = icmp slt i64 %418, 1
  br i1 %.not564618, label %._crit_edge625, label %.lr.ph624

.lr.ph624:                                        ; preds = %417
  %419 = add i64 %44, 1
  %420 = add i64 %41, 1
  %421 = getelementptr inbounds i8, ptr %20, i64 4
  %422 = getelementptr inbounds i8, ptr %20, i64 8
  %423 = getelementptr inbounds i8, ptr %20, i64 12
  %424 = getelementptr inbounds i8, ptr %20, i64 16
  %425 = getelementptr inbounds i8, ptr %20, i64 20
  %426 = getelementptr inbounds i8, ptr %20, i64 24
  %427 = getelementptr inbounds i8, ptr %20, i64 28
  %428 = fmul float %85, %89
  %429 = shl i64 %50, 2
  %ident.check660 = icmp ne i64 %41, 1
  %ident.check661 = icmp ne i64 %44, 1
  %430 = or i1 %ident.check660, %ident.check661
  %ident.check = icmp ne i64 %41, 1
  %ident.check652 = icmp ne i64 %44, 1
  %431 = or i1 %ident.check, %ident.check652
  br label %432

432:                                              ; preds = %.lr.ph624, %552
  %indvar = phi i64 [ 0, %.lr.ph624 ], [ %indvar.next, %552 ]
  %.5622 = phi i64 [ 0, %.lr.ph624 ], [ %.7, %552 ]
  %.2529619 = phi i64 [ 1, %.lr.ph624 ], [ %553, %552 ]
  %433 = shl i64 %indvar, 2
  %scevgep663 = getelementptr i8, ptr %5, i64 %433
  %scevgep665 = getelementptr i8, ptr %7, i64 %433
  %434 = mul i64 %429, %indvar
  %scevgep667 = getelementptr i8, ptr %12, i64 %434
  %435 = shl i64 %indvar, 2
  %scevgep = getelementptr i8, ptr %5, i64 %435
  %scevgep654 = getelementptr i8, ptr %7, i64 %435
  %.not565 = icmp eq i64 %.5622, 0
  br i1 %.not565, label %436, label %552

436:                                              ; preds = %432
  %437 = load i64, ptr %4, align 8, !tbaa !5
  %438 = icmp slt i64 %.2529619, %437
  br i1 %438, label %439, label %477

439:                                              ; preds = %436
  %440 = mul nsw i64 %.2529619, %41
  %441 = getelementptr float, ptr %43, i64 %.2529619
  %442 = getelementptr i8, ptr %441, i64 4
  %443 = getelementptr float, ptr %442, i64 %440
  %444 = load float, ptr %443, align 4, !tbaa !9
  %445 = fcmp une float %444, 0.000000e+00
  br i1 %445, label %.critedge, label %477

.critedge:                                        ; preds = %439
  %446 = getelementptr float, ptr %441, i64 %440
  %447 = load float, ptr %446, align 4, !tbaa !9
  store float %447, ptr %20, align 4, !tbaa !9
  %448 = add nuw nsw i64 %.2529619, 1
  %449 = getelementptr float, ptr %43, i64 %448
  %450 = getelementptr float, ptr %449, i64 %440
  %451 = load float, ptr %450, align 4, !tbaa !9
  store float %451, ptr %421, align 4, !tbaa !9
  %452 = mul nsw i64 %448, %41
  %453 = getelementptr float, ptr %441, i64 %452
  %454 = load float, ptr %453, align 4, !tbaa !9
  store float %454, ptr %422, align 4, !tbaa !9
  %455 = getelementptr float, ptr %449, i64 %452
  %456 = load float, ptr %455, align 4, !tbaa !9
  store float %456, ptr %423, align 4, !tbaa !9
  %457 = mul nsw i64 %.2529619, %44
  %458 = getelementptr float, ptr %46, i64 %.2529619
  %459 = getelementptr float, ptr %458, i64 %457
  %460 = load float, ptr %459, align 4, !tbaa !9
  store float %460, ptr %424, align 4, !tbaa !9
  %461 = getelementptr float, ptr %46, i64 %448
  %462 = getelementptr float, ptr %461, i64 %457
  %463 = load float, ptr %462, align 4, !tbaa !9
  store float %463, ptr %425, align 4, !tbaa !9
  %464 = mul nsw i64 %448, %44
  %465 = getelementptr float, ptr %458, i64 %464
  %466 = load float, ptr %465, align 4, !tbaa !9
  store float %466, ptr %426, align 4, !tbaa !9
  %467 = getelementptr float, ptr %461, i64 %464
  %468 = load float, ptr %467, align 4, !tbaa !9
  store float %468, ptr %427, align 4, !tbaa !9
  store float %428, ptr %27, align 4, !tbaa !9
  %469 = getelementptr inbounds float, ptr %49, i64 %.2529619
  %470 = getelementptr float, ptr %11, i64 %.2529619
  %471 = getelementptr inbounds float, ptr %47, i64 %.2529619
  %472 = getelementptr float, ptr %9, i64 %.2529619
  %473 = getelementptr inbounds float, ptr %48, i64 %.2529619
  %474 = call i32 @slag2_(ptr noundef %20, ptr noundef nonnull @c__2, ptr noundef nonnull %424, ptr noundef nonnull @c__2, ptr noundef nonnull %27, ptr noundef nonnull %469, ptr noundef %470, ptr noundef nonnull %471, ptr noundef %472, ptr noundef nonnull %473) #5
  %475 = load float, ptr %473, align 4, !tbaa !9
  %476 = fneg float %475
  br label %.sink.split647

477:                                              ; preds = %436, %439
  %478 = mul i64 %.2529619, %419
  %479 = getelementptr inbounds float, ptr %46, i64 %478
  %480 = call double @r_sign(ptr noundef nonnull @c_b28, ptr noundef %479) #5
  %481 = fcmp olt double %480, 0.000000e+00
  br i1 %481, label %482, label %.loopexit

482:                                              ; preds = %477
  %483 = load i64, ptr %4, align 8, !tbaa !5
  %.not567612 = icmp slt i64 %483, 1
  br i1 %.not567612, label %.loopexit, label %.lr.ph615

.lr.ph615:                                        ; preds = %482
  %484 = getelementptr float, ptr %43, i64 %.2529619
  %485 = getelementptr float, ptr %46, i64 %.2529619
  %486 = load i64, ptr %1, align 8, !tbaa !5
  %.not568 = icmp eq i64 %486, 0
  %487 = mul nsw i64 %.2529619, %50
  %invariant.gep616 = getelementptr float, ptr %52, i64 %487
  br i1 %.not568, label %.lr.ph615.split.us.preheader, label %.lr.ph615.split.preheader

.lr.ph615.split.preheader:                        ; preds = %.lr.ph615
  %min.iters.check681 = icmp ult i64 %483, 12
  %brmerge = select i1 %min.iters.check681, i1 true, i1 %430
  br i1 %brmerge, label %.lr.ph615.split.preheader696, label %vector.memcheck662

.lr.ph615.split.preheader696:                     ; preds = %.lr.ph615.split.preheader, %middle.block679, %vector.memcheck662
  %.1531613.ph = phi i64 [ 1, %vector.memcheck662 ], [ 1, %.lr.ph615.split.preheader ], [ %ind.end685, %middle.block679 ]
  br label %.lr.ph615.split

vector.memcheck662:                               ; preds = %.lr.ph615.split.preheader
  %488 = shl i64 %483, 2
  %scevgep664 = getelementptr i8, ptr %scevgep663, i64 %488
  %scevgep666 = getelementptr i8, ptr %scevgep665, i64 %488
  %scevgep668 = getelementptr i8, ptr %scevgep667, i64 %488
  %bound0669 = icmp ult ptr %scevgep663, %scevgep666
  %bound1670 = icmp ult ptr %scevgep665, %scevgep664
  %found.conflict671 = and i1 %bound0669, %bound1670
  %bound0672 = icmp ult ptr %scevgep663, %scevgep668
  %bound1673 = icmp ult ptr %scevgep667, %scevgep664
  %found.conflict674 = and i1 %bound0672, %bound1673
  %conflict.rdx = or i1 %found.conflict671, %found.conflict674
  %bound0675 = icmp ult ptr %scevgep665, %scevgep668
  %bound1676 = icmp ult ptr %scevgep667, %scevgep666
  %found.conflict677 = and i1 %bound0675, %bound1676
  %conflict.rdx678 = or i1 %conflict.rdx, %found.conflict677
  br i1 %conflict.rdx678, label %.lr.ph615.split.preheader696, label %vector.ph682

vector.ph682:                                     ; preds = %vector.memcheck662
  %n.vec684 = and i64 %483, 9223372036854775804
  %ind.end685 = or disjoint i64 %n.vec684, 1
  br label %vector.body687

vector.body687:                                   ; preds = %vector.body687, %vector.ph682
  %index688 = phi i64 [ 0, %vector.ph682 ], [ %index.next693, %vector.body687 ]
  %offset.idx689 = or disjoint i64 %index688, 1
  %489 = getelementptr float, ptr %484, i64 %offset.idx689
  %wide.load690 = load <4 x float>, ptr %489, align 4, !tbaa !9, !alias.scope !15, !noalias !18
  %490 = fneg <4 x float> %wide.load690
  store <4 x float> %490, ptr %489, align 4, !tbaa !9, !alias.scope !15, !noalias !18
  %491 = getelementptr float, ptr %485, i64 %offset.idx689
  %wide.load691 = load <4 x float>, ptr %491, align 4, !tbaa !9, !alias.scope !21, !noalias !22
  %492 = fneg <4 x float> %wide.load691
  store <4 x float> %492, ptr %491, align 4, !tbaa !9, !alias.scope !21, !noalias !22
  %493 = getelementptr float, ptr %invariant.gep616, i64 %offset.idx689
  %wide.load692 = load <4 x float>, ptr %493, align 4, !tbaa !9, !alias.scope !22
  %494 = fneg <4 x float> %wide.load692
  store <4 x float> %494, ptr %493, align 4, !tbaa !9, !alias.scope !22
  %index.next693 = add nuw i64 %index688, 4
  %495 = icmp eq i64 %index.next693, %n.vec684
  br i1 %495, label %middle.block679, label %vector.body687, !llvm.loop !23

middle.block679:                                  ; preds = %vector.body687
  %cmp.n694 = icmp eq i64 %483, %n.vec684
  br i1 %cmp.n694, label %.loopexit, label %.lr.ph615.split.preheader696

.lr.ph615.split.us.preheader:                     ; preds = %.lr.ph615
  %min.iters.check = icmp ult i64 %483, 8
  %brmerge698 = select i1 %min.iters.check, i1 true, i1 %431
  br i1 %brmerge698, label %.lr.ph615.split.us.preheader695, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph615.split.us.preheader
  %496 = shl i64 %483, 2
  %scevgep653 = getelementptr i8, ptr %scevgep, i64 %496
  %scevgep655 = getelementptr i8, ptr %scevgep654, i64 %496
  %bound0 = icmp ult ptr %scevgep, %scevgep655
  %bound1 = icmp ult ptr %scevgep654, %scevgep653
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %.lr.ph615.split.us.preheader695, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %483, 9223372036854775800
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %497 = getelementptr float, ptr %484, i64 %offset.idx
  %498 = getelementptr i8, ptr %497, i64 16
  %wide.load = load <4 x float>, ptr %497, align 4, !tbaa !9, !alias.scope !26, !noalias !29
  %wide.load656 = load <4 x float>, ptr %498, align 4, !tbaa !9, !alias.scope !26, !noalias !29
  %499 = fneg <4 x float> %wide.load
  %500 = fneg <4 x float> %wide.load656
  store <4 x float> %499, ptr %497, align 4, !tbaa !9, !alias.scope !26, !noalias !29
  store <4 x float> %500, ptr %498, align 4, !tbaa !9, !alias.scope !26, !noalias !29
  %501 = getelementptr float, ptr %485, i64 %offset.idx
  %502 = getelementptr i8, ptr %501, i64 16
  %wide.load657 = load <4 x float>, ptr %501, align 4, !tbaa !9, !alias.scope !29
  %wide.load658 = load <4 x float>, ptr %502, align 4, !tbaa !9, !alias.scope !29
  %503 = fneg <4 x float> %wide.load657
  %504 = fneg <4 x float> %wide.load658
  store <4 x float> %503, ptr %501, align 4, !tbaa !9, !alias.scope !29
  store <4 x float> %504, ptr %502, align 4, !tbaa !9, !alias.scope !29
  %index.next = add nuw i64 %index, 8
  %505 = icmp eq i64 %index.next, %n.vec
  br i1 %505, label %middle.block, label %vector.body, !llvm.loop !31

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

.lr.ph615.split.us.preheader695:                  ; preds = %.lr.ph615.split.us.preheader, %middle.block, %vector.memcheck
  %.1531613.us.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph615.split.us.preheader ], [ %ind.end, %middle.block ]
  %xtraiter = and i64 %483, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph615.split.us.prol.loopexit, label %.lr.ph615.split.us.prol

.lr.ph615.split.us.prol:                          ; preds = %.lr.ph615.split.us.preheader695
  %506 = mul nsw i64 %.1531613.us.ph, %41
  %507 = getelementptr float, ptr %484, i64 %506
  %508 = load float, ptr %507, align 4, !tbaa !9
  %509 = fneg float %508
  store float %509, ptr %507, align 4, !tbaa !9
  %510 = mul nsw i64 %.1531613.us.ph, %44
  %511 = getelementptr float, ptr %485, i64 %510
  %512 = load float, ptr %511, align 4, !tbaa !9
  %513 = fneg float %512
  store float %513, ptr %511, align 4, !tbaa !9
  %514 = add nuw i64 %.1531613.us.ph, 1
  br label %.lr.ph615.split.us.prol.loopexit

.lr.ph615.split.us.prol.loopexit:                 ; preds = %.lr.ph615.split.us.prol, %.lr.ph615.split.us.preheader695
  %.1531613.us.unr = phi i64 [ %.1531613.us.ph, %.lr.ph615.split.us.preheader695 ], [ %514, %.lr.ph615.split.us.prol ]
  %515 = icmp eq i64 %483, %.1531613.us.ph
  br i1 %515, label %.loopexit, label %.lr.ph615.split.us

.lr.ph615.split.us:                               ; preds = %.lr.ph615.split.us.prol.loopexit, %.lr.ph615.split.us
  %.1531613.us = phi i64 [ %533, %.lr.ph615.split.us ], [ %.1531613.us.unr, %.lr.ph615.split.us.prol.loopexit ]
  %516 = mul nsw i64 %.1531613.us, %41
  %517 = getelementptr float, ptr %484, i64 %516
  %518 = load float, ptr %517, align 4, !tbaa !9
  %519 = fneg float %518
  store float %519, ptr %517, align 4, !tbaa !9
  %520 = mul nsw i64 %.1531613.us, %44
  %521 = getelementptr float, ptr %485, i64 %520
  %522 = load float, ptr %521, align 4, !tbaa !9
  %523 = fneg float %522
  store float %523, ptr %521, align 4, !tbaa !9
  %524 = add nuw i64 %.1531613.us, 1
  %525 = mul nsw i64 %524, %41
  %526 = getelementptr float, ptr %484, i64 %525
  %527 = load float, ptr %526, align 4, !tbaa !9
  %528 = fneg float %527
  store float %528, ptr %526, align 4, !tbaa !9
  %529 = mul nsw i64 %524, %44
  %530 = getelementptr float, ptr %485, i64 %529
  %531 = load float, ptr %530, align 4, !tbaa !9
  %532 = fneg float %531
  store float %532, ptr %530, align 4, !tbaa !9
  %533 = add nuw i64 %.1531613.us, 2
  %exitcond628.not.1 = icmp eq i64 %524, %483
  br i1 %exitcond628.not.1, label %.loopexit, label %.lr.ph615.split.us, !llvm.loop !32

.lr.ph615.split:                                  ; preds = %.lr.ph615.split.preheader696, %.lr.ph615.split
  %.1531613 = phi i64 [ %544, %.lr.ph615.split ], [ %.1531613.ph, %.lr.ph615.split.preheader696 ]
  %534 = mul nsw i64 %.1531613, %41
  %535 = getelementptr float, ptr %484, i64 %534
  %536 = load float, ptr %535, align 4, !tbaa !9
  %537 = fneg float %536
  store float %537, ptr %535, align 4, !tbaa !9
  %538 = mul nsw i64 %.1531613, %44
  %539 = getelementptr float, ptr %485, i64 %538
  %540 = load float, ptr %539, align 4, !tbaa !9
  %541 = fneg float %540
  store float %541, ptr %539, align 4, !tbaa !9
  %gep617 = getelementptr float, ptr %invariant.gep616, i64 %.1531613
  %542 = load float, ptr %gep617, align 4, !tbaa !9
  %543 = fneg float %542
  store float %543, ptr %gep617, align 4, !tbaa !9
  %544 = add nuw i64 %.1531613, 1
  %exitcond627.not = icmp eq i64 %.1531613, %483
  br i1 %exitcond627.not, label %.loopexit, label %.lr.ph615.split, !llvm.loop !33

.loopexit:                                        ; preds = %.lr.ph615.split, %.lr.ph615.split.us.prol.loopexit, %.lr.ph615.split.us, %middle.block679, %middle.block, %482, %477
  %545 = mul i64 %.2529619, %420
  %546 = getelementptr inbounds float, ptr %43, i64 %545
  %547 = load float, ptr %546, align 4, !tbaa !9
  %548 = getelementptr inbounds float, ptr %47, i64 %.2529619
  store float %547, ptr %548, align 4, !tbaa !9
  %549 = getelementptr inbounds float, ptr %48, i64 %.2529619
  store float 0.000000e+00, ptr %549, align 4, !tbaa !9
  %550 = load float, ptr %479, align 4, !tbaa !9
  br label %.sink.split647

.sink.split647:                                   ; preds = %.critedge, %.loopexit
  %.sink650 = phi ptr [ %49, %.loopexit ], [ %10, %.critedge ]
  %.sink648 = phi float [ %550, %.loopexit ], [ %476, %.critedge ]
  %.7.ph = phi i64 [ 0, %.loopexit ], [ 1, %.critedge ]
  %551 = getelementptr float, ptr %.sink650, i64 %.2529619
  store float %.sink648, ptr %551, align 4, !tbaa !9
  br label %552

552:                                              ; preds = %.sink.split647, %432
  %.7 = phi i64 [ 0, %432 ], [ %.7.ph, %.sink.split647 ]
  %553 = add nuw nsw i64 %.2529619, 1
  %554 = load i64, ptr %26, align 8, !tbaa !5
  %.not564.not = icmp slt i64 %.2529619, %554
  %indvar.next = add i64 %indvar, 1
  br i1 %.not564.not, label %432, label %._crit_edge625, !llvm.loop !34

._crit_edge625:                                   ; preds = %552, %417
  store float %154, ptr %20, align 4, !tbaa !9
  store i64 %.0523, ptr %22, align 8, !tbaa !5
  br label %555

555:                                              ; preds = %164, %._crit_edge625, %.thread583, %.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 24, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  ret i32 0
}

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

declare double @r_sign(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 i64 @llvm.smax.i64(i64, i64) #4

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

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

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

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