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

; 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"

@c__13 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@c__15 = external hidden global i64, align 8
@c_n1 = external hidden global i64, align 8
@c__12 = external hidden global i64, align 8
@c__14 = external hidden global i64, align 8
@c__16 = external hidden global i64, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_false = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8

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

118:                                              ; preds = %16
  %119 = load ptr, ptr %31, align 8, !tbaa !5
  %120 = getelementptr inbounds float, ptr %119, i64 1
  store float 1.000000e+00, ptr %120, align 4, !tbaa !11
  store i32 0, ptr %17, align 4
  store i32 1, ptr %91, align 4
  br label %1373

121:                                              ; preds = %16
  %122 = load ptr, ptr %20, align 8, !tbaa !5
  %123 = load i64, ptr %122, align 8, !tbaa !9
  %124 = icmp sle i64 %123, 11
  br i1 %124, label %125, label %152

125:                                              ; preds = %121
  store i64 1, ptr %90, align 8, !tbaa !9
  %126 = load ptr, ptr %32, align 8, !tbaa !5
  %127 = load i64, ptr %126, align 8, !tbaa !9
  %128 = icmp ne i64 %127, -1
  br i1 %128, label %129, label %151

129:                                              ; preds = %125
  %130 = load ptr, ptr %18, align 8, !tbaa !5
  %131 = load ptr, ptr %19, align 8, !tbaa !5
  %132 = load ptr, ptr %20, align 8, !tbaa !5
  %133 = load ptr, ptr %21, align 8, !tbaa !5
  %134 = load ptr, ptr %22, align 8, !tbaa !5
  %135 = load ptr, ptr %23, align 8, !tbaa !5
  %136 = load i64, ptr %35, align 8, !tbaa !9
  %137 = getelementptr inbounds float, ptr %135, i64 %136
  %138 = load ptr, ptr %24, align 8, !tbaa !5
  %139 = load ptr, ptr %25, align 8, !tbaa !5
  %140 = getelementptr inbounds float, ptr %139, i64 1
  %141 = load ptr, ptr %26, align 8, !tbaa !5
  %142 = getelementptr inbounds float, ptr %141, i64 1
  %143 = load ptr, ptr %27, align 8, !tbaa !5
  %144 = load ptr, ptr %28, align 8, !tbaa !5
  %145 = load ptr, ptr %29, align 8, !tbaa !5
  %146 = load i64, ptr %37, align 8, !tbaa !9
  %147 = getelementptr inbounds float, ptr %145, i64 %146
  %148 = load ptr, ptr %30, align 8, !tbaa !5
  %149 = load ptr, ptr %33, align 8, !tbaa !5
  %150 = call i32 @slahqr_(ptr noundef %130, ptr noundef %131, ptr noundef %132, ptr noundef %133, ptr noundef %134, ptr noundef %137, ptr noundef %138, ptr noundef %140, ptr noundef %142, ptr noundef %143, ptr noundef %144, ptr noundef %147, ptr noundef %148, ptr noundef %149)
  br label %151

151:                                              ; preds = %129, %125
  br label %1368

152:                                              ; preds = %121
  %153 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 0, ptr %153, align 8, !tbaa !9
  %154 = load ptr, ptr %18, align 8, !tbaa !5
  %155 = load i64, ptr %154, align 8, !tbaa !9
  %156 = icmp ne i64 %155, 0
  br i1 %156, label %157, label %159

157:                                              ; preds = %152
  %158 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  store i8 83, ptr %158, align 1, !tbaa !13
  br label %161

159:                                              ; preds = %152
  %160 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  store i8 69, ptr %160, align 1, !tbaa !13
  br label %161

161:                                              ; preds = %159, %157
  %162 = load ptr, ptr %19, align 8, !tbaa !5
  %163 = load i64, ptr %162, align 8, !tbaa !9
  %164 = icmp ne i64 %163, 0
  br i1 %164, label %165, label %167

165:                                              ; preds = %161
  %166 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 1
  store i8 86, ptr %166, align 1, !tbaa !13
  br label %169

167:                                              ; preds = %161
  %168 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 1
  store i8 78, ptr %168, align 1, !tbaa !13
  br label %169

169:                                              ; preds = %167, %165
  %170 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  %171 = load ptr, ptr %20, align 8, !tbaa !5
  %172 = load ptr, ptr %21, align 8, !tbaa !5
  %173 = load ptr, ptr %22, align 8, !tbaa !5
  %174 = load ptr, ptr %32, align 8, !tbaa !5
  %175 = call i64 @ilaenv_(ptr noundef @c__13, ptr noundef @.str, ptr noundef %170, ptr noundef %171, ptr noundef %172, ptr noundef %173, ptr noundef %174)
  store i64 %175, ptr %72, align 8, !tbaa !9
  %176 = load i64, ptr %72, align 8, !tbaa !9
  %177 = icmp sge i64 2, %176
  br i1 %177, label %178, label %179

178:                                              ; preds = %169
  br label %181

179:                                              ; preds = %169
  %180 = load i64, ptr %72, align 8, !tbaa !9
  br label %181

181:                                              ; preds = %179, %178
  %182 = phi i64 [ 2, %178 ], [ %180, %179 ]
  store i64 %182, ptr %72, align 8, !tbaa !9
  %183 = load ptr, ptr %22, align 8, !tbaa !5
  %184 = load i64, ptr %183, align 8, !tbaa !9
  %185 = load ptr, ptr %21, align 8, !tbaa !5
  %186 = load i64, ptr %185, align 8, !tbaa !9
  %187 = sub nsw i64 %184, %186
  %188 = add nsw i64 %187, 1
  store i64 %188, ptr %38, align 8, !tbaa !9
  %189 = load ptr, ptr %20, align 8, !tbaa !5
  %190 = load i64, ptr %189, align 8, !tbaa !9
  %191 = sub nsw i64 %190, 1
  %192 = sdiv i64 %191, 3
  store i64 %192, ptr %39, align 8, !tbaa !9
  %193 = load i64, ptr %38, align 8, !tbaa !9
  %194 = load i64, ptr %39, align 8, !tbaa !9
  %195 = icmp sle i64 %193, %194
  br i1 %195, label %196, label %198

196:                                              ; preds = %181
  %197 = load i64, ptr %38, align 8, !tbaa !9
  br label %200

198:                                              ; preds = %181
  %199 = load i64, ptr %39, align 8, !tbaa !9
  br label %200

200:                                              ; preds = %198, %196
  %201 = phi i64 [ %197, %196 ], [ %199, %198 ]
  store i64 %201, ptr %38, align 8, !tbaa !9
  %202 = load i64, ptr %38, align 8, !tbaa !9
  %203 = load i64, ptr %72, align 8, !tbaa !9
  %204 = icmp sle i64 %202, %203
  br i1 %204, label %205, label %207

205:                                              ; preds = %200
  %206 = load i64, ptr %38, align 8, !tbaa !9
  br label %209

207:                                              ; preds = %200
  %208 = load i64, ptr %72, align 8, !tbaa !9
  br label %209

209:                                              ; preds = %207, %205
  %210 = phi i64 [ %206, %205 ], [ %208, %207 ]
  store i64 %210, ptr %72, align 8, !tbaa !9
  %211 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  %212 = load ptr, ptr %20, align 8, !tbaa !5
  %213 = load ptr, ptr %21, align 8, !tbaa !5
  %214 = load ptr, ptr %22, align 8, !tbaa !5
  %215 = load ptr, ptr %32, align 8, !tbaa !5
  %216 = call i64 @ilaenv_(ptr noundef @c__15, ptr noundef @.str, ptr noundef %211, ptr noundef %212, ptr noundef %213, ptr noundef %214, ptr noundef %215)
  store i64 %216, ptr %71, align 8, !tbaa !9
  %217 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %217, ptr %38, align 8, !tbaa !9
  %218 = load ptr, ptr %20, align 8, !tbaa !5
  %219 = load i64, ptr %218, align 8, !tbaa !9
  %220 = add nsw i64 %219, 6
  %221 = sdiv i64 %220, 9
  store i64 %221, ptr %39, align 8, !tbaa !9
  %222 = load i64, ptr %38, align 8, !tbaa !9
  %223 = load i64, ptr %39, align 8, !tbaa !9
  %224 = icmp sle i64 %222, %223
  br i1 %224, label %225, label %227

225:                                              ; preds = %209
  %226 = load i64, ptr %38, align 8, !tbaa !9
  br label %229

227:                                              ; preds = %209
  %228 = load i64, ptr %39, align 8, !tbaa !9
  br label %229

229:                                              ; preds = %227, %225
  %230 = phi i64 [ %226, %225 ], [ %228, %227 ]
  store i64 %230, ptr %38, align 8, !tbaa !9
  %231 = load ptr, ptr %22, align 8, !tbaa !5
  %232 = load i64, ptr %231, align 8, !tbaa !9
  %233 = load ptr, ptr %21, align 8, !tbaa !5
  %234 = load i64, ptr %233, align 8, !tbaa !9
  %235 = sub nsw i64 %232, %234
  store i64 %235, ptr %39, align 8, !tbaa !9
  %236 = load i64, ptr %38, align 8, !tbaa !9
  %237 = load i64, ptr %39, align 8, !tbaa !9
  %238 = icmp sle i64 %236, %237
  br i1 %238, label %239, label %241

239:                                              ; preds = %229
  %240 = load i64, ptr %38, align 8, !tbaa !9
  br label %243

241:                                              ; preds = %229
  %242 = load i64, ptr %39, align 8, !tbaa !9
  br label %243

243:                                              ; preds = %241, %239
  %244 = phi i64 [ %240, %239 ], [ %242, %241 ]
  store i64 %244, ptr %71, align 8, !tbaa !9
  store i64 2, ptr %38, align 8, !tbaa !9
  %245 = load i64, ptr %71, align 8, !tbaa !9
  %246 = load i64, ptr %71, align 8, !tbaa !9
  %247 = srem i64 %246, 2
  %248 = sub nsw i64 %245, %247
  store i64 %248, ptr %39, align 8, !tbaa !9
  %249 = load i64, ptr %38, align 8, !tbaa !9
  %250 = load i64, ptr %39, align 8, !tbaa !9
  %251 = icmp sge i64 %249, %250
  br i1 %251, label %252, label %254

252:                                              ; preds = %243
  %253 = load i64, ptr %38, align 8, !tbaa !9
  br label %256

254:                                              ; preds = %243
  %255 = load i64, ptr %39, align 8, !tbaa !9
  br label %256

256:                                              ; preds = %254, %252
  %257 = phi i64 [ %253, %252 ], [ %255, %254 ]
  store i64 %257, ptr %71, align 8, !tbaa !9
  %258 = load i64, ptr %72, align 8, !tbaa !9
  %259 = add nsw i64 %258, 1
  store i64 %259, ptr %38, align 8, !tbaa !9
  %260 = load ptr, ptr %18, align 8, !tbaa !5
  %261 = load ptr, ptr %19, align 8, !tbaa !5
  %262 = load ptr, ptr %20, align 8, !tbaa !5
  %263 = load ptr, ptr %21, align 8, !tbaa !5
  %264 = load ptr, ptr %22, align 8, !tbaa !5
  %265 = load ptr, ptr %23, align 8, !tbaa !5
  %266 = load i64, ptr %35, align 8, !tbaa !9
  %267 = getelementptr inbounds float, ptr %265, i64 %266
  %268 = load ptr, ptr %24, align 8, !tbaa !5
  %269 = load ptr, ptr %27, align 8, !tbaa !5
  %270 = load ptr, ptr %28, align 8, !tbaa !5
  %271 = load ptr, ptr %29, align 8, !tbaa !5
  %272 = load i64, ptr %37, align 8, !tbaa !9
  %273 = getelementptr inbounds float, ptr %271, i64 %272
  %274 = load ptr, ptr %30, align 8, !tbaa !5
  %275 = load ptr, ptr %25, align 8, !tbaa !5
  %276 = getelementptr inbounds float, ptr %275, i64 1
  %277 = load ptr, ptr %26, align 8, !tbaa !5
  %278 = getelementptr inbounds float, ptr %277, i64 1
  %279 = load ptr, ptr %23, align 8, !tbaa !5
  %280 = load i64, ptr %35, align 8, !tbaa !9
  %281 = getelementptr inbounds float, ptr %279, i64 %280
  %282 = load ptr, ptr %24, align 8, !tbaa !5
  %283 = load ptr, ptr %20, align 8, !tbaa !5
  %284 = load ptr, ptr %23, align 8, !tbaa !5
  %285 = load i64, ptr %35, align 8, !tbaa !9
  %286 = getelementptr inbounds float, ptr %284, i64 %285
  %287 = load ptr, ptr %24, align 8, !tbaa !5
  %288 = load ptr, ptr %20, align 8, !tbaa !5
  %289 = load ptr, ptr %23, align 8, !tbaa !5
  %290 = load i64, ptr %35, align 8, !tbaa !9
  %291 = getelementptr inbounds float, ptr %289, i64 %290
  %292 = load ptr, ptr %24, align 8, !tbaa !5
  %293 = load ptr, ptr %31, align 8, !tbaa !5
  %294 = getelementptr inbounds float, ptr %293, i64 1
  %295 = call i32 @slaqr2_(ptr noundef %260, ptr noundef %261, ptr noundef %262, ptr noundef %263, ptr noundef %264, ptr noundef %38, ptr noundef %267, ptr noundef %268, ptr noundef %269, ptr noundef %270, ptr noundef %273, ptr noundef %274, ptr noundef %62, ptr noundef %53, ptr noundef %276, ptr noundef %278, ptr noundef %281, ptr noundef %282, ptr noundef %283, ptr noundef %286, ptr noundef %287, ptr noundef %288, ptr noundef %291, ptr noundef %292, ptr noundef %294, ptr noundef @c_n1)
  %296 = load i64, ptr %71, align 8, !tbaa !9
  %297 = mul nsw i64 %296, 3
  %298 = sdiv i64 %297, 2
  store i64 %298, ptr %38, align 8, !tbaa !9
  %299 = load ptr, ptr %31, align 8, !tbaa !5
  %300 = getelementptr inbounds float, ptr %299, i64 1
  %301 = load float, ptr %300, align 4, !tbaa !11
  %302 = fptosi float %301 to i64
  store i64 %302, ptr %39, align 8, !tbaa !9
  %303 = load i64, ptr %38, align 8, !tbaa !9
  %304 = load i64, ptr %39, align 8, !tbaa !9
  %305 = icmp sge i64 %303, %304
  br i1 %305, label %306, label %308

306:                                              ; preds = %256
  %307 = load i64, ptr %38, align 8, !tbaa !9
  br label %310

308:                                              ; preds = %256
  %309 = load i64, ptr %39, align 8, !tbaa !9
  br label %310

310:                                              ; preds = %308, %306
  %311 = phi i64 [ %307, %306 ], [ %309, %308 ]
  store i64 %311, ptr %90, align 8, !tbaa !9
  %312 = load ptr, ptr %32, align 8, !tbaa !5
  %313 = load i64, ptr %312, align 8, !tbaa !9
  %314 = icmp eq i64 %313, -1
  br i1 %314, label %315, label %320

315:                                              ; preds = %310
  %316 = load i64, ptr %90, align 8, !tbaa !9
  %317 = sitofp i64 %316 to float
  %318 = load ptr, ptr %31, align 8, !tbaa !5
  %319 = getelementptr inbounds float, ptr %318, i64 1
  store float %317, ptr %319, align 4, !tbaa !11
  store i32 0, ptr %17, align 4
  store i32 1, ptr %91, align 4
  br label %1373

320:                                              ; preds = %310
  %321 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  %322 = load ptr, ptr %20, align 8, !tbaa !5
  %323 = load ptr, ptr %21, align 8, !tbaa !5
  %324 = load ptr, ptr %22, align 8, !tbaa !5
  %325 = load ptr, ptr %32, align 8, !tbaa !5
  %326 = call i64 @ilaenv_(ptr noundef @c__12, ptr noundef @.str, ptr noundef %321, ptr noundef %322, ptr noundef %323, ptr noundef %324, ptr noundef %325)
  store i64 %326, ptr %77, align 8, !tbaa !9
  %327 = load i64, ptr %77, align 8, !tbaa !9
  %328 = icmp sge i64 11, %327
  br i1 %328, label %329, label %330

329:                                              ; preds = %320
  br label %332

330:                                              ; preds = %320
  %331 = load i64, ptr %77, align 8, !tbaa !9
  br label %332

332:                                              ; preds = %330, %329
  %333 = phi i64 [ 11, %329 ], [ %331, %330 ]
  store i64 %333, ptr %77, align 8, !tbaa !9
  %334 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  %335 = load ptr, ptr %20, align 8, !tbaa !5
  %336 = load ptr, ptr %21, align 8, !tbaa !5
  %337 = load ptr, ptr %22, align 8, !tbaa !5
  %338 = load ptr, ptr %32, align 8, !tbaa !5
  %339 = call i64 @ilaenv_(ptr noundef @c__14, ptr noundef @.str, ptr noundef %334, ptr noundef %335, ptr noundef %336, ptr noundef %337, ptr noundef %338)
  store i64 %339, ptr %86, align 8, !tbaa !9
  %340 = load i64, ptr %86, align 8, !tbaa !9
  %341 = icmp sge i64 0, %340
  br i1 %341, label %342, label %343

342:                                              ; preds = %332
  br label %345

343:                                              ; preds = %332
  %344 = load i64, ptr %86, align 8, !tbaa !9
  br label %345

345:                                              ; preds = %343, %342
  %346 = phi i64 [ 0, %342 ], [ %344, %343 ]
  store i64 %346, ptr %86, align 8, !tbaa !9
  %347 = getelementptr inbounds [2 x i8], ptr %87, i64 0, i64 0
  %348 = load ptr, ptr %20, align 8, !tbaa !5
  %349 = load ptr, ptr %21, align 8, !tbaa !5
  %350 = load ptr, ptr %22, align 8, !tbaa !5
  %351 = load ptr, ptr %32, align 8, !tbaa !5
  %352 = call i64 @ilaenv_(ptr noundef @c__16, ptr noundef @.str, ptr noundef %347, ptr noundef %348, ptr noundef %349, ptr noundef %350, ptr noundef %351)
  store i64 %352, ptr %81, align 8, !tbaa !9
  %353 = load i64, ptr %81, align 8, !tbaa !9
  %354 = icmp sge i64 0, %353
  br i1 %354, label %355, label %356

355:                                              ; preds = %345
  br label %358

356:                                              ; preds = %345
  %357 = load i64, ptr %81, align 8, !tbaa !9
  br label %358

358:                                              ; preds = %356, %355
  %359 = phi i64 [ 0, %355 ], [ %357, %356 ]
  store i64 %359, ptr %81, align 8, !tbaa !9
  %360 = load i64, ptr %81, align 8, !tbaa !9
  %361 = icmp sle i64 2, %360
  br i1 %361, label %362, label %363

362:                                              ; preds = %358
  br label %365

363:                                              ; preds = %358
  %364 = load i64, ptr %81, align 8, !tbaa !9
  br label %365

365:                                              ; preds = %363, %362
  %366 = phi i64 [ 2, %362 ], [ %364, %363 ]
  store i64 %366, ptr %81, align 8, !tbaa !9
  %367 = load ptr, ptr %20, align 8, !tbaa !5
  %368 = load i64, ptr %367, align 8, !tbaa !9
  %369 = sub nsw i64 %368, 1
  %370 = sdiv i64 %369, 3
  store i64 %370, ptr %38, align 8, !tbaa !9
  %371 = load ptr, ptr %32, align 8, !tbaa !5
  %372 = load i64, ptr %371, align 8, !tbaa !9
  %373 = sdiv i64 %372, 2
  store i64 %373, ptr %39, align 8, !tbaa !9
  %374 = load i64, ptr %38, align 8, !tbaa !9
  %375 = load i64, ptr %39, align 8, !tbaa !9
  %376 = icmp sle i64 %374, %375
  br i1 %376, label %377, label %379

377:                                              ; preds = %365
  %378 = load i64, ptr %38, align 8, !tbaa !9
  br label %381

379:                                              ; preds = %365
  %380 = load i64, ptr %39, align 8, !tbaa !9
  br label %381

381:                                              ; preds = %379, %377
  %382 = phi i64 [ %378, %377 ], [ %380, %379 ]
  store i64 %382, ptr %84, align 8, !tbaa !9
  %383 = load i64, ptr %84, align 8, !tbaa !9
  store i64 %383, ptr %65, align 8, !tbaa !9
  %384 = load ptr, ptr %20, align 8, !tbaa !5
  %385 = load i64, ptr %384, align 8, !tbaa !9
  %386 = add nsw i64 %385, 6
  %387 = sdiv i64 %386, 9
  store i64 %387, ptr %38, align 8, !tbaa !9
  %388 = load ptr, ptr %32, align 8, !tbaa !5
  %389 = load i64, ptr %388, align 8, !tbaa !9
  %390 = shl i64 %389, 1
  %391 = sdiv i64 %390, 3
  store i64 %391, ptr %39, align 8, !tbaa !9
  %392 = load i64, ptr %38, align 8, !tbaa !9
  %393 = load i64, ptr %39, align 8, !tbaa !9
  %394 = icmp sle i64 %392, %393
  br i1 %394, label %395, label %397

395:                                              ; preds = %381
  %396 = load i64, ptr %38, align 8, !tbaa !9
  br label %399

397:                                              ; preds = %381
  %398 = load i64, ptr %39, align 8, !tbaa !9
  br label %399

399:                                              ; preds = %397, %395
  %400 = phi i64 [ %396, %395 ], [ %398, %397 ]
  store i64 %400, ptr %83, align 8, !tbaa !9
  %401 = load i64, ptr %83, align 8, !tbaa !9
  %402 = srem i64 %401, 2
  %403 = load i64, ptr %83, align 8, !tbaa !9
  %404 = sub nsw i64 %403, %402
  store i64 %404, ptr %83, align 8, !tbaa !9
  store i64 1, ptr %75, align 8, !tbaa !9
  store i64 10, ptr %38, align 8, !tbaa !9
  %405 = load ptr, ptr %22, align 8, !tbaa !5
  %406 = load i64, ptr %405, align 8, !tbaa !9
  %407 = load ptr, ptr %21, align 8, !tbaa !5
  %408 = load i64, ptr %407, align 8, !tbaa !9
  %409 = sub nsw i64 %406, %408
  %410 = add nsw i64 %409, 1
  store i64 %410, ptr %39, align 8, !tbaa !9
  %411 = load i64, ptr %38, align 8, !tbaa !9
  %412 = load i64, ptr %39, align 8, !tbaa !9
  %413 = icmp sge i64 %411, %412
  br i1 %413, label %414, label %416

414:                                              ; preds = %399
  %415 = load i64, ptr %38, align 8, !tbaa !9
  br label %418

416:                                              ; preds = %399
  %417 = load i64, ptr %39, align 8, !tbaa !9
  br label %418

418:                                              ; preds = %416, %414
  %419 = phi i64 [ %415, %414 ], [ %417, %416 ]
  %420 = mul nsw i64 %419, 30
  store i64 %420, ptr %82, align 8, !tbaa !9
  %421 = load ptr, ptr %22, align 8, !tbaa !5
  %422 = load i64, ptr %421, align 8, !tbaa !9
  store i64 %422, ptr %76, align 8, !tbaa !9
  %423 = load i64, ptr %82, align 8, !tbaa !9
  store i64 %423, ptr %38, align 8, !tbaa !9
  store i64 1, ptr %56, align 8, !tbaa !9
  br label %424

424:                                              ; preds = %1361, %418
  %425 = load i64, ptr %56, align 8, !tbaa !9
  %426 = load i64, ptr %38, align 8, !tbaa !9
  %427 = icmp sle i64 %425, %426
  br i1 %427, label %428, label %1364

428:                                              ; preds = %424
  %429 = load i64, ptr %76, align 8, !tbaa !9
  %430 = load ptr, ptr %21, align 8, !tbaa !5
  %431 = load i64, ptr %430, align 8, !tbaa !9
  %432 = icmp slt i64 %429, %431
  br i1 %432, label %433, label %434

433:                                              ; preds = %428
  br label %1367

434:                                              ; preds = %428
  %435 = load ptr, ptr %21, align 8, !tbaa !5
  %436 = load i64, ptr %435, align 8, !tbaa !9
  %437 = add nsw i64 %436, 1
  store i64 %437, ptr %39, align 8, !tbaa !9
  %438 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %438, ptr %48, align 8, !tbaa !9
  br label %439

439:                                              ; preds = %456, %434
  %440 = load i64, ptr %48, align 8, !tbaa !9
  %441 = load i64, ptr %39, align 8, !tbaa !9
  %442 = icmp sge i64 %440, %441
  br i1 %442, label %443, label %459

443:                                              ; preds = %439
  %444 = load ptr, ptr %23, align 8, !tbaa !5
  %445 = load i64, ptr %48, align 8, !tbaa !9
  %446 = load i64, ptr %48, align 8, !tbaa !9
  %447 = sub nsw i64 %446, 1
  %448 = load i64, ptr %34, align 8, !tbaa !9
  %449 = mul nsw i64 %447, %448
  %450 = add nsw i64 %445, %449
  %451 = getelementptr inbounds float, ptr %444, i64 %450
  %452 = load float, ptr %451, align 4, !tbaa !11
  %453 = fcmp oeq float %452, 0.000000e+00
  br i1 %453, label %454, label %455

454:                                              ; preds = %443
  br label %462

455:                                              ; preds = %443
  br label %456

456:                                              ; preds = %455
  %457 = load i64, ptr %48, align 8, !tbaa !9
  %458 = add nsw i64 %457, -1
  store i64 %458, ptr %48, align 8, !tbaa !9
  br label %439, !llvm.loop !14

459:                                              ; preds = %439
  %460 = load ptr, ptr %21, align 8, !tbaa !5
  %461 = load i64, ptr %460, align 8, !tbaa !9
  store i64 %461, ptr %48, align 8, !tbaa !9
  br label %462

462:                                              ; preds = %459, %454
  %463 = load i64, ptr %48, align 8, !tbaa !9
  store i64 %463, ptr %79, align 8, !tbaa !9
  %464 = load i64, ptr %76, align 8, !tbaa !9
  %465 = load i64, ptr %79, align 8, !tbaa !9
  %466 = sub nsw i64 %464, %465
  %467 = add nsw i64 %466, 1
  store i64 %467, ptr %55, align 8, !tbaa !9
  %468 = load i64, ptr %55, align 8, !tbaa !9
  %469 = load i64, ptr %84, align 8, !tbaa !9
  %470 = icmp sle i64 %468, %469
  br i1 %470, label %471, label %473

471:                                              ; preds = %462
  %472 = load i64, ptr %55, align 8, !tbaa !9
  br label %475

473:                                              ; preds = %462
  %474 = load i64, ptr %84, align 8, !tbaa !9
  br label %475

475:                                              ; preds = %473, %471
  %476 = phi i64 [ %472, %471 ], [ %474, %473 ]
  store i64 %476, ptr %88, align 8, !tbaa !9
  %477 = load i64, ptr %75, align 8, !tbaa !9
  %478 = icmp slt i64 %477, 5
  br i1 %478, label %479, label %489

479:                                              ; preds = %475
  %480 = load i64, ptr %88, align 8, !tbaa !9
  %481 = load i64, ptr %72, align 8, !tbaa !9
  %482 = icmp sle i64 %480, %481
  br i1 %482, label %483, label %485

483:                                              ; preds = %479
  %484 = load i64, ptr %88, align 8, !tbaa !9
  br label %487

485:                                              ; preds = %479
  %486 = load i64, ptr %72, align 8, !tbaa !9
  br label %487

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

489:                                              ; preds = %475
  %490 = load i64, ptr %88, align 8, !tbaa !9
  store i64 %490, ptr %39, align 8, !tbaa !9
  %491 = load i64, ptr %65, align 8, !tbaa !9
  %492 = shl i64 %491, 1
  store i64 %492, ptr %40, align 8, !tbaa !9
  %493 = load i64, ptr %39, align 8, !tbaa !9
  %494 = load i64, ptr %40, align 8, !tbaa !9
  %495 = icmp sle i64 %493, %494
  br i1 %495, label %496, label %498

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

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

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

502:                                              ; preds = %500, %487
  %503 = load i64, ptr %65, align 8, !tbaa !9
  %504 = load i64, ptr %84, align 8, !tbaa !9
  %505 = icmp slt i64 %503, %504
  br i1 %505, label %506, label %563

506:                                              ; preds = %502
  %507 = load i64, ptr %65, align 8, !tbaa !9
  %508 = load i64, ptr %55, align 8, !tbaa !9
  %509 = sub nsw i64 %508, 1
  %510 = icmp sge i64 %507, %509
  br i1 %510, label %511, label %513

511:                                              ; preds = %506
  %512 = load i64, ptr %55, align 8, !tbaa !9
  store i64 %512, ptr %65, align 8, !tbaa !9
  br label %562

513:                                              ; preds = %506
  %514 = load i64, ptr %76, align 8, !tbaa !9
  %515 = load i64, ptr %65, align 8, !tbaa !9
  %516 = sub nsw i64 %514, %515
  %517 = add nsw i64 %516, 1
  store i64 %517, ptr %85, align 8, !tbaa !9
  %518 = load ptr, ptr %23, align 8, !tbaa !5
  %519 = load i64, ptr %85, align 8, !tbaa !9
  %520 = load i64, ptr %85, align 8, !tbaa !9
  %521 = sub nsw i64 %520, 1
  %522 = load i64, ptr %34, align 8, !tbaa !9
  %523 = mul nsw i64 %521, %522
  %524 = add nsw i64 %519, %523
  %525 = getelementptr inbounds float, ptr %518, i64 %524
  %526 = load float, ptr %525, align 4, !tbaa !11
  store float %526, ptr %43, align 4, !tbaa !11
  %527 = load float, ptr %43, align 4, !tbaa !11
  %528 = fcmp oge float %527, 0.000000e+00
  br i1 %528, label %529, label %531

529:                                              ; preds = %513
  %530 = load float, ptr %43, align 4, !tbaa !11
  br label %534

531:                                              ; preds = %513
  %532 = load float, ptr %43, align 4, !tbaa !11
  %533 = fneg float %532
  br label %534

534:                                              ; preds = %531, %529
  %535 = phi float [ %530, %529 ], [ %533, %531 ]
  %536 = fpext float %535 to double
  %537 = load ptr, ptr %23, align 8, !tbaa !5
  %538 = load i64, ptr %85, align 8, !tbaa !9
  %539 = sub nsw i64 %538, 1
  %540 = load i64, ptr %85, align 8, !tbaa !9
  %541 = sub nsw i64 %540, 2
  %542 = load i64, ptr %34, align 8, !tbaa !9
  %543 = mul nsw i64 %541, %542
  %544 = add nsw i64 %539, %543
  %545 = getelementptr inbounds float, ptr %537, i64 %544
  %546 = load float, ptr %545, align 4, !tbaa !11
  store float %546, ptr %44, align 4, !tbaa !11
  %547 = load float, ptr %44, align 4, !tbaa !11
  %548 = fcmp oge float %547, 0.000000e+00
  br i1 %548, label %549, label %551

549:                                              ; preds = %534
  %550 = load float, ptr %44, align 4, !tbaa !11
  br label %554

551:                                              ; preds = %534
  %552 = load float, ptr %44, align 4, !tbaa !11
  %553 = fneg float %552
  br label %554

554:                                              ; preds = %551, %549
  %555 = phi float [ %550, %549 ], [ %553, %551 ]
  %556 = fpext float %555 to double
  %557 = fcmp ogt double %536, %556
  br i1 %557, label %558, label %561

558:                                              ; preds = %554
  %559 = load i64, ptr %65, align 8, !tbaa !9
  %560 = add nsw i64 %559, 1
  store i64 %560, ptr %65, align 8, !tbaa !9
  br label %561

561:                                              ; preds = %558, %554
  br label %562

562:                                              ; preds = %561, %511
  br label %563

563:                                              ; preds = %562, %502
  %564 = load i64, ptr %75, align 8, !tbaa !9
  %565 = icmp slt i64 %564, 5
  br i1 %565, label %566, label %567

566:                                              ; preds = %563
  store i64 -1, ptr %74, align 8, !tbaa !9
  br label %587

567:                                              ; preds = %563
  %568 = load i64, ptr %74, align 8, !tbaa !9
  %569 = icmp sge i64 %568, 0
  br i1 %569, label %574, label %570

570:                                              ; preds = %567
  %571 = load i64, ptr %65, align 8, !tbaa !9
  %572 = load i64, ptr %88, align 8, !tbaa !9
  %573 = icmp sge i64 %571, %572
  br i1 %573, label %574, label %586

574:                                              ; preds = %570, %567
  %575 = load i64, ptr %74, align 8, !tbaa !9
  %576 = add nsw i64 %575, 1
  store i64 %576, ptr %74, align 8, !tbaa !9
  %577 = load i64, ptr %65, align 8, !tbaa !9
  %578 = load i64, ptr %74, align 8, !tbaa !9
  %579 = sub nsw i64 %577, %578
  %580 = icmp slt i64 %579, 2
  br i1 %580, label %581, label %582

581:                                              ; preds = %574
  store i64 0, ptr %74, align 8, !tbaa !9
  br label %582

582:                                              ; preds = %581, %574
  %583 = load i64, ptr %74, align 8, !tbaa !9
  %584 = load i64, ptr %65, align 8, !tbaa !9
  %585 = sub nsw i64 %584, %583
  store i64 %585, ptr %65, align 8, !tbaa !9
  br label %586

586:                                              ; preds = %582, %570
  br label %587

587:                                              ; preds = %586, %566
  %588 = load ptr, ptr %20, align 8, !tbaa !5
  %589 = load i64, ptr %588, align 8, !tbaa !9
  %590 = load i64, ptr %65, align 8, !tbaa !9
  %591 = sub nsw i64 %589, %590
  %592 = add nsw i64 %591, 1
  store i64 %592, ptr %61, align 8, !tbaa !9
  %593 = load i64, ptr %65, align 8, !tbaa !9
  %594 = add nsw i64 %593, 1
  store i64 %594, ptr %58, align 8, !tbaa !9
  %595 = load ptr, ptr %20, align 8, !tbaa !5
  %596 = load i64, ptr %595, align 8, !tbaa !9
  %597 = load i64, ptr %65, align 8, !tbaa !9
  %598 = sub nsw i64 %596, %597
  %599 = sub nsw i64 %598, 1
  %600 = load i64, ptr %58, align 8, !tbaa !9
  %601 = sub nsw i64 %599, %600
  %602 = add nsw i64 %601, 1
  store i64 %602, ptr %68, align 8, !tbaa !9
  %603 = load i64, ptr %65, align 8, !tbaa !9
  %604 = add nsw i64 %603, 2
  store i64 %604, ptr %73, align 8, !tbaa !9
  %605 = load ptr, ptr %20, align 8, !tbaa !5
  %606 = load i64, ptr %605, align 8, !tbaa !9
  %607 = load i64, ptr %65, align 8, !tbaa !9
  %608 = sub nsw i64 %606, %607
  %609 = load i64, ptr %73, align 8, !tbaa !9
  %610 = sub nsw i64 %608, %609
  %611 = add nsw i64 %610, 1
  store i64 %611, ptr %69, align 8, !tbaa !9
  %612 = load ptr, ptr %18, align 8, !tbaa !5
  %613 = load ptr, ptr %19, align 8, !tbaa !5
  %614 = load ptr, ptr %20, align 8, !tbaa !5
  %615 = load ptr, ptr %23, align 8, !tbaa !5
  %616 = load i64, ptr %35, align 8, !tbaa !9
  %617 = getelementptr inbounds float, ptr %615, i64 %616
  %618 = load ptr, ptr %24, align 8, !tbaa !5
  %619 = load ptr, ptr %27, align 8, !tbaa !5
  %620 = load ptr, ptr %28, align 8, !tbaa !5
  %621 = load ptr, ptr %29, align 8, !tbaa !5
  %622 = load i64, ptr %37, align 8, !tbaa !9
  %623 = getelementptr inbounds float, ptr %621, i64 %622
  %624 = load ptr, ptr %30, align 8, !tbaa !5
  %625 = load ptr, ptr %25, align 8, !tbaa !5
  %626 = getelementptr inbounds float, ptr %625, i64 1
  %627 = load ptr, ptr %26, align 8, !tbaa !5
  %628 = getelementptr inbounds float, ptr %627, i64 1
  %629 = load ptr, ptr %23, align 8, !tbaa !5
  %630 = load i64, ptr %61, align 8, !tbaa !9
  %631 = load i64, ptr %34, align 8, !tbaa !9
  %632 = add nsw i64 %630, %631
  %633 = getelementptr inbounds float, ptr %629, i64 %632
  %634 = load ptr, ptr %24, align 8, !tbaa !5
  %635 = load ptr, ptr %23, align 8, !tbaa !5
  %636 = load i64, ptr %61, align 8, !tbaa !9
  %637 = load i64, ptr %58, align 8, !tbaa !9
  %638 = load i64, ptr %34, align 8, !tbaa !9
  %639 = mul nsw i64 %637, %638
  %640 = add nsw i64 %636, %639
  %641 = getelementptr inbounds float, ptr %635, i64 %640
  %642 = load ptr, ptr %24, align 8, !tbaa !5
  %643 = load ptr, ptr %23, align 8, !tbaa !5
  %644 = load i64, ptr %73, align 8, !tbaa !9
  %645 = load i64, ptr %34, align 8, !tbaa !9
  %646 = add nsw i64 %644, %645
  %647 = getelementptr inbounds float, ptr %643, i64 %646
  %648 = load ptr, ptr %24, align 8, !tbaa !5
  %649 = load ptr, ptr %31, align 8, !tbaa !5
  %650 = getelementptr inbounds float, ptr %649, i64 1
  %651 = load ptr, ptr %32, align 8, !tbaa !5
  %652 = call i32 @slaqr2_(ptr noundef %612, ptr noundef %613, ptr noundef %614, ptr noundef %79, ptr noundef %76, ptr noundef %65, ptr noundef %617, ptr noundef %618, ptr noundef %619, ptr noundef %620, ptr noundef %623, ptr noundef %624, ptr noundef %62, ptr noundef %53, ptr noundef %626, ptr noundef %628, ptr noundef %633, ptr noundef %634, ptr noundef %68, ptr noundef %641, ptr noundef %642, ptr noundef %69, ptr noundef %647, ptr noundef %648, ptr noundef %650, ptr noundef %651)
  %653 = load i64, ptr %53, align 8, !tbaa !9
  %654 = load i64, ptr %76, align 8, !tbaa !9
  %655 = sub nsw i64 %654, %653
  store i64 %655, ptr %76, align 8, !tbaa !9
  %656 = load i64, ptr %76, align 8, !tbaa !9
  %657 = load i64, ptr %62, align 8, !tbaa !9
  %658 = sub nsw i64 %656, %657
  %659 = add nsw i64 %658, 1
  store i64 %659, ptr %57, align 8, !tbaa !9
  %660 = load i64, ptr %53, align 8, !tbaa !9
  %661 = icmp eq i64 %660, 0
  br i1 %661, label %684, label %662

662:                                              ; preds = %587
  %663 = load i64, ptr %53, align 8, !tbaa !9
  %664 = mul nsw i64 %663, 100
  %665 = load i64, ptr %65, align 8, !tbaa !9
  %666 = load i64, ptr %86, align 8, !tbaa !9
  %667 = mul nsw i64 %665, %666
  %668 = icmp sle i64 %664, %667
  br i1 %668, label %669, label %1353

669:                                              ; preds = %662
  %670 = load i64, ptr %76, align 8, !tbaa !9
  %671 = load i64, ptr %79, align 8, !tbaa !9
  %672 = sub nsw i64 %670, %671
  %673 = add nsw i64 %672, 1
  %674 = load i64, ptr %77, align 8, !tbaa !9
  %675 = load i64, ptr %84, align 8, !tbaa !9
  %676 = icmp sle i64 %674, %675
  br i1 %676, label %677, label %679

677:                                              ; preds = %669
  %678 = load i64, ptr %77, align 8, !tbaa !9
  br label %681

679:                                              ; preds = %669
  %680 = load i64, ptr %84, align 8, !tbaa !9
  br label %681

681:                                              ; preds = %679, %677
  %682 = phi i64 [ %678, %677 ], [ %680, %679 ]
  %683 = icmp sgt i64 %673, %682
  br i1 %683, label %684, label %1353

684:                                              ; preds = %681, %587
  store i64 2, ptr %41, align 8, !tbaa !9
  %685 = load i64, ptr %76, align 8, !tbaa !9
  %686 = load i64, ptr %79, align 8, !tbaa !9
  %687 = sub nsw i64 %685, %686
  store i64 %687, ptr %42, align 8, !tbaa !9
  %688 = load i64, ptr %83, align 8, !tbaa !9
  %689 = load i64, ptr %71, align 8, !tbaa !9
  %690 = icmp sle i64 %688, %689
  br i1 %690, label %691, label %693

691:                                              ; preds = %684
  %692 = load i64, ptr %83, align 8, !tbaa !9
  br label %695

693:                                              ; preds = %684
  %694 = load i64, ptr %71, align 8, !tbaa !9
  br label %695

695:                                              ; preds = %693, %691
  %696 = phi i64 [ %692, %691 ], [ %694, %693 ]
  store i64 %696, ptr %39, align 8, !tbaa !9
  %697 = load i64, ptr %41, align 8, !tbaa !9
  %698 = load i64, ptr %42, align 8, !tbaa !9
  %699 = icmp sge i64 %697, %698
  br i1 %699, label %700, label %702

700:                                              ; preds = %695
  %701 = load i64, ptr %41, align 8, !tbaa !9
  br label %704

702:                                              ; preds = %695
  %703 = load i64, ptr %42, align 8, !tbaa !9
  br label %704

704:                                              ; preds = %702, %700
  %705 = phi i64 [ %701, %700 ], [ %703, %702 ]
  store i64 %705, ptr %40, align 8, !tbaa !9
  %706 = load i64, ptr %39, align 8, !tbaa !9
  %707 = load i64, ptr %40, align 8, !tbaa !9
  %708 = icmp sle i64 %706, %707
  br i1 %708, label %709, label %711

709:                                              ; preds = %704
  %710 = load i64, ptr %39, align 8, !tbaa !9
  br label %713

711:                                              ; preds = %704
  %712 = load i64, ptr %40, align 8, !tbaa !9
  br label %713

713:                                              ; preds = %711, %709
  %714 = phi i64 [ %710, %709 ], [ %712, %711 ]
  store i64 %714, ptr %63, align 8, !tbaa !9
  %715 = load i64, ptr %63, align 8, !tbaa !9
  %716 = srem i64 %715, 2
  %717 = load i64, ptr %63, align 8, !tbaa !9
  %718 = sub nsw i64 %717, %716
  store i64 %718, ptr %63, align 8, !tbaa !9
  %719 = load i64, ptr %75, align 8, !tbaa !9
  %720 = srem i64 %719, 6
  %721 = icmp eq i64 %720, 0
  br i1 %721, label %722, label %859

722:                                              ; preds = %713
  %723 = load i64, ptr %76, align 8, !tbaa !9
  %724 = load i64, ptr %63, align 8, !tbaa !9
  %725 = sub nsw i64 %723, %724
  %726 = add nsw i64 %725, 1
  store i64 %726, ptr %57, align 8, !tbaa !9
  %727 = load i64, ptr %57, align 8, !tbaa !9
  %728 = add nsw i64 %727, 1
  store i64 %728, ptr %40, align 8, !tbaa !9
  %729 = load i64, ptr %79, align 8, !tbaa !9
  %730 = add nsw i64 %729, 2
  store i64 %730, ptr %41, align 8, !tbaa !9
  %731 = load i64, ptr %40, align 8, !tbaa !9
  %732 = load i64, ptr %41, align 8, !tbaa !9
  %733 = icmp sge i64 %731, %732
  br i1 %733, label %734, label %736

734:                                              ; preds = %722
  %735 = load i64, ptr %40, align 8, !tbaa !9
  br label %738

736:                                              ; preds = %722
  %737 = load i64, ptr %41, align 8, !tbaa !9
  br label %738

738:                                              ; preds = %736, %734
  %739 = phi i64 [ %735, %734 ], [ %737, %736 ]
  store i64 %739, ptr %39, align 8, !tbaa !9
  %740 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %740, ptr %47, align 8, !tbaa !9
  br label %741

741:                                              ; preds = %816, %738
  %742 = load i64, ptr %47, align 8, !tbaa !9
  %743 = load i64, ptr %39, align 8, !tbaa !9
  %744 = icmp sge i64 %742, %743
  br i1 %744, label %745, label %819

745:                                              ; preds = %741
  %746 = load ptr, ptr %23, align 8, !tbaa !5
  %747 = load i64, ptr %47, align 8, !tbaa !9
  %748 = load i64, ptr %47, align 8, !tbaa !9
  %749 = sub nsw i64 %748, 1
  %750 = load i64, ptr %34, align 8, !tbaa !9
  %751 = mul nsw i64 %749, %750
  %752 = add nsw i64 %747, %751
  %753 = getelementptr inbounds float, ptr %746, i64 %752
  %754 = load float, ptr %753, align 4, !tbaa !11
  store float %754, ptr %43, align 4, !tbaa !11
  %755 = load float, ptr %43, align 4, !tbaa !11
  %756 = fcmp oge float %755, 0.000000e+00
  br i1 %756, label %757, label %759

757:                                              ; preds = %745
  %758 = load float, ptr %43, align 4, !tbaa !11
  br label %762

759:                                              ; preds = %745
  %760 = load float, ptr %43, align 4, !tbaa !11
  %761 = fneg float %760
  br label %762

762:                                              ; preds = %759, %757
  %763 = phi float [ %758, %757 ], [ %761, %759 ]
  %764 = fpext float %763 to double
  %765 = load ptr, ptr %23, align 8, !tbaa !5
  %766 = load i64, ptr %47, align 8, !tbaa !9
  %767 = sub nsw i64 %766, 1
  %768 = load i64, ptr %47, align 8, !tbaa !9
  %769 = sub nsw i64 %768, 2
  %770 = load i64, ptr %34, align 8, !tbaa !9
  %771 = mul nsw i64 %769, %770
  %772 = add nsw i64 %767, %771
  %773 = getelementptr inbounds float, ptr %765, i64 %772
  %774 = load float, ptr %773, align 4, !tbaa !11
  store float %774, ptr %44, align 4, !tbaa !11
  %775 = load float, ptr %44, align 4, !tbaa !11
  %776 = fcmp oge float %775, 0.000000e+00
  br i1 %776, label %777, label %779

777:                                              ; preds = %762
  %778 = load float, ptr %44, align 4, !tbaa !11
  br label %782

779:                                              ; preds = %762
  %780 = load float, ptr %44, align 4, !tbaa !11
  %781 = fneg float %780
  br label %782

782:                                              ; preds = %779, %777
  %783 = phi float [ %778, %777 ], [ %781, %779 ]
  %784 = fpext float %783 to double
  %785 = fadd double %764, %784
  %786 = fptrunc double %785 to float
  store float %786, ptr %64, align 4, !tbaa !11
  %787 = load float, ptr %64, align 4, !tbaa !11
  %788 = load ptr, ptr %23, align 8, !tbaa !5
  %789 = load i64, ptr %47, align 8, !tbaa !9
  %790 = load i64, ptr %47, align 8, !tbaa !9
  %791 = load i64, ptr %34, align 8, !tbaa !9
  %792 = mul nsw i64 %790, %791
  %793 = add nsw i64 %789, %792
  %794 = getelementptr inbounds float, ptr %788, i64 %793
  %795 = load float, ptr %794, align 4, !tbaa !11
  %796 = call float @llvm.fmuladd.f32(float %787, float 7.500000e-01, float %795)
  store float %796, ptr %49, align 4, !tbaa !11
  %797 = load float, ptr %64, align 4, !tbaa !11
  store float %797, ptr %50, align 4, !tbaa !11
  %798 = load float, ptr %64, align 4, !tbaa !11
  %799 = fmul float %798, -4.375000e-01
  store float %799, ptr %51, align 4, !tbaa !11
  %800 = load float, ptr %49, align 4, !tbaa !11
  store float %800, ptr %52, align 4, !tbaa !11
  %801 = load ptr, ptr %25, align 8, !tbaa !5
  %802 = load i64, ptr %47, align 8, !tbaa !9
  %803 = sub nsw i64 %802, 1
  %804 = getelementptr inbounds float, ptr %801, i64 %803
  %805 = load ptr, ptr %26, align 8, !tbaa !5
  %806 = load i64, ptr %47, align 8, !tbaa !9
  %807 = sub nsw i64 %806, 1
  %808 = getelementptr inbounds float, ptr %805, i64 %807
  %809 = load ptr, ptr %25, align 8, !tbaa !5
  %810 = load i64, ptr %47, align 8, !tbaa !9
  %811 = getelementptr inbounds float, ptr %809, i64 %810
  %812 = load ptr, ptr %26, align 8, !tbaa !5
  %813 = load i64, ptr %47, align 8, !tbaa !9
  %814 = getelementptr inbounds float, ptr %812, i64 %813
  %815 = call i32 @slanv2_(ptr noundef %49, ptr noundef %50, ptr noundef %51, ptr noundef %52, ptr noundef %804, ptr noundef %808, ptr noundef %811, ptr noundef %814, ptr noundef %54, ptr noundef %59)
  br label %816

816:                                              ; preds = %782
  %817 = load i64, ptr %47, align 8, !tbaa !9
  %818 = add nsw i64 %817, -2
  store i64 %818, ptr %47, align 8, !tbaa !9
  br label %741, !llvm.loop !16

819:                                              ; preds = %741
  %820 = load i64, ptr %57, align 8, !tbaa !9
  %821 = load i64, ptr %79, align 8, !tbaa !9
  %822 = icmp eq i64 %820, %821
  br i1 %822, label %823, label %858

823:                                              ; preds = %819
  %824 = load ptr, ptr %23, align 8, !tbaa !5
  %825 = load i64, ptr %57, align 8, !tbaa !9
  %826 = add nsw i64 %825, 1
  %827 = load i64, ptr %57, align 8, !tbaa !9
  %828 = add nsw i64 %827, 1
  %829 = load i64, ptr %34, align 8, !tbaa !9
  %830 = mul nsw i64 %828, %829
  %831 = add nsw i64 %826, %830
  %832 = getelementptr inbounds float, ptr %824, i64 %831
  %833 = load float, ptr %832, align 4, !tbaa !11
  %834 = load ptr, ptr %25, align 8, !tbaa !5
  %835 = load i64, ptr %57, align 8, !tbaa !9
  %836 = add nsw i64 %835, 1
  %837 = getelementptr inbounds float, ptr %834, i64 %836
  store float %833, ptr %837, align 4, !tbaa !11
  %838 = load ptr, ptr %26, align 8, !tbaa !5
  %839 = load i64, ptr %57, align 8, !tbaa !9
  %840 = add nsw i64 %839, 1
  %841 = getelementptr inbounds float, ptr %838, i64 %840
  store float 0.000000e+00, ptr %841, align 4, !tbaa !11
  %842 = load ptr, ptr %25, align 8, !tbaa !5
  %843 = load i64, ptr %57, align 8, !tbaa !9
  %844 = add nsw i64 %843, 1
  %845 = getelementptr inbounds float, ptr %842, i64 %844
  %846 = load float, ptr %845, align 4, !tbaa !11
  %847 = load ptr, ptr %25, align 8, !tbaa !5
  %848 = load i64, ptr %57, align 8, !tbaa !9
  %849 = getelementptr inbounds float, ptr %847, i64 %848
  store float %846, ptr %849, align 4, !tbaa !11
  %850 = load ptr, ptr %26, align 8, !tbaa !5
  %851 = load i64, ptr %57, align 8, !tbaa !9
  %852 = add nsw i64 %851, 1
  %853 = getelementptr inbounds float, ptr %850, i64 %852
  %854 = load float, ptr %853, align 4, !tbaa !11
  %855 = load ptr, ptr %26, align 8, !tbaa !5
  %856 = load i64, ptr %57, align 8, !tbaa !9
  %857 = getelementptr inbounds float, ptr %855, i64 %856
  store float %854, ptr %857, align 4, !tbaa !11
  br label %858

858:                                              ; preds = %823, %819
  br label %1179

859:                                              ; preds = %713
  %860 = load i64, ptr %76, align 8, !tbaa !9
  %861 = load i64, ptr %57, align 8, !tbaa !9
  %862 = sub nsw i64 %860, %861
  %863 = add nsw i64 %862, 1
  %864 = load i64, ptr %63, align 8, !tbaa !9
  %865 = sdiv i64 %864, 2
  %866 = icmp sle i64 %863, %865
  br i1 %866, label %867, label %967

867:                                              ; preds = %859
  %868 = load i64, ptr %76, align 8, !tbaa !9
  %869 = load i64, ptr %63, align 8, !tbaa !9
  %870 = sub nsw i64 %868, %869
  %871 = add nsw i64 %870, 1
  store i64 %871, ptr %57, align 8, !tbaa !9
  %872 = load ptr, ptr %20, align 8, !tbaa !5
  %873 = load i64, ptr %872, align 8, !tbaa !9
  %874 = load i64, ptr %63, align 8, !tbaa !9
  %875 = sub nsw i64 %873, %874
  %876 = add nsw i64 %875, 1
  store i64 %876, ptr %58, align 8, !tbaa !9
  %877 = load ptr, ptr %23, align 8, !tbaa !5
  %878 = load i64, ptr %57, align 8, !tbaa !9
  %879 = load i64, ptr %57, align 8, !tbaa !9
  %880 = load i64, ptr %34, align 8, !tbaa !9
  %881 = mul nsw i64 %879, %880
  %882 = add nsw i64 %878, %881
  %883 = getelementptr inbounds float, ptr %877, i64 %882
  %884 = load ptr, ptr %24, align 8, !tbaa !5
  %885 = load ptr, ptr %23, align 8, !tbaa !5
  %886 = load i64, ptr %58, align 8, !tbaa !9
  %887 = load i64, ptr %34, align 8, !tbaa !9
  %888 = add nsw i64 %886, %887
  %889 = getelementptr inbounds float, ptr %885, i64 %888
  %890 = load ptr, ptr %24, align 8, !tbaa !5
  %891 = call i32 @slacpy_(ptr noundef @.str.1, ptr noundef %63, ptr noundef %63, ptr noundef %883, ptr noundef %884, ptr noundef %889, ptr noundef %890)
  %892 = load ptr, ptr %23, align 8, !tbaa !5
  %893 = load i64, ptr %58, align 8, !tbaa !9
  %894 = load i64, ptr %34, align 8, !tbaa !9
  %895 = add nsw i64 %893, %894
  %896 = getelementptr inbounds float, ptr %892, i64 %895
  %897 = load ptr, ptr %24, align 8, !tbaa !5
  %898 = load ptr, ptr %25, align 8, !tbaa !5
  %899 = load i64, ptr %57, align 8, !tbaa !9
  %900 = getelementptr inbounds float, ptr %898, i64 %899
  %901 = load ptr, ptr %26, align 8, !tbaa !5
  %902 = load i64, ptr %57, align 8, !tbaa !9
  %903 = getelementptr inbounds float, ptr %901, i64 %902
  %904 = getelementptr inbounds [1 x float], ptr %80, i64 0, i64 0
  %905 = call i32 @slahqr_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef %63, ptr noundef @c__1, ptr noundef %63, ptr noundef %896, ptr noundef %897, ptr noundef %900, ptr noundef %903, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %904, ptr noundef @c__1, ptr noundef %66)
  %906 = load i64, ptr %66, align 8, !tbaa !9
  %907 = load i64, ptr %57, align 8, !tbaa !9
  %908 = add nsw i64 %907, %906
  store i64 %908, ptr %57, align 8, !tbaa !9
  %909 = load i64, ptr %57, align 8, !tbaa !9
  %910 = load i64, ptr %76, align 8, !tbaa !9
  %911 = icmp sge i64 %909, %910
  br i1 %911, label %912, label %966

912:                                              ; preds = %867
  %913 = load ptr, ptr %23, align 8, !tbaa !5
  %914 = load i64, ptr %76, align 8, !tbaa !9
  %915 = sub nsw i64 %914, 1
  %916 = load i64, ptr %76, align 8, !tbaa !9
  %917 = sub nsw i64 %916, 1
  %918 = load i64, ptr %34, align 8, !tbaa !9
  %919 = mul nsw i64 %917, %918
  %920 = add nsw i64 %915, %919
  %921 = getelementptr inbounds float, ptr %913, i64 %920
  %922 = load float, ptr %921, align 4, !tbaa !11
  store float %922, ptr %49, align 4, !tbaa !11
  %923 = load ptr, ptr %23, align 8, !tbaa !5
  %924 = load i64, ptr %76, align 8, !tbaa !9
  %925 = load i64, ptr %76, align 8, !tbaa !9
  %926 = sub nsw i64 %925, 1
  %927 = load i64, ptr %34, align 8, !tbaa !9
  %928 = mul nsw i64 %926, %927
  %929 = add nsw i64 %924, %928
  %930 = getelementptr inbounds float, ptr %923, i64 %929
  %931 = load float, ptr %930, align 4, !tbaa !11
  store float %931, ptr %51, align 4, !tbaa !11
  %932 = load ptr, ptr %23, align 8, !tbaa !5
  %933 = load i64, ptr %76, align 8, !tbaa !9
  %934 = sub nsw i64 %933, 1
  %935 = load i64, ptr %76, align 8, !tbaa !9
  %936 = load i64, ptr %34, align 8, !tbaa !9
  %937 = mul nsw i64 %935, %936
  %938 = add nsw i64 %934, %937
  %939 = getelementptr inbounds float, ptr %932, i64 %938
  %940 = load float, ptr %939, align 4, !tbaa !11
  store float %940, ptr %50, align 4, !tbaa !11
  %941 = load ptr, ptr %23, align 8, !tbaa !5
  %942 = load i64, ptr %76, align 8, !tbaa !9
  %943 = load i64, ptr %76, align 8, !tbaa !9
  %944 = load i64, ptr %34, align 8, !tbaa !9
  %945 = mul nsw i64 %943, %944
  %946 = add nsw i64 %942, %945
  %947 = getelementptr inbounds float, ptr %941, i64 %946
  %948 = load float, ptr %947, align 4, !tbaa !11
  store float %948, ptr %52, align 4, !tbaa !11
  %949 = load ptr, ptr %25, align 8, !tbaa !5
  %950 = load i64, ptr %76, align 8, !tbaa !9
  %951 = sub nsw i64 %950, 1
  %952 = getelementptr inbounds float, ptr %949, i64 %951
  %953 = load ptr, ptr %26, align 8, !tbaa !5
  %954 = load i64, ptr %76, align 8, !tbaa !9
  %955 = sub nsw i64 %954, 1
  %956 = getelementptr inbounds float, ptr %953, i64 %955
  %957 = load ptr, ptr %25, align 8, !tbaa !5
  %958 = load i64, ptr %76, align 8, !tbaa !9
  %959 = getelementptr inbounds float, ptr %957, i64 %958
  %960 = load ptr, ptr %26, align 8, !tbaa !5
  %961 = load i64, ptr %76, align 8, !tbaa !9
  %962 = getelementptr inbounds float, ptr %960, i64 %961
  %963 = call i32 @slanv2_(ptr noundef %49, ptr noundef %50, ptr noundef %51, ptr noundef %52, ptr noundef %952, ptr noundef %956, ptr noundef %959, ptr noundef %962, ptr noundef %54, ptr noundef %59)
  %964 = load i64, ptr %76, align 8, !tbaa !9
  %965 = sub nsw i64 %964, 1
  store i64 %965, ptr %57, align 8, !tbaa !9
  br label %966

966:                                              ; preds = %912, %867
  br label %967

967:                                              ; preds = %966, %859
  %968 = load i64, ptr %76, align 8, !tbaa !9
  %969 = load i64, ptr %57, align 8, !tbaa !9
  %970 = sub nsw i64 %968, %969
  %971 = add nsw i64 %970, 1
  %972 = load i64, ptr %63, align 8, !tbaa !9
  %973 = icmp sgt i64 %971, %972
  br i1 %973, label %974, label %1101

974:                                              ; preds = %967
  store i64 0, ptr %89, align 8, !tbaa !9
  %975 = load i64, ptr %57, align 8, !tbaa !9
  %976 = add nsw i64 %975, 1
  store i64 %976, ptr %39, align 8, !tbaa !9
  %977 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %977, ptr %48, align 8, !tbaa !9
  br label %978

978:                                              ; preds = %1096, %974
  %979 = load i64, ptr %48, align 8, !tbaa !9
  %980 = load i64, ptr %39, align 8, !tbaa !9
  %981 = icmp sge i64 %979, %980
  br i1 %981, label %982, label %1099

982:                                              ; preds = %978
  %983 = load i64, ptr %89, align 8, !tbaa !9
  %984 = icmp ne i64 %983, 0
  br i1 %984, label %985, label %986

985:                                              ; preds = %982
  br label %1100

986:                                              ; preds = %982
  store i64 1, ptr %89, align 8, !tbaa !9
  %987 = load i64, ptr %48, align 8, !tbaa !9
  %988 = sub nsw i64 %987, 1
  store i64 %988, ptr %40, align 8, !tbaa !9
  %989 = load i64, ptr %57, align 8, !tbaa !9
  store i64 %989, ptr %47, align 8, !tbaa !9
  br label %990

990:                                              ; preds = %1092, %986
  %991 = load i64, ptr %47, align 8, !tbaa !9
  %992 = load i64, ptr %40, align 8, !tbaa !9
  %993 = icmp sle i64 %991, %992
  br i1 %993, label %994, label %1095

994:                                              ; preds = %990
  %995 = load ptr, ptr %25, align 8, !tbaa !5
  %996 = load i64, ptr %47, align 8, !tbaa !9
  %997 = getelementptr inbounds float, ptr %995, i64 %996
  %998 = load float, ptr %997, align 4, !tbaa !11
  store float %998, ptr %43, align 4, !tbaa !11
  %999 = load float, ptr %43, align 4, !tbaa !11
  %1000 = fcmp oge float %999, 0.000000e+00
  br i1 %1000, label %1001, label %1003

1001:                                             ; preds = %994
  %1002 = load float, ptr %43, align 4, !tbaa !11
  br label %1006

1003:                                             ; preds = %994
  %1004 = load float, ptr %43, align 4, !tbaa !11
  %1005 = fneg float %1004
  br label %1006

1006:                                             ; preds = %1003, %1001
  %1007 = phi float [ %1002, %1001 ], [ %1005, %1003 ]
  %1008 = fpext float %1007 to double
  %1009 = load ptr, ptr %26, align 8, !tbaa !5
  %1010 = load i64, ptr %47, align 8, !tbaa !9
  %1011 = getelementptr inbounds float, ptr %1009, i64 %1010
  %1012 = load float, ptr %1011, align 4, !tbaa !11
  store float %1012, ptr %44, align 4, !tbaa !11
  %1013 = load float, ptr %44, align 4, !tbaa !11
  %1014 = fcmp oge float %1013, 0.000000e+00
  br i1 %1014, label %1015, label %1017

1015:                                             ; preds = %1006
  %1016 = load float, ptr %44, align 4, !tbaa !11
  br label %1020

1017:                                             ; preds = %1006
  %1018 = load float, ptr %44, align 4, !tbaa !11
  %1019 = fneg float %1018
  br label %1020

1020:                                             ; preds = %1017, %1015
  %1021 = phi float [ %1016, %1015 ], [ %1019, %1017 ]
  %1022 = fpext float %1021 to double
  %1023 = fadd double %1008, %1022
  %1024 = load ptr, ptr %25, align 8, !tbaa !5
  %1025 = load i64, ptr %47, align 8, !tbaa !9
  %1026 = add nsw i64 %1025, 1
  %1027 = getelementptr inbounds float, ptr %1024, i64 %1026
  %1028 = load float, ptr %1027, align 4, !tbaa !11
  store float %1028, ptr %45, align 4, !tbaa !11
  %1029 = load float, ptr %45, align 4, !tbaa !11
  %1030 = fcmp oge float %1029, 0.000000e+00
  br i1 %1030, label %1031, label %1033

1031:                                             ; preds = %1020
  %1032 = load float, ptr %45, align 4, !tbaa !11
  br label %1036

1033:                                             ; preds = %1020
  %1034 = load float, ptr %45, align 4, !tbaa !11
  %1035 = fneg float %1034
  br label %1036

1036:                                             ; preds = %1033, %1031
  %1037 = phi float [ %1032, %1031 ], [ %1035, %1033 ]
  %1038 = fpext float %1037 to double
  %1039 = load ptr, ptr %26, align 8, !tbaa !5
  %1040 = load i64, ptr %47, align 8, !tbaa !9
  %1041 = add nsw i64 %1040, 1
  %1042 = getelementptr inbounds float, ptr %1039, i64 %1041
  %1043 = load float, ptr %1042, align 4, !tbaa !11
  store float %1043, ptr %46, align 4, !tbaa !11
  %1044 = load float, ptr %46, align 4, !tbaa !11
  %1045 = fcmp oge float %1044, 0.000000e+00
  br i1 %1045, label %1046, label %1048

1046:                                             ; preds = %1036
  %1047 = load float, ptr %46, align 4, !tbaa !11
  br label %1051

1048:                                             ; preds = %1036
  %1049 = load float, ptr %46, align 4, !tbaa !11
  %1050 = fneg float %1049
  br label %1051

1051:                                             ; preds = %1048, %1046
  %1052 = phi float [ %1047, %1046 ], [ %1050, %1048 ]
  %1053 = fpext float %1052 to double
  %1054 = fadd double %1038, %1053
  %1055 = fcmp olt double %1023, %1054
  br i1 %1055, label %1056, label %1091

1056:                                             ; preds = %1051
  store i64 0, ptr %89, align 8, !tbaa !9
  %1057 = load ptr, ptr %25, align 8, !tbaa !5
  %1058 = load i64, ptr %47, align 8, !tbaa !9
  %1059 = getelementptr inbounds float, ptr %1057, i64 %1058
  %1060 = load float, ptr %1059, align 4, !tbaa !11
  store float %1060, ptr %78, align 4, !tbaa !11
  %1061 = load ptr, ptr %25, align 8, !tbaa !5
  %1062 = load i64, ptr %47, align 8, !tbaa !9
  %1063 = add nsw i64 %1062, 1
  %1064 = getelementptr inbounds float, ptr %1061, i64 %1063
  %1065 = load float, ptr %1064, align 4, !tbaa !11
  %1066 = load ptr, ptr %25, align 8, !tbaa !5
  %1067 = load i64, ptr %47, align 8, !tbaa !9
  %1068 = getelementptr inbounds float, ptr %1066, i64 %1067
  store float %1065, ptr %1068, align 4, !tbaa !11
  %1069 = load float, ptr %78, align 4, !tbaa !11
  %1070 = load ptr, ptr %25, align 8, !tbaa !5
  %1071 = load i64, ptr %47, align 8, !tbaa !9
  %1072 = add nsw i64 %1071, 1
  %1073 = getelementptr inbounds float, ptr %1070, i64 %1072
  store float %1069, ptr %1073, align 4, !tbaa !11
  %1074 = load ptr, ptr %26, align 8, !tbaa !5
  %1075 = load i64, ptr %47, align 8, !tbaa !9
  %1076 = getelementptr inbounds float, ptr %1074, i64 %1075
  %1077 = load float, ptr %1076, align 4, !tbaa !11
  store float %1077, ptr %78, align 4, !tbaa !11
  %1078 = load ptr, ptr %26, align 8, !tbaa !5
  %1079 = load i64, ptr %47, align 8, !tbaa !9
  %1080 = add nsw i64 %1079, 1
  %1081 = getelementptr inbounds float, ptr %1078, i64 %1080
  %1082 = load float, ptr %1081, align 4, !tbaa !11
  %1083 = load ptr, ptr %26, align 8, !tbaa !5
  %1084 = load i64, ptr %47, align 8, !tbaa !9
  %1085 = getelementptr inbounds float, ptr %1083, i64 %1084
  store float %1082, ptr %1085, align 4, !tbaa !11
  %1086 = load float, ptr %78, align 4, !tbaa !11
  %1087 = load ptr, ptr %26, align 8, !tbaa !5
  %1088 = load i64, ptr %47, align 8, !tbaa !9
  %1089 = add nsw i64 %1088, 1
  %1090 = getelementptr inbounds float, ptr %1087, i64 %1089
  store float %1086, ptr %1090, align 4, !tbaa !11
  br label %1091

1091:                                             ; preds = %1056, %1051
  br label %1092

1092:                                             ; preds = %1091
  %1093 = load i64, ptr %47, align 8, !tbaa !9
  %1094 = add nsw i64 %1093, 1
  store i64 %1094, ptr %47, align 8, !tbaa !9
  br label %990, !llvm.loop !17

1095:                                             ; preds = %990
  br label %1096

1096:                                             ; preds = %1095
  %1097 = load i64, ptr %48, align 8, !tbaa !9
  %1098 = add nsw i64 %1097, -1
  store i64 %1098, ptr %48, align 8, !tbaa !9
  br label %978, !llvm.loop !18

1099:                                             ; preds = %978
  br label %1100

1100:                                             ; preds = %1099, %985
  br label %1101

1101:                                             ; preds = %1100, %967
  %1102 = load i64, ptr %57, align 8, !tbaa !9
  %1103 = add nsw i64 %1102, 2
  store i64 %1103, ptr %39, align 8, !tbaa !9
  %1104 = load i64, ptr %76, align 8, !tbaa !9
  store i64 %1104, ptr %47, align 8, !tbaa !9
  br label %1105

1105:                                             ; preds = %1175, %1101
  %1106 = load i64, ptr %47, align 8, !tbaa !9
  %1107 = load i64, ptr %39, align 8, !tbaa !9
  %1108 = icmp sge i64 %1106, %1107
  br i1 %1108, label %1109, label %1178

1109:                                             ; preds = %1105
  %1110 = load ptr, ptr %26, align 8, !tbaa !5
  %1111 = load i64, ptr %47, align 8, !tbaa !9
  %1112 = getelementptr inbounds float, ptr %1110, i64 %1111
  %1113 = load float, ptr %1112, align 4, !tbaa !11
  %1114 = load ptr, ptr %26, align 8, !tbaa !5
  %1115 = load i64, ptr %47, align 8, !tbaa !9
  %1116 = sub nsw i64 %1115, 1
  %1117 = getelementptr inbounds float, ptr %1114, i64 %1116
  %1118 = load float, ptr %1117, align 4, !tbaa !11
  %1119 = fneg float %1118
  %1120 = fcmp une float %1113, %1119
  br i1 %1120, label %1121, label %1174

1121:                                             ; preds = %1109
  %1122 = load ptr, ptr %25, align 8, !tbaa !5
  %1123 = load i64, ptr %47, align 8, !tbaa !9
  %1124 = getelementptr inbounds float, ptr %1122, i64 %1123
  %1125 = load float, ptr %1124, align 4, !tbaa !11
  store float %1125, ptr %78, align 4, !tbaa !11
  %1126 = load ptr, ptr %25, align 8, !tbaa !5
  %1127 = load i64, ptr %47, align 8, !tbaa !9
  %1128 = sub nsw i64 %1127, 1
  %1129 = getelementptr inbounds float, ptr %1126, i64 %1128
  %1130 = load float, ptr %1129, align 4, !tbaa !11
  %1131 = load ptr, ptr %25, align 8, !tbaa !5
  %1132 = load i64, ptr %47, align 8, !tbaa !9
  %1133 = getelementptr inbounds float, ptr %1131, i64 %1132
  store float %1130, ptr %1133, align 4, !tbaa !11
  %1134 = load ptr, ptr %25, align 8, !tbaa !5
  %1135 = load i64, ptr %47, align 8, !tbaa !9
  %1136 = sub nsw i64 %1135, 2
  %1137 = getelementptr inbounds float, ptr %1134, i64 %1136
  %1138 = load float, ptr %1137, align 4, !tbaa !11
  %1139 = load ptr, ptr %25, align 8, !tbaa !5
  %1140 = load i64, ptr %47, align 8, !tbaa !9
  %1141 = sub nsw i64 %1140, 1
  %1142 = getelementptr inbounds float, ptr %1139, i64 %1141
  store float %1138, ptr %1142, align 4, !tbaa !11
  %1143 = load float, ptr %78, align 4, !tbaa !11
  %1144 = load ptr, ptr %25, align 8, !tbaa !5
  %1145 = load i64, ptr %47, align 8, !tbaa !9
  %1146 = sub nsw i64 %1145, 2
  %1147 = getelementptr inbounds float, ptr %1144, i64 %1146
  store float %1143, ptr %1147, align 4, !tbaa !11
  %1148 = load ptr, ptr %26, align 8, !tbaa !5
  %1149 = load i64, ptr %47, align 8, !tbaa !9
  %1150 = getelementptr inbounds float, ptr %1148, i64 %1149
  %1151 = load float, ptr %1150, align 4, !tbaa !11
  store float %1151, ptr %78, align 4, !tbaa !11
  %1152 = load ptr, ptr %26, align 8, !tbaa !5
  %1153 = load i64, ptr %47, align 8, !tbaa !9
  %1154 = sub nsw i64 %1153, 1
  %1155 = getelementptr inbounds float, ptr %1152, i64 %1154
  %1156 = load float, ptr %1155, align 4, !tbaa !11
  %1157 = load ptr, ptr %26, align 8, !tbaa !5
  %1158 = load i64, ptr %47, align 8, !tbaa !9
  %1159 = getelementptr inbounds float, ptr %1157, i64 %1158
  store float %1156, ptr %1159, align 4, !tbaa !11
  %1160 = load ptr, ptr %26, align 8, !tbaa !5
  %1161 = load i64, ptr %47, align 8, !tbaa !9
  %1162 = sub nsw i64 %1161, 2
  %1163 = getelementptr inbounds float, ptr %1160, i64 %1162
  %1164 = load float, ptr %1163, align 4, !tbaa !11
  %1165 = load ptr, ptr %26, align 8, !tbaa !5
  %1166 = load i64, ptr %47, align 8, !tbaa !9
  %1167 = sub nsw i64 %1166, 1
  %1168 = getelementptr inbounds float, ptr %1165, i64 %1167
  store float %1164, ptr %1168, align 4, !tbaa !11
  %1169 = load float, ptr %78, align 4, !tbaa !11
  %1170 = load ptr, ptr %26, align 8, !tbaa !5
  %1171 = load i64, ptr %47, align 8, !tbaa !9
  %1172 = sub nsw i64 %1171, 2
  %1173 = getelementptr inbounds float, ptr %1170, i64 %1172
  store float %1169, ptr %1173, align 4, !tbaa !11
  br label %1174

1174:                                             ; preds = %1121, %1109
  br label %1175

1175:                                             ; preds = %1174
  %1176 = load i64, ptr %47, align 8, !tbaa !9
  %1177 = add nsw i64 %1176, -2
  store i64 %1177, ptr %47, align 8, !tbaa !9
  br label %1105, !llvm.loop !19

1178:                                             ; preds = %1105
  br label %1179

1179:                                             ; preds = %1178, %858
  %1180 = load i64, ptr %76, align 8, !tbaa !9
  %1181 = load i64, ptr %57, align 8, !tbaa !9
  %1182 = sub nsw i64 %1180, %1181
  %1183 = add nsw i64 %1182, 1
  %1184 = icmp eq i64 %1183, 2
  br i1 %1184, label %1185, label %1260

1185:                                             ; preds = %1179
  %1186 = load ptr, ptr %26, align 8, !tbaa !5
  %1187 = load i64, ptr %76, align 8, !tbaa !9
  %1188 = getelementptr inbounds float, ptr %1186, i64 %1187
  %1189 = load float, ptr %1188, align 4, !tbaa !11
  %1190 = fcmp oeq float %1189, 0.000000e+00
  br i1 %1190, label %1191, label %1259

1191:                                             ; preds = %1185
  %1192 = load ptr, ptr %25, align 8, !tbaa !5
  %1193 = load i64, ptr %76, align 8, !tbaa !9
  %1194 = getelementptr inbounds float, ptr %1192, i64 %1193
  %1195 = load float, ptr %1194, align 4, !tbaa !11
  %1196 = load ptr, ptr %23, align 8, !tbaa !5
  %1197 = load i64, ptr %76, align 8, !tbaa !9
  %1198 = load i64, ptr %76, align 8, !tbaa !9
  %1199 = load i64, ptr %34, align 8, !tbaa !9
  %1200 = mul nsw i64 %1198, %1199
  %1201 = add nsw i64 %1197, %1200
  %1202 = getelementptr inbounds float, ptr %1196, i64 %1201
  %1203 = load float, ptr %1202, align 4, !tbaa !11
  %1204 = fsub float %1195, %1203
  store float %1204, ptr %43, align 4, !tbaa !11
  %1205 = load float, ptr %43, align 4, !tbaa !11
  %1206 = fcmp oge float %1205, 0.000000e+00
  br i1 %1206, label %1207, label %1209

1207:                                             ; preds = %1191
  %1208 = load float, ptr %43, align 4, !tbaa !11
  br label %1212

1209:                                             ; preds = %1191
  %1210 = load float, ptr %43, align 4, !tbaa !11
  %1211 = fneg float %1210
  br label %1212

1212:                                             ; preds = %1209, %1207
  %1213 = phi float [ %1208, %1207 ], [ %1211, %1209 ]
  %1214 = fpext float %1213 to double
  %1215 = load ptr, ptr %25, align 8, !tbaa !5
  %1216 = load i64, ptr %76, align 8, !tbaa !9
  %1217 = sub nsw i64 %1216, 1
  %1218 = getelementptr inbounds float, ptr %1215, i64 %1217
  %1219 = load float, ptr %1218, align 4, !tbaa !11
  %1220 = load ptr, ptr %23, align 8, !tbaa !5
  %1221 = load i64, ptr %76, align 8, !tbaa !9
  %1222 = load i64, ptr %76, align 8, !tbaa !9
  %1223 = load i64, ptr %34, align 8, !tbaa !9
  %1224 = mul nsw i64 %1222, %1223
  %1225 = add nsw i64 %1221, %1224
  %1226 = getelementptr inbounds float, ptr %1220, i64 %1225
  %1227 = load float, ptr %1226, align 4, !tbaa !11
  %1228 = fsub float %1219, %1227
  store float %1228, ptr %44, align 4, !tbaa !11
  %1229 = load float, ptr %44, align 4, !tbaa !11
  %1230 = fcmp oge float %1229, 0.000000e+00
  br i1 %1230, label %1231, label %1233

1231:                                             ; preds = %1212
  %1232 = load float, ptr %44, align 4, !tbaa !11
  br label %1236

1233:                                             ; preds = %1212
  %1234 = load float, ptr %44, align 4, !tbaa !11
  %1235 = fneg float %1234
  br label %1236

1236:                                             ; preds = %1233, %1231
  %1237 = phi float [ %1232, %1231 ], [ %1235, %1233 ]
  %1238 = fpext float %1237 to double
  %1239 = fcmp olt double %1214, %1238
  br i1 %1239, label %1240, label %1249

1240:                                             ; preds = %1236
  %1241 = load ptr, ptr %25, align 8, !tbaa !5
  %1242 = load i64, ptr %76, align 8, !tbaa !9
  %1243 = getelementptr inbounds float, ptr %1241, i64 %1242
  %1244 = load float, ptr %1243, align 4, !tbaa !11
  %1245 = load ptr, ptr %25, align 8, !tbaa !5
  %1246 = load i64, ptr %76, align 8, !tbaa !9
  %1247 = sub nsw i64 %1246, 1
  %1248 = getelementptr inbounds float, ptr %1245, i64 %1247
  store float %1244, ptr %1248, align 4, !tbaa !11
  br label %1258

1249:                                             ; preds = %1236
  %1250 = load ptr, ptr %25, align 8, !tbaa !5
  %1251 = load i64, ptr %76, align 8, !tbaa !9
  %1252 = sub nsw i64 %1251, 1
  %1253 = getelementptr inbounds float, ptr %1250, i64 %1252
  %1254 = load float, ptr %1253, align 4, !tbaa !11
  %1255 = load ptr, ptr %25, align 8, !tbaa !5
  %1256 = load i64, ptr %76, align 8, !tbaa !9
  %1257 = getelementptr inbounds float, ptr %1255, i64 %1256
  store float %1254, ptr %1257, align 4, !tbaa !11
  br label %1258

1258:                                             ; preds = %1249, %1240
  br label %1259

1259:                                             ; preds = %1258, %1185
  br label %1260

1260:                                             ; preds = %1259, %1179
  %1261 = load i64, ptr %63, align 8, !tbaa !9
  store i64 %1261, ptr %39, align 8, !tbaa !9
  %1262 = load i64, ptr %76, align 8, !tbaa !9
  %1263 = load i64, ptr %57, align 8, !tbaa !9
  %1264 = sub nsw i64 %1262, %1263
  %1265 = add nsw i64 %1264, 1
  store i64 %1265, ptr %40, align 8, !tbaa !9
  %1266 = load i64, ptr %39, align 8, !tbaa !9
  %1267 = load i64, ptr %40, align 8, !tbaa !9
  %1268 = icmp sle i64 %1266, %1267
  br i1 %1268, label %1269, label %1271

1269:                                             ; preds = %1260
  %1270 = load i64, ptr %39, align 8, !tbaa !9
  br label %1273

1271:                                             ; preds = %1260
  %1272 = load i64, ptr %40, align 8, !tbaa !9
  br label %1273

1273:                                             ; preds = %1271, %1269
  %1274 = phi i64 [ %1270, %1269 ], [ %1272, %1271 ]
  store i64 %1274, ptr %63, align 8, !tbaa !9
  %1275 = load i64, ptr %63, align 8, !tbaa !9
  %1276 = srem i64 %1275, 2
  %1277 = load i64, ptr %63, align 8, !tbaa !9
  %1278 = sub nsw i64 %1277, %1276
  store i64 %1278, ptr %63, align 8, !tbaa !9
  %1279 = load i64, ptr %76, align 8, !tbaa !9
  %1280 = load i64, ptr %63, align 8, !tbaa !9
  %1281 = sub nsw i64 %1279, %1280
  %1282 = add nsw i64 %1281, 1
  store i64 %1282, ptr %57, align 8, !tbaa !9
  %1283 = load i64, ptr %63, align 8, !tbaa !9
  %1284 = mul nsw i64 %1283, 3
  %1285 = sub nsw i64 %1284, 3
  store i64 %1285, ptr %67, align 8, !tbaa !9
  %1286 = load ptr, ptr %20, align 8, !tbaa !5
  %1287 = load i64, ptr %1286, align 8, !tbaa !9
  %1288 = load i64, ptr %67, align 8, !tbaa !9
  %1289 = sub nsw i64 %1287, %1288
  %1290 = add nsw i64 %1289, 1
  store i64 %1290, ptr %60, align 8, !tbaa !9
  %1291 = load i64, ptr %67, align 8, !tbaa !9
  %1292 = add nsw i64 %1291, 1
  store i64 %1292, ptr %70, align 8, !tbaa !9
  %1293 = load ptr, ptr %20, align 8, !tbaa !5
  %1294 = load i64, ptr %1293, align 8, !tbaa !9
  %1295 = load i64, ptr %67, align 8, !tbaa !9
  %1296 = sub nsw i64 %1294, %1295
  %1297 = sub nsw i64 %1296, 3
  %1298 = load i64, ptr %67, align 8, !tbaa !9
  %1299 = add nsw i64 %1298, 1
  %1300 = sub nsw i64 %1297, %1299
  %1301 = add nsw i64 %1300, 1
  store i64 %1301, ptr %68, align 8, !tbaa !9
  %1302 = load i64, ptr %67, align 8, !tbaa !9
  %1303 = add nsw i64 %1302, 4
  store i64 %1303, ptr %73, align 8, !tbaa !9
  %1304 = load ptr, ptr %20, align 8, !tbaa !5
  %1305 = load i64, ptr %1304, align 8, !tbaa !9
  %1306 = load i64, ptr %67, align 8, !tbaa !9
  %1307 = sub nsw i64 %1305, %1306
  %1308 = load i64, ptr %73, align 8, !tbaa !9
  %1309 = sub nsw i64 %1307, %1308
  %1310 = add nsw i64 %1309, 1
  store i64 %1310, ptr %69, align 8, !tbaa !9
  %1311 = load ptr, ptr %18, align 8, !tbaa !5
  %1312 = load ptr, ptr %19, align 8, !tbaa !5
  %1313 = load ptr, ptr %20, align 8, !tbaa !5
  %1314 = load ptr, ptr %25, align 8, !tbaa !5
  %1315 = load i64, ptr %57, align 8, !tbaa !9
  %1316 = getelementptr inbounds float, ptr %1314, i64 %1315
  %1317 = load ptr, ptr %26, align 8, !tbaa !5
  %1318 = load i64, ptr %57, align 8, !tbaa !9
  %1319 = getelementptr inbounds float, ptr %1317, i64 %1318
  %1320 = load ptr, ptr %23, align 8, !tbaa !5
  %1321 = load i64, ptr %35, align 8, !tbaa !9
  %1322 = getelementptr inbounds float, ptr %1320, i64 %1321
  %1323 = load ptr, ptr %24, align 8, !tbaa !5
  %1324 = load ptr, ptr %27, align 8, !tbaa !5
  %1325 = load ptr, ptr %28, align 8, !tbaa !5
  %1326 = load ptr, ptr %29, align 8, !tbaa !5
  %1327 = load i64, ptr %37, align 8, !tbaa !9
  %1328 = getelementptr inbounds float, ptr %1326, i64 %1327
  %1329 = load ptr, ptr %30, align 8, !tbaa !5
  %1330 = load ptr, ptr %31, align 8, !tbaa !5
  %1331 = getelementptr inbounds float, ptr %1330, i64 1
  %1332 = load ptr, ptr %23, align 8, !tbaa !5
  %1333 = load i64, ptr %60, align 8, !tbaa !9
  %1334 = load i64, ptr %34, align 8, !tbaa !9
  %1335 = add nsw i64 %1333, %1334
  %1336 = getelementptr inbounds float, ptr %1332, i64 %1335
  %1337 = load ptr, ptr %24, align 8, !tbaa !5
  %1338 = load ptr, ptr %23, align 8, !tbaa !5
  %1339 = load i64, ptr %73, align 8, !tbaa !9
  %1340 = load i64, ptr %34, align 8, !tbaa !9
  %1341 = add nsw i64 %1339, %1340
  %1342 = getelementptr inbounds float, ptr %1338, i64 %1341
  %1343 = load ptr, ptr %24, align 8, !tbaa !5
  %1344 = load ptr, ptr %23, align 8, !tbaa !5
  %1345 = load i64, ptr %60, align 8, !tbaa !9
  %1346 = load i64, ptr %70, align 8, !tbaa !9
  %1347 = load i64, ptr %34, align 8, !tbaa !9
  %1348 = mul nsw i64 %1346, %1347
  %1349 = add nsw i64 %1345, %1348
  %1350 = getelementptr inbounds float, ptr %1344, i64 %1349
  %1351 = load ptr, ptr %24, align 8, !tbaa !5
  %1352 = call i32 @slaqr5_(ptr noundef %1311, ptr noundef %1312, ptr noundef %81, ptr noundef %1313, ptr noundef %79, ptr noundef %76, ptr noundef %63, ptr noundef %1316, ptr noundef %1319, ptr noundef %1322, ptr noundef %1323, ptr noundef %1324, ptr noundef %1325, ptr noundef %1328, ptr noundef %1329, ptr noundef %1331, ptr noundef @c__3, ptr noundef %1336, ptr noundef %1337, ptr noundef %69, ptr noundef %1342, ptr noundef %1343, ptr noundef %68, ptr noundef %1350, ptr noundef %1351)
  br label %1353

1353:                                             ; preds = %1273, %681, %662
  %1354 = load i64, ptr %53, align 8, !tbaa !9
  %1355 = icmp sgt i64 %1354, 0
  br i1 %1355, label %1356, label %1357

1356:                                             ; preds = %1353
  store i64 1, ptr %75, align 8, !tbaa !9
  br label %1360

1357:                                             ; preds = %1353
  %1358 = load i64, ptr %75, align 8, !tbaa !9
  %1359 = add nsw i64 %1358, 1
  store i64 %1359, ptr %75, align 8, !tbaa !9
  br label %1360

1360:                                             ; preds = %1357, %1356
  br label %1361

1361:                                             ; preds = %1360
  %1362 = load i64, ptr %56, align 8, !tbaa !9
  %1363 = add nsw i64 %1362, 1
  store i64 %1363, ptr %56, align 8, !tbaa !9
  br label %424, !llvm.loop !20

1364:                                             ; preds = %424
  %1365 = load i64, ptr %76, align 8, !tbaa !9
  %1366 = load ptr, ptr %33, align 8, !tbaa !5
  store i64 %1365, ptr %1366, align 8, !tbaa !9
  br label %1367

1367:                                             ; preds = %1364, %433
  br label %1368

1368:                                             ; preds = %1367, %151
  %1369 = load i64, ptr %90, align 8, !tbaa !9
  %1370 = sitofp i64 %1369 to float
  %1371 = load ptr, ptr %31, align 8, !tbaa !5
  %1372 = getelementptr inbounds float, ptr %1371, i64 1
  store float %1370, ptr %1372, align 4, !tbaa !11
  store i32 0, ptr %17, align 4
  store i32 1, ptr %91, align 4
  br label %1373

1373:                                             ; preds = %1368, %315, %118
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 2, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, 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 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  %1374 = load i32, ptr %17, align 4
  ret i32 %1374
}

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

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

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

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

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

; Function Attrs: 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !15}
!19 = distinct !{!19, !15}
!20 = distinct !{!20, !15}


; 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"

@c__13 = external hidden global i64, align 8
@.str = external hidden unnamed_addr constant [7 x i8], align 1
@c__15 = external hidden global i64, align 8
@c_n1 = external hidden global i64, align 8
@c__12 = external hidden global i64, align 8
@c__14 = external hidden global i64, align 8
@c__16 = external hidden global i64, align 8
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@c_false = external hidden global i64, align 8
@c__1 = external hidden global i64, align 8
@c__3 = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @slaqr4_(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) local_unnamed_addr #0 {
  %17 = alloca i64, align 8
  %18 = alloca float, align 4
  %19 = alloca float, align 4
  %20 = alloca float, align 4
  %21 = alloca float, align 4
  %22 = alloca i64, align 8
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %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 [1 x float], align 4
  %34 = alloca i64, align 8
  %35 = alloca [2 x i8], align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 8, 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 4, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %35) #5
  %36 = load i64, ptr %6, align 8, !tbaa !5
  %37 = xor i64 %36, -1
  %38 = getelementptr inbounds float, ptr %5, i64 %37
  %39 = getelementptr inbounds i8, ptr %7, i64 -4
  %40 = getelementptr inbounds i8, ptr %8, i64 -4
  store i64 0, ptr %15, align 8, !tbaa !5
  %41 = load i64, ptr %2, align 8, !tbaa !5
  %42 = icmp eq i64 %41, 0
  br i1 %42, label %399, label %43

43:                                               ; preds = %16
  %44 = icmp slt i64 %41, 12
  br i1 %44, label %45, label %49

45:                                               ; preds = %43
  %46 = load i64, ptr %14, align 8, !tbaa !5
  %.not523 = icmp eq i64 %46, -1
  br i1 %.not523, label %.loopexit535, label %47

47:                                               ; preds = %45
  %48 = tail call i32 @slahqr_(ptr noundef %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef nonnull %15) #5
  br label %.loopexit535

49:                                               ; preds = %43
  %50 = load i64, ptr %0, align 8, !tbaa !5
  %.not = icmp eq i64 %50, 0
  %. = select i1 %.not, i8 69, i8 83
  store i8 %., ptr %35, align 1, !tbaa !9
  %51 = load i64, ptr %1, align 8, !tbaa !5
  %.not494 = icmp eq i64 %51, 0
  %spec.select = select i1 %.not494, i8 78, i8 86
  %52 = getelementptr inbounds i8, ptr %35, i64 1
  store i8 %spec.select, ptr %52, align 1
  %53 = call i64 @ilaenv_(ptr noundef nonnull @c__13, ptr noundef nonnull @.str, ptr noundef nonnull %35, ptr noundef nonnull %2, ptr noundef %3, ptr noundef %4, ptr noundef %14) #5
  %54 = call i64 @llvm.smax.i64(i64 %53, i64 2)
  %55 = load i64, ptr %4, align 8, !tbaa !5
  %56 = load i64, ptr %3, align 8, !tbaa !5
  %57 = sub nsw i64 %55, %56
  %58 = add nsw i64 %57, 1
  %59 = load i64, ptr %2, align 8, !tbaa !5
  %60 = add nsw i64 %59, -1
  %61 = sdiv i64 %60, 3
  %62 = call i64 @llvm.smin.i64(i64 %58, i64 %61)
  %63 = call i64 @llvm.smin.i64(i64 %62, i64 %54)
  %64 = call i64 @ilaenv_(ptr noundef nonnull @c__15, ptr noundef nonnull @.str, ptr noundef nonnull %35, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef %14) #5
  %65 = load i64, ptr %2, align 8, !tbaa !5
  %66 = add nsw i64 %65, 6
  %67 = sdiv i64 %66, 9
  %68 = call i64 @llvm.smin.i64(i64 %64, i64 %67)
  %69 = load i64, ptr %4, align 8, !tbaa !5
  %70 = load i64, ptr %3, align 8, !tbaa !5
  %71 = sub nsw i64 %69, %70
  %72 = call i64 @llvm.smin.i64(i64 %68, i64 %71)
  %73 = srem i64 %72, 2
  %74 = sub nsw i64 %72, %73
  %75 = call i64 @llvm.smax.i64(i64 %74, i64 2)
  %76 = add nsw i64 %63, 1
  store i64 %76, ptr %17, align 8, !tbaa !5
  %77 = call i32 @slaqr2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %17, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %25, ptr noundef nonnull %22, ptr noundef %7, ptr noundef %8, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %2, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %13, ptr noundef nonnull @c_n1) #5
  %78 = lshr i64 %75, 1
  %79 = add nuw nsw i64 %78, %75
  store i64 %79, ptr %17, align 8, !tbaa !5
  %80 = load float, ptr %13, align 4, !tbaa !10
  %81 = fptosi float %80 to i64
  %82 = call i64 @llvm.smax.i64(i64 %79, i64 %81)
  %83 = load i64, ptr %14, align 8, !tbaa !5
  %84 = icmp eq i64 %83, -1
  br i1 %84, label %85, label %87

85:                                               ; preds = %49
  %86 = uitofp nneg i64 %82 to float
  br label %399

87:                                               ; preds = %49
  %88 = call i64 @ilaenv_(ptr noundef nonnull @c__12, ptr noundef nonnull @.str, ptr noundef nonnull %35, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %14) #5
  %89 = call i64 @ilaenv_(ptr noundef nonnull @c__14, ptr noundef nonnull @.str, ptr noundef nonnull %35, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %14) #5
  %90 = call i64 @llvm.smax.i64(i64 %89, i64 0)
  %91 = call i64 @ilaenv_(ptr noundef nonnull @c__16, ptr noundef nonnull @.str, ptr noundef nonnull %35, ptr noundef nonnull %2, ptr noundef nonnull %3, ptr noundef nonnull %4, ptr noundef nonnull %14) #5
  %92 = call i64 @llvm.smax.i64(i64 %91, i64 0)
  %93 = call i64 @llvm.umin.i64(i64 %92, i64 2)
  store i64 %93, ptr %34, align 8, !tbaa !5
  %94 = load i64, ptr %2, align 8, !tbaa !5
  %95 = add nsw i64 %94, -1
  %96 = sdiv i64 %95, 3
  %97 = load i64, ptr %14, align 8, !tbaa !5
  %98 = sdiv i64 %97, 2
  %99 = call i64 @llvm.smin.i64(i64 %96, i64 %98)
  store i64 %99, ptr %27, align 8, !tbaa !5
  %100 = load i64, ptr %4, align 8, !tbaa !5
  %101 = load i64, ptr %3, align 8, !tbaa !5
  %102 = sub nsw i64 %100, %101
  %103 = icmp slt i64 %102, 10
  %104 = mul i64 %102, 30
  %105 = add i64 %104, 30
  %106 = select i1 %103, i64 300, i64 %105
  store i64 %100, ptr %31, align 8, !tbaa !5
  store i64 %106, ptr %17, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %38, i64 4
  %.not502548 = icmp slt i64 %106, 1
  br i1 %.not502548, label %._crit_edge554, label %.lr.ph553

.lr.ph553:                                        ; preds = %87
  %107 = add nsw i64 %94, 6
  %108 = sdiv i64 %107, 9
  %109 = shl i64 %97, 1
  %110 = sdiv i64 %109, 3
  %111 = call i64 @llvm.smin.i64(i64 %108, i64 %110)
  %112 = srem i64 %111, 2
  %113 = sub nsw i64 %111, %112
  %114 = call i64 @llvm.smax.i64(i64 %88, i64 11)
  %115 = call i64 @llvm.smin.i64(i64 %114, i64 %99)
  %116 = call i64 @llvm.smin.i64(i64 %113, i64 %75)
  %117 = add i64 %36, 1
  %118 = getelementptr i8, ptr %5, i64 4
  br label %119

119:                                              ; preds = %.lr.ph553, %392
  %.0472551 = phi i64 [ 1, %.lr.ph553 ], [ %.1473, %392 ]
  %.0474550 = phi i64 [ undef, %.lr.ph553 ], [ %.1475, %392 ]
  %.0478549 = phi i64 [ 1, %.lr.ph553 ], [ %395, %392 ]
  %120 = load i64, ptr %31, align 8, !tbaa !5
  %121 = load i64, ptr %3, align 8, !tbaa !5
  %122 = icmp slt i64 %120, %121
  br i1 %122, label %.loopexit535, label %.preheader534

.preheader534:                                    ; preds = %119, %123
  %.0479 = phi i64 [ %124, %123 ], [ %120, %119 ]
  %.not503.not = icmp sgt i64 %.0479, %121
  br i1 %.not503.not, label %123, label %130

123:                                              ; preds = %.preheader534
  %124 = add nsw i64 %.0479, -1
  %125 = mul nsw i64 %124, %36
  %126 = getelementptr float, ptr %38, i64 %.0479
  %127 = getelementptr float, ptr %126, i64 %125
  %128 = load float, ptr %127, align 4, !tbaa !10
  %129 = fcmp oeq float %128, 0.000000e+00
  br i1 %129, label %130, label %.preheader534, !llvm.loop !12

130:                                              ; preds = %.preheader534, %123
  %.1480 = phi i64 [ %.0479, %123 ], [ %121, %.preheader534 ]
  store i64 %.1480, ptr %32, align 8, !tbaa !5
  %131 = sub nsw i64 %120, %.1480
  %132 = add nsw i64 %131, 1
  %133 = call i64 @llvm.smin.i64(i64 %132, i64 %99)
  %134 = icmp slt i64 %.0472551, 5
  %135 = load i64, ptr %27, align 8
  %136 = shl i64 %135, 1
  %.sink = select i1 %134, i64 %63, i64 %136
  %137 = call i64 @llvm.smin.i64(i64 %133, i64 %.sink)
  store i64 %137, ptr %27, align 8, !tbaa !5
  %138 = icmp slt i64 %137, %99
  br i1 %138, label %139, label %161

139:                                              ; preds = %130
  %.not508 = icmp slt i64 %137, %131
  br i1 %.not508, label %141, label %140

140:                                              ; preds = %139
  store i64 %132, ptr %27, align 8, !tbaa !5
  br label %161

141:                                              ; preds = %139
  %142 = sub nsw i64 %120, %137
  %143 = mul nsw i64 %142, %36
  %144 = getelementptr float, ptr %38, i64 %142
  %145 = getelementptr i8, ptr %144, i64 4
  %146 = getelementptr float, ptr %145, i64 %143
  %147 = load float, ptr %146, align 4, !tbaa !10
  %148 = fcmp oge float %147, 0.000000e+00
  %149 = fneg float %147
  %150 = select i1 %148, float %147, float %149
  %151 = add nsw i64 %142, -1
  %152 = mul nsw i64 %151, %36
  %153 = getelementptr float, ptr %144, i64 %152
  %154 = load float, ptr %153, align 4, !tbaa !10
  %155 = fcmp oge float %154, 0.000000e+00
  %156 = fneg float %154
  %157 = select i1 %155, float %154, float %156
  %158 = fcmp ogt float %150, %157
  br i1 %158, label %159, label %161

159:                                              ; preds = %141
  %160 = add nsw i64 %137, 1
  store i64 %160, ptr %27, align 8, !tbaa !5
  br label %161

161:                                              ; preds = %140, %159, %141, %130
  %162 = phi i64 [ %132, %140 ], [ %160, %159 ], [ %137, %141 ], [ %137, %130 ]
  br i1 %134, label %170, label %163

163:                                              ; preds = %161
  %164 = icmp slt i64 %.0474550, 0
  %.not509 = icmp slt i64 %162, %133
  %or.cond524 = select i1 %164, i1 %.not509, i1 false
  br i1 %or.cond524, label %170, label %165

165:                                              ; preds = %163
  %166 = add nsw i64 %.0474550, 1
  %167 = sub nsw i64 %162, %166
  %168 = icmp slt i64 %167, 2
  %spec.store.select = select i1 %168, i64 0, i64 %166
  %169 = sub nsw i64 %162, %spec.store.select
  store i64 %169, ptr %27, align 8, !tbaa !5
  br label %170

170:                                              ; preds = %163, %161, %165
  %171 = phi i64 [ %169, %165 ], [ %162, %161 ], [ %162, %163 ]
  %.1475 = phi i64 [ %spec.store.select, %165 ], [ -1, %161 ], [ %.0474550, %163 ]
  %172 = load i64, ptr %2, align 8, !tbaa !5
  %173 = sub nsw i64 %172, %171
  %174 = add nsw i64 %171, 1
  %175 = xor i64 %171, -1
  %176 = add i64 %173, %175
  store i64 %176, ptr %29, align 8, !tbaa !5
  %.neg526 = add i64 %172, 1
  %177 = shl i64 %171, 1
  %reass.sub = sub i64 %.neg526, %177
  %178 = add i64 %reass.sub, -2
  store i64 %178, ptr %30, align 8, !tbaa !5
  %179 = getelementptr inbounds float, ptr %5, i64 %173
  %180 = mul nsw i64 %174, %36
  %gep = getelementptr float, ptr %invariant.gep, i64 %173
  %181 = getelementptr float, ptr %gep, i64 %180
  %gep545 = getelementptr float, ptr %118, i64 %171
  %182 = call i32 @slaqr2_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %2, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef nonnull %27, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %25, ptr noundef nonnull %22, ptr noundef %7, ptr noundef %8, ptr noundef %179, ptr noundef nonnull %6, ptr noundef nonnull %29, ptr noundef %181, ptr noundef nonnull %6, ptr noundef nonnull %30, ptr noundef %gep545, ptr noundef nonnull %6, ptr noundef nonnull %13, ptr noundef nonnull %14) #5
  %183 = load i64, ptr %22, align 8, !tbaa !5
  %184 = load i64, ptr %31, align 8, !tbaa !5
  %185 = sub nsw i64 %184, %183
  store i64 %185, ptr %31, align 8, !tbaa !5
  %186 = load i64, ptr %25, align 8, !tbaa !5
  %187 = sub nsw i64 %185, %186
  %188 = add nsw i64 %187, 1
  %189 = icmp eq i64 %183, 0
  br i1 %189, label %._crit_edge557, label %190

._crit_edge557:                                   ; preds = %170
  %.pre = load i64, ptr %32, align 8, !tbaa !5
  %.pre561 = sub nsw i64 %185, %.pre
  br label %197

190:                                              ; preds = %170
  %191 = mul nsw i64 %183, 100
  %192 = load i64, ptr %27, align 8, !tbaa !5
  %193 = mul nsw i64 %192, %90
  %.not510 = icmp sgt i64 %191, %193
  br i1 %.not510, label %392, label %194

194:                                              ; preds = %190
  %195 = load i64, ptr %32, align 8, !tbaa !5
  %196 = sub nsw i64 %185, %195
  %.not512 = icmp slt i64 %196, %115
  br i1 %.not512, label %392, label %197

197:                                              ; preds = %._crit_edge557, %194
  %.pre-phi = phi i64 [ %.pre561, %._crit_edge557 ], [ %196, %194 ]
  %198 = phi i64 [ %.pre, %._crit_edge557 ], [ %195, %194 ]
  %199 = call i64 @llvm.smax.i64(i64 %.pre-phi, i64 2)
  %200 = call i64 @llvm.smin.i64(i64 %116, i64 %199)
  %201 = srem i64 %200, 2
  %202 = sdiv i64 %200, 2
  %203 = sub nsw i64 %200, %201
  store i64 %203, ptr %26, align 8, !tbaa !5
  %204 = srem i64 %.0472551, 6
  %205 = icmp eq i64 %204, 0
  br i1 %205, label %206, label %251

206:                                              ; preds = %197
  %207 = sub nsw i64 %185, %203
  %208 = add nsw i64 %207, 1
  %209 = add nsw i64 %207, 2
  %210 = add nsw i64 %198, 2
  %211 = call i64 @llvm.smax.i64(i64 %209, i64 %210)
  %.not521541 = icmp slt i64 %185, %211
  br i1 %.not521541, label %._crit_edge, label %.lr.ph543

.lr.ph543:                                        ; preds = %206, %.lr.ph543
  %.0482542 = phi i64 [ %220, %.lr.ph543 ], [ %185, %206 ]
  %212 = add nsw i64 %.0482542, -1
  %213 = mul nsw i64 %212, %36
  %214 = getelementptr float, ptr %38, i64 %.0482542
  %215 = getelementptr float, ptr %214, i64 %213
  %216 = load float, ptr %215, align 4, !tbaa !10
  %217 = fcmp oge float %216, 0.000000e+00
  %218 = fneg float %216
  %219 = select i1 %217, float %216, float %218
  %220 = add nsw i64 %.0482542, -2
  %221 = mul nsw i64 %220, %36
  %222 = getelementptr float, ptr %38, i64 %212
  %223 = getelementptr float, ptr %222, i64 %221
  %224 = load float, ptr %223, align 4, !tbaa !10
  %225 = fcmp oge float %224, 0.000000e+00
  %226 = fneg float %224
  %227 = select i1 %225, float %224, float %226
  %228 = fadd float %219, %227
  %229 = mul i64 %.0482542, %117
  %230 = getelementptr inbounds float, ptr %38, i64 %229
  %231 = load float, ptr %230, align 4, !tbaa !10
  %232 = call float @llvm.fmuladd.f32(float %228, float 7.500000e-01, float %231)
  store float %232, ptr %18, align 4, !tbaa !10
  store float %228, ptr %19, align 4, !tbaa !10
  %233 = fmul float %228, -4.375000e-01
  store float %233, ptr %20, align 4, !tbaa !10
  store float %232, ptr %21, align 4, !tbaa !10
  %234 = getelementptr inbounds float, ptr %39, i64 %212
  %235 = getelementptr inbounds float, ptr %40, i64 %212
  %236 = getelementptr inbounds float, ptr %39, i64 %.0482542
  %237 = getelementptr inbounds float, ptr %40, i64 %.0482542
  %238 = call i32 @slanv2_(ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %234, ptr noundef nonnull %235, ptr noundef nonnull %236, ptr noundef nonnull %237, ptr noundef nonnull %23, ptr noundef nonnull %24) #5
  %.not521 = icmp slt i64 %220, %211
  br i1 %.not521, label %._crit_edge.loopexit, label %.lr.ph543, !llvm.loop !14

._crit_edge.loopexit:                             ; preds = %.lr.ph543
  %.pre558 = load i64, ptr %32, align 8, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %206
  %239 = phi i64 [ %.pre558, %._crit_edge.loopexit ], [ %198, %206 ]
  %240 = icmp eq i64 %208, %239
  br i1 %240, label %241, label %.loopexit

241:                                              ; preds = %._crit_edge
  %242 = mul i64 %209, %117
  %243 = getelementptr inbounds float, ptr %38, i64 %242
  %244 = load float, ptr %243, align 4, !tbaa !10
  %245 = getelementptr inbounds float, ptr %39, i64 %209
  store float %244, ptr %245, align 4, !tbaa !10
  %246 = getelementptr inbounds float, ptr %40, i64 %209
  store float 0.000000e+00, ptr %246, align 4, !tbaa !10
  %247 = load float, ptr %245, align 4, !tbaa !10
  %248 = getelementptr float, ptr %7, i64 %207
  store float %247, ptr %248, align 4, !tbaa !10
  %249 = load float, ptr %246, align 4, !tbaa !10
  %250 = getelementptr float, ptr %8, i64 %207
  store float %249, ptr %250, align 4, !tbaa !10
  br label %.loopexit

251:                                              ; preds = %197
  %252 = sub nsw i64 %185, %188
  %.not515.not = icmp slt i64 %252, %202
  br i1 %.not515.not, label %253, label %291

253:                                              ; preds = %251
  %254 = sub nsw i64 %185, %203
  %255 = add nsw i64 %254, 1
  %256 = load i64, ptr %2, align 8, !tbaa !5
  %257 = sub nsw i64 %256, %203
  %258 = mul i64 %255, %117
  %259 = getelementptr inbounds float, ptr %38, i64 %258
  %260 = getelementptr inbounds float, ptr %5, i64 %257
  %261 = call i32 @slacpy_(ptr noundef nonnull @.str.1, ptr noundef nonnull %26, ptr noundef nonnull %26, ptr noundef %259, ptr noundef nonnull %6, ptr noundef %260, ptr noundef nonnull %6) #5
  %262 = getelementptr float, ptr %7, i64 %254
  %263 = getelementptr float, ptr %8, i64 %254
  %264 = call i32 @slahqr_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_false, ptr noundef nonnull %26, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef %260, ptr noundef nonnull %6, ptr noundef %262, ptr noundef %263, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %33, ptr noundef nonnull @c__1, ptr noundef nonnull %28) #5
  %265 = load i64, ptr %28, align 8, !tbaa !5
  %266 = add nsw i64 %265, %255
  %267 = load i64, ptr %31, align 8, !tbaa !5
  %.not516 = icmp slt i64 %266, %267
  br i1 %.not516, label %291, label %268

268:                                              ; preds = %253
  %269 = add nsw i64 %267, -1
  %270 = mul i64 %269, %117
  %271 = getelementptr inbounds float, ptr %38, i64 %270
  %272 = load float, ptr %271, align 4, !tbaa !10
  store float %272, ptr %18, align 4, !tbaa !10
  %273 = mul nsw i64 %269, %36
  %274 = getelementptr float, ptr %38, i64 %267
  %275 = getelementptr float, ptr %274, i64 %273
  %276 = load float, ptr %275, align 4, !tbaa !10
  store float %276, ptr %20, align 4, !tbaa !10
  %277 = mul nsw i64 %267, %36
  %278 = getelementptr i8, ptr %274, i64 -4
  %279 = getelementptr float, ptr %278, i64 %277
  %280 = load float, ptr %279, align 4, !tbaa !10
  store float %280, ptr %19, align 4, !tbaa !10
  %281 = mul i64 %267, %117
  %282 = getelementptr inbounds float, ptr %38, i64 %281
  %283 = load float, ptr %282, align 4, !tbaa !10
  store float %283, ptr %21, align 4, !tbaa !10
  %284 = getelementptr inbounds float, ptr %39, i64 %269
  %285 = getelementptr inbounds float, ptr %40, i64 %269
  %286 = getelementptr inbounds float, ptr %39, i64 %267
  %287 = getelementptr inbounds float, ptr %40, i64 %267
  %288 = call i32 @slanv2_(ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %284, ptr noundef nonnull %285, ptr noundef nonnull %286, ptr noundef nonnull %287, ptr noundef nonnull %23, ptr noundef nonnull %24) #5
  %289 = load i64, ptr %31, align 8, !tbaa !5
  %290 = add nsw i64 %289, -1
  br label %291

291:                                              ; preds = %253, %268, %251
  %292 = phi i64 [ %289, %268 ], [ %267, %253 ], [ %185, %251 ]
  %.0476 = phi i64 [ %290, %268 ], [ %266, %253 ], [ %188, %251 ]
  %293 = sub nsw i64 %292, %.0476
  %294 = load i64, ptr %26, align 8, !tbaa !5
  %.not517 = icmp slt i64 %293, %294
  %295 = icmp sle i64 %292, %.0476
  %or.cond555 = or i1 %.not517, %295
  br i1 %or.cond555, label %.loopexit533, label %.preheader

.preheader:                                       ; preds = %291, %321
  %.2481538 = phi i64 [ %322, %321 ], [ %292, %291 ]
  br label %296

296:                                              ; preds = %.preheader, %320
  %.1537 = phi i64 [ 1, %.preheader ], [ %.2, %320 ]
  %.1483536 = phi i64 [ %.0476, %.preheader ], [ %299, %320 ]
  %297 = getelementptr inbounds float, ptr %39, i64 %.1483536
  %298 = getelementptr inbounds float, ptr %40, i64 %.1483536
  %299 = add nsw i64 %.1483536, 1
  %300 = load <2 x float>, ptr %297, align 4, !tbaa !10
  %301 = fcmp oge <2 x float> %300, zeroinitializer
  %302 = fneg <2 x float> %300
  %303 = select <2 x i1> %301, <2 x float> %300, <2 x float> %302
  %304 = fpext <2 x float> %303 to <2 x double>
  %305 = load <2 x float>, ptr %298, align 4, !tbaa !10
  %306 = fcmp oge <2 x float> %305, zeroinitializer
  %307 = fneg <2 x float> %305
  %308 = select <2 x i1> %306, <2 x float> %305, <2 x float> %307
  %309 = fpext <2 x float> %308 to <2 x double>
  %310 = fadd <2 x double> %304, %309
  %311 = extractelement <2 x double> %310, i64 0
  %312 = extractelement <2 x double> %310, i64 1
  %313 = fcmp olt double %311, %312
  br i1 %313, label %314, label %320

314:                                              ; preds = %296
  %315 = getelementptr float, ptr %7, i64 %.1483536
  %316 = extractelement <2 x float> %300, i64 1
  store float %316, ptr %297, align 4, !tbaa !10
  %317 = extractelement <2 x float> %300, i64 0
  store float %317, ptr %315, align 4, !tbaa !10
  %318 = load <2 x float>, ptr %298, align 4, !tbaa !10
  %319 = shufflevector <2 x float> %318, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  store <2 x float> %319, ptr %298, align 4, !tbaa !10
  br label %320

320:                                              ; preds = %296, %314
  %.2 = phi i64 [ 0, %314 ], [ %.1537, %296 ]
  %.not518.not = icmp slt i64 %299, %.2481538
  br i1 %.not518.not, label %296, label %321, !llvm.loop !15

321:                                              ; preds = %320
  %322 = add nsw i64 %.2481538, -1
  %323 = icmp sle i64 %322, %.0476
  %324 = icmp ne i64 %.2, 0
  %or.cond = select i1 %323, i1 true, i1 %324
  br i1 %or.cond, label %.loopexit533, label %.preheader, !llvm.loop !16

.loopexit533:                                     ; preds = %321, %291
  %325 = add nsw i64 %.0476, 2
  %.not519539 = icmp slt i64 %292, %325
  br i1 %.not519539, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %.loopexit533, %343
  %.2484540 = phi i64 [ %.pre-phi563, %343 ], [ %292, %.loopexit533 ]
  %326 = getelementptr inbounds float, ptr %40, i64 %.2484540
  %327 = load float, ptr %326, align 4, !tbaa !10
  %328 = add nsw i64 %.2484540, -1
  %329 = getelementptr inbounds float, ptr %40, i64 %328
  %330 = load float, ptr %329, align 4, !tbaa !10
  %331 = fneg float %330
  %332 = fcmp une float %327, %331
  br i1 %332, label %333, label %.lr.ph._crit_edge

.lr.ph._crit_edge:                                ; preds = %.lr.ph
  %.pre562 = add nsw i64 %.2484540, -2
  br label %343

333:                                              ; preds = %.lr.ph
  %334 = getelementptr inbounds float, ptr %39, i64 %.2484540
  %335 = load float, ptr %334, align 4, !tbaa !10
  %336 = getelementptr inbounds float, ptr %39, i64 %328
  %337 = add nsw i64 %.2484540, -2
  %338 = getelementptr inbounds float, ptr %39, i64 %337
  %339 = load <2 x float>, ptr %338, align 4, !tbaa !10
  store <2 x float> %339, ptr %336, align 4, !tbaa !10
  store float %335, ptr %338, align 4, !tbaa !10
  %340 = load float, ptr %326, align 4, !tbaa !10
  %341 = getelementptr inbounds float, ptr %40, i64 %337
  %342 = load <2 x float>, ptr %341, align 4, !tbaa !10
  store <2 x float> %342, ptr %329, align 4, !tbaa !10
  store float %340, ptr %341, align 4, !tbaa !10
  br label %343

343:                                              ; preds = %.lr.ph._crit_edge, %333
  %.pre-phi563 = phi i64 [ %.pre562, %.lr.ph._crit_edge ], [ %337, %333 ]
  %.not519 = icmp slt i64 %.pre-phi563, %325
  br i1 %.not519, label %.loopexit, label %.lr.ph, !llvm.loop !17

.loopexit:                                        ; preds = %343, %.loopexit533, %._crit_edge, %241
  %.1477 = phi i64 [ %208, %241 ], [ %208, %._crit_edge ], [ %.0476, %.loopexit533 ], [ %.0476, %343 ]
  %344 = load i64, ptr %31, align 8, !tbaa !5
  %345 = sub nsw i64 %344, %.1477
  %346 = icmp eq i64 %345, 1
  br i1 %346, label %347, label %371

347:                                              ; preds = %.loopexit
  %348 = getelementptr inbounds float, ptr %40, i64 %344
  %349 = load float, ptr %348, align 4, !tbaa !10
  %350 = fcmp oeq float %349, 0.000000e+00
  br i1 %350, label %351, label %371

351:                                              ; preds = %347
  %352 = getelementptr inbounds float, ptr %39, i64 %344
  %353 = mul i64 %344, %117
  %354 = getelementptr inbounds float, ptr %38, i64 %353
  %355 = load float, ptr %354, align 4, !tbaa !10
  %356 = getelementptr i8, ptr %352, i64 -4
  %357 = load <2 x float>, ptr %356, align 4, !tbaa !10
  %358 = insertelement <2 x float> poison, float %355, i64 0
  %359 = shufflevector <2 x float> %358, <2 x float> poison, <2 x i32> zeroinitializer
  %360 = fsub <2 x float> %357, %359
  %361 = fcmp oge <2 x float> %360, zeroinitializer
  %362 = fneg <2 x float> %360
  %363 = select <2 x i1> %361, <2 x float> %360, <2 x float> %362
  %364 = extractelement <2 x float> %363, i64 0
  %365 = extractelement <2 x float> %363, i64 1
  %366 = fcmp olt float %365, %364
  br i1 %366, label %367, label %369

367:                                              ; preds = %351
  %368 = extractelement <2 x float> %357, i64 1
  store float %368, ptr %356, align 4, !tbaa !10
  br label %371

369:                                              ; preds = %351
  %370 = extractelement <2 x float> %357, i64 0
  store float %370, ptr %352, align 4, !tbaa !10
  br label %371

371:                                              ; preds = %347, %369, %367, %.loopexit
  %372 = load i64, ptr %26, align 8, !tbaa !5
  %373 = add nsw i64 %345, 1
  %374 = call i64 @llvm.smin.i64(i64 %372, i64 %373)
  %375 = srem i64 %374, 2
  %376 = sub nsw i64 %374, %375
  store i64 %376, ptr %26, align 8, !tbaa !5
  %377 = sub nsw i64 %344, %376
  %378 = mul nsw i64 %376, 3
  %379 = add nsw i64 %378, -3
  %380 = load i64, ptr %2, align 8, !tbaa !5
  %381 = sub nsw i64 %380, %379
  %382 = add nsw i64 %378, -2
  %383 = sub i64 %381, %378
  store i64 %383, ptr %29, align 8, !tbaa !5
  %.neg = mul i64 %376, -6
  %reass.sub556 = add i64 %.neg, %380
  %384 = add i64 %reass.sub556, 3
  store i64 %384, ptr %30, align 8, !tbaa !5
  %385 = getelementptr float, ptr %7, i64 %377
  %386 = getelementptr float, ptr %8, i64 %377
  %387 = getelementptr inbounds float, ptr %5, i64 %381
  %388 = getelementptr inbounds float, ptr %5, i64 %378
  %389 = mul nsw i64 %382, %36
  %gep547 = getelementptr float, ptr %invariant.gep, i64 %381
  %390 = getelementptr float, ptr %gep547, i64 %389
  %391 = call i32 @slaqr5_(ptr noundef nonnull %0, ptr noundef nonnull %1, ptr noundef nonnull %34, ptr noundef nonnull %2, ptr noundef nonnull %32, ptr noundef nonnull %31, ptr noundef nonnull %26, ptr noundef %385, ptr noundef %386, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull @c__3, ptr noundef %387, ptr noundef nonnull %6, ptr noundef nonnull %30, ptr noundef %388, ptr noundef nonnull %6, ptr noundef nonnull %29, ptr noundef %390, ptr noundef nonnull %6) #5
  %.pre559 = load i64, ptr %22, align 8, !tbaa !5
  br label %392

392:                                              ; preds = %371, %194, %190
  %393 = phi i64 [ %.pre559, %371 ], [ %183, %194 ], [ %183, %190 ]
  %394 = add nsw i64 %.0472551, 1
  %.inv = icmp slt i64 %393, 1
  %.1473 = select i1 %.inv, i64 %394, i64 1
  %395 = add nuw nsw i64 %.0478549, 1
  %396 = load i64, ptr %17, align 8, !tbaa !5
  %.not502.not = icmp slt i64 %.0478549, %396
  br i1 %.not502.not, label %119, label %._crit_edge554.loopexit, !llvm.loop !18

._crit_edge554.loopexit:                          ; preds = %392
  %.pre560 = load i64, ptr %31, align 8, !tbaa !5
  br label %._crit_edge554

._crit_edge554:                                   ; preds = %._crit_edge554.loopexit, %87
  %397 = phi i64 [ %.pre560, %._crit_edge554.loopexit ], [ %100, %87 ]
  store i64 %397, ptr %15, align 8, !tbaa !5
  br label %.loopexit535

.loopexit535:                                     ; preds = %119, %._crit_edge554, %45, %47
  %.0 = phi i64 [ 1, %47 ], [ 1, %45 ], [ %82, %._crit_edge554 ], [ %82, %119 ]
  %398 = uitofp nneg i64 %.0 to float
  br label %399

399:                                              ; preds = %16, %.loopexit535, %85
  %.sink564 = phi float [ %398, %.loopexit535 ], [ %86, %85 ], [ 1.000000e+00, %16 ]
  store float %.sink564, ptr %13, align 4, !tbaa !10
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #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 @slahqr_(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 i64 @ilaenv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #3

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

; 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.smin.i64(i64, i64) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umin.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 nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"float", !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13}
!16 = distinct !{!16, !13}
!17 = distinct !{!17, !13}
!18 = distinct !{!18, !13}


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