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

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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c_false = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@c_b21 = external hidden global float, align 4
@c_b25 = external hidden global float, align 4
@c_true = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local i32 @slaqtr_(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) #0 {
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %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 i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca [4 x float], align 16
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca [4 x float], align 16
  %39 = alloca float, align 4
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca float, align 4
  %45 = alloca float, align 4
  %46 = alloca float, align 4
  %47 = alloca float, align 4
  %48 = alloca float, align 4
  %49 = alloca float, align 4
  %50 = alloca float, align 4
  %51 = alloca i64, align 8
  %52 = alloca float, align 4
  %53 = alloca float, align 4
  %54 = alloca i64, align 8
  %55 = alloca float, align 4
  %56 = alloca float, align 4
  %57 = alloca float, align 4
  %58 = alloca float, align 4
  %59 = alloca i64, align 8
  %60 = alloca float, align 4
  %61 = alloca i32, align 4
  store ptr %0, ptr %13, align 8, !tbaa !5
  store ptr %1, ptr %14, align 8, !tbaa !5
  store ptr %2, ptr %15, align 8, !tbaa !5
  store ptr %3, ptr %16, align 8, !tbaa !5
  store ptr %4, ptr %17, align 8, !tbaa !5
  store ptr %5, ptr %18, align 8, !tbaa !5
  store ptr %6, ptr %19, align 8, !tbaa !5
  store ptr %7, ptr %20, align 8, !tbaa !5
  store ptr %8, ptr %21, align 8, !tbaa !5
  store ptr %9, ptr %22, align 8, !tbaa !5
  store ptr %10, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 16, 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 16, ptr %38) #4
  call void @llvm.lifetime.start.p0(i64 4, 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 8, 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 4, ptr %47) #4
  call void @llvm.lifetime.start.p0(i64 4, 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 8, ptr %51) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #4
  %62 = load ptr, ptr %17, align 8, !tbaa !5
  %63 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %63, ptr %24, align 8, !tbaa !9
  %64 = load i64, ptr %24, align 8, !tbaa !9
  %65 = add nsw i64 1, %64
  store i64 %65, ptr %25, align 8, !tbaa !9
  %66 = load i64, ptr %25, align 8, !tbaa !9
  %67 = load ptr, ptr %16, align 8, !tbaa !5
  %68 = sub i64 0, %66
  %69 = getelementptr inbounds float, ptr %67, i64 %68
  store ptr %69, ptr %16, align 8, !tbaa !5
  %70 = load ptr, ptr %18, align 8, !tbaa !5
  %71 = getelementptr inbounds float, ptr %70, i32 -1
  store ptr %71, ptr %18, align 8, !tbaa !5
  %72 = load ptr, ptr %21, align 8, !tbaa !5
  %73 = getelementptr inbounds float, ptr %72, i32 -1
  store ptr %73, ptr %21, align 8, !tbaa !5
  %74 = load ptr, ptr %22, align 8, !tbaa !5
  %75 = getelementptr inbounds float, ptr %74, i32 -1
  store ptr %75, ptr %22, align 8, !tbaa !5
  %76 = load ptr, ptr %13, align 8, !tbaa !5
  %77 = load i64, ptr %76, align 8, !tbaa !9
  %78 = icmp ne i64 %77, 0
  %79 = xor i1 %78, true
  %80 = zext i1 %79 to i32
  %81 = sext i32 %80 to i64
  store i64 %81, ptr %59, align 8, !tbaa !9
  %82 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 0, ptr %82, align 8, !tbaa !9
  %83 = load ptr, ptr %15, align 8, !tbaa !5
  %84 = load i64, ptr %83, align 8, !tbaa !9
  %85 = icmp eq i64 %84, 0
  br i1 %85, label %86, label %87

86:                                               ; preds = %11
  store i32 0, ptr %12, align 4
  store i32 1, ptr %61, align 4
  br label %2666

87:                                               ; preds = %11
  %88 = call double @slamch_(ptr noundef @.str)
  %89 = fptrunc double %88 to float
  store float %89, ptr %48, align 4, !tbaa !11
  %90 = call double @slamch_(ptr noundef @.str.1)
  %91 = load float, ptr %48, align 4, !tbaa !11
  %92 = fpext float %91 to double
  %93 = fdiv double %90, %92
  %94 = fptrunc double %93 to float
  store float %94, ptr %60, align 4, !tbaa !11
  %95 = load float, ptr %60, align 4, !tbaa !11
  %96 = fdiv float 1.000000e+00, %95
  store float %96, ptr %58, align 4, !tbaa !11
  %97 = load ptr, ptr %15, align 8, !tbaa !5
  %98 = load ptr, ptr %15, align 8, !tbaa !5
  %99 = load ptr, ptr %16, align 8, !tbaa !5
  %100 = load i64, ptr %25, align 8, !tbaa !9
  %101 = getelementptr inbounds float, ptr %99, i64 %100
  %102 = load ptr, ptr %17, align 8, !tbaa !5
  %103 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 0
  %104 = call double @slange_(ptr noundef @.str.2, ptr noundef %97, ptr noundef %98, ptr noundef %101, ptr noundef %102, ptr noundef %103)
  %105 = fptrunc double %104 to float
  store float %105, ptr %56, align 4, !tbaa !11
  %106 = load ptr, ptr %14, align 8, !tbaa !5
  %107 = load i64, ptr %106, align 8, !tbaa !9
  %108 = icmp ne i64 %107, 0
  br i1 %108, label %152, label %109

109:                                              ; preds = %87
  %110 = load float, ptr %56, align 4, !tbaa !11
  store float %110, ptr %28, align 4, !tbaa !11
  %111 = load ptr, ptr %19, align 8, !tbaa !5
  %112 = load float, ptr %111, align 4, !tbaa !11
  %113 = fcmp oge float %112, 0.000000e+00
  br i1 %113, label %114, label %117

114:                                              ; preds = %109
  %115 = load ptr, ptr %19, align 8, !tbaa !5
  %116 = load float, ptr %115, align 4, !tbaa !11
  br label %121

117:                                              ; preds = %109
  %118 = load ptr, ptr %19, align 8, !tbaa !5
  %119 = load float, ptr %118, align 4, !tbaa !11
  %120 = fneg float %119
  br label %121

121:                                              ; preds = %117, %114
  %122 = phi float [ %116, %114 ], [ %120, %117 ]
  %123 = fpext float %122 to double
  %124 = fptrunc double %123 to float
  store float %124, ptr %29, align 4, !tbaa !11
  %125 = load float, ptr %28, align 4, !tbaa !11
  %126 = load float, ptr %29, align 4, !tbaa !11
  %127 = fcmp oge float %125, %126
  br i1 %127, label %128, label %130

128:                                              ; preds = %121
  %129 = load float, ptr %28, align 4, !tbaa !11
  br label %132

130:                                              ; preds = %121
  %131 = load float, ptr %29, align 4, !tbaa !11
  br label %132

132:                                              ; preds = %130, %128
  %133 = phi float [ %129, %128 ], [ %131, %130 ]
  store float %133, ptr %28, align 4, !tbaa !11
  %134 = load ptr, ptr %15, align 8, !tbaa !5
  %135 = load ptr, ptr %18, align 8, !tbaa !5
  %136 = getelementptr inbounds float, ptr %135, i64 1
  %137 = load ptr, ptr %15, align 8, !tbaa !5
  %138 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 0
  %139 = call double @slange_(ptr noundef @.str.2, ptr noundef %134, ptr noundef @c__1, ptr noundef %136, ptr noundef %137, ptr noundef %138)
  %140 = fptrunc double %139 to float
  store float %140, ptr %29, align 4, !tbaa !11
  %141 = load float, ptr %28, align 4, !tbaa !11
  %142 = load float, ptr %29, align 4, !tbaa !11
  %143 = fcmp oge float %141, %142
  br i1 %143, label %144, label %146

144:                                              ; preds = %132
  %145 = load float, ptr %28, align 4, !tbaa !11
  br label %148

146:                                              ; preds = %132
  %147 = load float, ptr %29, align 4, !tbaa !11
  br label %148

148:                                              ; preds = %146, %144
  %149 = phi float [ %145, %144 ], [ %147, %146 ]
  %150 = fpext float %149 to double
  %151 = fptrunc double %150 to float
  store float %151, ptr %56, align 4, !tbaa !11
  br label %152

152:                                              ; preds = %148, %87
  %153 = load float, ptr %60, align 4, !tbaa !11
  store float %153, ptr %28, align 4, !tbaa !11
  %154 = load float, ptr %48, align 4, !tbaa !11
  %155 = load float, ptr %56, align 4, !tbaa !11
  %156 = fmul float %154, %155
  store float %156, ptr %29, align 4, !tbaa !11
  %157 = load float, ptr %28, align 4, !tbaa !11
  %158 = load float, ptr %29, align 4, !tbaa !11
  %159 = fcmp oge float %157, %158
  br i1 %159, label %160, label %162

160:                                              ; preds = %152
  %161 = load float, ptr %28, align 4, !tbaa !11
  br label %164

162:                                              ; preds = %152
  %163 = load float, ptr %29, align 4, !tbaa !11
  br label %164

164:                                              ; preds = %162, %160
  %165 = phi float [ %161, %160 ], [ %163, %162 ]
  %166 = fpext float %165 to double
  %167 = fptrunc double %166 to float
  store float %167, ptr %52, align 4, !tbaa !11
  %168 = load ptr, ptr %22, align 8, !tbaa !5
  %169 = getelementptr inbounds float, ptr %168, i64 1
  store float 0.000000e+00, ptr %169, align 4, !tbaa !11
  %170 = load ptr, ptr %15, align 8, !tbaa !5
  %171 = load i64, ptr %170, align 8, !tbaa !9
  store i64 %171, ptr %26, align 8, !tbaa !9
  store i64 2, ptr %36, align 8, !tbaa !9
  br label %172

172:                                              ; preds = %190, %164
  %173 = load i64, ptr %36, align 8, !tbaa !9
  %174 = load i64, ptr %26, align 8, !tbaa !9
  %175 = icmp sle i64 %173, %174
  br i1 %175, label %176, label %193

176:                                              ; preds = %172
  %177 = load i64, ptr %36, align 8, !tbaa !9
  %178 = sub nsw i64 %177, 1
  store i64 %178, ptr %27, align 8, !tbaa !9
  %179 = load ptr, ptr %16, align 8, !tbaa !5
  %180 = load i64, ptr %36, align 8, !tbaa !9
  %181 = load i64, ptr %24, align 8, !tbaa !9
  %182 = mul nsw i64 %180, %181
  %183 = add nsw i64 %182, 1
  %184 = getelementptr inbounds float, ptr %179, i64 %183
  %185 = call double @f2c_sasum(ptr noundef %27, ptr noundef %184, ptr noundef @c__1)
  %186 = fptrunc double %185 to float
  %187 = load ptr, ptr %22, align 8, !tbaa !5
  %188 = load i64, ptr %36, align 8, !tbaa !9
  %189 = getelementptr inbounds float, ptr %187, i64 %188
  store float %186, ptr %189, align 4, !tbaa !11
  br label %190

190:                                              ; preds = %176
  %191 = load i64, ptr %36, align 8, !tbaa !9
  %192 = add nsw i64 %191, 1
  store i64 %192, ptr %36, align 8, !tbaa !9
  br label %172, !llvm.loop !13

193:                                              ; preds = %172
  %194 = load ptr, ptr %14, align 8, !tbaa !5
  %195 = load i64, ptr %194, align 8, !tbaa !9
  %196 = icmp ne i64 %195, 0
  br i1 %196, label %230, label %197

197:                                              ; preds = %193
  %198 = load ptr, ptr %15, align 8, !tbaa !5
  %199 = load i64, ptr %198, align 8, !tbaa !9
  store i64 %199, ptr %26, align 8, !tbaa !9
  store i64 2, ptr %35, align 8, !tbaa !9
  br label %200

200:                                              ; preds = %226, %197
  %201 = load i64, ptr %35, align 8, !tbaa !9
  %202 = load i64, ptr %26, align 8, !tbaa !9
  %203 = icmp sle i64 %201, %202
  br i1 %203, label %204, label %229

204:                                              ; preds = %200
  %205 = load ptr, ptr %18, align 8, !tbaa !5
  %206 = load i64, ptr %35, align 8, !tbaa !9
  %207 = getelementptr inbounds float, ptr %205, i64 %206
  %208 = load float, ptr %207, align 4, !tbaa !11
  store float %208, ptr %28, align 4, !tbaa !11
  %209 = load float, ptr %28, align 4, !tbaa !11
  %210 = fcmp oge float %209, 0.000000e+00
  br i1 %210, label %211, label %213

211:                                              ; preds = %204
  %212 = load float, ptr %28, align 4, !tbaa !11
  br label %216

213:                                              ; preds = %204
  %214 = load float, ptr %28, align 4, !tbaa !11
  %215 = fneg float %214
  br label %216

216:                                              ; preds = %213, %211
  %217 = phi float [ %212, %211 ], [ %215, %213 ]
  %218 = fpext float %217 to double
  %219 = load ptr, ptr %22, align 8, !tbaa !5
  %220 = load i64, ptr %35, align 8, !tbaa !9
  %221 = getelementptr inbounds float, ptr %219, i64 %220
  %222 = load float, ptr %221, align 4, !tbaa !11
  %223 = fpext float %222 to double
  %224 = fadd double %223, %218
  %225 = fptrunc double %224 to float
  store float %225, ptr %221, align 4, !tbaa !11
  br label %226

226:                                              ; preds = %216
  %227 = load i64, ptr %35, align 8, !tbaa !9
  %228 = add nsw i64 %227, 1
  store i64 %228, ptr %35, align 8, !tbaa !9
  br label %200, !llvm.loop !15

229:                                              ; preds = %200
  br label %230

230:                                              ; preds = %229, %193
  %231 = load ptr, ptr %15, align 8, !tbaa !5
  %232 = load i64, ptr %231, align 8, !tbaa !9
  %233 = shl i64 %232, 1
  store i64 %233, ptr %43, align 8, !tbaa !9
  %234 = load ptr, ptr %15, align 8, !tbaa !5
  %235 = load i64, ptr %234, align 8, !tbaa !9
  store i64 %235, ptr %42, align 8, !tbaa !9
  %236 = load ptr, ptr %14, align 8, !tbaa !5
  %237 = load i64, ptr %236, align 8, !tbaa !9
  %238 = icmp ne i64 %237, 0
  br i1 %238, label %241, label %239

239:                                              ; preds = %230
  %240 = load i64, ptr %43, align 8, !tbaa !9
  store i64 %240, ptr %42, align 8, !tbaa !9
  br label %241

241:                                              ; preds = %239, %230
  %242 = load ptr, ptr %21, align 8, !tbaa !5
  %243 = getelementptr inbounds float, ptr %242, i64 1
  %244 = call i64 @f2c_isamax(ptr noundef %42, ptr noundef %243, ptr noundef @c__1)
  store i64 %244, ptr %37, align 8, !tbaa !9
  %245 = load ptr, ptr %21, align 8, !tbaa !5
  %246 = load i64, ptr %37, align 8, !tbaa !9
  %247 = getelementptr inbounds float, ptr %245, i64 %246
  %248 = load float, ptr %247, align 4, !tbaa !11
  store float %248, ptr %28, align 4, !tbaa !11
  %249 = load float, ptr %28, align 4, !tbaa !11
  %250 = fcmp oge float %249, 0.000000e+00
  br i1 %250, label %251, label %253

251:                                              ; preds = %241
  %252 = load float, ptr %28, align 4, !tbaa !11
  br label %256

253:                                              ; preds = %241
  %254 = load float, ptr %28, align 4, !tbaa !11
  %255 = fneg float %254
  br label %256

256:                                              ; preds = %253, %251
  %257 = phi float [ %252, %251 ], [ %255, %253 ]
  %258 = fpext float %257 to double
  %259 = fptrunc double %258 to float
  store float %259, ptr %53, align 4, !tbaa !11
  %260 = load ptr, ptr %20, align 8, !tbaa !5
  store float 1.000000e+00, ptr %260, align 4, !tbaa !11
  %261 = load float, ptr %53, align 4, !tbaa !11
  %262 = load float, ptr %58, align 4, !tbaa !11
  %263 = fcmp ogt float %261, %262
  br i1 %263, label %264, label %274

264:                                              ; preds = %256
  %265 = load float, ptr %58, align 4, !tbaa !11
  %266 = load float, ptr %53, align 4, !tbaa !11
  %267 = fdiv float %265, %266
  %268 = load ptr, ptr %20, align 8, !tbaa !5
  store float %267, ptr %268, align 4, !tbaa !11
  %269 = load ptr, ptr %20, align 8, !tbaa !5
  %270 = load ptr, ptr %21, align 8, !tbaa !5
  %271 = getelementptr inbounds float, ptr %270, i64 1
  %272 = call i32 @f2c_sscal(ptr noundef %42, ptr noundef %269, ptr noundef %271, ptr noundef @c__1)
  %273 = load float, ptr %58, align 4, !tbaa !11
  store float %273, ptr %53, align 4, !tbaa !11
  br label %274

274:                                              ; preds = %264, %256
  %275 = load ptr, ptr %14, align 8, !tbaa !5
  %276 = load i64, ptr %275, align 8, !tbaa !9
  %277 = icmp ne i64 %276, 0
  br i1 %277, label %278, label %1110

278:                                              ; preds = %274
  %279 = load i64, ptr %59, align 8, !tbaa !9
  %280 = icmp ne i64 %279, 0
  br i1 %280, label %281, label %679

281:                                              ; preds = %278
  %282 = load ptr, ptr %15, align 8, !tbaa !5
  %283 = load i64, ptr %282, align 8, !tbaa !9
  store i64 %283, ptr %54, align 8, !tbaa !9
  %284 = load ptr, ptr %15, align 8, !tbaa !5
  %285 = load i64, ptr %284, align 8, !tbaa !9
  store i64 %285, ptr %36, align 8, !tbaa !9
  br label %286

286:                                              ; preds = %675, %281
  %287 = load i64, ptr %36, align 8, !tbaa !9
  %288 = icmp sge i64 %287, 1
  br i1 %288, label %289, label %678

289:                                              ; preds = %286
  %290 = load i64, ptr %36, align 8, !tbaa !9
  %291 = load i64, ptr %54, align 8, !tbaa !9
  %292 = icmp sgt i64 %290, %291
  br i1 %292, label %293, label %294

293:                                              ; preds = %289
  br label %674

294:                                              ; preds = %289
  %295 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %295, ptr %40, align 8, !tbaa !9
  %296 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %296, ptr %41, align 8, !tbaa !9
  %297 = load i64, ptr %36, align 8, !tbaa !9
  %298 = sub nsw i64 %297, 1
  store i64 %298, ptr %54, align 8, !tbaa !9
  %299 = load i64, ptr %36, align 8, !tbaa !9
  %300 = icmp sgt i64 %299, 1
  br i1 %300, label %301, label %318

301:                                              ; preds = %294
  %302 = load ptr, ptr %16, align 8, !tbaa !5
  %303 = load i64, ptr %36, align 8, !tbaa !9
  %304 = load i64, ptr %36, align 8, !tbaa !9
  %305 = sub nsw i64 %304, 1
  %306 = load i64, ptr %24, align 8, !tbaa !9
  %307 = mul nsw i64 %305, %306
  %308 = add nsw i64 %303, %307
  %309 = getelementptr inbounds float, ptr %302, i64 %308
  %310 = load float, ptr %309, align 4, !tbaa !11
  %311 = fcmp une float %310, 0.000000e+00
  br i1 %311, label %312, label %317

312:                                              ; preds = %301
  %313 = load i64, ptr %36, align 8, !tbaa !9
  %314 = sub nsw i64 %313, 1
  store i64 %314, ptr %40, align 8, !tbaa !9
  %315 = load i64, ptr %36, align 8, !tbaa !9
  %316 = sub nsw i64 %315, 2
  store i64 %316, ptr %54, align 8, !tbaa !9
  br label %317

317:                                              ; preds = %312, %301
  br label %318

318:                                              ; preds = %317, %294
  %319 = load i64, ptr %40, align 8, !tbaa !9
  %320 = load i64, ptr %41, align 8, !tbaa !9
  %321 = icmp eq i64 %319, %320
  br i1 %321, label %322, label %488

322:                                              ; preds = %318
  %323 = load ptr, ptr %21, align 8, !tbaa !5
  %324 = load i64, ptr %40, align 8, !tbaa !9
  %325 = getelementptr inbounds float, ptr %323, i64 %324
  %326 = load float, ptr %325, align 4, !tbaa !11
  store float %326, ptr %28, align 4, !tbaa !11
  %327 = load float, ptr %28, align 4, !tbaa !11
  %328 = fcmp oge float %327, 0.000000e+00
  br i1 %328, label %329, label %331

329:                                              ; preds = %322
  %330 = load float, ptr %28, align 4, !tbaa !11
  br label %334

331:                                              ; preds = %322
  %332 = load float, ptr %28, align 4, !tbaa !11
  %333 = fneg float %332
  br label %334

334:                                              ; preds = %331, %329
  %335 = phi float [ %330, %329 ], [ %333, %331 ]
  %336 = fpext float %335 to double
  %337 = fptrunc double %336 to float
  store float %337, ptr %45, align 4, !tbaa !11
  %338 = load ptr, ptr %16, align 8, !tbaa !5
  %339 = load i64, ptr %40, align 8, !tbaa !9
  %340 = load i64, ptr %40, align 8, !tbaa !9
  %341 = load i64, ptr %24, align 8, !tbaa !9
  %342 = mul nsw i64 %340, %341
  %343 = add nsw i64 %339, %342
  %344 = getelementptr inbounds float, ptr %338, i64 %343
  %345 = load float, ptr %344, align 4, !tbaa !11
  store float %345, ptr %28, align 4, !tbaa !11
  %346 = load float, ptr %28, align 4, !tbaa !11
  %347 = fcmp oge float %346, 0.000000e+00
  br i1 %347, label %348, label %350

348:                                              ; preds = %334
  %349 = load float, ptr %28, align 4, !tbaa !11
  br label %353

350:                                              ; preds = %334
  %351 = load float, ptr %28, align 4, !tbaa !11
  %352 = fneg float %351
  br label %353

353:                                              ; preds = %350, %348
  %354 = phi float [ %349, %348 ], [ %352, %350 ]
  %355 = fpext float %354 to double
  %356 = fptrunc double %355 to float
  store float %356, ptr %49, align 4, !tbaa !11
  %357 = load ptr, ptr %16, align 8, !tbaa !5
  %358 = load i64, ptr %40, align 8, !tbaa !9
  %359 = load i64, ptr %40, align 8, !tbaa !9
  %360 = load i64, ptr %24, align 8, !tbaa !9
  %361 = mul nsw i64 %359, %360
  %362 = add nsw i64 %358, %361
  %363 = getelementptr inbounds float, ptr %357, i64 %362
  %364 = load float, ptr %363, align 4, !tbaa !11
  store float %364, ptr %50, align 4, !tbaa !11
  %365 = load float, ptr %49, align 4, !tbaa !11
  %366 = load float, ptr %52, align 4, !tbaa !11
  %367 = fcmp olt float %365, %366
  br i1 %367, label %368, label %372

368:                                              ; preds = %353
  %369 = load float, ptr %52, align 4, !tbaa !11
  store float %369, ptr %50, align 4, !tbaa !11
  %370 = load float, ptr %52, align 4, !tbaa !11
  store float %370, ptr %49, align 4, !tbaa !11
  %371 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 1, ptr %371, align 8, !tbaa !9
  br label %372

372:                                              ; preds = %368, %353
  %373 = load float, ptr %45, align 4, !tbaa !11
  %374 = fcmp oeq float %373, 0.000000e+00
  br i1 %374, label %375, label %376

375:                                              ; preds = %372
  br label %674

376:                                              ; preds = %372
  %377 = load float, ptr %49, align 4, !tbaa !11
  %378 = fcmp olt float %377, 1.000000e+00
  br i1 %378, label %379, label %400

379:                                              ; preds = %376
  %380 = load float, ptr %45, align 4, !tbaa !11
  %381 = load float, ptr %58, align 4, !tbaa !11
  %382 = load float, ptr %49, align 4, !tbaa !11
  %383 = fmul float %381, %382
  %384 = fcmp ogt float %380, %383
  br i1 %384, label %385, label %399

385:                                              ; preds = %379
  %386 = load float, ptr %45, align 4, !tbaa !11
  %387 = fdiv float 1.000000e+00, %386
  store float %387, ptr %47, align 4, !tbaa !11
  %388 = load ptr, ptr %15, align 8, !tbaa !5
  %389 = load ptr, ptr %21, align 8, !tbaa !5
  %390 = getelementptr inbounds float, ptr %389, i64 1
  %391 = call i32 @f2c_sscal(ptr noundef %388, ptr noundef %47, ptr noundef %390, ptr noundef @c__1)
  %392 = load float, ptr %47, align 4, !tbaa !11
  %393 = load ptr, ptr %20, align 8, !tbaa !5
  %394 = load float, ptr %393, align 4, !tbaa !11
  %395 = fmul float %394, %392
  store float %395, ptr %393, align 4, !tbaa !11
  %396 = load float, ptr %47, align 4, !tbaa !11
  %397 = load float, ptr %53, align 4, !tbaa !11
  %398 = fmul float %397, %396
  store float %398, ptr %53, align 4, !tbaa !11
  br label %399

399:                                              ; preds = %385, %379
  br label %400

400:                                              ; preds = %399, %376
  %401 = load float, ptr %50, align 4, !tbaa !11
  %402 = load ptr, ptr %21, align 8, !tbaa !5
  %403 = load i64, ptr %40, align 8, !tbaa !9
  %404 = getelementptr inbounds float, ptr %402, i64 %403
  %405 = load float, ptr %404, align 4, !tbaa !11
  %406 = fdiv float %405, %401
  store float %406, ptr %404, align 4, !tbaa !11
  %407 = load ptr, ptr %21, align 8, !tbaa !5
  %408 = load i64, ptr %40, align 8, !tbaa !9
  %409 = getelementptr inbounds float, ptr %407, i64 %408
  %410 = load float, ptr %409, align 4, !tbaa !11
  store float %410, ptr %28, align 4, !tbaa !11
  %411 = load float, ptr %28, align 4, !tbaa !11
  %412 = fcmp oge float %411, 0.000000e+00
  br i1 %412, label %413, label %415

413:                                              ; preds = %400
  %414 = load float, ptr %28, align 4, !tbaa !11
  br label %418

415:                                              ; preds = %400
  %416 = load float, ptr %28, align 4, !tbaa !11
  %417 = fneg float %416
  br label %418

418:                                              ; preds = %415, %413
  %419 = phi float [ %414, %413 ], [ %417, %415 ]
  %420 = fpext float %419 to double
  %421 = fptrunc double %420 to float
  store float %421, ptr %45, align 4, !tbaa !11
  %422 = load float, ptr %45, align 4, !tbaa !11
  %423 = fcmp ogt float %422, 1.000000e+00
  br i1 %423, label %424, label %447

424:                                              ; preds = %418
  %425 = load float, ptr %45, align 4, !tbaa !11
  %426 = fdiv float 1.000000e+00, %425
  store float %426, ptr %47, align 4, !tbaa !11
  %427 = load ptr, ptr %22, align 8, !tbaa !5
  %428 = load i64, ptr %40, align 8, !tbaa !9
  %429 = getelementptr inbounds float, ptr %427, i64 %428
  %430 = load float, ptr %429, align 4, !tbaa !11
  %431 = load float, ptr %58, align 4, !tbaa !11
  %432 = load float, ptr %53, align 4, !tbaa !11
  %433 = fsub float %431, %432
  %434 = load float, ptr %47, align 4, !tbaa !11
  %435 = fmul float %433, %434
  %436 = fcmp ogt float %430, %435
  br i1 %436, label %437, label %446

437:                                              ; preds = %424
  %438 = load ptr, ptr %15, align 8, !tbaa !5
  %439 = load ptr, ptr %21, align 8, !tbaa !5
  %440 = getelementptr inbounds float, ptr %439, i64 1
  %441 = call i32 @f2c_sscal(ptr noundef %438, ptr noundef %47, ptr noundef %440, ptr noundef @c__1)
  %442 = load float, ptr %47, align 4, !tbaa !11
  %443 = load ptr, ptr %20, align 8, !tbaa !5
  %444 = load float, ptr %443, align 4, !tbaa !11
  %445 = fmul float %444, %442
  store float %445, ptr %443, align 4, !tbaa !11
  br label %446

446:                                              ; preds = %437, %424
  br label %447

447:                                              ; preds = %446, %418
  %448 = load i64, ptr %40, align 8, !tbaa !9
  %449 = icmp sgt i64 %448, 1
  br i1 %449, label %450, label %487

450:                                              ; preds = %447
  %451 = load i64, ptr %40, align 8, !tbaa !9
  %452 = sub nsw i64 %451, 1
  store i64 %452, ptr %26, align 8, !tbaa !9
  %453 = load ptr, ptr %21, align 8, !tbaa !5
  %454 = load i64, ptr %40, align 8, !tbaa !9
  %455 = getelementptr inbounds float, ptr %453, i64 %454
  %456 = load float, ptr %455, align 4, !tbaa !11
  %457 = fneg float %456
  store float %457, ptr %28, align 4, !tbaa !11
  %458 = load ptr, ptr %16, align 8, !tbaa !5
  %459 = load i64, ptr %40, align 8, !tbaa !9
  %460 = load i64, ptr %24, align 8, !tbaa !9
  %461 = mul nsw i64 %459, %460
  %462 = add nsw i64 %461, 1
  %463 = getelementptr inbounds float, ptr %458, i64 %462
  %464 = load ptr, ptr %21, align 8, !tbaa !5
  %465 = getelementptr inbounds float, ptr %464, i64 1
  %466 = call i32 @f2c_saxpy(ptr noundef %26, ptr noundef %28, ptr noundef %463, ptr noundef @c__1, ptr noundef %465, ptr noundef @c__1)
  %467 = load i64, ptr %40, align 8, !tbaa !9
  %468 = sub nsw i64 %467, 1
  store i64 %468, ptr %26, align 8, !tbaa !9
  %469 = load ptr, ptr %21, align 8, !tbaa !5
  %470 = getelementptr inbounds float, ptr %469, i64 1
  %471 = call i64 @f2c_isamax(ptr noundef %26, ptr noundef %470, ptr noundef @c__1)
  store i64 %471, ptr %37, align 8, !tbaa !9
  %472 = load ptr, ptr %21, align 8, !tbaa !5
  %473 = load i64, ptr %37, align 8, !tbaa !9
  %474 = getelementptr inbounds float, ptr %472, i64 %473
  %475 = load float, ptr %474, align 4, !tbaa !11
  store float %475, ptr %28, align 4, !tbaa !11
  %476 = load float, ptr %28, align 4, !tbaa !11
  %477 = fcmp oge float %476, 0.000000e+00
  br i1 %477, label %478, label %480

478:                                              ; preds = %450
  %479 = load float, ptr %28, align 4, !tbaa !11
  br label %483

480:                                              ; preds = %450
  %481 = load float, ptr %28, align 4, !tbaa !11
  %482 = fneg float %481
  br label %483

483:                                              ; preds = %480, %478
  %484 = phi float [ %479, %478 ], [ %482, %480 ]
  %485 = fpext float %484 to double
  %486 = fptrunc double %485 to float
  store float %486, ptr %53, align 4, !tbaa !11
  br label %487

487:                                              ; preds = %483, %447
  br label %673

488:                                              ; preds = %318
  %489 = load ptr, ptr %21, align 8, !tbaa !5
  %490 = load i64, ptr %40, align 8, !tbaa !9
  %491 = getelementptr inbounds float, ptr %489, i64 %490
  %492 = load float, ptr %491, align 4, !tbaa !11
  %493 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 0
  store float %492, ptr %493, align 16, !tbaa !11
  %494 = load ptr, ptr %21, align 8, !tbaa !5
  %495 = load i64, ptr %41, align 8, !tbaa !9
  %496 = getelementptr inbounds float, ptr %494, i64 %495
  %497 = load float, ptr %496, align 4, !tbaa !11
  %498 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 1
  store float %497, ptr %498, align 4, !tbaa !11
  %499 = load ptr, ptr %16, align 8, !tbaa !5
  %500 = load i64, ptr %40, align 8, !tbaa !9
  %501 = load i64, ptr %40, align 8, !tbaa !9
  %502 = load i64, ptr %24, align 8, !tbaa !9
  %503 = mul nsw i64 %501, %502
  %504 = add nsw i64 %500, %503
  %505 = getelementptr inbounds float, ptr %499, i64 %504
  %506 = load ptr, ptr %17, align 8, !tbaa !5
  %507 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 0
  %508 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %509 = call i32 @slaln2_(ptr noundef @c_false, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %52, ptr noundef @c_b21, ptr noundef %505, ptr noundef %506, ptr noundef @c_b21, ptr noundef @c_b21, ptr noundef %507, ptr noundef @c__2, ptr noundef @c_b25, ptr noundef @c_b25, ptr noundef %508, ptr noundef @c__2, ptr noundef %57, ptr noundef %56, ptr noundef %51)
  %510 = load i64, ptr %51, align 8, !tbaa !9
  %511 = icmp ne i64 %510, 0
  br i1 %511, label %512, label %514

512:                                              ; preds = %488
  %513 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 2, ptr %513, align 8, !tbaa !9
  br label %514

514:                                              ; preds = %512, %488
  %515 = load float, ptr %57, align 4, !tbaa !11
  %516 = fcmp une float %515, 1.000000e+00
  br i1 %516, label %517, label %526

517:                                              ; preds = %514
  %518 = load ptr, ptr %15, align 8, !tbaa !5
  %519 = load ptr, ptr %21, align 8, !tbaa !5
  %520 = getelementptr inbounds float, ptr %519, i64 1
  %521 = call i32 @f2c_sscal(ptr noundef %518, ptr noundef %57, ptr noundef %520, ptr noundef @c__1)
  %522 = load float, ptr %57, align 4, !tbaa !11
  %523 = load ptr, ptr %20, align 8, !tbaa !5
  %524 = load float, ptr %523, align 4, !tbaa !11
  %525 = fmul float %524, %522
  store float %525, ptr %523, align 4, !tbaa !11
  br label %526

526:                                              ; preds = %517, %514
  %527 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %528 = load float, ptr %527, align 16, !tbaa !11
  %529 = load ptr, ptr %21, align 8, !tbaa !5
  %530 = load i64, ptr %40, align 8, !tbaa !9
  %531 = getelementptr inbounds float, ptr %529, i64 %530
  store float %528, ptr %531, align 4, !tbaa !11
  %532 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 1
  %533 = load float, ptr %532, align 4, !tbaa !11
  %534 = load ptr, ptr %21, align 8, !tbaa !5
  %535 = load i64, ptr %41, align 8, !tbaa !9
  %536 = getelementptr inbounds float, ptr %534, i64 %535
  store float %533, ptr %536, align 4, !tbaa !11
  %537 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %538 = load float, ptr %537, align 16, !tbaa !11
  %539 = fcmp oge float %538, 0.000000e+00
  br i1 %539, label %540, label %543

540:                                              ; preds = %526
  %541 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %542 = load float, ptr %541, align 16, !tbaa !11
  br label %547

543:                                              ; preds = %526
  %544 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %545 = load float, ptr %544, align 16, !tbaa !11
  %546 = fneg float %545
  br label %547

547:                                              ; preds = %543, %540
  %548 = phi float [ %542, %540 ], [ %546, %543 ]
  %549 = fpext float %548 to double
  %550 = fptrunc double %549 to float
  store float %550, ptr %28, align 4, !tbaa !11
  %551 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 1
  %552 = load float, ptr %551, align 4, !tbaa !11
  %553 = fcmp oge float %552, 0.000000e+00
  br i1 %553, label %554, label %557

554:                                              ; preds = %547
  %555 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 1
  %556 = load float, ptr %555, align 4, !tbaa !11
  br label %561

557:                                              ; preds = %547
  %558 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 1
  %559 = load float, ptr %558, align 4, !tbaa !11
  %560 = fneg float %559
  br label %561

561:                                              ; preds = %557, %554
  %562 = phi float [ %556, %554 ], [ %560, %557 ]
  %563 = fpext float %562 to double
  %564 = fptrunc double %563 to float
  store float %564, ptr %29, align 4, !tbaa !11
  %565 = load float, ptr %28, align 4, !tbaa !11
  %566 = load float, ptr %29, align 4, !tbaa !11
  %567 = fcmp oge float %565, %566
  br i1 %567, label %568, label %570

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

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

572:                                              ; preds = %570, %568
  %573 = phi float [ %569, %568 ], [ %571, %570 ]
  %574 = fpext float %573 to double
  %575 = fptrunc double %574 to float
  store float %575, ptr %45, align 4, !tbaa !11
  %576 = load float, ptr %45, align 4, !tbaa !11
  %577 = fcmp ogt float %576, 1.000000e+00
  br i1 %577, label %578, label %616

578:                                              ; preds = %572
  %579 = load float, ptr %45, align 4, !tbaa !11
  %580 = fdiv float 1.000000e+00, %579
  store float %580, ptr %47, align 4, !tbaa !11
  %581 = load ptr, ptr %22, align 8, !tbaa !5
  %582 = load i64, ptr %40, align 8, !tbaa !9
  %583 = getelementptr inbounds float, ptr %581, i64 %582
  %584 = load float, ptr %583, align 4, !tbaa !11
  store float %584, ptr %28, align 4, !tbaa !11
  %585 = load ptr, ptr %22, align 8, !tbaa !5
  %586 = load i64, ptr %41, align 8, !tbaa !9
  %587 = getelementptr inbounds float, ptr %585, i64 %586
  %588 = load float, ptr %587, align 4, !tbaa !11
  store float %588, ptr %29, align 4, !tbaa !11
  %589 = load float, ptr %28, align 4, !tbaa !11
  %590 = load float, ptr %29, align 4, !tbaa !11
  %591 = fcmp oge float %589, %590
  br i1 %591, label %592, label %594

592:                                              ; preds = %578
  %593 = load float, ptr %28, align 4, !tbaa !11
  br label %596

594:                                              ; preds = %578
  %595 = load float, ptr %29, align 4, !tbaa !11
  br label %596

596:                                              ; preds = %594, %592
  %597 = phi float [ %593, %592 ], [ %595, %594 ]
  %598 = fpext float %597 to double
  %599 = load float, ptr %58, align 4, !tbaa !11
  %600 = load float, ptr %53, align 4, !tbaa !11
  %601 = fsub float %599, %600
  %602 = load float, ptr %47, align 4, !tbaa !11
  %603 = fmul float %601, %602
  %604 = fpext float %603 to double
  %605 = fcmp ogt double %598, %604
  br i1 %605, label %606, label %615

606:                                              ; preds = %596
  %607 = load ptr, ptr %15, align 8, !tbaa !5
  %608 = load ptr, ptr %21, align 8, !tbaa !5
  %609 = getelementptr inbounds float, ptr %608, i64 1
  %610 = call i32 @f2c_sscal(ptr noundef %607, ptr noundef %47, ptr noundef %609, ptr noundef @c__1)
  %611 = load float, ptr %47, align 4, !tbaa !11
  %612 = load ptr, ptr %20, align 8, !tbaa !5
  %613 = load float, ptr %612, align 4, !tbaa !11
  %614 = fmul float %613, %611
  store float %614, ptr %612, align 4, !tbaa !11
  br label %615

615:                                              ; preds = %606, %596
  br label %616

616:                                              ; preds = %615, %572
  %617 = load i64, ptr %40, align 8, !tbaa !9
  %618 = icmp sgt i64 %617, 1
  br i1 %618, label %619, label %672

619:                                              ; preds = %616
  %620 = load i64, ptr %40, align 8, !tbaa !9
  %621 = sub nsw i64 %620, 1
  store i64 %621, ptr %26, align 8, !tbaa !9
  %622 = load ptr, ptr %21, align 8, !tbaa !5
  %623 = load i64, ptr %40, align 8, !tbaa !9
  %624 = getelementptr inbounds float, ptr %622, i64 %623
  %625 = load float, ptr %624, align 4, !tbaa !11
  %626 = fneg float %625
  store float %626, ptr %28, align 4, !tbaa !11
  %627 = load ptr, ptr %16, align 8, !tbaa !5
  %628 = load i64, ptr %40, align 8, !tbaa !9
  %629 = load i64, ptr %24, align 8, !tbaa !9
  %630 = mul nsw i64 %628, %629
  %631 = add nsw i64 %630, 1
  %632 = getelementptr inbounds float, ptr %627, i64 %631
  %633 = load ptr, ptr %21, align 8, !tbaa !5
  %634 = getelementptr inbounds float, ptr %633, i64 1
  %635 = call i32 @f2c_saxpy(ptr noundef %26, ptr noundef %28, ptr noundef %632, ptr noundef @c__1, ptr noundef %634, ptr noundef @c__1)
  %636 = load i64, ptr %40, align 8, !tbaa !9
  %637 = sub nsw i64 %636, 1
  store i64 %637, ptr %26, align 8, !tbaa !9
  %638 = load ptr, ptr %21, align 8, !tbaa !5
  %639 = load i64, ptr %41, align 8, !tbaa !9
  %640 = getelementptr inbounds float, ptr %638, i64 %639
  %641 = load float, ptr %640, align 4, !tbaa !11
  %642 = fneg float %641
  store float %642, ptr %28, align 4, !tbaa !11
  %643 = load ptr, ptr %16, align 8, !tbaa !5
  %644 = load i64, ptr %41, align 8, !tbaa !9
  %645 = load i64, ptr %24, align 8, !tbaa !9
  %646 = mul nsw i64 %644, %645
  %647 = add nsw i64 %646, 1
  %648 = getelementptr inbounds float, ptr %643, i64 %647
  %649 = load ptr, ptr %21, align 8, !tbaa !5
  %650 = getelementptr inbounds float, ptr %649, i64 1
  %651 = call i32 @f2c_saxpy(ptr noundef %26, ptr noundef %28, ptr noundef %648, ptr noundef @c__1, ptr noundef %650, ptr noundef @c__1)
  %652 = load i64, ptr %40, align 8, !tbaa !9
  %653 = sub nsw i64 %652, 1
  store i64 %653, ptr %26, align 8, !tbaa !9
  %654 = load ptr, ptr %21, align 8, !tbaa !5
  %655 = getelementptr inbounds float, ptr %654, i64 1
  %656 = call i64 @f2c_isamax(ptr noundef %26, ptr noundef %655, ptr noundef @c__1)
  store i64 %656, ptr %37, align 8, !tbaa !9
  %657 = load ptr, ptr %21, align 8, !tbaa !5
  %658 = load i64, ptr %37, align 8, !tbaa !9
  %659 = getelementptr inbounds float, ptr %657, i64 %658
  %660 = load float, ptr %659, align 4, !tbaa !11
  store float %660, ptr %28, align 4, !tbaa !11
  %661 = load float, ptr %28, align 4, !tbaa !11
  %662 = fcmp oge float %661, 0.000000e+00
  br i1 %662, label %663, label %665

663:                                              ; preds = %619
  %664 = load float, ptr %28, align 4, !tbaa !11
  br label %668

665:                                              ; preds = %619
  %666 = load float, ptr %28, align 4, !tbaa !11
  %667 = fneg float %666
  br label %668

668:                                              ; preds = %665, %663
  %669 = phi float [ %664, %663 ], [ %667, %665 ]
  %670 = fpext float %669 to double
  %671 = fptrunc double %670 to float
  store float %671, ptr %53, align 4, !tbaa !11
  br label %672

672:                                              ; preds = %668, %616
  br label %673

673:                                              ; preds = %672, %487
  br label %674

674:                                              ; preds = %673, %375, %293
  br label %675

675:                                              ; preds = %674
  %676 = load i64, ptr %36, align 8, !tbaa !9
  %677 = add nsw i64 %676, -1
  store i64 %677, ptr %36, align 8, !tbaa !9
  br label %286, !llvm.loop !16

678:                                              ; preds = %286
  br label %1109

679:                                              ; preds = %278
  store i64 1, ptr %54, align 8, !tbaa !9
  %680 = load ptr, ptr %15, align 8, !tbaa !5
  %681 = load i64, ptr %680, align 8, !tbaa !9
  store i64 %681, ptr %26, align 8, !tbaa !9
  store i64 1, ptr %36, align 8, !tbaa !9
  br label %682

682:                                              ; preds = %1105, %679
  %683 = load i64, ptr %36, align 8, !tbaa !9
  %684 = load i64, ptr %26, align 8, !tbaa !9
  %685 = icmp sle i64 %683, %684
  br i1 %685, label %686, label %1108

686:                                              ; preds = %682
  %687 = load i64, ptr %36, align 8, !tbaa !9
  %688 = load i64, ptr %54, align 8, !tbaa !9
  %689 = icmp slt i64 %687, %688
  br i1 %689, label %690, label %691

690:                                              ; preds = %686
  br label %1104

691:                                              ; preds = %686
  %692 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %692, ptr %40, align 8, !tbaa !9
  %693 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %693, ptr %41, align 8, !tbaa !9
  %694 = load i64, ptr %36, align 8, !tbaa !9
  %695 = add nsw i64 %694, 1
  store i64 %695, ptr %54, align 8, !tbaa !9
  %696 = load i64, ptr %36, align 8, !tbaa !9
  %697 = load ptr, ptr %15, align 8, !tbaa !5
  %698 = load i64, ptr %697, align 8, !tbaa !9
  %699 = icmp slt i64 %696, %698
  br i1 %699, label %700, label %717

700:                                              ; preds = %691
  %701 = load ptr, ptr %16, align 8, !tbaa !5
  %702 = load i64, ptr %36, align 8, !tbaa !9
  %703 = add nsw i64 %702, 1
  %704 = load i64, ptr %36, align 8, !tbaa !9
  %705 = load i64, ptr %24, align 8, !tbaa !9
  %706 = mul nsw i64 %704, %705
  %707 = add nsw i64 %703, %706
  %708 = getelementptr inbounds float, ptr %701, i64 %707
  %709 = load float, ptr %708, align 4, !tbaa !11
  %710 = fcmp une float %709, 0.000000e+00
  br i1 %710, label %711, label %716

711:                                              ; preds = %700
  %712 = load i64, ptr %36, align 8, !tbaa !9
  %713 = add nsw i64 %712, 1
  store i64 %713, ptr %41, align 8, !tbaa !9
  %714 = load i64, ptr %36, align 8, !tbaa !9
  %715 = add nsw i64 %714, 2
  store i64 %715, ptr %54, align 8, !tbaa !9
  br label %716

716:                                              ; preds = %711, %700
  br label %717

717:                                              ; preds = %716, %691
  %718 = load i64, ptr %40, align 8, !tbaa !9
  %719 = load i64, ptr %41, align 8, !tbaa !9
  %720 = icmp eq i64 %718, %719
  br i1 %720, label %721, label %891

721:                                              ; preds = %717
  %722 = load ptr, ptr %21, align 8, !tbaa !5
  %723 = load i64, ptr %40, align 8, !tbaa !9
  %724 = getelementptr inbounds float, ptr %722, i64 %723
  %725 = load float, ptr %724, align 4, !tbaa !11
  store float %725, ptr %28, align 4, !tbaa !11
  %726 = load float, ptr %28, align 4, !tbaa !11
  %727 = fcmp oge float %726, 0.000000e+00
  br i1 %727, label %728, label %730

728:                                              ; preds = %721
  %729 = load float, ptr %28, align 4, !tbaa !11
  br label %733

730:                                              ; preds = %721
  %731 = load float, ptr %28, align 4, !tbaa !11
  %732 = fneg float %731
  br label %733

733:                                              ; preds = %730, %728
  %734 = phi float [ %729, %728 ], [ %732, %730 ]
  %735 = fpext float %734 to double
  %736 = fptrunc double %735 to float
  store float %736, ptr %45, align 4, !tbaa !11
  %737 = load float, ptr %53, align 4, !tbaa !11
  %738 = fcmp ogt float %737, 1.000000e+00
  br i1 %738, label %739, label %765

739:                                              ; preds = %733
  %740 = load float, ptr %53, align 4, !tbaa !11
  %741 = fdiv float 1.000000e+00, %740
  store float %741, ptr %47, align 4, !tbaa !11
  %742 = load ptr, ptr %22, align 8, !tbaa !5
  %743 = load i64, ptr %40, align 8, !tbaa !9
  %744 = getelementptr inbounds float, ptr %742, i64 %743
  %745 = load float, ptr %744, align 4, !tbaa !11
  %746 = load float, ptr %58, align 4, !tbaa !11
  %747 = load float, ptr %45, align 4, !tbaa !11
  %748 = fsub float %746, %747
  %749 = load float, ptr %47, align 4, !tbaa !11
  %750 = fmul float %748, %749
  %751 = fcmp ogt float %745, %750
  br i1 %751, label %752, label %764

752:                                              ; preds = %739
  %753 = load ptr, ptr %15, align 8, !tbaa !5
  %754 = load ptr, ptr %21, align 8, !tbaa !5
  %755 = getelementptr inbounds float, ptr %754, i64 1
  %756 = call i32 @f2c_sscal(ptr noundef %753, ptr noundef %47, ptr noundef %755, ptr noundef @c__1)
  %757 = load float, ptr %47, align 4, !tbaa !11
  %758 = load ptr, ptr %20, align 8, !tbaa !5
  %759 = load float, ptr %758, align 4, !tbaa !11
  %760 = fmul float %759, %757
  store float %760, ptr %758, align 4, !tbaa !11
  %761 = load float, ptr %47, align 4, !tbaa !11
  %762 = load float, ptr %53, align 4, !tbaa !11
  %763 = fmul float %762, %761
  store float %763, ptr %53, align 4, !tbaa !11
  br label %764

764:                                              ; preds = %752, %739
  br label %765

765:                                              ; preds = %764, %733
  %766 = load i64, ptr %40, align 8, !tbaa !9
  %767 = sub nsw i64 %766, 1
  store i64 %767, ptr %27, align 8, !tbaa !9
  %768 = load ptr, ptr %16, align 8, !tbaa !5
  %769 = load i64, ptr %40, align 8, !tbaa !9
  %770 = load i64, ptr %24, align 8, !tbaa !9
  %771 = mul nsw i64 %769, %770
  %772 = add nsw i64 %771, 1
  %773 = getelementptr inbounds float, ptr %768, i64 %772
  %774 = load ptr, ptr %21, align 8, !tbaa !5
  %775 = getelementptr inbounds float, ptr %774, i64 1
  %776 = call double @f2c_sdot(ptr noundef %27, ptr noundef %773, ptr noundef @c__1, ptr noundef %775, ptr noundef @c__1)
  %777 = load ptr, ptr %21, align 8, !tbaa !5
  %778 = load i64, ptr %40, align 8, !tbaa !9
  %779 = getelementptr inbounds float, ptr %777, i64 %778
  %780 = load float, ptr %779, align 4, !tbaa !11
  %781 = fpext float %780 to double
  %782 = fsub double %781, %776
  %783 = fptrunc double %782 to float
  store float %783, ptr %779, align 4, !tbaa !11
  %784 = load ptr, ptr %21, align 8, !tbaa !5
  %785 = load i64, ptr %40, align 8, !tbaa !9
  %786 = getelementptr inbounds float, ptr %784, i64 %785
  %787 = load float, ptr %786, align 4, !tbaa !11
  store float %787, ptr %28, align 4, !tbaa !11
  %788 = load float, ptr %28, align 4, !tbaa !11
  %789 = fcmp oge float %788, 0.000000e+00
  br i1 %789, label %790, label %792

790:                                              ; preds = %765
  %791 = load float, ptr %28, align 4, !tbaa !11
  br label %795

792:                                              ; preds = %765
  %793 = load float, ptr %28, align 4, !tbaa !11
  %794 = fneg float %793
  br label %795

795:                                              ; preds = %792, %790
  %796 = phi float [ %791, %790 ], [ %794, %792 ]
  %797 = fpext float %796 to double
  %798 = fptrunc double %797 to float
  store float %798, ptr %45, align 4, !tbaa !11
  %799 = load ptr, ptr %16, align 8, !tbaa !5
  %800 = load i64, ptr %40, align 8, !tbaa !9
  %801 = load i64, ptr %40, align 8, !tbaa !9
  %802 = load i64, ptr %24, align 8, !tbaa !9
  %803 = mul nsw i64 %801, %802
  %804 = add nsw i64 %800, %803
  %805 = getelementptr inbounds float, ptr %799, i64 %804
  %806 = load float, ptr %805, align 4, !tbaa !11
  store float %806, ptr %28, align 4, !tbaa !11
  %807 = load float, ptr %28, align 4, !tbaa !11
  %808 = fcmp oge float %807, 0.000000e+00
  br i1 %808, label %809, label %811

809:                                              ; preds = %795
  %810 = load float, ptr %28, align 4, !tbaa !11
  br label %814

811:                                              ; preds = %795
  %812 = load float, ptr %28, align 4, !tbaa !11
  %813 = fneg float %812
  br label %814

814:                                              ; preds = %811, %809
  %815 = phi float [ %810, %809 ], [ %813, %811 ]
  %816 = fpext float %815 to double
  %817 = fptrunc double %816 to float
  store float %817, ptr %49, align 4, !tbaa !11
  %818 = load ptr, ptr %16, align 8, !tbaa !5
  %819 = load i64, ptr %40, align 8, !tbaa !9
  %820 = load i64, ptr %40, align 8, !tbaa !9
  %821 = load i64, ptr %24, align 8, !tbaa !9
  %822 = mul nsw i64 %820, %821
  %823 = add nsw i64 %819, %822
  %824 = getelementptr inbounds float, ptr %818, i64 %823
  %825 = load float, ptr %824, align 4, !tbaa !11
  store float %825, ptr %50, align 4, !tbaa !11
  %826 = load float, ptr %49, align 4, !tbaa !11
  %827 = load float, ptr %52, align 4, !tbaa !11
  %828 = fcmp olt float %826, %827
  br i1 %828, label %829, label %833

829:                                              ; preds = %814
  %830 = load float, ptr %52, align 4, !tbaa !11
  store float %830, ptr %50, align 4, !tbaa !11
  %831 = load float, ptr %52, align 4, !tbaa !11
  store float %831, ptr %49, align 4, !tbaa !11
  %832 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 1, ptr %832, align 8, !tbaa !9
  br label %833

833:                                              ; preds = %829, %814
  %834 = load float, ptr %49, align 4, !tbaa !11
  %835 = fcmp olt float %834, 1.000000e+00
  br i1 %835, label %836, label %857

836:                                              ; preds = %833
  %837 = load float, ptr %45, align 4, !tbaa !11
  %838 = load float, ptr %58, align 4, !tbaa !11
  %839 = load float, ptr %49, align 4, !tbaa !11
  %840 = fmul float %838, %839
  %841 = fcmp ogt float %837, %840
  br i1 %841, label %842, label %856

842:                                              ; preds = %836
  %843 = load float, ptr %45, align 4, !tbaa !11
  %844 = fdiv float 1.000000e+00, %843
  store float %844, ptr %47, align 4, !tbaa !11
  %845 = load ptr, ptr %15, align 8, !tbaa !5
  %846 = load ptr, ptr %21, align 8, !tbaa !5
  %847 = getelementptr inbounds float, ptr %846, i64 1
  %848 = call i32 @f2c_sscal(ptr noundef %845, ptr noundef %47, ptr noundef %847, ptr noundef @c__1)
  %849 = load float, ptr %47, align 4, !tbaa !11
  %850 = load ptr, ptr %20, align 8, !tbaa !5
  %851 = load float, ptr %850, align 4, !tbaa !11
  %852 = fmul float %851, %849
  store float %852, ptr %850, align 4, !tbaa !11
  %853 = load float, ptr %47, align 4, !tbaa !11
  %854 = load float, ptr %53, align 4, !tbaa !11
  %855 = fmul float %854, %853
  store float %855, ptr %53, align 4, !tbaa !11
  br label %856

856:                                              ; preds = %842, %836
  br label %857

857:                                              ; preds = %856, %833
  %858 = load float, ptr %50, align 4, !tbaa !11
  %859 = load ptr, ptr %21, align 8, !tbaa !5
  %860 = load i64, ptr %40, align 8, !tbaa !9
  %861 = getelementptr inbounds float, ptr %859, i64 %860
  %862 = load float, ptr %861, align 4, !tbaa !11
  %863 = fdiv float %862, %858
  store float %863, ptr %861, align 4, !tbaa !11
  %864 = load float, ptr %53, align 4, !tbaa !11
  store float %864, ptr %29, align 4, !tbaa !11
  %865 = load ptr, ptr %21, align 8, !tbaa !5
  %866 = load i64, ptr %40, align 8, !tbaa !9
  %867 = getelementptr inbounds float, ptr %865, i64 %866
  %868 = load float, ptr %867, align 4, !tbaa !11
  store float %868, ptr %28, align 4, !tbaa !11
  %869 = load float, ptr %28, align 4, !tbaa !11
  %870 = fcmp oge float %869, 0.000000e+00
  br i1 %870, label %871, label %873

871:                                              ; preds = %857
  %872 = load float, ptr %28, align 4, !tbaa !11
  br label %876

873:                                              ; preds = %857
  %874 = load float, ptr %28, align 4, !tbaa !11
  %875 = fneg float %874
  br label %876

876:                                              ; preds = %873, %871
  %877 = phi float [ %872, %871 ], [ %875, %873 ]
  %878 = fpext float %877 to double
  %879 = fptrunc double %878 to float
  store float %879, ptr %30, align 4, !tbaa !11
  %880 = load float, ptr %29, align 4, !tbaa !11
  %881 = load float, ptr %30, align 4, !tbaa !11
  %882 = fcmp oge float %880, %881
  br i1 %882, label %883, label %885

883:                                              ; preds = %876
  %884 = load float, ptr %29, align 4, !tbaa !11
  br label %887

885:                                              ; preds = %876
  %886 = load float, ptr %30, align 4, !tbaa !11
  br label %887

887:                                              ; preds = %885, %883
  %888 = phi float [ %884, %883 ], [ %886, %885 ]
  %889 = fpext float %888 to double
  %890 = fptrunc double %889 to float
  store float %890, ptr %53, align 4, !tbaa !11
  br label %1103

891:                                              ; preds = %717
  %892 = load ptr, ptr %21, align 8, !tbaa !5
  %893 = load i64, ptr %40, align 8, !tbaa !9
  %894 = getelementptr inbounds float, ptr %892, i64 %893
  %895 = load float, ptr %894, align 4, !tbaa !11
  store float %895, ptr %28, align 4, !tbaa !11
  %896 = load float, ptr %28, align 4, !tbaa !11
  %897 = fcmp oge float %896, 0.000000e+00
  br i1 %897, label %898, label %900

898:                                              ; preds = %891
  %899 = load float, ptr %28, align 4, !tbaa !11
  br label %903

900:                                              ; preds = %891
  %901 = load float, ptr %28, align 4, !tbaa !11
  %902 = fneg float %901
  br label %903

903:                                              ; preds = %900, %898
  %904 = phi float [ %899, %898 ], [ %902, %900 ]
  %905 = fpext float %904 to double
  %906 = fptrunc double %905 to float
  store float %906, ptr %30, align 4, !tbaa !11
  %907 = load ptr, ptr %21, align 8, !tbaa !5
  %908 = load i64, ptr %41, align 8, !tbaa !9
  %909 = getelementptr inbounds float, ptr %907, i64 %908
  %910 = load float, ptr %909, align 4, !tbaa !11
  store float %910, ptr %29, align 4, !tbaa !11
  %911 = load float, ptr %29, align 4, !tbaa !11
  %912 = fcmp oge float %911, 0.000000e+00
  br i1 %912, label %913, label %915

913:                                              ; preds = %903
  %914 = load float, ptr %29, align 4, !tbaa !11
  br label %918

915:                                              ; preds = %903
  %916 = load float, ptr %29, align 4, !tbaa !11
  %917 = fneg float %916
  br label %918

918:                                              ; preds = %915, %913
  %919 = phi float [ %914, %913 ], [ %917, %915 ]
  %920 = fpext float %919 to double
  %921 = fptrunc double %920 to float
  store float %921, ptr %31, align 4, !tbaa !11
  %922 = load float, ptr %30, align 4, !tbaa !11
  %923 = load float, ptr %31, align 4, !tbaa !11
  %924 = fcmp oge float %922, %923
  br i1 %924, label %925, label %927

925:                                              ; preds = %918
  %926 = load float, ptr %30, align 4, !tbaa !11
  br label %929

927:                                              ; preds = %918
  %928 = load float, ptr %31, align 4, !tbaa !11
  br label %929

929:                                              ; preds = %927, %925
  %930 = phi float [ %926, %925 ], [ %928, %927 ]
  %931 = fpext float %930 to double
  %932 = fptrunc double %931 to float
  store float %932, ptr %45, align 4, !tbaa !11
  %933 = load float, ptr %53, align 4, !tbaa !11
  %934 = fcmp ogt float %933, 1.000000e+00
  br i1 %934, label %935, label %976

935:                                              ; preds = %929
  %936 = load float, ptr %53, align 4, !tbaa !11
  %937 = fdiv float 1.000000e+00, %936
  store float %937, ptr %47, align 4, !tbaa !11
  %938 = load ptr, ptr %22, align 8, !tbaa !5
  %939 = load i64, ptr %41, align 8, !tbaa !9
  %940 = getelementptr inbounds float, ptr %938, i64 %939
  %941 = load float, ptr %940, align 4, !tbaa !11
  store float %941, ptr %28, align 4, !tbaa !11
  %942 = load ptr, ptr %22, align 8, !tbaa !5
  %943 = load i64, ptr %40, align 8, !tbaa !9
  %944 = getelementptr inbounds float, ptr %942, i64 %943
  %945 = load float, ptr %944, align 4, !tbaa !11
  store float %945, ptr %29, align 4, !tbaa !11
  %946 = load float, ptr %28, align 4, !tbaa !11
  %947 = load float, ptr %29, align 4, !tbaa !11
  %948 = fcmp oge float %946, %947
  br i1 %948, label %949, label %951

949:                                              ; preds = %935
  %950 = load float, ptr %28, align 4, !tbaa !11
  br label %953

951:                                              ; preds = %935
  %952 = load float, ptr %29, align 4, !tbaa !11
  br label %953

953:                                              ; preds = %951, %949
  %954 = phi float [ %950, %949 ], [ %952, %951 ]
  %955 = fpext float %954 to double
  %956 = load float, ptr %58, align 4, !tbaa !11
  %957 = load float, ptr %45, align 4, !tbaa !11
  %958 = fsub float %956, %957
  %959 = load float, ptr %47, align 4, !tbaa !11
  %960 = fmul float %958, %959
  %961 = fpext float %960 to double
  %962 = fcmp ogt double %955, %961
  br i1 %962, label %963, label %975

963:                                              ; preds = %953
  %964 = load ptr, ptr %15, align 8, !tbaa !5
  %965 = load ptr, ptr %21, align 8, !tbaa !5
  %966 = getelementptr inbounds float, ptr %965, i64 1
  %967 = call i32 @f2c_sscal(ptr noundef %964, ptr noundef %47, ptr noundef %966, ptr noundef @c__1)
  %968 = load float, ptr %47, align 4, !tbaa !11
  %969 = load ptr, ptr %20, align 8, !tbaa !5
  %970 = load float, ptr %969, align 4, !tbaa !11
  %971 = fmul float %970, %968
  store float %971, ptr %969, align 4, !tbaa !11
  %972 = load float, ptr %47, align 4, !tbaa !11
  %973 = load float, ptr %53, align 4, !tbaa !11
  %974 = fmul float %973, %972
  store float %974, ptr %53, align 4, !tbaa !11
  br label %975

975:                                              ; preds = %963, %953
  br label %976

976:                                              ; preds = %975, %929
  %977 = load i64, ptr %40, align 8, !tbaa !9
  %978 = sub nsw i64 %977, 1
  store i64 %978, ptr %27, align 8, !tbaa !9
  %979 = load ptr, ptr %21, align 8, !tbaa !5
  %980 = load i64, ptr %40, align 8, !tbaa !9
  %981 = getelementptr inbounds float, ptr %979, i64 %980
  %982 = load float, ptr %981, align 4, !tbaa !11
  %983 = fpext float %982 to double
  %984 = load ptr, ptr %16, align 8, !tbaa !5
  %985 = load i64, ptr %40, align 8, !tbaa !9
  %986 = load i64, ptr %24, align 8, !tbaa !9
  %987 = mul nsw i64 %985, %986
  %988 = add nsw i64 %987, 1
  %989 = getelementptr inbounds float, ptr %984, i64 %988
  %990 = load ptr, ptr %21, align 8, !tbaa !5
  %991 = getelementptr inbounds float, ptr %990, i64 1
  %992 = call double @f2c_sdot(ptr noundef %27, ptr noundef %989, ptr noundef @c__1, ptr noundef %991, ptr noundef @c__1)
  %993 = fsub double %983, %992
  %994 = fptrunc double %993 to float
  %995 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 0
  store float %994, ptr %995, align 16, !tbaa !11
  %996 = load i64, ptr %40, align 8, !tbaa !9
  %997 = sub nsw i64 %996, 1
  store i64 %997, ptr %27, align 8, !tbaa !9
  %998 = load ptr, ptr %21, align 8, !tbaa !5
  %999 = load i64, ptr %41, align 8, !tbaa !9
  %1000 = getelementptr inbounds float, ptr %998, i64 %999
  %1001 = load float, ptr %1000, align 4, !tbaa !11
  %1002 = fpext float %1001 to double
  %1003 = load ptr, ptr %16, align 8, !tbaa !5
  %1004 = load i64, ptr %41, align 8, !tbaa !9
  %1005 = load i64, ptr %24, align 8, !tbaa !9
  %1006 = mul nsw i64 %1004, %1005
  %1007 = add nsw i64 %1006, 1
  %1008 = getelementptr inbounds float, ptr %1003, i64 %1007
  %1009 = load ptr, ptr %21, align 8, !tbaa !5
  %1010 = getelementptr inbounds float, ptr %1009, i64 1
  %1011 = call double @f2c_sdot(ptr noundef %27, ptr noundef %1008, ptr noundef @c__1, ptr noundef %1010, ptr noundef @c__1)
  %1012 = fsub double %1002, %1011
  %1013 = fptrunc double %1012 to float
  %1014 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 1
  store float %1013, ptr %1014, align 4, !tbaa !11
  %1015 = load ptr, ptr %16, align 8, !tbaa !5
  %1016 = load i64, ptr %40, align 8, !tbaa !9
  %1017 = load i64, ptr %40, align 8, !tbaa !9
  %1018 = load i64, ptr %24, align 8, !tbaa !9
  %1019 = mul nsw i64 %1017, %1018
  %1020 = add nsw i64 %1016, %1019
  %1021 = getelementptr inbounds float, ptr %1015, i64 %1020
  %1022 = load ptr, ptr %17, align 8, !tbaa !5
  %1023 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 0
  %1024 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %1025 = call i32 @slaln2_(ptr noundef @c_true, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %52, ptr noundef @c_b21, ptr noundef %1021, ptr noundef %1022, ptr noundef @c_b21, ptr noundef @c_b21, ptr noundef %1023, ptr noundef @c__2, ptr noundef @c_b25, ptr noundef @c_b25, ptr noundef %1024, ptr noundef @c__2, ptr noundef %57, ptr noundef %56, ptr noundef %51)
  %1026 = load i64, ptr %51, align 8, !tbaa !9
  %1027 = icmp ne i64 %1026, 0
  br i1 %1027, label %1028, label %1030

1028:                                             ; preds = %976
  %1029 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 2, ptr %1029, align 8, !tbaa !9
  br label %1030

1030:                                             ; preds = %1028, %976
  %1031 = load float, ptr %57, align 4, !tbaa !11
  %1032 = fcmp une float %1031, 1.000000e+00
  br i1 %1032, label %1033, label %1042

1033:                                             ; preds = %1030
  %1034 = load ptr, ptr %15, align 8, !tbaa !5
  %1035 = load ptr, ptr %21, align 8, !tbaa !5
  %1036 = getelementptr inbounds float, ptr %1035, i64 1
  %1037 = call i32 @f2c_sscal(ptr noundef %1034, ptr noundef %57, ptr noundef %1036, ptr noundef @c__1)
  %1038 = load float, ptr %57, align 4, !tbaa !11
  %1039 = load ptr, ptr %20, align 8, !tbaa !5
  %1040 = load float, ptr %1039, align 4, !tbaa !11
  %1041 = fmul float %1040, %1038
  store float %1041, ptr %1039, align 4, !tbaa !11
  br label %1042

1042:                                             ; preds = %1033, %1030
  %1043 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %1044 = load float, ptr %1043, align 16, !tbaa !11
  %1045 = load ptr, ptr %21, align 8, !tbaa !5
  %1046 = load i64, ptr %40, align 8, !tbaa !9
  %1047 = getelementptr inbounds float, ptr %1045, i64 %1046
  store float %1044, ptr %1047, align 4, !tbaa !11
  %1048 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 1
  %1049 = load float, ptr %1048, align 4, !tbaa !11
  %1050 = load ptr, ptr %21, align 8, !tbaa !5
  %1051 = load i64, ptr %41, align 8, !tbaa !9
  %1052 = getelementptr inbounds float, ptr %1050, i64 %1051
  store float %1049, ptr %1052, align 4, !tbaa !11
  %1053 = load ptr, ptr %21, align 8, !tbaa !5
  %1054 = load i64, ptr %40, align 8, !tbaa !9
  %1055 = getelementptr inbounds float, ptr %1053, i64 %1054
  %1056 = load float, ptr %1055, align 4, !tbaa !11
  store float %1056, ptr %28, align 4, !tbaa !11
  %1057 = load float, ptr %28, align 4, !tbaa !11
  %1058 = fcmp oge float %1057, 0.000000e+00
  br i1 %1058, label %1059, label %1061

1059:                                             ; preds = %1042
  %1060 = load float, ptr %28, align 4, !tbaa !11
  br label %1064

1061:                                             ; preds = %1042
  %1062 = load float, ptr %28, align 4, !tbaa !11
  %1063 = fneg float %1062
  br label %1064

1064:                                             ; preds = %1061, %1059
  %1065 = phi float [ %1060, %1059 ], [ %1063, %1061 ]
  %1066 = fpext float %1065 to double
  %1067 = fptrunc double %1066 to float
  store float %1067, ptr %30, align 4, !tbaa !11
  %1068 = load ptr, ptr %21, align 8, !tbaa !5
  %1069 = load i64, ptr %41, align 8, !tbaa !9
  %1070 = getelementptr inbounds float, ptr %1068, i64 %1069
  %1071 = load float, ptr %1070, align 4, !tbaa !11
  store float %1071, ptr %29, align 4, !tbaa !11
  %1072 = load float, ptr %29, align 4, !tbaa !11
  %1073 = fcmp oge float %1072, 0.000000e+00
  br i1 %1073, label %1074, label %1076

1074:                                             ; preds = %1064
  %1075 = load float, ptr %29, align 4, !tbaa !11
  br label %1079

1076:                                             ; preds = %1064
  %1077 = load float, ptr %29, align 4, !tbaa !11
  %1078 = fneg float %1077
  br label %1079

1079:                                             ; preds = %1076, %1074
  %1080 = phi float [ %1075, %1074 ], [ %1078, %1076 ]
  %1081 = fpext float %1080 to double
  %1082 = fptrunc double %1081 to float
  store float %1082, ptr %31, align 4, !tbaa !11
  %1083 = load float, ptr %30, align 4, !tbaa !11
  %1084 = load float, ptr %31, align 4, !tbaa !11
  %1085 = fcmp oge float %1083, %1084
  br i1 %1085, label %1086, label %1088

1086:                                             ; preds = %1079
  %1087 = load float, ptr %30, align 4, !tbaa !11
  br label %1090

1088:                                             ; preds = %1079
  %1089 = load float, ptr %31, align 4, !tbaa !11
  br label %1090

1090:                                             ; preds = %1088, %1086
  %1091 = phi float [ %1087, %1086 ], [ %1089, %1088 ]
  store float %1091, ptr %30, align 4, !tbaa !11
  %1092 = load float, ptr %30, align 4, !tbaa !11
  %1093 = load float, ptr %53, align 4, !tbaa !11
  %1094 = fcmp oge float %1092, %1093
  br i1 %1094, label %1095, label %1097

1095:                                             ; preds = %1090
  %1096 = load float, ptr %30, align 4, !tbaa !11
  br label %1099

1097:                                             ; preds = %1090
  %1098 = load float, ptr %53, align 4, !tbaa !11
  br label %1099

1099:                                             ; preds = %1097, %1095
  %1100 = phi float [ %1096, %1095 ], [ %1098, %1097 ]
  %1101 = fpext float %1100 to double
  %1102 = fptrunc double %1101 to float
  store float %1102, ptr %53, align 4, !tbaa !11
  br label %1103

1103:                                             ; preds = %1099, %887
  br label %1104

1104:                                             ; preds = %1103, %690
  br label %1105

1105:                                             ; preds = %1104
  %1106 = load i64, ptr %36, align 8, !tbaa !9
  %1107 = add nsw i64 %1106, 1
  store i64 %1107, ptr %36, align 8, !tbaa !9
  br label %682, !llvm.loop !17

1108:                                             ; preds = %682
  br label %1109

1109:                                             ; preds = %1108, %678
  br label %2665

1110:                                             ; preds = %274
  %1111 = load float, ptr %48, align 4, !tbaa !11
  %1112 = fpext float %1111 to double
  %1113 = load ptr, ptr %19, align 8, !tbaa !5
  %1114 = load float, ptr %1113, align 4, !tbaa !11
  %1115 = fcmp oge float %1114, 0.000000e+00
  br i1 %1115, label %1116, label %1119

1116:                                             ; preds = %1110
  %1117 = load ptr, ptr %19, align 8, !tbaa !5
  %1118 = load float, ptr %1117, align 4, !tbaa !11
  br label %1123

1119:                                             ; preds = %1110
  %1120 = load ptr, ptr %19, align 8, !tbaa !5
  %1121 = load float, ptr %1120, align 4, !tbaa !11
  %1122 = fneg float %1121
  br label %1123

1123:                                             ; preds = %1119, %1116
  %1124 = phi float [ %1118, %1116 ], [ %1122, %1119 ]
  %1125 = fpext float %1124 to double
  %1126 = fmul double %1112, %1125
  %1127 = fptrunc double %1126 to float
  store float %1127, ptr %28, align 4, !tbaa !11
  %1128 = load float, ptr %28, align 4, !tbaa !11
  %1129 = load float, ptr %52, align 4, !tbaa !11
  %1130 = fcmp oge float %1128, %1129
  br i1 %1130, label %1131, label %1133

1131:                                             ; preds = %1123
  %1132 = load float, ptr %28, align 4, !tbaa !11
  br label %1135

1133:                                             ; preds = %1123
  %1134 = load float, ptr %52, align 4, !tbaa !11
  br label %1135

1135:                                             ; preds = %1133, %1131
  %1136 = phi float [ %1132, %1131 ], [ %1134, %1133 ]
  %1137 = fpext float %1136 to double
  %1138 = fptrunc double %1137 to float
  store float %1138, ptr %55, align 4, !tbaa !11
  %1139 = load i64, ptr %59, align 8, !tbaa !9
  %1140 = icmp ne i64 %1139, 0
  br i1 %1140, label %1141, label %1901

1141:                                             ; preds = %1135
  %1142 = load ptr, ptr %15, align 8, !tbaa !5
  %1143 = load i64, ptr %1142, align 8, !tbaa !9
  store i64 %1143, ptr %54, align 8, !tbaa !9
  %1144 = load ptr, ptr %15, align 8, !tbaa !5
  %1145 = load i64, ptr %1144, align 8, !tbaa !9
  store i64 %1145, ptr %36, align 8, !tbaa !9
  br label %1146

1146:                                             ; preds = %1897, %1141
  %1147 = load i64, ptr %36, align 8, !tbaa !9
  %1148 = icmp sge i64 %1147, 1
  br i1 %1148, label %1149, label %1900

1149:                                             ; preds = %1146
  %1150 = load i64, ptr %36, align 8, !tbaa !9
  %1151 = load i64, ptr %54, align 8, !tbaa !9
  %1152 = icmp sgt i64 %1150, %1151
  br i1 %1152, label %1153, label %1154

1153:                                             ; preds = %1149
  br label %1896

1154:                                             ; preds = %1149
  %1155 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1155, ptr %40, align 8, !tbaa !9
  %1156 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1156, ptr %41, align 8, !tbaa !9
  %1157 = load i64, ptr %36, align 8, !tbaa !9
  %1158 = sub nsw i64 %1157, 1
  store i64 %1158, ptr %54, align 8, !tbaa !9
  %1159 = load i64, ptr %36, align 8, !tbaa !9
  %1160 = icmp sgt i64 %1159, 1
  br i1 %1160, label %1161, label %1178

1161:                                             ; preds = %1154
  %1162 = load ptr, ptr %16, align 8, !tbaa !5
  %1163 = load i64, ptr %36, align 8, !tbaa !9
  %1164 = load i64, ptr %36, align 8, !tbaa !9
  %1165 = sub nsw i64 %1164, 1
  %1166 = load i64, ptr %24, align 8, !tbaa !9
  %1167 = mul nsw i64 %1165, %1166
  %1168 = add nsw i64 %1163, %1167
  %1169 = getelementptr inbounds float, ptr %1162, i64 %1168
  %1170 = load float, ptr %1169, align 4, !tbaa !11
  %1171 = fcmp une float %1170, 0.000000e+00
  br i1 %1171, label %1172, label %1177

1172:                                             ; preds = %1161
  %1173 = load i64, ptr %36, align 8, !tbaa !9
  %1174 = sub nsw i64 %1173, 1
  store i64 %1174, ptr %40, align 8, !tbaa !9
  %1175 = load i64, ptr %36, align 8, !tbaa !9
  %1176 = sub nsw i64 %1175, 2
  store i64 %1176, ptr %54, align 8, !tbaa !9
  br label %1177

1177:                                             ; preds = %1172, %1161
  br label %1178

1178:                                             ; preds = %1177, %1154
  %1179 = load i64, ptr %40, align 8, !tbaa !9
  %1180 = load i64, ptr %41, align 8, !tbaa !9
  %1181 = icmp eq i64 %1179, %1180
  br i1 %1181, label %1182, label %1506

1182:                                             ; preds = %1178
  %1183 = load ptr, ptr %19, align 8, !tbaa !5
  %1184 = load float, ptr %1183, align 4, !tbaa !11
  store float %1184, ptr %39, align 4, !tbaa !11
  %1185 = load i64, ptr %40, align 8, !tbaa !9
  %1186 = icmp eq i64 %1185, 1
  br i1 %1186, label %1187, label %1191

1187:                                             ; preds = %1182
  %1188 = load ptr, ptr %18, align 8, !tbaa !5
  %1189 = getelementptr inbounds float, ptr %1188, i64 1
  %1190 = load float, ptr %1189, align 4, !tbaa !11
  store float %1190, ptr %39, align 4, !tbaa !11
  br label %1191

1191:                                             ; preds = %1187, %1182
  %1192 = load ptr, ptr %21, align 8, !tbaa !5
  %1193 = load i64, ptr %40, align 8, !tbaa !9
  %1194 = getelementptr inbounds float, ptr %1192, i64 %1193
  %1195 = load float, ptr %1194, align 4, !tbaa !11
  store float %1195, ptr %28, align 4, !tbaa !11
  %1196 = load float, ptr %28, align 4, !tbaa !11
  %1197 = fcmp oge float %1196, 0.000000e+00
  br i1 %1197, label %1198, label %1200

1198:                                             ; preds = %1191
  %1199 = load float, ptr %28, align 4, !tbaa !11
  br label %1203

1200:                                             ; preds = %1191
  %1201 = load float, ptr %28, align 4, !tbaa !11
  %1202 = fneg float %1201
  br label %1203

1203:                                             ; preds = %1200, %1198
  %1204 = phi float [ %1199, %1198 ], [ %1202, %1200 ]
  %1205 = fpext float %1204 to double
  %1206 = load ptr, ptr %21, align 8, !tbaa !5
  %1207 = load ptr, ptr %15, align 8, !tbaa !5
  %1208 = load i64, ptr %1207, align 8, !tbaa !9
  %1209 = load i64, ptr %40, align 8, !tbaa !9
  %1210 = add nsw i64 %1208, %1209
  %1211 = getelementptr inbounds float, ptr %1206, i64 %1210
  %1212 = load float, ptr %1211, align 4, !tbaa !11
  store float %1212, ptr %29, align 4, !tbaa !11
  %1213 = load float, ptr %29, align 4, !tbaa !11
  %1214 = fcmp oge float %1213, 0.000000e+00
  br i1 %1214, label %1215, label %1217

1215:                                             ; preds = %1203
  %1216 = load float, ptr %29, align 4, !tbaa !11
  br label %1220

1217:                                             ; preds = %1203
  %1218 = load float, ptr %29, align 4, !tbaa !11
  %1219 = fneg float %1218
  br label %1220

1220:                                             ; preds = %1217, %1215
  %1221 = phi float [ %1216, %1215 ], [ %1219, %1217 ]
  %1222 = fpext float %1221 to double
  %1223 = fadd double %1205, %1222
  %1224 = fptrunc double %1223 to float
  store float %1224, ptr %45, align 4, !tbaa !11
  %1225 = load ptr, ptr %16, align 8, !tbaa !5
  %1226 = load i64, ptr %40, align 8, !tbaa !9
  %1227 = load i64, ptr %40, align 8, !tbaa !9
  %1228 = load i64, ptr %24, align 8, !tbaa !9
  %1229 = mul nsw i64 %1227, %1228
  %1230 = add nsw i64 %1226, %1229
  %1231 = getelementptr inbounds float, ptr %1225, i64 %1230
  %1232 = load float, ptr %1231, align 4, !tbaa !11
  store float %1232, ptr %28, align 4, !tbaa !11
  %1233 = load float, ptr %28, align 4, !tbaa !11
  %1234 = fcmp oge float %1233, 0.000000e+00
  br i1 %1234, label %1235, label %1237

1235:                                             ; preds = %1220
  %1236 = load float, ptr %28, align 4, !tbaa !11
  br label %1240

1237:                                             ; preds = %1220
  %1238 = load float, ptr %28, align 4, !tbaa !11
  %1239 = fneg float %1238
  br label %1240

1240:                                             ; preds = %1237, %1235
  %1241 = phi float [ %1236, %1235 ], [ %1239, %1237 ]
  %1242 = fpext float %1241 to double
  %1243 = load float, ptr %39, align 4, !tbaa !11
  %1244 = fcmp oge float %1243, 0.000000e+00
  br i1 %1244, label %1245, label %1247

1245:                                             ; preds = %1240
  %1246 = load float, ptr %39, align 4, !tbaa !11
  br label %1250

1247:                                             ; preds = %1240
  %1248 = load float, ptr %39, align 4, !tbaa !11
  %1249 = fneg float %1248
  br label %1250

1250:                                             ; preds = %1247, %1245
  %1251 = phi float [ %1246, %1245 ], [ %1249, %1247 ]
  %1252 = fpext float %1251 to double
  %1253 = fadd double %1242, %1252
  %1254 = fptrunc double %1253 to float
  store float %1254, ptr %49, align 4, !tbaa !11
  %1255 = load ptr, ptr %16, align 8, !tbaa !5
  %1256 = load i64, ptr %40, align 8, !tbaa !9
  %1257 = load i64, ptr %40, align 8, !tbaa !9
  %1258 = load i64, ptr %24, align 8, !tbaa !9
  %1259 = mul nsw i64 %1257, %1258
  %1260 = add nsw i64 %1256, %1259
  %1261 = getelementptr inbounds float, ptr %1255, i64 %1260
  %1262 = load float, ptr %1261, align 4, !tbaa !11
  store float %1262, ptr %50, align 4, !tbaa !11
  %1263 = load float, ptr %49, align 4, !tbaa !11
  %1264 = load float, ptr %55, align 4, !tbaa !11
  %1265 = fcmp olt float %1263, %1264
  br i1 %1265, label %1266, label %1270

1266:                                             ; preds = %1250
  %1267 = load float, ptr %55, align 4, !tbaa !11
  store float %1267, ptr %50, align 4, !tbaa !11
  %1268 = load float, ptr %55, align 4, !tbaa !11
  store float %1268, ptr %49, align 4, !tbaa !11
  %1269 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 1, ptr %1269, align 8, !tbaa !9
  br label %1270

1270:                                             ; preds = %1266, %1250
  %1271 = load float, ptr %45, align 4, !tbaa !11
  %1272 = fcmp oeq float %1271, 0.000000e+00
  br i1 %1272, label %1273, label %1274

1273:                                             ; preds = %1270
  br label %1896

1274:                                             ; preds = %1270
  %1275 = load float, ptr %49, align 4, !tbaa !11
  %1276 = fcmp olt float %1275, 1.000000e+00
  br i1 %1276, label %1277, label %1297

1277:                                             ; preds = %1274
  %1278 = load float, ptr %45, align 4, !tbaa !11
  %1279 = load float, ptr %58, align 4, !tbaa !11
  %1280 = load float, ptr %49, align 4, !tbaa !11
  %1281 = fmul float %1279, %1280
  %1282 = fcmp ogt float %1278, %1281
  br i1 %1282, label %1283, label %1296

1283:                                             ; preds = %1277
  %1284 = load float, ptr %45, align 4, !tbaa !11
  %1285 = fdiv float 1.000000e+00, %1284
  store float %1285, ptr %47, align 4, !tbaa !11
  %1286 = load ptr, ptr %21, align 8, !tbaa !5
  %1287 = getelementptr inbounds float, ptr %1286, i64 1
  %1288 = call i32 @f2c_sscal(ptr noundef %43, ptr noundef %47, ptr noundef %1287, ptr noundef @c__1)
  %1289 = load float, ptr %47, align 4, !tbaa !11
  %1290 = load ptr, ptr %20, align 8, !tbaa !5
  %1291 = load float, ptr %1290, align 4, !tbaa !11
  %1292 = fmul float %1291, %1289
  store float %1292, ptr %1290, align 4, !tbaa !11
  %1293 = load float, ptr %47, align 4, !tbaa !11
  %1294 = load float, ptr %53, align 4, !tbaa !11
  %1295 = fmul float %1294, %1293
  store float %1295, ptr %53, align 4, !tbaa !11
  br label %1296

1296:                                             ; preds = %1283, %1277
  br label %1297

1297:                                             ; preds = %1296, %1274
  %1298 = load ptr, ptr %21, align 8, !tbaa !5
  %1299 = load i64, ptr %40, align 8, !tbaa !9
  %1300 = getelementptr inbounds float, ptr %1298, i64 %1299
  %1301 = load ptr, ptr %21, align 8, !tbaa !5
  %1302 = load ptr, ptr %15, align 8, !tbaa !5
  %1303 = load i64, ptr %1302, align 8, !tbaa !9
  %1304 = load i64, ptr %40, align 8, !tbaa !9
  %1305 = add nsw i64 %1303, %1304
  %1306 = getelementptr inbounds float, ptr %1301, i64 %1305
  %1307 = call i32 @sladiv_(ptr noundef %1300, ptr noundef %1306, ptr noundef %50, ptr noundef %39, ptr noundef %46, ptr noundef %44)
  %1308 = load float, ptr %46, align 4, !tbaa !11
  %1309 = load ptr, ptr %21, align 8, !tbaa !5
  %1310 = load i64, ptr %40, align 8, !tbaa !9
  %1311 = getelementptr inbounds float, ptr %1309, i64 %1310
  store float %1308, ptr %1311, align 4, !tbaa !11
  %1312 = load float, ptr %44, align 4, !tbaa !11
  %1313 = load ptr, ptr %21, align 8, !tbaa !5
  %1314 = load ptr, ptr %15, align 8, !tbaa !5
  %1315 = load i64, ptr %1314, align 8, !tbaa !9
  %1316 = load i64, ptr %40, align 8, !tbaa !9
  %1317 = add nsw i64 %1315, %1316
  %1318 = getelementptr inbounds float, ptr %1313, i64 %1317
  store float %1312, ptr %1318, align 4, !tbaa !11
  %1319 = load ptr, ptr %21, align 8, !tbaa !5
  %1320 = load i64, ptr %40, align 8, !tbaa !9
  %1321 = getelementptr inbounds float, ptr %1319, i64 %1320
  %1322 = load float, ptr %1321, align 4, !tbaa !11
  store float %1322, ptr %28, align 4, !tbaa !11
  %1323 = load float, ptr %28, align 4, !tbaa !11
  %1324 = fcmp oge float %1323, 0.000000e+00
  br i1 %1324, label %1325, label %1327

1325:                                             ; preds = %1297
  %1326 = load float, ptr %28, align 4, !tbaa !11
  br label %1330

1327:                                             ; preds = %1297
  %1328 = load float, ptr %28, align 4, !tbaa !11
  %1329 = fneg float %1328
  br label %1330

1330:                                             ; preds = %1327, %1325
  %1331 = phi float [ %1326, %1325 ], [ %1329, %1327 ]
  %1332 = fpext float %1331 to double
  %1333 = load ptr, ptr %21, align 8, !tbaa !5
  %1334 = load ptr, ptr %15, align 8, !tbaa !5
  %1335 = load i64, ptr %1334, align 8, !tbaa !9
  %1336 = load i64, ptr %40, align 8, !tbaa !9
  %1337 = add nsw i64 %1335, %1336
  %1338 = getelementptr inbounds float, ptr %1333, i64 %1337
  %1339 = load float, ptr %1338, align 4, !tbaa !11
  store float %1339, ptr %29, align 4, !tbaa !11
  %1340 = load float, ptr %29, align 4, !tbaa !11
  %1341 = fcmp oge float %1340, 0.000000e+00
  br i1 %1341, label %1342, label %1344

1342:                                             ; preds = %1330
  %1343 = load float, ptr %29, align 4, !tbaa !11
  br label %1347

1344:                                             ; preds = %1330
  %1345 = load float, ptr %29, align 4, !tbaa !11
  %1346 = fneg float %1345
  br label %1347

1347:                                             ; preds = %1344, %1342
  %1348 = phi float [ %1343, %1342 ], [ %1346, %1344 ]
  %1349 = fpext float %1348 to double
  %1350 = fadd double %1332, %1349
  %1351 = fptrunc double %1350 to float
  store float %1351, ptr %45, align 4, !tbaa !11
  %1352 = load float, ptr %45, align 4, !tbaa !11
  %1353 = fcmp ogt float %1352, 1.000000e+00
  br i1 %1353, label %1354, label %1376

1354:                                             ; preds = %1347
  %1355 = load float, ptr %45, align 4, !tbaa !11
  %1356 = fdiv float 1.000000e+00, %1355
  store float %1356, ptr %47, align 4, !tbaa !11
  %1357 = load ptr, ptr %22, align 8, !tbaa !5
  %1358 = load i64, ptr %40, align 8, !tbaa !9
  %1359 = getelementptr inbounds float, ptr %1357, i64 %1358
  %1360 = load float, ptr %1359, align 4, !tbaa !11
  %1361 = load float, ptr %58, align 4, !tbaa !11
  %1362 = load float, ptr %53, align 4, !tbaa !11
  %1363 = fsub float %1361, %1362
  %1364 = load float, ptr %47, align 4, !tbaa !11
  %1365 = fmul float %1363, %1364
  %1366 = fcmp ogt float %1360, %1365
  br i1 %1366, label %1367, label %1375

1367:                                             ; preds = %1354
  %1368 = load ptr, ptr %21, align 8, !tbaa !5
  %1369 = getelementptr inbounds float, ptr %1368, i64 1
  %1370 = call i32 @f2c_sscal(ptr noundef %43, ptr noundef %47, ptr noundef %1369, ptr noundef @c__1)
  %1371 = load float, ptr %47, align 4, !tbaa !11
  %1372 = load ptr, ptr %20, align 8, !tbaa !5
  %1373 = load float, ptr %1372, align 4, !tbaa !11
  %1374 = fmul float %1373, %1371
  store float %1374, ptr %1372, align 4, !tbaa !11
  br label %1375

1375:                                             ; preds = %1367, %1354
  br label %1376

1376:                                             ; preds = %1375, %1347
  %1377 = load i64, ptr %40, align 8, !tbaa !9
  %1378 = icmp sgt i64 %1377, 1
  br i1 %1378, label %1379, label %1505

1379:                                             ; preds = %1376
  %1380 = load i64, ptr %40, align 8, !tbaa !9
  %1381 = sub nsw i64 %1380, 1
  store i64 %1381, ptr %26, align 8, !tbaa !9
  %1382 = load ptr, ptr %21, align 8, !tbaa !5
  %1383 = load i64, ptr %40, align 8, !tbaa !9
  %1384 = getelementptr inbounds float, ptr %1382, i64 %1383
  %1385 = load float, ptr %1384, align 4, !tbaa !11
  %1386 = fneg float %1385
  store float %1386, ptr %28, align 4, !tbaa !11
  %1387 = load ptr, ptr %16, align 8, !tbaa !5
  %1388 = load i64, ptr %40, align 8, !tbaa !9
  %1389 = load i64, ptr %24, align 8, !tbaa !9
  %1390 = mul nsw i64 %1388, %1389
  %1391 = add nsw i64 %1390, 1
  %1392 = getelementptr inbounds float, ptr %1387, i64 %1391
  %1393 = load ptr, ptr %21, align 8, !tbaa !5
  %1394 = getelementptr inbounds float, ptr %1393, i64 1
  %1395 = call i32 @f2c_saxpy(ptr noundef %26, ptr noundef %28, ptr noundef %1392, ptr noundef @c__1, ptr noundef %1394, ptr noundef @c__1)
  %1396 = load i64, ptr %40, align 8, !tbaa !9
  %1397 = sub nsw i64 %1396, 1
  store i64 %1397, ptr %26, align 8, !tbaa !9
  %1398 = load ptr, ptr %21, align 8, !tbaa !5
  %1399 = load ptr, ptr %15, align 8, !tbaa !5
  %1400 = load i64, ptr %1399, align 8, !tbaa !9
  %1401 = load i64, ptr %40, align 8, !tbaa !9
  %1402 = add nsw i64 %1400, %1401
  %1403 = getelementptr inbounds float, ptr %1398, i64 %1402
  %1404 = load float, ptr %1403, align 4, !tbaa !11
  %1405 = fneg float %1404
  store float %1405, ptr %28, align 4, !tbaa !11
  %1406 = load ptr, ptr %16, align 8, !tbaa !5
  %1407 = load i64, ptr %40, align 8, !tbaa !9
  %1408 = load i64, ptr %24, align 8, !tbaa !9
  %1409 = mul nsw i64 %1407, %1408
  %1410 = add nsw i64 %1409, 1
  %1411 = getelementptr inbounds float, ptr %1406, i64 %1410
  %1412 = load ptr, ptr %21, align 8, !tbaa !5
  %1413 = load ptr, ptr %15, align 8, !tbaa !5
  %1414 = load i64, ptr %1413, align 8, !tbaa !9
  %1415 = add nsw i64 %1414, 1
  %1416 = getelementptr inbounds float, ptr %1412, i64 %1415
  %1417 = call i32 @f2c_saxpy(ptr noundef %26, ptr noundef %28, ptr noundef %1411, ptr noundef @c__1, ptr noundef %1416, ptr noundef @c__1)
  %1418 = load ptr, ptr %18, align 8, !tbaa !5
  %1419 = load i64, ptr %40, align 8, !tbaa !9
  %1420 = getelementptr inbounds float, ptr %1418, i64 %1419
  %1421 = load float, ptr %1420, align 4, !tbaa !11
  %1422 = load ptr, ptr %21, align 8, !tbaa !5
  %1423 = load ptr, ptr %15, align 8, !tbaa !5
  %1424 = load i64, ptr %1423, align 8, !tbaa !9
  %1425 = load i64, ptr %40, align 8, !tbaa !9
  %1426 = add nsw i64 %1424, %1425
  %1427 = getelementptr inbounds float, ptr %1422, i64 %1426
  %1428 = load float, ptr %1427, align 4, !tbaa !11
  %1429 = load ptr, ptr %21, align 8, !tbaa !5
  %1430 = getelementptr inbounds float, ptr %1429, i64 1
  %1431 = load float, ptr %1430, align 4, !tbaa !11
  %1432 = call float @llvm.fmuladd.f32(float %1421, float %1428, float %1431)
  store float %1432, ptr %1430, align 4, !tbaa !11
  %1433 = load ptr, ptr %18, align 8, !tbaa !5
  %1434 = load i64, ptr %40, align 8, !tbaa !9
  %1435 = getelementptr inbounds float, ptr %1433, i64 %1434
  %1436 = load float, ptr %1435, align 4, !tbaa !11
  %1437 = load ptr, ptr %21, align 8, !tbaa !5
  %1438 = load i64, ptr %40, align 8, !tbaa !9
  %1439 = getelementptr inbounds float, ptr %1437, i64 %1438
  %1440 = load float, ptr %1439, align 4, !tbaa !11
  %1441 = load ptr, ptr %21, align 8, !tbaa !5
  %1442 = load ptr, ptr %15, align 8, !tbaa !5
  %1443 = load i64, ptr %1442, align 8, !tbaa !9
  %1444 = add nsw i64 %1443, 1
  %1445 = getelementptr inbounds float, ptr %1441, i64 %1444
  %1446 = load float, ptr %1445, align 4, !tbaa !11
  %1447 = fneg float %1436
  %1448 = call float @llvm.fmuladd.f32(float %1447, float %1440, float %1446)
  store float %1448, ptr %1445, align 4, !tbaa !11
  store float 0.000000e+00, ptr %53, align 4, !tbaa !11
  %1449 = load i64, ptr %40, align 8, !tbaa !9
  %1450 = sub nsw i64 %1449, 1
  store i64 %1450, ptr %26, align 8, !tbaa !9
  store i64 1, ptr %37, align 8, !tbaa !9
  br label %1451

1451:                                             ; preds = %1501, %1379
  %1452 = load i64, ptr %37, align 8, !tbaa !9
  %1453 = load i64, ptr %26, align 8, !tbaa !9
  %1454 = icmp sle i64 %1452, %1453
  br i1 %1454, label %1455, label %1504

1455:                                             ; preds = %1451
  %1456 = load float, ptr %53, align 4, !tbaa !11
  store float %1456, ptr %30, align 4, !tbaa !11
  %1457 = load ptr, ptr %21, align 8, !tbaa !5
  %1458 = load i64, ptr %37, align 8, !tbaa !9
  %1459 = getelementptr inbounds float, ptr %1457, i64 %1458
  %1460 = load float, ptr %1459, align 4, !tbaa !11
  store float %1460, ptr %28, align 4, !tbaa !11
  %1461 = load float, ptr %28, align 4, !tbaa !11
  %1462 = fcmp oge float %1461, 0.000000e+00
  br i1 %1462, label %1463, label %1465

1463:                                             ; preds = %1455
  %1464 = load float, ptr %28, align 4, !tbaa !11
  br label %1468

1465:                                             ; preds = %1455
  %1466 = load float, ptr %28, align 4, !tbaa !11
  %1467 = fneg float %1466
  br label %1468

1468:                                             ; preds = %1465, %1463
  %1469 = phi float [ %1464, %1463 ], [ %1467, %1465 ]
  %1470 = fpext float %1469 to double
  %1471 = load ptr, ptr %21, align 8, !tbaa !5
  %1472 = load i64, ptr %37, align 8, !tbaa !9
  %1473 = load ptr, ptr %15, align 8, !tbaa !5
  %1474 = load i64, ptr %1473, align 8, !tbaa !9
  %1475 = add nsw i64 %1472, %1474
  %1476 = getelementptr inbounds float, ptr %1471, i64 %1475
  %1477 = load float, ptr %1476, align 4, !tbaa !11
  store float %1477, ptr %29, align 4, !tbaa !11
  %1478 = load float, ptr %29, align 4, !tbaa !11
  %1479 = fcmp oge float %1478, 0.000000e+00
  br i1 %1479, label %1480, label %1482

1480:                                             ; preds = %1468
  %1481 = load float, ptr %29, align 4, !tbaa !11
  br label %1485

1482:                                             ; preds = %1468
  %1483 = load float, ptr %29, align 4, !tbaa !11
  %1484 = fneg float %1483
  br label %1485

1485:                                             ; preds = %1482, %1480
  %1486 = phi float [ %1481, %1480 ], [ %1484, %1482 ]
  %1487 = fpext float %1486 to double
  %1488 = fadd double %1470, %1487
  %1489 = fptrunc double %1488 to float
  store float %1489, ptr %31, align 4, !tbaa !11
  %1490 = load float, ptr %30, align 4, !tbaa !11
  %1491 = load float, ptr %31, align 4, !tbaa !11
  %1492 = fcmp oge float %1490, %1491
  br i1 %1492, label %1493, label %1495

1493:                                             ; preds = %1485
  %1494 = load float, ptr %30, align 4, !tbaa !11
  br label %1497

1495:                                             ; preds = %1485
  %1496 = load float, ptr %31, align 4, !tbaa !11
  br label %1497

1497:                                             ; preds = %1495, %1493
  %1498 = phi float [ %1494, %1493 ], [ %1496, %1495 ]
  %1499 = fpext float %1498 to double
  %1500 = fptrunc double %1499 to float
  store float %1500, ptr %53, align 4, !tbaa !11
  br label %1501

1501:                                             ; preds = %1497
  %1502 = load i64, ptr %37, align 8, !tbaa !9
  %1503 = add nsw i64 %1502, 1
  store i64 %1503, ptr %37, align 8, !tbaa !9
  br label %1451, !llvm.loop !18

1504:                                             ; preds = %1451
  br label %1505

1505:                                             ; preds = %1504, %1376
  br label %1895

1506:                                             ; preds = %1178
  %1507 = load ptr, ptr %21, align 8, !tbaa !5
  %1508 = load i64, ptr %40, align 8, !tbaa !9
  %1509 = getelementptr inbounds float, ptr %1507, i64 %1508
  %1510 = load float, ptr %1509, align 4, !tbaa !11
  %1511 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 0
  store float %1510, ptr %1511, align 16, !tbaa !11
  %1512 = load ptr, ptr %21, align 8, !tbaa !5
  %1513 = load i64, ptr %41, align 8, !tbaa !9
  %1514 = getelementptr inbounds float, ptr %1512, i64 %1513
  %1515 = load float, ptr %1514, align 4, !tbaa !11
  %1516 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 1
  store float %1515, ptr %1516, align 4, !tbaa !11
  %1517 = load ptr, ptr %21, align 8, !tbaa !5
  %1518 = load ptr, ptr %15, align 8, !tbaa !5
  %1519 = load i64, ptr %1518, align 8, !tbaa !9
  %1520 = load i64, ptr %40, align 8, !tbaa !9
  %1521 = add nsw i64 %1519, %1520
  %1522 = getelementptr inbounds float, ptr %1517, i64 %1521
  %1523 = load float, ptr %1522, align 4, !tbaa !11
  %1524 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 2
  store float %1523, ptr %1524, align 8, !tbaa !11
  %1525 = load ptr, ptr %21, align 8, !tbaa !5
  %1526 = load ptr, ptr %15, align 8, !tbaa !5
  %1527 = load i64, ptr %1526, align 8, !tbaa !9
  %1528 = load i64, ptr %41, align 8, !tbaa !9
  %1529 = add nsw i64 %1527, %1528
  %1530 = getelementptr inbounds float, ptr %1525, i64 %1529
  %1531 = load float, ptr %1530, align 4, !tbaa !11
  %1532 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 3
  store float %1531, ptr %1532, align 4, !tbaa !11
  %1533 = load ptr, ptr %19, align 8, !tbaa !5
  %1534 = load float, ptr %1533, align 4, !tbaa !11
  %1535 = fneg float %1534
  store float %1535, ptr %28, align 4, !tbaa !11
  %1536 = load ptr, ptr %16, align 8, !tbaa !5
  %1537 = load i64, ptr %40, align 8, !tbaa !9
  %1538 = load i64, ptr %40, align 8, !tbaa !9
  %1539 = load i64, ptr %24, align 8, !tbaa !9
  %1540 = mul nsw i64 %1538, %1539
  %1541 = add nsw i64 %1537, %1540
  %1542 = getelementptr inbounds float, ptr %1536, i64 %1541
  %1543 = load ptr, ptr %17, align 8, !tbaa !5
  %1544 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 0
  %1545 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %1546 = call i32 @slaln2_(ptr noundef @c_false, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %55, ptr noundef @c_b21, ptr noundef %1542, ptr noundef %1543, ptr noundef @c_b21, ptr noundef @c_b21, ptr noundef %1544, ptr noundef @c__2, ptr noundef @c_b25, ptr noundef %28, ptr noundef %1545, ptr noundef @c__2, ptr noundef %57, ptr noundef %56, ptr noundef %51)
  %1547 = load i64, ptr %51, align 8, !tbaa !9
  %1548 = icmp ne i64 %1547, 0
  br i1 %1548, label %1549, label %1551

1549:                                             ; preds = %1506
  %1550 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 2, ptr %1550, align 8, !tbaa !9
  br label %1551

1551:                                             ; preds = %1549, %1506
  %1552 = load float, ptr %57, align 4, !tbaa !11
  %1553 = fcmp une float %1552, 1.000000e+00
  br i1 %1553, label %1554, label %1566

1554:                                             ; preds = %1551
  %1555 = load ptr, ptr %15, align 8, !tbaa !5
  %1556 = load i64, ptr %1555, align 8, !tbaa !9
  %1557 = shl i64 %1556, 1
  store i64 %1557, ptr %26, align 8, !tbaa !9
  %1558 = load ptr, ptr %21, align 8, !tbaa !5
  %1559 = getelementptr inbounds float, ptr %1558, i64 1
  %1560 = call i32 @f2c_sscal(ptr noundef %26, ptr noundef %57, ptr noundef %1559, ptr noundef @c__1)
  %1561 = load float, ptr %57, align 4, !tbaa !11
  %1562 = load ptr, ptr %20, align 8, !tbaa !5
  %1563 = load float, ptr %1562, align 4, !tbaa !11
  %1564 = fmul float %1561, %1563
  %1565 = load ptr, ptr %20, align 8, !tbaa !5
  store float %1564, ptr %1565, align 4, !tbaa !11
  br label %1566

1566:                                             ; preds = %1554, %1551
  %1567 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %1568 = load float, ptr %1567, align 16, !tbaa !11
  %1569 = load ptr, ptr %21, align 8, !tbaa !5
  %1570 = load i64, ptr %40, align 8, !tbaa !9
  %1571 = getelementptr inbounds float, ptr %1569, i64 %1570
  store float %1568, ptr %1571, align 4, !tbaa !11
  %1572 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 1
  %1573 = load float, ptr %1572, align 4, !tbaa !11
  %1574 = load ptr, ptr %21, align 8, !tbaa !5
  %1575 = load i64, ptr %41, align 8, !tbaa !9
  %1576 = getelementptr inbounds float, ptr %1574, i64 %1575
  store float %1573, ptr %1576, align 4, !tbaa !11
  %1577 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 2
  %1578 = load float, ptr %1577, align 8, !tbaa !11
  %1579 = load ptr, ptr %21, align 8, !tbaa !5
  %1580 = load ptr, ptr %15, align 8, !tbaa !5
  %1581 = load i64, ptr %1580, align 8, !tbaa !9
  %1582 = load i64, ptr %40, align 8, !tbaa !9
  %1583 = add nsw i64 %1581, %1582
  %1584 = getelementptr inbounds float, ptr %1579, i64 %1583
  store float %1578, ptr %1584, align 4, !tbaa !11
  %1585 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 3
  %1586 = load float, ptr %1585, align 4, !tbaa !11
  %1587 = load ptr, ptr %21, align 8, !tbaa !5
  %1588 = load ptr, ptr %15, align 8, !tbaa !5
  %1589 = load i64, ptr %1588, align 8, !tbaa !9
  %1590 = load i64, ptr %41, align 8, !tbaa !9
  %1591 = add nsw i64 %1589, %1590
  %1592 = getelementptr inbounds float, ptr %1587, i64 %1591
  store float %1586, ptr %1592, align 4, !tbaa !11
  %1593 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %1594 = load float, ptr %1593, align 16, !tbaa !11
  %1595 = fcmp oge float %1594, 0.000000e+00
  br i1 %1595, label %1596, label %1599

1596:                                             ; preds = %1566
  %1597 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %1598 = load float, ptr %1597, align 16, !tbaa !11
  br label %1603

1599:                                             ; preds = %1566
  %1600 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %1601 = load float, ptr %1600, align 16, !tbaa !11
  %1602 = fneg float %1601
  br label %1603

1603:                                             ; preds = %1599, %1596
  %1604 = phi float [ %1598, %1596 ], [ %1602, %1599 ]
  %1605 = fpext float %1604 to double
  %1606 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 2
  %1607 = load float, ptr %1606, align 8, !tbaa !11
  %1608 = fcmp oge float %1607, 0.000000e+00
  br i1 %1608, label %1609, label %1612

1609:                                             ; preds = %1603
  %1610 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 2
  %1611 = load float, ptr %1610, align 8, !tbaa !11
  br label %1616

1612:                                             ; preds = %1603
  %1613 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 2
  %1614 = load float, ptr %1613, align 8, !tbaa !11
  %1615 = fneg float %1614
  br label %1616

1616:                                             ; preds = %1612, %1609
  %1617 = phi float [ %1611, %1609 ], [ %1615, %1612 ]
  %1618 = fpext float %1617 to double
  %1619 = fadd double %1605, %1618
  %1620 = fptrunc double %1619 to float
  store float %1620, ptr %28, align 4, !tbaa !11
  %1621 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 1
  %1622 = load float, ptr %1621, align 4, !tbaa !11
  %1623 = fcmp oge float %1622, 0.000000e+00
  br i1 %1623, label %1624, label %1627

1624:                                             ; preds = %1616
  %1625 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 1
  %1626 = load float, ptr %1625, align 4, !tbaa !11
  br label %1631

1627:                                             ; preds = %1616
  %1628 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 1
  %1629 = load float, ptr %1628, align 4, !tbaa !11
  %1630 = fneg float %1629
  br label %1631

1631:                                             ; preds = %1627, %1624
  %1632 = phi float [ %1626, %1624 ], [ %1630, %1627 ]
  %1633 = fpext float %1632 to double
  %1634 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 3
  %1635 = load float, ptr %1634, align 4, !tbaa !11
  %1636 = fcmp oge float %1635, 0.000000e+00
  br i1 %1636, label %1637, label %1640

1637:                                             ; preds = %1631
  %1638 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 3
  %1639 = load float, ptr %1638, align 4, !tbaa !11
  br label %1644

1640:                                             ; preds = %1631
  %1641 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 3
  %1642 = load float, ptr %1641, align 4, !tbaa !11
  %1643 = fneg float %1642
  br label %1644

1644:                                             ; preds = %1640, %1637
  %1645 = phi float [ %1639, %1637 ], [ %1643, %1640 ]
  %1646 = fpext float %1645 to double
  %1647 = fadd double %1633, %1646
  %1648 = fptrunc double %1647 to float
  store float %1648, ptr %29, align 4, !tbaa !11
  %1649 = load float, ptr %28, align 4, !tbaa !11
  %1650 = load float, ptr %29, align 4, !tbaa !11
  %1651 = fcmp oge float %1649, %1650
  br i1 %1651, label %1652, label %1654

1652:                                             ; preds = %1644
  %1653 = load float, ptr %28, align 4, !tbaa !11
  br label %1656

1654:                                             ; preds = %1644
  %1655 = load float, ptr %29, align 4, !tbaa !11
  br label %1656

1656:                                             ; preds = %1654, %1652
  %1657 = phi float [ %1653, %1652 ], [ %1655, %1654 ]
  %1658 = fpext float %1657 to double
  %1659 = fptrunc double %1658 to float
  store float %1659, ptr %45, align 4, !tbaa !11
  %1660 = load float, ptr %45, align 4, !tbaa !11
  %1661 = fcmp ogt float %1660, 1.000000e+00
  br i1 %1661, label %1662, label %1699

1662:                                             ; preds = %1656
  %1663 = load float, ptr %45, align 4, !tbaa !11
  %1664 = fdiv float 1.000000e+00, %1663
  store float %1664, ptr %47, align 4, !tbaa !11
  %1665 = load ptr, ptr %22, align 8, !tbaa !5
  %1666 = load i64, ptr %40, align 8, !tbaa !9
  %1667 = getelementptr inbounds float, ptr %1665, i64 %1666
  %1668 = load float, ptr %1667, align 4, !tbaa !11
  store float %1668, ptr %28, align 4, !tbaa !11
  %1669 = load ptr, ptr %22, align 8, !tbaa !5
  %1670 = load i64, ptr %41, align 8, !tbaa !9
  %1671 = getelementptr inbounds float, ptr %1669, i64 %1670
  %1672 = load float, ptr %1671, align 4, !tbaa !11
  store float %1672, ptr %29, align 4, !tbaa !11
  %1673 = load float, ptr %28, align 4, !tbaa !11
  %1674 = load float, ptr %29, align 4, !tbaa !11
  %1675 = fcmp oge float %1673, %1674
  br i1 %1675, label %1676, label %1678

1676:                                             ; preds = %1662
  %1677 = load float, ptr %28, align 4, !tbaa !11
  br label %1680

1678:                                             ; preds = %1662
  %1679 = load float, ptr %29, align 4, !tbaa !11
  br label %1680

1680:                                             ; preds = %1678, %1676
  %1681 = phi float [ %1677, %1676 ], [ %1679, %1678 ]
  %1682 = fpext float %1681 to double
  %1683 = load float, ptr %58, align 4, !tbaa !11
  %1684 = load float, ptr %53, align 4, !tbaa !11
  %1685 = fsub float %1683, %1684
  %1686 = load float, ptr %47, align 4, !tbaa !11
  %1687 = fmul float %1685, %1686
  %1688 = fpext float %1687 to double
  %1689 = fcmp ogt double %1682, %1688
  br i1 %1689, label %1690, label %1698

1690:                                             ; preds = %1680
  %1691 = load ptr, ptr %21, align 8, !tbaa !5
  %1692 = getelementptr inbounds float, ptr %1691, i64 1
  %1693 = call i32 @f2c_sscal(ptr noundef %43, ptr noundef %47, ptr noundef %1692, ptr noundef @c__1)
  %1694 = load float, ptr %47, align 4, !tbaa !11
  %1695 = load ptr, ptr %20, align 8, !tbaa !5
  %1696 = load float, ptr %1695, align 4, !tbaa !11
  %1697 = fmul float %1696, %1694
  store float %1697, ptr %1695, align 4, !tbaa !11
  br label %1698

1698:                                             ; preds = %1690, %1680
  br label %1699

1699:                                             ; preds = %1698, %1656
  %1700 = load i64, ptr %40, align 8, !tbaa !9
  %1701 = icmp sgt i64 %1700, 1
  br i1 %1701, label %1702, label %1894

1702:                                             ; preds = %1699
  %1703 = load i64, ptr %40, align 8, !tbaa !9
  %1704 = sub nsw i64 %1703, 1
  store i64 %1704, ptr %26, align 8, !tbaa !9
  %1705 = load ptr, ptr %21, align 8, !tbaa !5
  %1706 = load i64, ptr %40, align 8, !tbaa !9
  %1707 = getelementptr inbounds float, ptr %1705, i64 %1706
  %1708 = load float, ptr %1707, align 4, !tbaa !11
  %1709 = fneg float %1708
  store float %1709, ptr %28, align 4, !tbaa !11
  %1710 = load ptr, ptr %16, align 8, !tbaa !5
  %1711 = load i64, ptr %40, align 8, !tbaa !9
  %1712 = load i64, ptr %24, align 8, !tbaa !9
  %1713 = mul nsw i64 %1711, %1712
  %1714 = add nsw i64 %1713, 1
  %1715 = getelementptr inbounds float, ptr %1710, i64 %1714
  %1716 = load ptr, ptr %21, align 8, !tbaa !5
  %1717 = getelementptr inbounds float, ptr %1716, i64 1
  %1718 = call i32 @f2c_saxpy(ptr noundef %26, ptr noundef %28, ptr noundef %1715, ptr noundef @c__1, ptr noundef %1717, ptr noundef @c__1)
  %1719 = load i64, ptr %40, align 8, !tbaa !9
  %1720 = sub nsw i64 %1719, 1
  store i64 %1720, ptr %26, align 8, !tbaa !9
  %1721 = load ptr, ptr %21, align 8, !tbaa !5
  %1722 = load i64, ptr %41, align 8, !tbaa !9
  %1723 = getelementptr inbounds float, ptr %1721, i64 %1722
  %1724 = load float, ptr %1723, align 4, !tbaa !11
  %1725 = fneg float %1724
  store float %1725, ptr %28, align 4, !tbaa !11
  %1726 = load ptr, ptr %16, align 8, !tbaa !5
  %1727 = load i64, ptr %41, align 8, !tbaa !9
  %1728 = load i64, ptr %24, align 8, !tbaa !9
  %1729 = mul nsw i64 %1727, %1728
  %1730 = add nsw i64 %1729, 1
  %1731 = getelementptr inbounds float, ptr %1726, i64 %1730
  %1732 = load ptr, ptr %21, align 8, !tbaa !5
  %1733 = getelementptr inbounds float, ptr %1732, i64 1
  %1734 = call i32 @f2c_saxpy(ptr noundef %26, ptr noundef %28, ptr noundef %1731, ptr noundef @c__1, ptr noundef %1733, ptr noundef @c__1)
  %1735 = load i64, ptr %40, align 8, !tbaa !9
  %1736 = sub nsw i64 %1735, 1
  store i64 %1736, ptr %26, align 8, !tbaa !9
  %1737 = load ptr, ptr %21, align 8, !tbaa !5
  %1738 = load ptr, ptr %15, align 8, !tbaa !5
  %1739 = load i64, ptr %1738, align 8, !tbaa !9
  %1740 = load i64, ptr %40, align 8, !tbaa !9
  %1741 = add nsw i64 %1739, %1740
  %1742 = getelementptr inbounds float, ptr %1737, i64 %1741
  %1743 = load float, ptr %1742, align 4, !tbaa !11
  %1744 = fneg float %1743
  store float %1744, ptr %28, align 4, !tbaa !11
  %1745 = load ptr, ptr %16, align 8, !tbaa !5
  %1746 = load i64, ptr %40, align 8, !tbaa !9
  %1747 = load i64, ptr %24, align 8, !tbaa !9
  %1748 = mul nsw i64 %1746, %1747
  %1749 = add nsw i64 %1748, 1
  %1750 = getelementptr inbounds float, ptr %1745, i64 %1749
  %1751 = load ptr, ptr %21, align 8, !tbaa !5
  %1752 = load ptr, ptr %15, align 8, !tbaa !5
  %1753 = load i64, ptr %1752, align 8, !tbaa !9
  %1754 = add nsw i64 %1753, 1
  %1755 = getelementptr inbounds float, ptr %1751, i64 %1754
  %1756 = call i32 @f2c_saxpy(ptr noundef %26, ptr noundef %28, ptr noundef %1750, ptr noundef @c__1, ptr noundef %1755, ptr noundef @c__1)
  %1757 = load i64, ptr %40, align 8, !tbaa !9
  %1758 = sub nsw i64 %1757, 1
  store i64 %1758, ptr %26, align 8, !tbaa !9
  %1759 = load ptr, ptr %21, align 8, !tbaa !5
  %1760 = load ptr, ptr %15, align 8, !tbaa !5
  %1761 = load i64, ptr %1760, align 8, !tbaa !9
  %1762 = load i64, ptr %41, align 8, !tbaa !9
  %1763 = add nsw i64 %1761, %1762
  %1764 = getelementptr inbounds float, ptr %1759, i64 %1763
  %1765 = load float, ptr %1764, align 4, !tbaa !11
  %1766 = fneg float %1765
  store float %1766, ptr %28, align 4, !tbaa !11
  %1767 = load ptr, ptr %16, align 8, !tbaa !5
  %1768 = load i64, ptr %41, align 8, !tbaa !9
  %1769 = load i64, ptr %24, align 8, !tbaa !9
  %1770 = mul nsw i64 %1768, %1769
  %1771 = add nsw i64 %1770, 1
  %1772 = getelementptr inbounds float, ptr %1767, i64 %1771
  %1773 = load ptr, ptr %21, align 8, !tbaa !5
  %1774 = load ptr, ptr %15, align 8, !tbaa !5
  %1775 = load i64, ptr %1774, align 8, !tbaa !9
  %1776 = add nsw i64 %1775, 1
  %1777 = getelementptr inbounds float, ptr %1773, i64 %1776
  %1778 = call i32 @f2c_saxpy(ptr noundef %26, ptr noundef %28, ptr noundef %1772, ptr noundef @c__1, ptr noundef %1777, ptr noundef @c__1)
  %1779 = load ptr, ptr %21, align 8, !tbaa !5
  %1780 = getelementptr inbounds float, ptr %1779, i64 1
  %1781 = load float, ptr %1780, align 4, !tbaa !11
  %1782 = load ptr, ptr %18, align 8, !tbaa !5
  %1783 = load i64, ptr %40, align 8, !tbaa !9
  %1784 = getelementptr inbounds float, ptr %1782, i64 %1783
  %1785 = load float, ptr %1784, align 4, !tbaa !11
  %1786 = load ptr, ptr %21, align 8, !tbaa !5
  %1787 = load ptr, ptr %15, align 8, !tbaa !5
  %1788 = load i64, ptr %1787, align 8, !tbaa !9
  %1789 = load i64, ptr %40, align 8, !tbaa !9
  %1790 = add nsw i64 %1788, %1789
  %1791 = getelementptr inbounds float, ptr %1786, i64 %1790
  %1792 = load float, ptr %1791, align 4, !tbaa !11
  %1793 = call float @llvm.fmuladd.f32(float %1785, float %1792, float %1781)
  %1794 = load ptr, ptr %18, align 8, !tbaa !5
  %1795 = load i64, ptr %41, align 8, !tbaa !9
  %1796 = getelementptr inbounds float, ptr %1794, i64 %1795
  %1797 = load float, ptr %1796, align 4, !tbaa !11
  %1798 = load ptr, ptr %21, align 8, !tbaa !5
  %1799 = load ptr, ptr %15, align 8, !tbaa !5
  %1800 = load i64, ptr %1799, align 8, !tbaa !9
  %1801 = load i64, ptr %41, align 8, !tbaa !9
  %1802 = add nsw i64 %1800, %1801
  %1803 = getelementptr inbounds float, ptr %1798, i64 %1802
  %1804 = load float, ptr %1803, align 4, !tbaa !11
  %1805 = call float @llvm.fmuladd.f32(float %1797, float %1804, float %1793)
  %1806 = load ptr, ptr %21, align 8, !tbaa !5
  %1807 = getelementptr inbounds float, ptr %1806, i64 1
  store float %1805, ptr %1807, align 4, !tbaa !11
  %1808 = load ptr, ptr %21, align 8, !tbaa !5
  %1809 = load ptr, ptr %15, align 8, !tbaa !5
  %1810 = load i64, ptr %1809, align 8, !tbaa !9
  %1811 = add nsw i64 %1810, 1
  %1812 = getelementptr inbounds float, ptr %1808, i64 %1811
  %1813 = load float, ptr %1812, align 4, !tbaa !11
  %1814 = load ptr, ptr %18, align 8, !tbaa !5
  %1815 = load i64, ptr %40, align 8, !tbaa !9
  %1816 = getelementptr inbounds float, ptr %1814, i64 %1815
  %1817 = load float, ptr %1816, align 4, !tbaa !11
  %1818 = load ptr, ptr %21, align 8, !tbaa !5
  %1819 = load i64, ptr %40, align 8, !tbaa !9
  %1820 = getelementptr inbounds float, ptr %1818, i64 %1819
  %1821 = load float, ptr %1820, align 4, !tbaa !11
  %1822 = fneg float %1817
  %1823 = call float @llvm.fmuladd.f32(float %1822, float %1821, float %1813)
  %1824 = load ptr, ptr %18, align 8, !tbaa !5
  %1825 = load i64, ptr %41, align 8, !tbaa !9
  %1826 = getelementptr inbounds float, ptr %1824, i64 %1825
  %1827 = load float, ptr %1826, align 4, !tbaa !11
  %1828 = load ptr, ptr %21, align 8, !tbaa !5
  %1829 = load i64, ptr %41, align 8, !tbaa !9
  %1830 = getelementptr inbounds float, ptr %1828, i64 %1829
  %1831 = load float, ptr %1830, align 4, !tbaa !11
  %1832 = fneg float %1827
  %1833 = call float @llvm.fmuladd.f32(float %1832, float %1831, float %1823)
  %1834 = load ptr, ptr %21, align 8, !tbaa !5
  %1835 = load ptr, ptr %15, align 8, !tbaa !5
  %1836 = load i64, ptr %1835, align 8, !tbaa !9
  %1837 = add nsw i64 %1836, 1
  %1838 = getelementptr inbounds float, ptr %1834, i64 %1837
  store float %1833, ptr %1838, align 4, !tbaa !11
  store float 0.000000e+00, ptr %53, align 4, !tbaa !11
  %1839 = load i64, ptr %40, align 8, !tbaa !9
  %1840 = sub nsw i64 %1839, 1
  store i64 %1840, ptr %26, align 8, !tbaa !9
  store i64 1, ptr %37, align 8, !tbaa !9
  br label %1841

1841:                                             ; preds = %1890, %1702
  %1842 = load i64, ptr %37, align 8, !tbaa !9
  %1843 = load i64, ptr %26, align 8, !tbaa !9
  %1844 = icmp sle i64 %1842, %1843
  br i1 %1844, label %1845, label %1893

1845:                                             ; preds = %1841
  %1846 = load ptr, ptr %21, align 8, !tbaa !5
  %1847 = load i64, ptr %37, align 8, !tbaa !9
  %1848 = getelementptr inbounds float, ptr %1846, i64 %1847
  %1849 = load float, ptr %1848, align 4, !tbaa !11
  store float %1849, ptr %28, align 4, !tbaa !11
  %1850 = load float, ptr %28, align 4, !tbaa !11
  %1851 = fcmp oge float %1850, 0.000000e+00
  br i1 %1851, label %1852, label %1854

1852:                                             ; preds = %1845
  %1853 = load float, ptr %28, align 4, !tbaa !11
  br label %1857

1854:                                             ; preds = %1845
  %1855 = load float, ptr %28, align 4, !tbaa !11
  %1856 = fneg float %1855
  br label %1857

1857:                                             ; preds = %1854, %1852
  %1858 = phi float [ %1853, %1852 ], [ %1856, %1854 ]
  %1859 = fpext float %1858 to double
  %1860 = load ptr, ptr %21, align 8, !tbaa !5
  %1861 = load i64, ptr %37, align 8, !tbaa !9
  %1862 = load ptr, ptr %15, align 8, !tbaa !5
  %1863 = load i64, ptr %1862, align 8, !tbaa !9
  %1864 = add nsw i64 %1861, %1863
  %1865 = getelementptr inbounds float, ptr %1860, i64 %1864
  %1866 = load float, ptr %1865, align 4, !tbaa !11
  store float %1866, ptr %29, align 4, !tbaa !11
  %1867 = load float, ptr %29, align 4, !tbaa !11
  %1868 = fcmp oge float %1867, 0.000000e+00
  br i1 %1868, label %1869, label %1871

1869:                                             ; preds = %1857
  %1870 = load float, ptr %29, align 4, !tbaa !11
  br label %1874

1871:                                             ; preds = %1857
  %1872 = load float, ptr %29, align 4, !tbaa !11
  %1873 = fneg float %1872
  br label %1874

1874:                                             ; preds = %1871, %1869
  %1875 = phi float [ %1870, %1869 ], [ %1873, %1871 ]
  %1876 = fpext float %1875 to double
  %1877 = fadd double %1859, %1876
  %1878 = fptrunc double %1877 to float
  store float %1878, ptr %30, align 4, !tbaa !11
  %1879 = load float, ptr %30, align 4, !tbaa !11
  %1880 = load float, ptr %53, align 4, !tbaa !11
  %1881 = fcmp oge float %1879, %1880
  br i1 %1881, label %1882, label %1884

1882:                                             ; preds = %1874
  %1883 = load float, ptr %30, align 4, !tbaa !11
  br label %1886

1884:                                             ; preds = %1874
  %1885 = load float, ptr %53, align 4, !tbaa !11
  br label %1886

1886:                                             ; preds = %1884, %1882
  %1887 = phi float [ %1883, %1882 ], [ %1885, %1884 ]
  %1888 = fpext float %1887 to double
  %1889 = fptrunc double %1888 to float
  store float %1889, ptr %53, align 4, !tbaa !11
  br label %1890

1890:                                             ; preds = %1886
  %1891 = load i64, ptr %37, align 8, !tbaa !9
  %1892 = add nsw i64 %1891, 1
  store i64 %1892, ptr %37, align 8, !tbaa !9
  br label %1841, !llvm.loop !19

1893:                                             ; preds = %1841
  br label %1894

1894:                                             ; preds = %1893, %1699
  br label %1895

1895:                                             ; preds = %1894, %1505
  br label %1896

1896:                                             ; preds = %1895, %1273, %1153
  br label %1897

1897:                                             ; preds = %1896
  %1898 = load i64, ptr %36, align 8, !tbaa !9
  %1899 = add nsw i64 %1898, -1
  store i64 %1899, ptr %36, align 8, !tbaa !9
  br label %1146, !llvm.loop !20

1900:                                             ; preds = %1146
  br label %2664

1901:                                             ; preds = %1135
  store i64 1, ptr %54, align 8, !tbaa !9
  %1902 = load ptr, ptr %15, align 8, !tbaa !5
  %1903 = load i64, ptr %1902, align 8, !tbaa !9
  store i64 %1903, ptr %26, align 8, !tbaa !9
  store i64 1, ptr %36, align 8, !tbaa !9
  br label %1904

1904:                                             ; preds = %2660, %1901
  %1905 = load i64, ptr %36, align 8, !tbaa !9
  %1906 = load i64, ptr %26, align 8, !tbaa !9
  %1907 = icmp sle i64 %1905, %1906
  br i1 %1907, label %1908, label %2663

1908:                                             ; preds = %1904
  %1909 = load i64, ptr %36, align 8, !tbaa !9
  %1910 = load i64, ptr %54, align 8, !tbaa !9
  %1911 = icmp slt i64 %1909, %1910
  br i1 %1911, label %1912, label %1913

1912:                                             ; preds = %1908
  br label %2659

1913:                                             ; preds = %1908
  %1914 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1914, ptr %40, align 8, !tbaa !9
  %1915 = load i64, ptr %36, align 8, !tbaa !9
  store i64 %1915, ptr %41, align 8, !tbaa !9
  %1916 = load i64, ptr %36, align 8, !tbaa !9
  %1917 = add nsw i64 %1916, 1
  store i64 %1917, ptr %54, align 8, !tbaa !9
  %1918 = load i64, ptr %36, align 8, !tbaa !9
  %1919 = load ptr, ptr %15, align 8, !tbaa !5
  %1920 = load i64, ptr %1919, align 8, !tbaa !9
  %1921 = icmp slt i64 %1918, %1920
  br i1 %1921, label %1922, label %1939

1922:                                             ; preds = %1913
  %1923 = load ptr, ptr %16, align 8, !tbaa !5
  %1924 = load i64, ptr %36, align 8, !tbaa !9
  %1925 = add nsw i64 %1924, 1
  %1926 = load i64, ptr %36, align 8, !tbaa !9
  %1927 = load i64, ptr %24, align 8, !tbaa !9
  %1928 = mul nsw i64 %1926, %1927
  %1929 = add nsw i64 %1925, %1928
  %1930 = getelementptr inbounds float, ptr %1923, i64 %1929
  %1931 = load float, ptr %1930, align 4, !tbaa !11
  %1932 = fcmp une float %1931, 0.000000e+00
  br i1 %1932, label %1933, label %1938

1933:                                             ; preds = %1922
  %1934 = load i64, ptr %36, align 8, !tbaa !9
  %1935 = add nsw i64 %1934, 1
  store i64 %1935, ptr %41, align 8, !tbaa !9
  %1936 = load i64, ptr %36, align 8, !tbaa !9
  %1937 = add nsw i64 %1936, 2
  store i64 %1937, ptr %54, align 8, !tbaa !9
  br label %1938

1938:                                             ; preds = %1933, %1922
  br label %1939

1939:                                             ; preds = %1938, %1913
  %1940 = load i64, ptr %40, align 8, !tbaa !9
  %1941 = load i64, ptr %41, align 8, !tbaa !9
  %1942 = icmp eq i64 %1940, %1941
  br i1 %1942, label %1943, label %2260

1943:                                             ; preds = %1939
  %1944 = load ptr, ptr %21, align 8, !tbaa !5
  %1945 = load i64, ptr %40, align 8, !tbaa !9
  %1946 = getelementptr inbounds float, ptr %1944, i64 %1945
  %1947 = load float, ptr %1946, align 4, !tbaa !11
  store float %1947, ptr %28, align 4, !tbaa !11
  %1948 = load float, ptr %28, align 4, !tbaa !11
  %1949 = fcmp oge float %1948, 0.000000e+00
  br i1 %1949, label %1950, label %1952

1950:                                             ; preds = %1943
  %1951 = load float, ptr %28, align 4, !tbaa !11
  br label %1955

1952:                                             ; preds = %1943
  %1953 = load float, ptr %28, align 4, !tbaa !11
  %1954 = fneg float %1953
  br label %1955

1955:                                             ; preds = %1952, %1950
  %1956 = phi float [ %1951, %1950 ], [ %1954, %1952 ]
  %1957 = fpext float %1956 to double
  %1958 = load ptr, ptr %21, align 8, !tbaa !5
  %1959 = load i64, ptr %40, align 8, !tbaa !9
  %1960 = load ptr, ptr %15, align 8, !tbaa !5
  %1961 = load i64, ptr %1960, align 8, !tbaa !9
  %1962 = add nsw i64 %1959, %1961
  %1963 = getelementptr inbounds float, ptr %1958, i64 %1962
  %1964 = load float, ptr %1963, align 4, !tbaa !11
  store float %1964, ptr %29, align 4, !tbaa !11
  %1965 = load float, ptr %29, align 4, !tbaa !11
  %1966 = fcmp oge float %1965, 0.000000e+00
  br i1 %1966, label %1967, label %1969

1967:                                             ; preds = %1955
  %1968 = load float, ptr %29, align 4, !tbaa !11
  br label %1972

1969:                                             ; preds = %1955
  %1970 = load float, ptr %29, align 4, !tbaa !11
  %1971 = fneg float %1970
  br label %1972

1972:                                             ; preds = %1969, %1967
  %1973 = phi float [ %1968, %1967 ], [ %1971, %1969 ]
  %1974 = fpext float %1973 to double
  %1975 = fadd double %1957, %1974
  %1976 = fptrunc double %1975 to float
  store float %1976, ptr %45, align 4, !tbaa !11
  %1977 = load float, ptr %53, align 4, !tbaa !11
  %1978 = fcmp ogt float %1977, 1.000000e+00
  br i1 %1978, label %1979, label %2004

1979:                                             ; preds = %1972
  %1980 = load float, ptr %53, align 4, !tbaa !11
  %1981 = fdiv float 1.000000e+00, %1980
  store float %1981, ptr %47, align 4, !tbaa !11
  %1982 = load ptr, ptr %22, align 8, !tbaa !5
  %1983 = load i64, ptr %40, align 8, !tbaa !9
  %1984 = getelementptr inbounds float, ptr %1982, i64 %1983
  %1985 = load float, ptr %1984, align 4, !tbaa !11
  %1986 = load float, ptr %58, align 4, !tbaa !11
  %1987 = load float, ptr %45, align 4, !tbaa !11
  %1988 = fsub float %1986, %1987
  %1989 = load float, ptr %47, align 4, !tbaa !11
  %1990 = fmul float %1988, %1989
  %1991 = fcmp ogt float %1985, %1990
  br i1 %1991, label %1992, label %2003

1992:                                             ; preds = %1979
  %1993 = load ptr, ptr %21, align 8, !tbaa !5
  %1994 = getelementptr inbounds float, ptr %1993, i64 1
  %1995 = call i32 @f2c_sscal(ptr noundef %43, ptr noundef %47, ptr noundef %1994, ptr noundef @c__1)
  %1996 = load float, ptr %47, align 4, !tbaa !11
  %1997 = load ptr, ptr %20, align 8, !tbaa !5
  %1998 = load float, ptr %1997, align 4, !tbaa !11
  %1999 = fmul float %1998, %1996
  store float %1999, ptr %1997, align 4, !tbaa !11
  %2000 = load float, ptr %47, align 4, !tbaa !11
  %2001 = load float, ptr %53, align 4, !tbaa !11
  %2002 = fmul float %2001, %2000
  store float %2002, ptr %53, align 4, !tbaa !11
  br label %2003

2003:                                             ; preds = %1992, %1979
  br label %2004

2004:                                             ; preds = %2003, %1972
  %2005 = load i64, ptr %40, align 8, !tbaa !9
  %2006 = sub nsw i64 %2005, 1
  store i64 %2006, ptr %27, align 8, !tbaa !9
  %2007 = load ptr, ptr %16, align 8, !tbaa !5
  %2008 = load i64, ptr %40, align 8, !tbaa !9
  %2009 = load i64, ptr %24, align 8, !tbaa !9
  %2010 = mul nsw i64 %2008, %2009
  %2011 = add nsw i64 %2010, 1
  %2012 = getelementptr inbounds float, ptr %2007, i64 %2011
  %2013 = load ptr, ptr %21, align 8, !tbaa !5
  %2014 = getelementptr inbounds float, ptr %2013, i64 1
  %2015 = call double @f2c_sdot(ptr noundef %27, ptr noundef %2012, ptr noundef @c__1, ptr noundef %2014, ptr noundef @c__1)
  %2016 = load ptr, ptr %21, align 8, !tbaa !5
  %2017 = load i64, ptr %40, align 8, !tbaa !9
  %2018 = getelementptr inbounds float, ptr %2016, i64 %2017
  %2019 = load float, ptr %2018, align 4, !tbaa !11
  %2020 = fpext float %2019 to double
  %2021 = fsub double %2020, %2015
  %2022 = fptrunc double %2021 to float
  store float %2022, ptr %2018, align 4, !tbaa !11
  %2023 = load i64, ptr %40, align 8, !tbaa !9
  %2024 = sub nsw i64 %2023, 1
  store i64 %2024, ptr %27, align 8, !tbaa !9
  %2025 = load ptr, ptr %16, align 8, !tbaa !5
  %2026 = load i64, ptr %40, align 8, !tbaa !9
  %2027 = load i64, ptr %24, align 8, !tbaa !9
  %2028 = mul nsw i64 %2026, %2027
  %2029 = add nsw i64 %2028, 1
  %2030 = getelementptr inbounds float, ptr %2025, i64 %2029
  %2031 = load ptr, ptr %21, align 8, !tbaa !5
  %2032 = load ptr, ptr %15, align 8, !tbaa !5
  %2033 = load i64, ptr %2032, align 8, !tbaa !9
  %2034 = add nsw i64 %2033, 1
  %2035 = getelementptr inbounds float, ptr %2031, i64 %2034
  %2036 = call double @f2c_sdot(ptr noundef %27, ptr noundef %2030, ptr noundef @c__1, ptr noundef %2035, ptr noundef @c__1)
  %2037 = load ptr, ptr %21, align 8, !tbaa !5
  %2038 = load ptr, ptr %15, align 8, !tbaa !5
  %2039 = load i64, ptr %2038, align 8, !tbaa !9
  %2040 = load i64, ptr %40, align 8, !tbaa !9
  %2041 = add nsw i64 %2039, %2040
  %2042 = getelementptr inbounds float, ptr %2037, i64 %2041
  %2043 = load float, ptr %2042, align 4, !tbaa !11
  %2044 = fpext float %2043 to double
  %2045 = fsub double %2044, %2036
  %2046 = fptrunc double %2045 to float
  store float %2046, ptr %2042, align 4, !tbaa !11
  %2047 = load i64, ptr %40, align 8, !tbaa !9
  %2048 = icmp sgt i64 %2047, 1
  br i1 %2048, label %2049, label %2081

2049:                                             ; preds = %2004
  %2050 = load ptr, ptr %18, align 8, !tbaa !5
  %2051 = load i64, ptr %40, align 8, !tbaa !9
  %2052 = getelementptr inbounds float, ptr %2050, i64 %2051
  %2053 = load float, ptr %2052, align 4, !tbaa !11
  %2054 = load ptr, ptr %21, align 8, !tbaa !5
  %2055 = load ptr, ptr %15, align 8, !tbaa !5
  %2056 = load i64, ptr %2055, align 8, !tbaa !9
  %2057 = add nsw i64 %2056, 1
  %2058 = getelementptr inbounds float, ptr %2054, i64 %2057
  %2059 = load float, ptr %2058, align 4, !tbaa !11
  %2060 = load ptr, ptr %21, align 8, !tbaa !5
  %2061 = load i64, ptr %40, align 8, !tbaa !9
  %2062 = getelementptr inbounds float, ptr %2060, i64 %2061
  %2063 = load float, ptr %2062, align 4, !tbaa !11
  %2064 = fneg float %2053
  %2065 = call float @llvm.fmuladd.f32(float %2064, float %2059, float %2063)
  store float %2065, ptr %2062, align 4, !tbaa !11
  %2066 = load ptr, ptr %18, align 8, !tbaa !5
  %2067 = load i64, ptr %40, align 8, !tbaa !9
  %2068 = getelementptr inbounds float, ptr %2066, i64 %2067
  %2069 = load float, ptr %2068, align 4, !tbaa !11
  %2070 = load ptr, ptr %21, align 8, !tbaa !5
  %2071 = getelementptr inbounds float, ptr %2070, i64 1
  %2072 = load float, ptr %2071, align 4, !tbaa !11
  %2073 = load ptr, ptr %21, align 8, !tbaa !5
  %2074 = load ptr, ptr %15, align 8, !tbaa !5
  %2075 = load i64, ptr %2074, align 8, !tbaa !9
  %2076 = load i64, ptr %40, align 8, !tbaa !9
  %2077 = add nsw i64 %2075, %2076
  %2078 = getelementptr inbounds float, ptr %2073, i64 %2077
  %2079 = load float, ptr %2078, align 4, !tbaa !11
  %2080 = call float @llvm.fmuladd.f32(float %2069, float %2072, float %2079)
  store float %2080, ptr %2078, align 4, !tbaa !11
  br label %2081

2081:                                             ; preds = %2049, %2004
  %2082 = load ptr, ptr %21, align 8, !tbaa !5
  %2083 = load i64, ptr %40, align 8, !tbaa !9
  %2084 = getelementptr inbounds float, ptr %2082, i64 %2083
  %2085 = load float, ptr %2084, align 4, !tbaa !11
  store float %2085, ptr %28, align 4, !tbaa !11
  %2086 = load float, ptr %28, align 4, !tbaa !11
  %2087 = fcmp oge float %2086, 0.000000e+00
  br i1 %2087, label %2088, label %2090

2088:                                             ; preds = %2081
  %2089 = load float, ptr %28, align 4, !tbaa !11
  br label %2093

2090:                                             ; preds = %2081
  %2091 = load float, ptr %28, align 4, !tbaa !11
  %2092 = fneg float %2091
  br label %2093

2093:                                             ; preds = %2090, %2088
  %2094 = phi float [ %2089, %2088 ], [ %2092, %2090 ]
  %2095 = fpext float %2094 to double
  %2096 = load ptr, ptr %21, align 8, !tbaa !5
  %2097 = load i64, ptr %40, align 8, !tbaa !9
  %2098 = load ptr, ptr %15, align 8, !tbaa !5
  %2099 = load i64, ptr %2098, align 8, !tbaa !9
  %2100 = add nsw i64 %2097, %2099
  %2101 = getelementptr inbounds float, ptr %2096, i64 %2100
  %2102 = load float, ptr %2101, align 4, !tbaa !11
  store float %2102, ptr %29, align 4, !tbaa !11
  %2103 = load float, ptr %29, align 4, !tbaa !11
  %2104 = fcmp oge float %2103, 0.000000e+00
  br i1 %2104, label %2105, label %2107

2105:                                             ; preds = %2093
  %2106 = load float, ptr %29, align 4, !tbaa !11
  br label %2110

2107:                                             ; preds = %2093
  %2108 = load float, ptr %29, align 4, !tbaa !11
  %2109 = fneg float %2108
  br label %2110

2110:                                             ; preds = %2107, %2105
  %2111 = phi float [ %2106, %2105 ], [ %2109, %2107 ]
  %2112 = fpext float %2111 to double
  %2113 = fadd double %2095, %2112
  %2114 = fptrunc double %2113 to float
  store float %2114, ptr %45, align 4, !tbaa !11
  %2115 = load ptr, ptr %19, align 8, !tbaa !5
  %2116 = load float, ptr %2115, align 4, !tbaa !11
  store float %2116, ptr %39, align 4, !tbaa !11
  %2117 = load i64, ptr %40, align 8, !tbaa !9
  %2118 = icmp eq i64 %2117, 1
  br i1 %2118, label %2119, label %2123

2119:                                             ; preds = %2110
  %2120 = load ptr, ptr %18, align 8, !tbaa !5
  %2121 = getelementptr inbounds float, ptr %2120, i64 1
  %2122 = load float, ptr %2121, align 4, !tbaa !11
  store float %2122, ptr %39, align 4, !tbaa !11
  br label %2123

2123:                                             ; preds = %2119, %2110
  %2124 = load ptr, ptr %16, align 8, !tbaa !5
  %2125 = load i64, ptr %40, align 8, !tbaa !9
  %2126 = load i64, ptr %40, align 8, !tbaa !9
  %2127 = load i64, ptr %24, align 8, !tbaa !9
  %2128 = mul nsw i64 %2126, %2127
  %2129 = add nsw i64 %2125, %2128
  %2130 = getelementptr inbounds float, ptr %2124, i64 %2129
  %2131 = load float, ptr %2130, align 4, !tbaa !11
  store float %2131, ptr %28, align 4, !tbaa !11
  %2132 = load float, ptr %28, align 4, !tbaa !11
  %2133 = fcmp oge float %2132, 0.000000e+00
  br i1 %2133, label %2134, label %2136

2134:                                             ; preds = %2123
  %2135 = load float, ptr %28, align 4, !tbaa !11
  br label %2139

2136:                                             ; preds = %2123
  %2137 = load float, ptr %28, align 4, !tbaa !11
  %2138 = fneg float %2137
  br label %2139

2139:                                             ; preds = %2136, %2134
  %2140 = phi float [ %2135, %2134 ], [ %2138, %2136 ]
  %2141 = fpext float %2140 to double
  %2142 = load float, ptr %39, align 4, !tbaa !11
  %2143 = fcmp oge float %2142, 0.000000e+00
  br i1 %2143, label %2144, label %2146

2144:                                             ; preds = %2139
  %2145 = load float, ptr %39, align 4, !tbaa !11
  br label %2149

2146:                                             ; preds = %2139
  %2147 = load float, ptr %39, align 4, !tbaa !11
  %2148 = fneg float %2147
  br label %2149

2149:                                             ; preds = %2146, %2144
  %2150 = phi float [ %2145, %2144 ], [ %2148, %2146 ]
  %2151 = fpext float %2150 to double
  %2152 = fadd double %2141, %2151
  %2153 = fptrunc double %2152 to float
  store float %2153, ptr %49, align 4, !tbaa !11
  %2154 = load ptr, ptr %16, align 8, !tbaa !5
  %2155 = load i64, ptr %40, align 8, !tbaa !9
  %2156 = load i64, ptr %40, align 8, !tbaa !9
  %2157 = load i64, ptr %24, align 8, !tbaa !9
  %2158 = mul nsw i64 %2156, %2157
  %2159 = add nsw i64 %2155, %2158
  %2160 = getelementptr inbounds float, ptr %2154, i64 %2159
  %2161 = load float, ptr %2160, align 4, !tbaa !11
  store float %2161, ptr %50, align 4, !tbaa !11
  %2162 = load float, ptr %49, align 4, !tbaa !11
  %2163 = load float, ptr %55, align 4, !tbaa !11
  %2164 = fcmp olt float %2162, %2163
  br i1 %2164, label %2165, label %2169

2165:                                             ; preds = %2149
  %2166 = load float, ptr %55, align 4, !tbaa !11
  store float %2166, ptr %50, align 4, !tbaa !11
  %2167 = load float, ptr %55, align 4, !tbaa !11
  store float %2167, ptr %49, align 4, !tbaa !11
  %2168 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 1, ptr %2168, align 8, !tbaa !9
  br label %2169

2169:                                             ; preds = %2165, %2149
  %2170 = load float, ptr %49, align 4, !tbaa !11
  %2171 = fcmp olt float %2170, 1.000000e+00
  br i1 %2171, label %2172, label %2192

2172:                                             ; preds = %2169
  %2173 = load float, ptr %45, align 4, !tbaa !11
  %2174 = load float, ptr %58, align 4, !tbaa !11
  %2175 = load float, ptr %49, align 4, !tbaa !11
  %2176 = fmul float %2174, %2175
  %2177 = fcmp ogt float %2173, %2176
  br i1 %2177, label %2178, label %2191

2178:                                             ; preds = %2172
  %2179 = load float, ptr %45, align 4, !tbaa !11
  %2180 = fdiv float 1.000000e+00, %2179
  store float %2180, ptr %47, align 4, !tbaa !11
  %2181 = load ptr, ptr %21, align 8, !tbaa !5
  %2182 = getelementptr inbounds float, ptr %2181, i64 1
  %2183 = call i32 @f2c_sscal(ptr noundef %43, ptr noundef %47, ptr noundef %2182, ptr noundef @c__1)
  %2184 = load float, ptr %47, align 4, !tbaa !11
  %2185 = load ptr, ptr %20, align 8, !tbaa !5
  %2186 = load float, ptr %2185, align 4, !tbaa !11
  %2187 = fmul float %2186, %2184
  store float %2187, ptr %2185, align 4, !tbaa !11
  %2188 = load float, ptr %47, align 4, !tbaa !11
  %2189 = load float, ptr %53, align 4, !tbaa !11
  %2190 = fmul float %2189, %2188
  store float %2190, ptr %53, align 4, !tbaa !11
  br label %2191

2191:                                             ; preds = %2178, %2172
  br label %2192

2192:                                             ; preds = %2191, %2169
  %2193 = load float, ptr %39, align 4, !tbaa !11
  %2194 = fneg float %2193
  store float %2194, ptr %28, align 4, !tbaa !11
  %2195 = load ptr, ptr %21, align 8, !tbaa !5
  %2196 = load i64, ptr %40, align 8, !tbaa !9
  %2197 = getelementptr inbounds float, ptr %2195, i64 %2196
  %2198 = load ptr, ptr %21, align 8, !tbaa !5
  %2199 = load ptr, ptr %15, align 8, !tbaa !5
  %2200 = load i64, ptr %2199, align 8, !tbaa !9
  %2201 = load i64, ptr %40, align 8, !tbaa !9
  %2202 = add nsw i64 %2200, %2201
  %2203 = getelementptr inbounds float, ptr %2198, i64 %2202
  %2204 = call i32 @sladiv_(ptr noundef %2197, ptr noundef %2203, ptr noundef %50, ptr noundef %28, ptr noundef %46, ptr noundef %44)
  %2205 = load float, ptr %46, align 4, !tbaa !11
  %2206 = load ptr, ptr %21, align 8, !tbaa !5
  %2207 = load i64, ptr %40, align 8, !tbaa !9
  %2208 = getelementptr inbounds float, ptr %2206, i64 %2207
  store float %2205, ptr %2208, align 4, !tbaa !11
  %2209 = load float, ptr %44, align 4, !tbaa !11
  %2210 = load ptr, ptr %21, align 8, !tbaa !5
  %2211 = load i64, ptr %40, align 8, !tbaa !9
  %2212 = load ptr, ptr %15, align 8, !tbaa !5
  %2213 = load i64, ptr %2212, align 8, !tbaa !9
  %2214 = add nsw i64 %2211, %2213
  %2215 = getelementptr inbounds float, ptr %2210, i64 %2214
  store float %2209, ptr %2215, align 4, !tbaa !11
  %2216 = load ptr, ptr %21, align 8, !tbaa !5
  %2217 = load i64, ptr %40, align 8, !tbaa !9
  %2218 = getelementptr inbounds float, ptr %2216, i64 %2217
  %2219 = load float, ptr %2218, align 4, !tbaa !11
  store float %2219, ptr %28, align 4, !tbaa !11
  %2220 = load float, ptr %28, align 4, !tbaa !11
  %2221 = fcmp oge float %2220, 0.000000e+00
  br i1 %2221, label %2222, label %2224

2222:                                             ; preds = %2192
  %2223 = load float, ptr %28, align 4, !tbaa !11
  br label %2227

2224:                                             ; preds = %2192
  %2225 = load float, ptr %28, align 4, !tbaa !11
  %2226 = fneg float %2225
  br label %2227

2227:                                             ; preds = %2224, %2222
  %2228 = phi float [ %2223, %2222 ], [ %2226, %2224 ]
  %2229 = fpext float %2228 to double
  %2230 = load ptr, ptr %21, align 8, !tbaa !5
  %2231 = load i64, ptr %40, align 8, !tbaa !9
  %2232 = load ptr, ptr %15, align 8, !tbaa !5
  %2233 = load i64, ptr %2232, align 8, !tbaa !9
  %2234 = add nsw i64 %2231, %2233
  %2235 = getelementptr inbounds float, ptr %2230, i64 %2234
  %2236 = load float, ptr %2235, align 4, !tbaa !11
  store float %2236, ptr %29, align 4, !tbaa !11
  %2237 = load float, ptr %29, align 4, !tbaa !11
  %2238 = fcmp oge float %2237, 0.000000e+00
  br i1 %2238, label %2239, label %2241

2239:                                             ; preds = %2227
  %2240 = load float, ptr %29, align 4, !tbaa !11
  br label %2244

2241:                                             ; preds = %2227
  %2242 = load float, ptr %29, align 4, !tbaa !11
  %2243 = fneg float %2242
  br label %2244

2244:                                             ; preds = %2241, %2239
  %2245 = phi float [ %2240, %2239 ], [ %2243, %2241 ]
  %2246 = fpext float %2245 to double
  %2247 = fadd double %2229, %2246
  %2248 = fptrunc double %2247 to float
  store float %2248, ptr %30, align 4, !tbaa !11
  %2249 = load float, ptr %30, align 4, !tbaa !11
  %2250 = load float, ptr %53, align 4, !tbaa !11
  %2251 = fcmp oge float %2249, %2250
  br i1 %2251, label %2252, label %2254

2252:                                             ; preds = %2244
  %2253 = load float, ptr %30, align 4, !tbaa !11
  br label %2256

2254:                                             ; preds = %2244
  %2255 = load float, ptr %53, align 4, !tbaa !11
  br label %2256

2256:                                             ; preds = %2254, %2252
  %2257 = phi float [ %2253, %2252 ], [ %2255, %2254 ]
  %2258 = fpext float %2257 to double
  %2259 = fptrunc double %2258 to float
  store float %2259, ptr %53, align 4, !tbaa !11
  br label %2658

2260:                                             ; preds = %1939
  %2261 = load ptr, ptr %21, align 8, !tbaa !5
  %2262 = load i64, ptr %40, align 8, !tbaa !9
  %2263 = getelementptr inbounds float, ptr %2261, i64 %2262
  %2264 = load float, ptr %2263, align 4, !tbaa !11
  store float %2264, ptr %28, align 4, !tbaa !11
  %2265 = load float, ptr %28, align 4, !tbaa !11
  %2266 = fcmp oge float %2265, 0.000000e+00
  br i1 %2266, label %2267, label %2269

2267:                                             ; preds = %2260
  %2268 = load float, ptr %28, align 4, !tbaa !11
  br label %2272

2269:                                             ; preds = %2260
  %2270 = load float, ptr %28, align 4, !tbaa !11
  %2271 = fneg float %2270
  br label %2272

2272:                                             ; preds = %2269, %2267
  %2273 = phi float [ %2268, %2267 ], [ %2271, %2269 ]
  %2274 = fpext float %2273 to double
  %2275 = load ptr, ptr %21, align 8, !tbaa !5
  %2276 = load ptr, ptr %15, align 8, !tbaa !5
  %2277 = load i64, ptr %2276, align 8, !tbaa !9
  %2278 = load i64, ptr %40, align 8, !tbaa !9
  %2279 = add nsw i64 %2277, %2278
  %2280 = getelementptr inbounds float, ptr %2275, i64 %2279
  %2281 = load float, ptr %2280, align 4, !tbaa !11
  store float %2281, ptr %29, align 4, !tbaa !11
  %2282 = load float, ptr %29, align 4, !tbaa !11
  %2283 = fcmp oge float %2282, 0.000000e+00
  br i1 %2283, label %2284, label %2286

2284:                                             ; preds = %2272
  %2285 = load float, ptr %29, align 4, !tbaa !11
  br label %2289

2286:                                             ; preds = %2272
  %2287 = load float, ptr %29, align 4, !tbaa !11
  %2288 = fneg float %2287
  br label %2289

2289:                                             ; preds = %2286, %2284
  %2290 = phi float [ %2285, %2284 ], [ %2288, %2286 ]
  %2291 = fpext float %2290 to double
  %2292 = fadd double %2274, %2291
  %2293 = fptrunc double %2292 to float
  store float %2293, ptr %32, align 4, !tbaa !11
  %2294 = load ptr, ptr %21, align 8, !tbaa !5
  %2295 = load i64, ptr %41, align 8, !tbaa !9
  %2296 = getelementptr inbounds float, ptr %2294, i64 %2295
  %2297 = load float, ptr %2296, align 4, !tbaa !11
  store float %2297, ptr %30, align 4, !tbaa !11
  %2298 = load float, ptr %30, align 4, !tbaa !11
  %2299 = fcmp oge float %2298, 0.000000e+00
  br i1 %2299, label %2300, label %2302

2300:                                             ; preds = %2289
  %2301 = load float, ptr %30, align 4, !tbaa !11
  br label %2305

2302:                                             ; preds = %2289
  %2303 = load float, ptr %30, align 4, !tbaa !11
  %2304 = fneg float %2303
  br label %2305

2305:                                             ; preds = %2302, %2300
  %2306 = phi float [ %2301, %2300 ], [ %2304, %2302 ]
  %2307 = fpext float %2306 to double
  %2308 = load ptr, ptr %21, align 8, !tbaa !5
  %2309 = load ptr, ptr %15, align 8, !tbaa !5
  %2310 = load i64, ptr %2309, align 8, !tbaa !9
  %2311 = load i64, ptr %41, align 8, !tbaa !9
  %2312 = add nsw i64 %2310, %2311
  %2313 = getelementptr inbounds float, ptr %2308, i64 %2312
  %2314 = load float, ptr %2313, align 4, !tbaa !11
  store float %2314, ptr %31, align 4, !tbaa !11
  %2315 = load float, ptr %31, align 4, !tbaa !11
  %2316 = fcmp oge float %2315, 0.000000e+00
  br i1 %2316, label %2317, label %2319

2317:                                             ; preds = %2305
  %2318 = load float, ptr %31, align 4, !tbaa !11
  br label %2322

2319:                                             ; preds = %2305
  %2320 = load float, ptr %31, align 4, !tbaa !11
  %2321 = fneg float %2320
  br label %2322

2322:                                             ; preds = %2319, %2317
  %2323 = phi float [ %2318, %2317 ], [ %2321, %2319 ]
  %2324 = fpext float %2323 to double
  %2325 = fadd double %2307, %2324
  %2326 = fptrunc double %2325 to float
  store float %2326, ptr %33, align 4, !tbaa !11
  %2327 = load float, ptr %32, align 4, !tbaa !11
  %2328 = load float, ptr %33, align 4, !tbaa !11
  %2329 = fcmp oge float %2327, %2328
  br i1 %2329, label %2330, label %2332

2330:                                             ; preds = %2322
  %2331 = load float, ptr %32, align 4, !tbaa !11
  br label %2334

2332:                                             ; preds = %2322
  %2333 = load float, ptr %33, align 4, !tbaa !11
  br label %2334

2334:                                             ; preds = %2332, %2330
  %2335 = phi float [ %2331, %2330 ], [ %2333, %2332 ]
  %2336 = fpext float %2335 to double
  %2337 = fptrunc double %2336 to float
  store float %2337, ptr %45, align 4, !tbaa !11
  %2338 = load float, ptr %53, align 4, !tbaa !11
  %2339 = fcmp ogt float %2338, 1.000000e+00
  br i1 %2339, label %2340, label %2380

2340:                                             ; preds = %2334
  %2341 = load float, ptr %53, align 4, !tbaa !11
  %2342 = fdiv float 1.000000e+00, %2341
  store float %2342, ptr %47, align 4, !tbaa !11
  %2343 = load ptr, ptr %22, align 8, !tbaa !5
  %2344 = load i64, ptr %40, align 8, !tbaa !9
  %2345 = getelementptr inbounds float, ptr %2343, i64 %2344
  %2346 = load float, ptr %2345, align 4, !tbaa !11
  store float %2346, ptr %28, align 4, !tbaa !11
  %2347 = load ptr, ptr %22, align 8, !tbaa !5
  %2348 = load i64, ptr %41, align 8, !tbaa !9
  %2349 = getelementptr inbounds float, ptr %2347, i64 %2348
  %2350 = load float, ptr %2349, align 4, !tbaa !11
  store float %2350, ptr %29, align 4, !tbaa !11
  %2351 = load float, ptr %28, align 4, !tbaa !11
  %2352 = load float, ptr %29, align 4, !tbaa !11
  %2353 = fcmp oge float %2351, %2352
  br i1 %2353, label %2354, label %2356

2354:                                             ; preds = %2340
  %2355 = load float, ptr %28, align 4, !tbaa !11
  br label %2358

2356:                                             ; preds = %2340
  %2357 = load float, ptr %29, align 4, !tbaa !11
  br label %2358

2358:                                             ; preds = %2356, %2354
  %2359 = phi float [ %2355, %2354 ], [ %2357, %2356 ]
  %2360 = fpext float %2359 to double
  %2361 = load float, ptr %58, align 4, !tbaa !11
  %2362 = load float, ptr %45, align 4, !tbaa !11
  %2363 = fsub float %2361, %2362
  %2364 = load float, ptr %53, align 4, !tbaa !11
  %2365 = fdiv float %2363, %2364
  %2366 = fpext float %2365 to double
  %2367 = fcmp ogt double %2360, %2366
  br i1 %2367, label %2368, label %2379

2368:                                             ; preds = %2358
  %2369 = load ptr, ptr %21, align 8, !tbaa !5
  %2370 = getelementptr inbounds float, ptr %2369, i64 1
  %2371 = call i32 @f2c_sscal(ptr noundef %43, ptr noundef %47, ptr noundef %2370, ptr noundef @c__1)
  %2372 = load float, ptr %47, align 4, !tbaa !11
  %2373 = load ptr, ptr %20, align 8, !tbaa !5
  %2374 = load float, ptr %2373, align 4, !tbaa !11
  %2375 = fmul float %2374, %2372
  store float %2375, ptr %2373, align 4, !tbaa !11
  %2376 = load float, ptr %47, align 4, !tbaa !11
  %2377 = load float, ptr %53, align 4, !tbaa !11
  %2378 = fmul float %2377, %2376
  store float %2378, ptr %53, align 4, !tbaa !11
  br label %2379

2379:                                             ; preds = %2368, %2358
  br label %2380

2380:                                             ; preds = %2379, %2334
  %2381 = load i64, ptr %40, align 8, !tbaa !9
  %2382 = sub nsw i64 %2381, 1
  store i64 %2382, ptr %27, align 8, !tbaa !9
  %2383 = load ptr, ptr %21, align 8, !tbaa !5
  %2384 = load i64, ptr %40, align 8, !tbaa !9
  %2385 = getelementptr inbounds float, ptr %2383, i64 %2384
  %2386 = load float, ptr %2385, align 4, !tbaa !11
  %2387 = fpext float %2386 to double
  %2388 = load ptr, ptr %16, align 8, !tbaa !5
  %2389 = load i64, ptr %40, align 8, !tbaa !9
  %2390 = load i64, ptr %24, align 8, !tbaa !9
  %2391 = mul nsw i64 %2389, %2390
  %2392 = add nsw i64 %2391, 1
  %2393 = getelementptr inbounds float, ptr %2388, i64 %2392
  %2394 = load ptr, ptr %21, align 8, !tbaa !5
  %2395 = getelementptr inbounds float, ptr %2394, i64 1
  %2396 = call double @f2c_sdot(ptr noundef %27, ptr noundef %2393, ptr noundef @c__1, ptr noundef %2395, ptr noundef @c__1)
  %2397 = fsub double %2387, %2396
  %2398 = fptrunc double %2397 to float
  %2399 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 0
  store float %2398, ptr %2399, align 16, !tbaa !11
  %2400 = load i64, ptr %40, align 8, !tbaa !9
  %2401 = sub nsw i64 %2400, 1
  store i64 %2401, ptr %27, align 8, !tbaa !9
  %2402 = load ptr, ptr %21, align 8, !tbaa !5
  %2403 = load i64, ptr %41, align 8, !tbaa !9
  %2404 = getelementptr inbounds float, ptr %2402, i64 %2403
  %2405 = load float, ptr %2404, align 4, !tbaa !11
  %2406 = fpext float %2405 to double
  %2407 = load ptr, ptr %16, align 8, !tbaa !5
  %2408 = load i64, ptr %41, align 8, !tbaa !9
  %2409 = load i64, ptr %24, align 8, !tbaa !9
  %2410 = mul nsw i64 %2408, %2409
  %2411 = add nsw i64 %2410, 1
  %2412 = getelementptr inbounds float, ptr %2407, i64 %2411
  %2413 = load ptr, ptr %21, align 8, !tbaa !5
  %2414 = getelementptr inbounds float, ptr %2413, i64 1
  %2415 = call double @f2c_sdot(ptr noundef %27, ptr noundef %2412, ptr noundef @c__1, ptr noundef %2414, ptr noundef @c__1)
  %2416 = fsub double %2406, %2415
  %2417 = fptrunc double %2416 to float
  %2418 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 1
  store float %2417, ptr %2418, align 4, !tbaa !11
  %2419 = load i64, ptr %40, align 8, !tbaa !9
  %2420 = sub nsw i64 %2419, 1
  store i64 %2420, ptr %27, align 8, !tbaa !9
  %2421 = load ptr, ptr %21, align 8, !tbaa !5
  %2422 = load ptr, ptr %15, align 8, !tbaa !5
  %2423 = load i64, ptr %2422, align 8, !tbaa !9
  %2424 = load i64, ptr %40, align 8, !tbaa !9
  %2425 = add nsw i64 %2423, %2424
  %2426 = getelementptr inbounds float, ptr %2421, i64 %2425
  %2427 = load float, ptr %2426, align 4, !tbaa !11
  %2428 = fpext float %2427 to double
  %2429 = load ptr, ptr %16, align 8, !tbaa !5
  %2430 = load i64, ptr %40, align 8, !tbaa !9
  %2431 = load i64, ptr %24, align 8, !tbaa !9
  %2432 = mul nsw i64 %2430, %2431
  %2433 = add nsw i64 %2432, 1
  %2434 = getelementptr inbounds float, ptr %2429, i64 %2433
  %2435 = load ptr, ptr %21, align 8, !tbaa !5
  %2436 = load ptr, ptr %15, align 8, !tbaa !5
  %2437 = load i64, ptr %2436, align 8, !tbaa !9
  %2438 = add nsw i64 %2437, 1
  %2439 = getelementptr inbounds float, ptr %2435, i64 %2438
  %2440 = call double @f2c_sdot(ptr noundef %27, ptr noundef %2434, ptr noundef @c__1, ptr noundef %2439, ptr noundef @c__1)
  %2441 = fsub double %2428, %2440
  %2442 = fptrunc double %2441 to float
  %2443 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 2
  store float %2442, ptr %2443, align 8, !tbaa !11
  %2444 = load i64, ptr %40, align 8, !tbaa !9
  %2445 = sub nsw i64 %2444, 1
  store i64 %2445, ptr %27, align 8, !tbaa !9
  %2446 = load ptr, ptr %21, align 8, !tbaa !5
  %2447 = load ptr, ptr %15, align 8, !tbaa !5
  %2448 = load i64, ptr %2447, align 8, !tbaa !9
  %2449 = load i64, ptr %41, align 8, !tbaa !9
  %2450 = add nsw i64 %2448, %2449
  %2451 = getelementptr inbounds float, ptr %2446, i64 %2450
  %2452 = load float, ptr %2451, align 4, !tbaa !11
  %2453 = fpext float %2452 to double
  %2454 = load ptr, ptr %16, align 8, !tbaa !5
  %2455 = load i64, ptr %41, align 8, !tbaa !9
  %2456 = load i64, ptr %24, align 8, !tbaa !9
  %2457 = mul nsw i64 %2455, %2456
  %2458 = add nsw i64 %2457, 1
  %2459 = getelementptr inbounds float, ptr %2454, i64 %2458
  %2460 = load ptr, ptr %21, align 8, !tbaa !5
  %2461 = load ptr, ptr %15, align 8, !tbaa !5
  %2462 = load i64, ptr %2461, align 8, !tbaa !9
  %2463 = add nsw i64 %2462, 1
  %2464 = getelementptr inbounds float, ptr %2460, i64 %2463
  %2465 = call double @f2c_sdot(ptr noundef %27, ptr noundef %2459, ptr noundef @c__1, ptr noundef %2464, ptr noundef @c__1)
  %2466 = fsub double %2453, %2465
  %2467 = fptrunc double %2466 to float
  %2468 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 3
  store float %2467, ptr %2468, align 4, !tbaa !11
  %2469 = load ptr, ptr %18, align 8, !tbaa !5
  %2470 = load i64, ptr %40, align 8, !tbaa !9
  %2471 = getelementptr inbounds float, ptr %2469, i64 %2470
  %2472 = load float, ptr %2471, align 4, !tbaa !11
  %2473 = load ptr, ptr %21, align 8, !tbaa !5
  %2474 = load ptr, ptr %15, align 8, !tbaa !5
  %2475 = load i64, ptr %2474, align 8, !tbaa !9
  %2476 = add nsw i64 %2475, 1
  %2477 = getelementptr inbounds float, ptr %2473, i64 %2476
  %2478 = load float, ptr %2477, align 4, !tbaa !11
  %2479 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 0
  %2480 = load float, ptr %2479, align 16, !tbaa !11
  %2481 = fneg float %2472
  %2482 = call float @llvm.fmuladd.f32(float %2481, float %2478, float %2480)
  store float %2482, ptr %2479, align 16, !tbaa !11
  %2483 = load ptr, ptr %18, align 8, !tbaa !5
  %2484 = load i64, ptr %41, align 8, !tbaa !9
  %2485 = getelementptr inbounds float, ptr %2483, i64 %2484
  %2486 = load float, ptr %2485, align 4, !tbaa !11
  %2487 = load ptr, ptr %21, align 8, !tbaa !5
  %2488 = load ptr, ptr %15, align 8, !tbaa !5
  %2489 = load i64, ptr %2488, align 8, !tbaa !9
  %2490 = add nsw i64 %2489, 1
  %2491 = getelementptr inbounds float, ptr %2487, i64 %2490
  %2492 = load float, ptr %2491, align 4, !tbaa !11
  %2493 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 1
  %2494 = load float, ptr %2493, align 4, !tbaa !11
  %2495 = fneg float %2486
  %2496 = call float @llvm.fmuladd.f32(float %2495, float %2492, float %2494)
  store float %2496, ptr %2493, align 4, !tbaa !11
  %2497 = load ptr, ptr %18, align 8, !tbaa !5
  %2498 = load i64, ptr %40, align 8, !tbaa !9
  %2499 = getelementptr inbounds float, ptr %2497, i64 %2498
  %2500 = load float, ptr %2499, align 4, !tbaa !11
  %2501 = load ptr, ptr %21, align 8, !tbaa !5
  %2502 = getelementptr inbounds float, ptr %2501, i64 1
  %2503 = load float, ptr %2502, align 4, !tbaa !11
  %2504 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 2
  %2505 = load float, ptr %2504, align 8, !tbaa !11
  %2506 = call float @llvm.fmuladd.f32(float %2500, float %2503, float %2505)
  store float %2506, ptr %2504, align 8, !tbaa !11
  %2507 = load ptr, ptr %18, align 8, !tbaa !5
  %2508 = load i64, ptr %41, align 8, !tbaa !9
  %2509 = getelementptr inbounds float, ptr %2507, i64 %2508
  %2510 = load float, ptr %2509, align 4, !tbaa !11
  %2511 = load ptr, ptr %21, align 8, !tbaa !5
  %2512 = getelementptr inbounds float, ptr %2511, i64 1
  %2513 = load float, ptr %2512, align 4, !tbaa !11
  %2514 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 3
  %2515 = load float, ptr %2514, align 4, !tbaa !11
  %2516 = call float @llvm.fmuladd.f32(float %2510, float %2513, float %2515)
  store float %2516, ptr %2514, align 4, !tbaa !11
  %2517 = load ptr, ptr %16, align 8, !tbaa !5
  %2518 = load i64, ptr %40, align 8, !tbaa !9
  %2519 = load i64, ptr %40, align 8, !tbaa !9
  %2520 = load i64, ptr %24, align 8, !tbaa !9
  %2521 = mul nsw i64 %2519, %2520
  %2522 = add nsw i64 %2518, %2521
  %2523 = getelementptr inbounds float, ptr %2517, i64 %2522
  %2524 = load ptr, ptr %17, align 8, !tbaa !5
  %2525 = getelementptr inbounds [4 x float], ptr %34, i64 0, i64 0
  %2526 = load ptr, ptr %19, align 8, !tbaa !5
  %2527 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %2528 = call i32 @slaln2_(ptr noundef @c_true, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %55, ptr noundef @c_b21, ptr noundef %2523, ptr noundef %2524, ptr noundef @c_b21, ptr noundef @c_b21, ptr noundef %2525, ptr noundef @c__2, ptr noundef @c_b25, ptr noundef %2526, ptr noundef %2527, ptr noundef @c__2, ptr noundef %57, ptr noundef %56, ptr noundef %51)
  %2529 = load i64, ptr %51, align 8, !tbaa !9
  %2530 = icmp ne i64 %2529, 0
  br i1 %2530, label %2531, label %2533

2531:                                             ; preds = %2380
  %2532 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 2, ptr %2532, align 8, !tbaa !9
  br label %2533

2533:                                             ; preds = %2531, %2380
  %2534 = load float, ptr %57, align 4, !tbaa !11
  %2535 = fcmp une float %2534, 1.000000e+00
  br i1 %2535, label %2536, label %2545

2536:                                             ; preds = %2533
  %2537 = load ptr, ptr %21, align 8, !tbaa !5
  %2538 = getelementptr inbounds float, ptr %2537, i64 1
  %2539 = call i32 @f2c_sscal(ptr noundef %43, ptr noundef %57, ptr noundef %2538, ptr noundef @c__1)
  %2540 = load float, ptr %57, align 4, !tbaa !11
  %2541 = load ptr, ptr %20, align 8, !tbaa !5
  %2542 = load float, ptr %2541, align 4, !tbaa !11
  %2543 = fmul float %2540, %2542
  %2544 = load ptr, ptr %20, align 8, !tbaa !5
  store float %2543, ptr %2544, align 4, !tbaa !11
  br label %2545

2545:                                             ; preds = %2536, %2533
  %2546 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 0
  %2547 = load float, ptr %2546, align 16, !tbaa !11
  %2548 = load ptr, ptr %21, align 8, !tbaa !5
  %2549 = load i64, ptr %40, align 8, !tbaa !9
  %2550 = getelementptr inbounds float, ptr %2548, i64 %2549
  store float %2547, ptr %2550, align 4, !tbaa !11
  %2551 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 1
  %2552 = load float, ptr %2551, align 4, !tbaa !11
  %2553 = load ptr, ptr %21, align 8, !tbaa !5
  %2554 = load i64, ptr %41, align 8, !tbaa !9
  %2555 = getelementptr inbounds float, ptr %2553, i64 %2554
  store float %2552, ptr %2555, align 4, !tbaa !11
  %2556 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 2
  %2557 = load float, ptr %2556, align 8, !tbaa !11
  %2558 = load ptr, ptr %21, align 8, !tbaa !5
  %2559 = load ptr, ptr %15, align 8, !tbaa !5
  %2560 = load i64, ptr %2559, align 8, !tbaa !9
  %2561 = load i64, ptr %40, align 8, !tbaa !9
  %2562 = add nsw i64 %2560, %2561
  %2563 = getelementptr inbounds float, ptr %2558, i64 %2562
  store float %2557, ptr %2563, align 4, !tbaa !11
  %2564 = getelementptr inbounds [4 x float], ptr %38, i64 0, i64 3
  %2565 = load float, ptr %2564, align 4, !tbaa !11
  %2566 = load ptr, ptr %21, align 8, !tbaa !5
  %2567 = load ptr, ptr %15, align 8, !tbaa !5
  %2568 = load i64, ptr %2567, align 8, !tbaa !9
  %2569 = load i64, ptr %41, align 8, !tbaa !9
  %2570 = add nsw i64 %2568, %2569
  %2571 = getelementptr inbounds float, ptr %2566, i64 %2570
  store float %2565, ptr %2571, align 4, !tbaa !11
  %2572 = load ptr, ptr %21, align 8, !tbaa !5
  %2573 = load i64, ptr %40, align 8, !tbaa !9
  %2574 = getelementptr inbounds float, ptr %2572, i64 %2573
  %2575 = load float, ptr %2574, align 4, !tbaa !11
  store float %2575, ptr %28, align 4, !tbaa !11
  %2576 = load float, ptr %28, align 4, !tbaa !11
  %2577 = fcmp oge float %2576, 0.000000e+00
  br i1 %2577, label %2578, label %2580

2578:                                             ; preds = %2545
  %2579 = load float, ptr %28, align 4, !tbaa !11
  br label %2583

2580:                                             ; preds = %2545
  %2581 = load float, ptr %28, align 4, !tbaa !11
  %2582 = fneg float %2581
  br label %2583

2583:                                             ; preds = %2580, %2578
  %2584 = phi float [ %2579, %2578 ], [ %2582, %2580 ]
  %2585 = fpext float %2584 to double
  %2586 = load ptr, ptr %21, align 8, !tbaa !5
  %2587 = load ptr, ptr %15, align 8, !tbaa !5
  %2588 = load i64, ptr %2587, align 8, !tbaa !9
  %2589 = load i64, ptr %40, align 8, !tbaa !9
  %2590 = add nsw i64 %2588, %2589
  %2591 = getelementptr inbounds float, ptr %2586, i64 %2590
  %2592 = load float, ptr %2591, align 4, !tbaa !11
  store float %2592, ptr %29, align 4, !tbaa !11
  %2593 = load float, ptr %29, align 4, !tbaa !11
  %2594 = fcmp oge float %2593, 0.000000e+00
  br i1 %2594, label %2595, label %2597

2595:                                             ; preds = %2583
  %2596 = load float, ptr %29, align 4, !tbaa !11
  br label %2600

2597:                                             ; preds = %2583
  %2598 = load float, ptr %29, align 4, !tbaa !11
  %2599 = fneg float %2598
  br label %2600

2600:                                             ; preds = %2597, %2595
  %2601 = phi float [ %2596, %2595 ], [ %2599, %2597 ]
  %2602 = fpext float %2601 to double
  %2603 = fadd double %2585, %2602
  %2604 = fptrunc double %2603 to float
  store float %2604, ptr %32, align 4, !tbaa !11
  %2605 = load ptr, ptr %21, align 8, !tbaa !5
  %2606 = load i64, ptr %41, align 8, !tbaa !9
  %2607 = getelementptr inbounds float, ptr %2605, i64 %2606
  %2608 = load float, ptr %2607, align 4, !tbaa !11
  store float %2608, ptr %30, align 4, !tbaa !11
  %2609 = load float, ptr %30, align 4, !tbaa !11
  %2610 = fcmp oge float %2609, 0.000000e+00
  br i1 %2610, label %2611, label %2613

2611:                                             ; preds = %2600
  %2612 = load float, ptr %30, align 4, !tbaa !11
  br label %2616

2613:                                             ; preds = %2600
  %2614 = load float, ptr %30, align 4, !tbaa !11
  %2615 = fneg float %2614
  br label %2616

2616:                                             ; preds = %2613, %2611
  %2617 = phi float [ %2612, %2611 ], [ %2615, %2613 ]
  %2618 = fpext float %2617 to double
  %2619 = load ptr, ptr %21, align 8, !tbaa !5
  %2620 = load ptr, ptr %15, align 8, !tbaa !5
  %2621 = load i64, ptr %2620, align 8, !tbaa !9
  %2622 = load i64, ptr %41, align 8, !tbaa !9
  %2623 = add nsw i64 %2621, %2622
  %2624 = getelementptr inbounds float, ptr %2619, i64 %2623
  %2625 = load float, ptr %2624, align 4, !tbaa !11
  store float %2625, ptr %31, align 4, !tbaa !11
  %2626 = load float, ptr %31, align 4, !tbaa !11
  %2627 = fcmp oge float %2626, 0.000000e+00
  br i1 %2627, label %2628, label %2630

2628:                                             ; preds = %2616
  %2629 = load float, ptr %31, align 4, !tbaa !11
  br label %2633

2630:                                             ; preds = %2616
  %2631 = load float, ptr %31, align 4, !tbaa !11
  %2632 = fneg float %2631
  br label %2633

2633:                                             ; preds = %2630, %2628
  %2634 = phi float [ %2629, %2628 ], [ %2632, %2630 ]
  %2635 = fpext float %2634 to double
  %2636 = fadd double %2618, %2635
  %2637 = fptrunc double %2636 to float
  store float %2637, ptr %33, align 4, !tbaa !11
  %2638 = load float, ptr %32, align 4, !tbaa !11
  %2639 = load float, ptr %33, align 4, !tbaa !11
  %2640 = fcmp oge float %2638, %2639
  br i1 %2640, label %2641, label %2643

2641:                                             ; preds = %2633
  %2642 = load float, ptr %32, align 4, !tbaa !11
  br label %2645

2643:                                             ; preds = %2633
  %2644 = load float, ptr %33, align 4, !tbaa !11
  br label %2645

2645:                                             ; preds = %2643, %2641
  %2646 = phi float [ %2642, %2641 ], [ %2644, %2643 ]
  store float %2646, ptr %32, align 4, !tbaa !11
  %2647 = load float, ptr %32, align 4, !tbaa !11
  %2648 = load float, ptr %53, align 4, !tbaa !11
  %2649 = fcmp oge float %2647, %2648
  br i1 %2649, label %2650, label %2652

2650:                                             ; preds = %2645
  %2651 = load float, ptr %32, align 4, !tbaa !11
  br label %2654

2652:                                             ; preds = %2645
  %2653 = load float, ptr %53, align 4, !tbaa !11
  br label %2654

2654:                                             ; preds = %2652, %2650
  %2655 = phi float [ %2651, %2650 ], [ %2653, %2652 ]
  %2656 = fpext float %2655 to double
  %2657 = fptrunc double %2656 to float
  store float %2657, ptr %53, align 4, !tbaa !11
  br label %2658

2658:                                             ; preds = %2654, %2256
  br label %2659

2659:                                             ; preds = %2658, %1912
  br label %2660

2660:                                             ; preds = %2659
  %2661 = load i64, ptr %36, align 8, !tbaa !9
  %2662 = add nsw i64 %2661, 1
  store i64 %2662, ptr %36, align 8, !tbaa !9
  br label %1904, !llvm.loop !21

2663:                                             ; preds = %1904
  br label %2664

2664:                                             ; preds = %2663, %1900
  br label %2665

2665:                                             ; preds = %2664, %1109
  store i32 0, ptr %12, align 4
  store i32 1, ptr %61, align 4
  br label %2666

2666:                                             ; preds = %2665, %86
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 8, 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 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 16, 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 16, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  %2667 = load i32, ptr %12, align 4
  ret i32 %2667
}

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

; 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 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}


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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c_false = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@c_b21 = external hidden global float, align 4
@c_b25 = external hidden global float, align 4
@c_true = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @slaqtr_(ptr nocapture noundef readonly %0, ptr nocapture noundef readonly %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr nocapture noundef %9, ptr nocapture noundef writeonly %10) local_unnamed_addr #0 {
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca float, align 4
  %15 = alloca [4 x float], align 16
  %16 = alloca [4 x float], align 16
  %17 = alloca float, align 4
  %18 = alloca i64, align 8
  %19 = alloca i64, align 8
  %20 = alloca float, align 4
  %21 = alloca float, align 4
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca i64, align 8
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 8, 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 4, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %28) #5
  %29 = load i64, ptr %4, align 8, !tbaa !5
  %30 = xor i64 %29, -1
  %31 = getelementptr inbounds float, ptr %3, i64 %30
  %32 = getelementptr inbounds i8, ptr %5, i64 -4
  %33 = getelementptr inbounds i8, ptr %8, i64 -4
  %34 = getelementptr inbounds i8, ptr %9, i64 -4
  %35 = load i64, ptr %0, align 8, !tbaa !5
  %.not = icmp eq i64 %35, 0
  store i64 0, ptr %10, align 8, !tbaa !5
  %36 = load i64, ptr %2, align 8, !tbaa !5
  %37 = icmp eq i64 %36, 0
  br i1 %37, label %.loopexit908, label %38

38:                                               ; preds = %11
  %39 = tail call double @slamch_(ptr noundef nonnull @.str) #5
  %40 = fptrunc double %39 to float
  %41 = tail call double @slamch_(ptr noundef nonnull @.str.1) #5
  %42 = fpext float %40 to double
  %43 = fdiv double %41, %42
  %44 = fptrunc double %43 to float
  %45 = fdiv float 1.000000e+00, %44
  %46 = call double @slange_(ptr noundef nonnull @.str.2, ptr noundef nonnull %2, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull %4, ptr noundef nonnull %15) #5
  %47 = fptrunc double %46 to float
  store float %47, ptr %27, align 4, !tbaa !9
  %48 = load i64, ptr %1, align 8, !tbaa !5
  %.not854 = icmp eq i64 %48, 0
  br i1 %.not854, label %49, label %61

49:                                               ; preds = %38
  %50 = load float, ptr %6, align 4, !tbaa !9
  %51 = fcmp ult float %50, 0.000000e+00
  %52 = fneg float %50
  %53 = select i1 %51, float %52, float %50
  %54 = fcmp ole float %53, %47
  %55 = select i1 %54, float %47, float %53
  store float %55, ptr %14, align 4, !tbaa !9
  %56 = call double @slange_(ptr noundef nonnull @.str.2, ptr noundef nonnull %2, ptr noundef nonnull @c__1, ptr noundef %5, ptr noundef nonnull %2, ptr noundef nonnull %15) #5
  %57 = fptrunc double %56 to float
  %58 = load float, ptr %14, align 4
  %59 = fcmp oge float %58, %57
  %60 = select i1 %59, float %58, float %57
  store float %60, ptr %27, align 4, !tbaa !9
  br label %61

61:                                               ; preds = %49, %38
  %62 = phi float [ %60, %49 ], [ %47, %38 ]
  %63 = fmul float %62, %40
  %64 = fcmp ole float %63, %44
  %65 = select i1 %64, float %44, float %63
  store float %65, ptr %25, align 4, !tbaa !9
  store float 0.000000e+00, ptr %9, align 4, !tbaa !9
  %66 = load i64, ptr %2, align 8, !tbaa !5
  store i64 %66, ptr %12, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %31, i64 4
  %.not855912 = icmp slt i64 %66, 2
  br i1 %.not855912, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %61, %.lr.ph
  %.0826913 = phi i64 [ %72, %.lr.ph ], [ 2, %61 ]
  %67 = add nsw i64 %.0826913, -1
  store i64 %67, ptr %13, align 8, !tbaa !5
  %68 = mul nsw i64 %.0826913, %29
  %gep = getelementptr float, ptr %invariant.gep, i64 %68
  %69 = call double @f2c_sasum(ptr noundef nonnull %13, ptr noundef %gep, ptr noundef nonnull @c__1) #5
  %70 = fptrunc double %69 to float
  %71 = getelementptr inbounds float, ptr %34, i64 %.0826913
  store float %70, ptr %71, align 4, !tbaa !9
  %72 = add nuw nsw i64 %.0826913, 1
  %73 = load i64, ptr %12, align 8, !tbaa !5
  %.not855.not = icmp slt i64 %.0826913, %73
  br i1 %.not855.not, label %.lr.ph, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph, %61
  %74 = load i64, ptr %1, align 8, !tbaa !5
  %.not856 = icmp eq i64 %74, 0
  %75 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %.not856, label %77, label %.thread

.thread:                                          ; preds = %._crit_edge
  %76 = shl i64 %75, 1
  br label %124

77:                                               ; preds = %._crit_edge
  store i64 %75, ptr %12, align 8, !tbaa !5
  %.not857914 = icmp slt i64 %75, 2
  br i1 %.not857914, label %._crit_edge918, label %.lr.ph917.preheader

.lr.ph917.preheader:                              ; preds = %77
  %78 = add nsw i64 %75, -1
  %min.iters.check = icmp ult i64 %75, 9
  br i1 %min.iters.check, label %.lr.ph917.preheader1039, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph917.preheader
  %scevgep = getelementptr i8, ptr %9, i64 4
  %79 = shl i64 %75, 2
  %scevgep1027 = getelementptr i8, ptr %9, i64 %79
  %scevgep1028 = getelementptr i8, ptr %5, i64 4
  %scevgep1029 = getelementptr i8, ptr %5, i64 %79
  %bound0 = icmp ult ptr %scevgep, %scevgep1029
  %bound1 = icmp ult ptr %scevgep1028, %scevgep1027
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %.lr.ph917.preheader1039, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %78, -8
  %ind.end = or disjoint i64 %n.vec, 2
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 2
  %80 = getelementptr inbounds float, ptr %32, i64 %offset.idx
  %81 = getelementptr inbounds i8, ptr %80, i64 16
  %wide.load = load <4 x float>, ptr %80, align 4, !tbaa !9, !alias.scope !13
  %wide.load1030 = load <4 x float>, ptr %81, align 4, !tbaa !9, !alias.scope !13
  %82 = fcmp oge <4 x float> %wide.load, zeroinitializer
  %83 = fcmp oge <4 x float> %wide.load1030, zeroinitializer
  %84 = fneg <4 x float> %wide.load
  %85 = fneg <4 x float> %wide.load1030
  %86 = select <4 x i1> %82, <4 x float> %wide.load, <4 x float> %84
  %87 = select <4 x i1> %83, <4 x float> %wide.load1030, <4 x float> %85
  %88 = getelementptr inbounds float, ptr %34, i64 %offset.idx
  %89 = getelementptr inbounds i8, ptr %88, i64 16
  %wide.load1031 = load <4 x float>, ptr %88, align 4, !tbaa !9, !alias.scope !16, !noalias !13
  %wide.load1032 = load <4 x float>, ptr %89, align 4, !tbaa !9, !alias.scope !16, !noalias !13
  %90 = fadd <4 x float> %wide.load1031, %86
  %91 = fadd <4 x float> %wide.load1032, %87
  store <4 x float> %90, ptr %88, align 4, !tbaa !9, !alias.scope !16, !noalias !13
  store <4 x float> %91, ptr %89, align 4, !tbaa !9, !alias.scope !16, !noalias !13
  %index.next = add nuw i64 %index, 8
  %92 = icmp eq i64 %index.next, %n.vec
  br i1 %92, label %middle.block, label %vector.body, !llvm.loop !18

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %78, %n.vec
  br i1 %cmp.n, label %._crit_edge918, label %.lr.ph917.preheader1039

.lr.ph917.preheader1039:                          ; preds = %middle.block, %vector.memcheck, %.lr.ph917.preheader
  %.0831915.ph = phi i64 [ 2, %vector.memcheck ], [ 2, %.lr.ph917.preheader ], [ %ind.end, %middle.block ]
  %93 = add i64 %75, %.0831915.ph
  %94 = and i64 %93, 1
  %lcmp.mod.not.not = icmp eq i64 %94, 0
  br i1 %lcmp.mod.not.not, label %.lr.ph917.prol, label %.lr.ph917.prol.loopexit

.lr.ph917.prol:                                   ; preds = %.lr.ph917.preheader1039
  %95 = getelementptr inbounds float, ptr %32, i64 %.0831915.ph
  %96 = load float, ptr %95, align 4, !tbaa !9
  %97 = fcmp oge float %96, 0.000000e+00
  %98 = fneg float %96
  %99 = select i1 %97, float %96, float %98
  %100 = getelementptr inbounds float, ptr %34, i64 %.0831915.ph
  %101 = load float, ptr %100, align 4, !tbaa !9
  %102 = fadd float %101, %99
  store float %102, ptr %100, align 4, !tbaa !9
  %103 = add nuw i64 %.0831915.ph, 1
  br label %.lr.ph917.prol.loopexit

.lr.ph917.prol.loopexit:                          ; preds = %.lr.ph917.prol, %.lr.ph917.preheader1039
  %.0831915.unr = phi i64 [ %.0831915.ph, %.lr.ph917.preheader1039 ], [ %103, %.lr.ph917.prol ]
  %104 = icmp eq i64 %75, %.0831915.ph
  br i1 %104, label %._crit_edge918, label %.lr.ph917

.lr.ph917:                                        ; preds = %.lr.ph917.prol.loopexit, %.lr.ph917
  %.0831915 = phi i64 [ %122, %.lr.ph917 ], [ %.0831915.unr, %.lr.ph917.prol.loopexit ]
  %105 = getelementptr inbounds float, ptr %32, i64 %.0831915
  %106 = load float, ptr %105, align 4, !tbaa !9
  %107 = fcmp oge float %106, 0.000000e+00
  %108 = fneg float %106
  %109 = select i1 %107, float %106, float %108
  %110 = getelementptr inbounds float, ptr %34, i64 %.0831915
  %111 = load float, ptr %110, align 4, !tbaa !9
  %112 = fadd float %111, %109
  store float %112, ptr %110, align 4, !tbaa !9
  %113 = add nuw i64 %.0831915, 1
  %114 = getelementptr float, ptr %5, i64 %.0831915
  %115 = load float, ptr %114, align 4, !tbaa !9
  %116 = fcmp oge float %115, 0.000000e+00
  %117 = fneg float %115
  %118 = select i1 %116, float %115, float %117
  %119 = getelementptr float, ptr %9, i64 %.0831915
  %120 = load float, ptr %119, align 4, !tbaa !9
  %121 = fadd float %120, %118
  store float %121, ptr %119, align 4, !tbaa !9
  %122 = add nuw i64 %.0831915, 2
  %exitcond.not.1 = icmp eq i64 %113, %75
  br i1 %exitcond.not.1, label %._crit_edge918, label %.lr.ph917, !llvm.loop !21

._crit_edge918:                                   ; preds = %.lr.ph917.prol.loopexit, %.lr.ph917, %middle.block, %77
  %123 = shl i64 %75, 1
  br label %124

124:                                              ; preds = %._crit_edge918, %.thread
  %storemerge1020 = phi i64 [ %76, %.thread ], [ %123, %._crit_edge918 ]
  %storemerge = phi i64 [ %75, %.thread ], [ %123, %._crit_edge918 ]
  store i64 %storemerge1020, ptr %19, align 8, !tbaa !5
  store i64 %storemerge, ptr %18, align 8
  %125 = call i64 @f2c_isamax(ptr noundef nonnull %18, ptr noundef %8, ptr noundef nonnull @c__1) #5
  %126 = getelementptr inbounds float, ptr %33, i64 %125
  %127 = load float, ptr %126, align 4, !tbaa !9
  store float %127, ptr %14, align 4, !tbaa !9
  %128 = fcmp oge float %127, 0.000000e+00
  %129 = fneg float %127
  %130 = select i1 %128, float %127, float %129
  store float 1.000000e+00, ptr %7, align 4, !tbaa !9
  %131 = fcmp ogt float %130, %45
  br i1 %131, label %132, label %135

132:                                              ; preds = %124
  %133 = fdiv float %45, %130
  store float %133, ptr %7, align 4, !tbaa !9
  %134 = call i32 @f2c_sscal(ptr noundef nonnull %18, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  br label %135

135:                                              ; preds = %132, %124
  %.0804 = phi float [ %45, %132 ], [ %130, %124 ]
  %136 = load i64, ptr %1, align 8, !tbaa !5
  %.not859 = icmp eq i64 %136, 0
  br i1 %.not859, label %419, label %137

137:                                              ; preds = %135
  %138 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %.not, label %139, label %269

139:                                              ; preds = %137
  %140 = icmp sgt i64 %138, 0
  br i1 %140, label %.lr.ph941, label %.loopexit908

.lr.ph941:                                        ; preds = %139, %._crit_edge996
  %.0803939 = phi i64 [ %.2, %._crit_edge996 ], [ %138, %139 ]
  %.1805938 = phi float [ %.3807, %._crit_edge996 ], [ %.0804, %139 ]
  %.1827937 = phi i64 [ %.pre1003, %._crit_edge996 ], [ %138, %139 ]
  %141 = icmp sgt i64 %.1827937, %.0803939
  %.pre1003 = add nsw i64 %.1827937, -1
  br i1 %141, label %._crit_edge996, label %142

142:                                              ; preds = %.lr.ph941
  %.not868 = icmp eq i64 %.1827937, 1
  br i1 %.not868, label %.thread877, label %143

143:                                              ; preds = %142
  %144 = mul nsw i64 %.pre1003, %29
  %145 = getelementptr float, ptr %31, i64 %.1827937
  %146 = getelementptr float, ptr %145, i64 %144
  %147 = load float, ptr %146, align 4, !tbaa !9
  %148 = fcmp une float %147, 0.000000e+00
  br i1 %148, label %.thread882, label %.thread877

.thread882:                                       ; preds = %143
  %149 = add nsw i64 %.1827937, -2
  %150 = getelementptr inbounds float, ptr %33, i64 %.pre1003
  %151 = getelementptr inbounds float, ptr %33, i64 %.1827937
  %152 = load <2 x float>, ptr %150, align 4, !tbaa !9
  store <2 x float> %152, ptr %15, align 16, !tbaa !9
  %153 = getelementptr float, ptr %31, i64 %.pre1003
  %154 = getelementptr float, ptr %153, i64 %144
  %155 = call i32 @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull @c_b21, ptr noundef %154, ptr noundef nonnull %4, ptr noundef nonnull @c_b21, ptr noundef nonnull @c_b21, ptr noundef nonnull %15, ptr noundef nonnull @c__2, ptr noundef nonnull @c_b25, ptr noundef nonnull @c_b25, ptr noundef nonnull %16, ptr noundef nonnull @c__2, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull %24) #5
  %156 = load i64, ptr %24, align 8, !tbaa !5
  %.not869 = icmp eq i64 %156, 0
  br i1 %.not869, label %218, label %217

.thread877:                                       ; preds = %142, %143
  %.1881 = phi i64 [ %.pre1003, %143 ], [ 0, %142 ]
  %157 = getelementptr inbounds float, ptr %33, i64 %.1827937
  %158 = load float, ptr %157, align 4, !tbaa !9
  %159 = fcmp oge float %158, 0.000000e+00
  %160 = fneg float %158
  %161 = select i1 %159, float %158, float %160
  %162 = mul nsw i64 %.1827937, %29
  %163 = getelementptr float, ptr %31, i64 %.1827937
  %164 = getelementptr float, ptr %163, i64 %162
  %165 = load float, ptr %164, align 4, !tbaa !9
  store float %165, ptr %14, align 4, !tbaa !9
  %166 = fcmp oge float %165, 0.000000e+00
  %167 = fneg float %165
  %168 = select i1 %166, float %165, float %167
  store float %165, ptr %23, align 4, !tbaa !9
  %169 = load float, ptr %25, align 4, !tbaa !9
  %170 = fcmp olt float %168, %169
  br i1 %170, label %171, label %172

171:                                              ; preds = %.thread877
  store float %169, ptr %23, align 4, !tbaa !9
  store i64 1, ptr %10, align 8, !tbaa !5
  br label %172

172:                                              ; preds = %171, %.thread877
  %173 = phi float [ %169, %171 ], [ %165, %.thread877 ]
  %.0816 = phi float [ %169, %171 ], [ %168, %.thread877 ]
  %174 = fcmp oeq float %158, 0.000000e+00
  br i1 %174, label %._crit_edge996, label %175

175:                                              ; preds = %172
  %176 = fcmp olt float %.0816, 1.000000e+00
  %177 = fmul float %45, %.0816
  %178 = fcmp ogt float %161, %177
  %or.cond = select i1 %176, i1 %178, i1 false
  br i1 %or.cond, label %179, label %186

179:                                              ; preds = %175
  %180 = fdiv float 1.000000e+00, %161
  store float %180, ptr %22, align 4, !tbaa !9
  %181 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %182 = load float, ptr %22, align 4, !tbaa !9
  %183 = load float, ptr %7, align 4, !tbaa !9
  %184 = fmul float %182, %183
  store float %184, ptr %7, align 4, !tbaa !9
  %185 = fmul float %.1805938, %182
  %.pre988 = load float, ptr %23, align 4, !tbaa !9
  %.pre989 = load float, ptr %157, align 4, !tbaa !9
  br label %186

186:                                              ; preds = %179, %175
  %187 = phi float [ %.pre989, %179 ], [ %158, %175 ]
  %188 = phi float [ %.pre988, %179 ], [ %173, %175 ]
  %.2806 = phi float [ %185, %179 ], [ %.1805938, %175 ]
  %189 = fdiv float %187, %188
  store float %189, ptr %157, align 4, !tbaa !9
  store float %189, ptr %14, align 4, !tbaa !9
  %190 = fcmp oge float %189, 0.000000e+00
  %191 = fneg float %189
  %192 = select i1 %190, float %189, float %191
  %193 = fcmp ogt float %192, 1.000000e+00
  br i1 %193, label %194, label %206

194:                                              ; preds = %186
  %195 = fdiv float 1.000000e+00, %192
  store float %195, ptr %22, align 4, !tbaa !9
  %196 = getelementptr inbounds float, ptr %34, i64 %.1827937
  %197 = load float, ptr %196, align 4, !tbaa !9
  %198 = fsub float %45, %.2806
  %199 = fmul float %198, %195
  %200 = fcmp ogt float %197, %199
  br i1 %200, label %201, label %206

201:                                              ; preds = %194
  %202 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %203 = load float, ptr %22, align 4, !tbaa !9
  %204 = load float, ptr %7, align 4, !tbaa !9
  %205 = fmul float %203, %204
  store float %205, ptr %7, align 4, !tbaa !9
  br label %206

206:                                              ; preds = %194, %201, %186
  br i1 %.not868, label %.loopexit908, label %207

207:                                              ; preds = %206
  store i64 %.pre1003, ptr %12, align 8, !tbaa !5
  %208 = load float, ptr %157, align 4, !tbaa !9
  %209 = fneg float %208
  store float %209, ptr %14, align 4, !tbaa !9
  %gep936 = getelementptr float, ptr %invariant.gep, i64 %162
  %210 = call i32 @f2c_saxpy(ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef %gep936, ptr noundef nonnull @c__1, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  store i64 %.pre1003, ptr %12, align 8, !tbaa !5
  %211 = call i64 @f2c_isamax(ptr noundef nonnull %12, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %212 = getelementptr inbounds float, ptr %33, i64 %211
  %213 = load float, ptr %212, align 4, !tbaa !9
  store float %213, ptr %14, align 4, !tbaa !9
  %214 = fcmp oge float %213, 0.000000e+00
  %215 = fneg float %213
  %216 = select i1 %214, float %213, float %215
  br label %._crit_edge996

217:                                              ; preds = %.thread882
  store i64 2, ptr %10, align 8, !tbaa !5
  br label %218

218:                                              ; preds = %217, %.thread882
  %219 = load float, ptr %28, align 4, !tbaa !9
  %220 = fcmp une float %219, 1.000000e+00
  br i1 %220, label %221, label %226

221:                                              ; preds = %218
  %222 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %223 = load float, ptr %28, align 4, !tbaa !9
  %224 = load float, ptr %7, align 4, !tbaa !9
  %225 = fmul float %223, %224
  store float %225, ptr %7, align 4, !tbaa !9
  br label %226

226:                                              ; preds = %221, %218
  %227 = load <2 x float>, ptr %16, align 16
  store <2 x float> %227, ptr %150, align 4, !tbaa !9
  %228 = fcmp oge <2 x float> %227, zeroinitializer
  %229 = fneg <2 x float> %227
  %230 = select <2 x i1> %228, <2 x float> %227, <2 x float> %229
  %231 = extractelement <2 x float> %230, i64 0
  store float %231, ptr %14, align 4, !tbaa !9
  %232 = extractelement <2 x float> %230, i64 1
  %233 = fcmp oge float %231, %232
  %234 = select i1 %233, float %231, float %232
  %235 = fcmp ogt float %234, 1.000000e+00
  br i1 %235, label %236, label %252

236:                                              ; preds = %226
  %237 = fdiv float 1.000000e+00, %234
  store float %237, ptr %22, align 4, !tbaa !9
  %238 = getelementptr inbounds float, ptr %34, i64 %.pre1003
  %239 = load float, ptr %238, align 4, !tbaa !9
  store float %239, ptr %14, align 4, !tbaa !9
  %240 = getelementptr inbounds float, ptr %34, i64 %.1827937
  %241 = load float, ptr %240, align 4, !tbaa !9
  %242 = fcmp oge float %239, %241
  %243 = select i1 %242, float %239, float %241
  %244 = fsub float %45, %.1805938
  %245 = fmul float %244, %237
  %246 = fcmp ogt float %243, %245
  br i1 %246, label %247, label %252

247:                                              ; preds = %236
  %248 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %249 = load float, ptr %22, align 4, !tbaa !9
  %250 = load float, ptr %7, align 4, !tbaa !9
  %251 = fmul float %249, %250
  store float %251, ptr %7, align 4, !tbaa !9
  br label %252

252:                                              ; preds = %236, %247, %226
  %253 = icmp ugt i64 %.pre1003, 1
  br i1 %253, label %254, label %._crit_edge996

254:                                              ; preds = %252
  store i64 %149, ptr %12, align 8, !tbaa !5
  %255 = load float, ptr %150, align 4, !tbaa !9
  %256 = fneg float %255
  store float %256, ptr %14, align 4, !tbaa !9
  %gep932 = getelementptr float, ptr %invariant.gep, i64 %144
  %257 = call i32 @f2c_saxpy(ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef %gep932, ptr noundef nonnull @c__1, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  store i64 %149, ptr %12, align 8, !tbaa !5
  %258 = load float, ptr %151, align 4, !tbaa !9
  %259 = fneg float %258
  store float %259, ptr %14, align 4, !tbaa !9
  %260 = mul nsw i64 %.1827937, %29
  %gep934 = getelementptr float, ptr %invariant.gep, i64 %260
  %261 = call i32 @f2c_saxpy(ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef %gep934, ptr noundef nonnull @c__1, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  store i64 %149, ptr %12, align 8, !tbaa !5
  %262 = call i64 @f2c_isamax(ptr noundef nonnull %12, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %263 = getelementptr inbounds float, ptr %33, i64 %262
  %264 = load float, ptr %263, align 4, !tbaa !9
  store float %264, ptr %14, align 4, !tbaa !9
  %265 = fcmp oge float %264, 0.000000e+00
  %266 = fneg float %264
  %267 = select i1 %265, float %264, float %266
  br label %._crit_edge996

._crit_edge996:                                   ; preds = %.lr.ph941, %172, %252, %254, %207
  %.3807 = phi float [ %.1805938, %172 ], [ %.1805938, %252 ], [ %267, %254 ], [ %216, %207 ], [ %.1805938, %.lr.ph941 ]
  %.2 = phi i64 [ %.1881, %172 ], [ %149, %252 ], [ %149, %254 ], [ %.1881, %207 ], [ %.0803939, %.lr.ph941 ]
  %268 = icmp sgt i64 %.1827937, 1
  br i1 %268, label %.lr.ph941, label %.loopexit908, !llvm.loop !22

269:                                              ; preds = %137
  store i64 %138, ptr %12, align 8, !tbaa !5
  %.not866925 = icmp slt i64 %138, 1
  br i1 %.not866925, label %.loopexit908, label %.lr.ph930

.lr.ph930:                                        ; preds = %269
  %270 = getelementptr inbounds i8, ptr %15, i64 4
  %271 = getelementptr inbounds i8, ptr %16, i64 4
  br label %272

272:                                              ; preds = %.lr.ph930, %._crit_edge995
  %.3928 = phi i64 [ 1, %.lr.ph930 ], [ %.5, %._crit_edge995 ]
  %.4808927 = phi float [ %.0804, %.lr.ph930 ], [ %.8812, %._crit_edge995 ]
  %.2828926 = phi i64 [ 1, %.lr.ph930 ], [ %.pre1005, %._crit_edge995 ]
  %273 = icmp slt i64 %.2828926, %.3928
  %.pre1005 = add nuw nsw i64 %.2828926, 1
  br i1 %273, label %._crit_edge995, label %274

274:                                              ; preds = %272
  %275 = load i64, ptr %2, align 8, !tbaa !5
  %276 = icmp slt i64 %.2828926, %275
  br i1 %276, label %277, label %285

277:                                              ; preds = %274
  %278 = mul nsw i64 %.2828926, %29
  %279 = getelementptr float, ptr %31, i64 %.pre1005
  %280 = getelementptr float, ptr %279, i64 %278
  %281 = load float, ptr %280, align 4, !tbaa !9
  %282 = fcmp une float %281, 0.000000e+00
  br i1 %282, label %283, label %285

283:                                              ; preds = %277
  %284 = add nuw nsw i64 %.2828926, 2
  br label %285

285:                                              ; preds = %277, %283, %274
  %.0820 = phi i64 [ %.pre1005, %283 ], [ %.2828926, %277 ], [ %.2828926, %274 ]
  %.4 = phi i64 [ %284, %283 ], [ %.pre1005, %277 ], [ %.pre1005, %274 ]
  %286 = icmp eq i64 %.2828926, %.0820
  %287 = getelementptr inbounds float, ptr %33, i64 %.2828926
  %288 = load float, ptr %287, align 4, !tbaa !9
  store float %288, ptr %14, align 4, !tbaa !9
  br i1 %286, label %289, label %348

289:                                              ; preds = %285
  %290 = fcmp ogt float %.4808927, 1.000000e+00
  br i1 %290, label %291, label %307

291:                                              ; preds = %289
  %292 = fcmp oge float %288, 0.000000e+00
  %293 = fneg float %288
  %294 = select i1 %292, float %288, float %293
  %295 = fdiv float 1.000000e+00, %.4808927
  store float %295, ptr %22, align 4, !tbaa !9
  %296 = getelementptr inbounds float, ptr %34, i64 %.2828926
  %297 = load float, ptr %296, align 4, !tbaa !9
  %298 = fsub float %45, %294
  %299 = fmul float %295, %298
  %300 = fcmp ogt float %297, %299
  br i1 %300, label %301, label %307

301:                                              ; preds = %291
  %302 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %303 = load float, ptr %22, align 4, !tbaa !9
  %304 = load float, ptr %7, align 4, !tbaa !9
  %305 = fmul float %303, %304
  store float %305, ptr %7, align 4, !tbaa !9
  %306 = fmul float %.4808927, %303
  br label %307

307:                                              ; preds = %291, %301, %289
  %.5809 = phi float [ %306, %301 ], [ %.4808927, %291 ], [ %.4808927, %289 ]
  %308 = add nsw i64 %.2828926, -1
  store i64 %308, ptr %13, align 8, !tbaa !5
  %309 = mul nsw i64 %.2828926, %29
  %gep924 = getelementptr float, ptr %invariant.gep, i64 %309
  %310 = call double @f2c_sdot(ptr noundef nonnull %13, ptr noundef %gep924, ptr noundef nonnull @c__1, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %311 = load float, ptr %287, align 4, !tbaa !9
  %312 = fpext float %311 to double
  %313 = fsub double %312, %310
  %314 = fptrunc double %313 to float
  store float %314, ptr %287, align 4, !tbaa !9
  %315 = fcmp oge float %314, 0.000000e+00
  %316 = fneg float %314
  %317 = select i1 %315, float %314, float %316
  %318 = getelementptr float, ptr %31, i64 %.2828926
  %319 = getelementptr float, ptr %318, i64 %309
  %320 = load float, ptr %319, align 4, !tbaa !9
  store float %320, ptr %14, align 4, !tbaa !9
  %321 = fcmp oge float %320, 0.000000e+00
  %322 = fneg float %320
  %323 = select i1 %321, float %320, float %322
  store float %320, ptr %23, align 4, !tbaa !9
  %324 = load float, ptr %25, align 4, !tbaa !9
  %325 = fcmp olt float %323, %324
  br i1 %325, label %326, label %327

326:                                              ; preds = %307
  store float %324, ptr %23, align 4, !tbaa !9
  store i64 1, ptr %10, align 8, !tbaa !5
  br label %327

327:                                              ; preds = %326, %307
  %328 = phi float [ %324, %326 ], [ %320, %307 ]
  %.1817 = phi float [ %324, %326 ], [ %323, %307 ]
  %329 = fcmp olt float %.1817, 1.000000e+00
  %330 = fmul float %45, %.1817
  %331 = fcmp ogt float %317, %330
  %or.cond872 = select i1 %329, i1 %331, i1 false
  br i1 %or.cond872, label %332, label %339

332:                                              ; preds = %327
  %333 = fdiv float 1.000000e+00, %317
  store float %333, ptr %22, align 4, !tbaa !9
  %334 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %335 = load float, ptr %22, align 4, !tbaa !9
  %336 = load float, ptr %7, align 4, !tbaa !9
  %337 = fmul float %335, %336
  store float %337, ptr %7, align 4, !tbaa !9
  %338 = fmul float %.5809, %335
  %.pre986 = load float, ptr %23, align 4, !tbaa !9
  %.pre987 = load float, ptr %287, align 4, !tbaa !9
  br label %339

339:                                              ; preds = %332, %327
  %340 = phi float [ %.pre987, %332 ], [ %314, %327 ]
  %341 = phi float [ %.pre986, %332 ], [ %328, %327 ]
  %.6810 = phi float [ %338, %332 ], [ %.5809, %327 ]
  %342 = fdiv float %340, %341
  store float %342, ptr %287, align 4, !tbaa !9
  store float %342, ptr %14, align 4, !tbaa !9
  %343 = fcmp oge float %342, 0.000000e+00
  %344 = fneg float %342
  %345 = select i1 %343, float %342, float %344
  %346 = fcmp oge float %.6810, %345
  %347 = select i1 %346, float %.6810, float %345
  br label %._crit_edge995

348:                                              ; preds = %285
  %349 = getelementptr inbounds float, ptr %33, i64 %.0820
  %350 = fcmp ogt float %.4808927, 1.000000e+00
  br i1 %350, label %351, label %377

351:                                              ; preds = %348
  %352 = fcmp oge float %288, 0.000000e+00
  %353 = fneg float %288
  %354 = select i1 %352, float %288, float %353
  %355 = load float, ptr %349, align 4, !tbaa !9
  %356 = fcmp oge float %355, 0.000000e+00
  %357 = fneg float %355
  %358 = select i1 %356, float %355, float %357
  %359 = fcmp oge float %354, %358
  %360 = select i1 %359, float %354, float %358
  %361 = fdiv float 1.000000e+00, %.4808927
  store float %361, ptr %22, align 4, !tbaa !9
  %362 = getelementptr inbounds float, ptr %34, i64 %.0820
  %363 = load float, ptr %362, align 4, !tbaa !9
  store float %363, ptr %14, align 4, !tbaa !9
  %364 = getelementptr inbounds float, ptr %34, i64 %.2828926
  %365 = load float, ptr %364, align 4, !tbaa !9
  %366 = fcmp oge float %363, %365
  %367 = select i1 %366, float %363, float %365
  %368 = fsub float %45, %360
  %369 = fmul float %361, %368
  %370 = fcmp ogt float %367, %369
  br i1 %370, label %371, label %377

371:                                              ; preds = %351
  %372 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %22, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %373 = load float, ptr %22, align 4, !tbaa !9
  %374 = load float, ptr %7, align 4, !tbaa !9
  %375 = fmul float %373, %374
  store float %375, ptr %7, align 4, !tbaa !9
  %376 = fmul float %.4808927, %373
  %.pre = load float, ptr %287, align 4, !tbaa !9
  br label %377

377:                                              ; preds = %351, %371, %348
  %378 = phi float [ %.pre, %371 ], [ %288, %351 ], [ %288, %348 ]
  %.7811 = phi float [ %376, %371 ], [ %.4808927, %351 ], [ %.4808927, %348 ]
  %379 = add nsw i64 %.2828926, -1
  store i64 %379, ptr %13, align 8, !tbaa !5
  %380 = fpext float %378 to double
  %381 = mul nsw i64 %.2828926, %29
  %gep920 = getelementptr float, ptr %invariant.gep, i64 %381
  %382 = call double @f2c_sdot(ptr noundef nonnull %13, ptr noundef %gep920, ptr noundef nonnull @c__1, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %383 = fsub double %380, %382
  %384 = fptrunc double %383 to float
  store float %384, ptr %15, align 16, !tbaa !9
  store i64 %379, ptr %13, align 8, !tbaa !5
  %385 = load float, ptr %349, align 4, !tbaa !9
  %386 = fpext float %385 to double
  %387 = mul nsw i64 %.0820, %29
  %gep922 = getelementptr float, ptr %invariant.gep, i64 %387
  %388 = call double @f2c_sdot(ptr noundef nonnull %13, ptr noundef %gep922, ptr noundef nonnull @c__1, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %389 = fsub double %386, %388
  %390 = fptrunc double %389 to float
  store float %390, ptr %270, align 4, !tbaa !9
  %391 = getelementptr float, ptr %31, i64 %.2828926
  %392 = getelementptr float, ptr %391, i64 %381
  %393 = call i32 @slaln2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull @c_b21, ptr noundef %392, ptr noundef nonnull %4, ptr noundef nonnull @c_b21, ptr noundef nonnull @c_b21, ptr noundef nonnull %15, ptr noundef nonnull @c__2, ptr noundef nonnull @c_b25, ptr noundef nonnull @c_b25, ptr noundef nonnull %16, ptr noundef nonnull @c__2, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull %24) #5
  %394 = load i64, ptr %24, align 8, !tbaa !5
  %.not867 = icmp eq i64 %394, 0
  br i1 %.not867, label %396, label %395

395:                                              ; preds = %377
  store i64 2, ptr %10, align 8, !tbaa !5
  br label %396

396:                                              ; preds = %395, %377
  %397 = load float, ptr %28, align 4, !tbaa !9
  %398 = fcmp une float %397, 1.000000e+00
  br i1 %398, label %399, label %404

399:                                              ; preds = %396
  %400 = call i32 @f2c_sscal(ptr noundef nonnull %2, ptr noundef nonnull %28, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %401 = load float, ptr %28, align 4, !tbaa !9
  %402 = load float, ptr %7, align 4, !tbaa !9
  %403 = fmul float %401, %402
  store float %403, ptr %7, align 4, !tbaa !9
  br label %404

404:                                              ; preds = %399, %396
  %405 = load float, ptr %16, align 16, !tbaa !9
  store float %405, ptr %287, align 4, !tbaa !9
  %406 = load float, ptr %271, align 4, !tbaa !9
  store float %406, ptr %349, align 4, !tbaa !9
  %407 = load float, ptr %287, align 4, !tbaa !9
  store float %407, ptr %14, align 4, !tbaa !9
  %408 = fcmp oge float %407, 0.000000e+00
  %409 = fneg float %407
  %410 = select i1 %408, float %407, float %409
  %411 = fcmp oge float %406, 0.000000e+00
  %412 = fneg float %406
  %413 = select i1 %411, float %406, float %412
  %414 = fcmp oge float %410, %413
  %415 = select i1 %414, float %410, float %413
  %416 = fcmp oge float %415, %.7811
  %417 = select i1 %416, float %415, float %.7811
  br label %._crit_edge995

._crit_edge995:                                   ; preds = %272, %404, %339
  %.8812 = phi float [ %417, %404 ], [ %347, %339 ], [ %.4808927, %272 ]
  %.5 = phi i64 [ %.4, %404 ], [ %.4, %339 ], [ %.3928, %272 ]
  %418 = load i64, ptr %12, align 8, !tbaa !5
  %.not866.not = icmp slt i64 %.2828926, %418
  br i1 %.not866.not, label %272, label %.loopexit908, !llvm.loop !23

419:                                              ; preds = %135
  %420 = load float, ptr %6, align 4, !tbaa !9
  %421 = fcmp ult float %420, 0.000000e+00
  %422 = fneg float %420
  %423 = select i1 %421, float %422, float %420
  %424 = fmul float %423, %40
  %425 = load float, ptr %25, align 4
  %426 = fcmp oge float %424, %425
  %427 = select i1 %426, float %424, float %425
  store float %427, ptr %26, align 4, !tbaa !9
  %428 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %.not, label %429, label %681

429:                                              ; preds = %419
  %430 = icmp sgt i64 %428, 0
  br i1 %430, label %.lr.ph978, label %.loopexit908

.lr.ph978:                                        ; preds = %429
  %431 = getelementptr inbounds i8, ptr %16, i64 8
  br label %432

432:                                              ; preds = %.lr.ph978, %.loopexit
  %.6976 = phi i64 [ %428, %.lr.ph978 ], [ %.8, %.loopexit ]
  %.9813975 = phi float [ %.0804, %.lr.ph978 ], [ %.13, %.loopexit ]
  %.3829973 = phi i64 [ %428, %.lr.ph978 ], [ %.pre999, %.loopexit ]
  %433 = icmp sgt i64 %.3829973, %.6976
  %.pre999 = add nsw i64 %.3829973, -1
  br i1 %433, label %.loopexit, label %434

434:                                              ; preds = %432
  %.not862 = icmp eq i64 %.3829973, 1
  br i1 %.not862, label %455, label %435

435:                                              ; preds = %434
  %436 = mul nsw i64 %.pre999, %29
  %437 = getelementptr float, ptr %31, i64 %.3829973
  %438 = getelementptr float, ptr %437, i64 %436
  %439 = load float, ptr %438, align 4, !tbaa !9
  %440 = fcmp une float %439, 0.000000e+00
  %.pre993 = load i64, ptr %2, align 8, !tbaa !5
  br i1 %440, label %.thread892, label %456

.thread892:                                       ; preds = %435
  %441 = add nsw i64 %.3829973, -2
  %442 = getelementptr inbounds float, ptr %33, i64 %.pre999
  %443 = getelementptr inbounds float, ptr %33, i64 %.3829973
  %444 = load <2 x float>, ptr %442, align 4, !tbaa !9
  %445 = getelementptr float, ptr %33, i64 %.pre993
  %446 = getelementptr float, ptr %445, i64 %.pre999
  %447 = load <2 x float>, ptr %446, align 4, !tbaa !9
  %448 = shufflevector <2 x float> %444, <2 x float> %447, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
  store <4 x float> %448, ptr %15, align 16, !tbaa !9
  %449 = load float, ptr %6, align 4, !tbaa !9
  %450 = fneg float %449
  store float %450, ptr %14, align 4, !tbaa !9
  %451 = getelementptr float, ptr %31, i64 %.pre999
  %452 = getelementptr float, ptr %451, i64 %436
  %453 = call i32 @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef nonnull %26, ptr noundef nonnull @c_b21, ptr noundef %452, ptr noundef nonnull %4, ptr noundef nonnull @c_b21, ptr noundef nonnull @c_b21, ptr noundef nonnull %15, ptr noundef nonnull @c__2, ptr noundef nonnull @c_b25, ptr noundef nonnull %14, ptr noundef nonnull %16, ptr noundef nonnull @c__2, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull %24) #5
  %454 = load i64, ptr %24, align 8, !tbaa !5
  %.not863 = icmp eq i64 %454, 0
  br i1 %.not863, label %569, label %568

455:                                              ; preds = %434
  %.pre992 = load i64, ptr %2, align 8, !tbaa !5
  br label %456

456:                                              ; preds = %435, %455
  %457 = phi i64 [ %.pre992, %455 ], [ %.pre993, %435 ]
  %storemerge905.in = phi ptr [ %5, %455 ], [ %6, %435 ]
  %.7891900 = phi i64 [ 0, %455 ], [ %.pre999, %435 ]
  %storemerge905 = load float, ptr %storemerge905.in, align 4, !tbaa !9
  store float %storemerge905, ptr %17, align 4, !tbaa !9
  %458 = getelementptr inbounds float, ptr %33, i64 %.3829973
  %459 = load float, ptr %458, align 4, !tbaa !9
  %460 = fcmp oge float %459, 0.000000e+00
  %461 = fneg float %459
  %462 = select i1 %460, float %459, float %461
  %463 = getelementptr float, ptr %33, i64 %457
  %464 = getelementptr float, ptr %463, i64 %.3829973
  %465 = load float, ptr %464, align 4, !tbaa !9
  %466 = fcmp oge float %465, 0.000000e+00
  %467 = fneg float %465
  %468 = select i1 %466, float %465, float %467
  %469 = fadd float %462, %468
  %470 = mul nsw i64 %.3829973, %29
  %471 = getelementptr float, ptr %31, i64 %.3829973
  %472 = getelementptr float, ptr %471, i64 %470
  %473 = load float, ptr %472, align 4, !tbaa !9
  store float %473, ptr %14, align 4, !tbaa !9
  %474 = fcmp oge float %473, 0.000000e+00
  %475 = fneg float %473
  %476 = select i1 %474, float %473, float %475
  %477 = fcmp oge float %storemerge905, 0.000000e+00
  %478 = fneg float %storemerge905
  %479 = select i1 %477, float %storemerge905, float %478
  %480 = fadd float %476, %479
  store float %473, ptr %23, align 4, !tbaa !9
  %481 = load float, ptr %26, align 4, !tbaa !9
  %482 = fcmp olt float %480, %481
  br i1 %482, label %483, label %484

483:                                              ; preds = %456
  store float %481, ptr %23, align 4, !tbaa !9
  store i64 1, ptr %10, align 8, !tbaa !5
  br label %484

484:                                              ; preds = %483, %456
  %.2818 = phi float [ %481, %483 ], [ %480, %456 ]
  %485 = fcmp oeq float %469, 0.000000e+00
  br i1 %485, label %.loopexit, label %486

486:                                              ; preds = %484
  %487 = fcmp olt float %.2818, 1.000000e+00
  %488 = fmul float %45, %.2818
  %489 = fcmp ogt float %469, %488
  %or.cond874 = select i1 %487, i1 %489, i1 false
  br i1 %or.cond874, label %490, label %497

490:                                              ; preds = %486
  %491 = fdiv float 1.000000e+00, %469
  store float %491, ptr %22, align 4, !tbaa !9
  %492 = call i32 @f2c_sscal(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %493 = load float, ptr %22, align 4, !tbaa !9
  %494 = load float, ptr %7, align 4, !tbaa !9
  %495 = fmul float %493, %494
  store float %495, ptr %7, align 4, !tbaa !9
  %496 = fmul float %.9813975, %493
  br label %497

497:                                              ; preds = %490, %486
  %.10814 = phi float [ %496, %490 ], [ %.9813975, %486 ]
  %498 = load i64, ptr %2, align 8, !tbaa !5
  %499 = getelementptr float, ptr %33, i64 %498
  %500 = getelementptr float, ptr %499, i64 %.3829973
  %501 = call i32 @sladiv_(ptr noundef nonnull %458, ptr noundef %500, ptr noundef nonnull %23, ptr noundef nonnull %17, ptr noundef nonnull %21, ptr noundef nonnull %20) #5
  %502 = load float, ptr %21, align 4, !tbaa !9
  store float %502, ptr %458, align 4, !tbaa !9
  %503 = load float, ptr %20, align 4, !tbaa !9
  %504 = load i64, ptr %2, align 8, !tbaa !5
  %505 = getelementptr float, ptr %33, i64 %504
  %506 = getelementptr float, ptr %505, i64 %.3829973
  store float %503, ptr %506, align 4, !tbaa !9
  %507 = load float, ptr %458, align 4, !tbaa !9
  store float %507, ptr %14, align 4, !tbaa !9
  %508 = fcmp oge float %507, 0.000000e+00
  %509 = fneg float %507
  %510 = select i1 %508, float %507, float %509
  %511 = fcmp oge float %503, 0.000000e+00
  %512 = fneg float %503
  %513 = select i1 %511, float %503, float %512
  %514 = fadd float %513, %510
  %515 = fcmp ogt float %514, 1.000000e+00
  br i1 %515, label %516, label %528

516:                                              ; preds = %497
  %517 = fdiv float 1.000000e+00, %514
  store float %517, ptr %22, align 4, !tbaa !9
  %518 = getelementptr inbounds float, ptr %34, i64 %.3829973
  %519 = load float, ptr %518, align 4, !tbaa !9
  %520 = fsub float %45, %.10814
  %521 = fmul float %520, %517
  %522 = fcmp ogt float %519, %521
  br i1 %522, label %523, label %528

523:                                              ; preds = %516
  %524 = call i32 @f2c_sscal(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %525 = load float, ptr %22, align 4, !tbaa !9
  %526 = load float, ptr %7, align 4, !tbaa !9
  %527 = fmul float %525, %526
  store float %527, ptr %7, align 4, !tbaa !9
  br label %528

528:                                              ; preds = %516, %523, %497
  br i1 %.not862, label %.loopexit908, label %529

529:                                              ; preds = %528
  store i64 %.pre999, ptr %12, align 8, !tbaa !5
  %530 = load float, ptr %458, align 4, !tbaa !9
  %531 = fneg float %530
  store float %531, ptr %14, align 4, !tbaa !9
  %gep972 = getelementptr float, ptr %invariant.gep, i64 %470
  %532 = call i32 @f2c_saxpy(ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef %gep972, ptr noundef nonnull @c__1, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  store i64 %.pre999, ptr %12, align 8, !tbaa !5
  %533 = load i64, ptr %2, align 8, !tbaa !5
  %534 = getelementptr float, ptr %33, i64 %533
  %535 = getelementptr float, ptr %534, i64 %.3829973
  %536 = load float, ptr %535, align 4, !tbaa !9
  %537 = fneg float %536
  store float %537, ptr %14, align 4, !tbaa !9
  %538 = getelementptr float, ptr %8, i64 %533
  %539 = call i32 @f2c_saxpy(ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef %gep972, ptr noundef nonnull @c__1, ptr noundef %538, ptr noundef nonnull @c__1) #5
  %540 = getelementptr inbounds float, ptr %32, i64 %.3829973
  %541 = load float, ptr %540, align 4, !tbaa !9
  %542 = load i64, ptr %2, align 8, !tbaa !5
  %543 = getelementptr float, ptr %33, i64 %542
  %544 = getelementptr float, ptr %543, i64 %.3829973
  %545 = load float, ptr %544, align 4, !tbaa !9
  %546 = load float, ptr %8, align 4, !tbaa !9
  %547 = call float @llvm.fmuladd.f32(float %541, float %545, float %546)
  store float %547, ptr %8, align 4, !tbaa !9
  %548 = load float, ptr %540, align 4, !tbaa !9
  %549 = load float, ptr %458, align 4, !tbaa !9
  %550 = getelementptr float, ptr %8, i64 %542
  %551 = load float, ptr %550, align 4, !tbaa !9
  %552 = fneg float %548
  %553 = call float @llvm.fmuladd.f32(float %552, float %549, float %551)
  store float %553, ptr %550, align 4, !tbaa !9
  store i64 %.pre999, ptr %12, align 8, !tbaa !5
  %.not865.not960 = icmp sgt i64 %.3829973, 1
  br i1 %.not865.not960, label %.lr.ph964, label %.loopexit908

.lr.ph964:                                        ; preds = %529, %.lr.ph964
  %.11815962 = phi float [ %566, %.lr.ph964 ], [ 0.000000e+00, %529 ]
  %.0824961 = phi i64 [ %567, %.lr.ph964 ], [ 1, %529 ]
  %554 = getelementptr inbounds float, ptr %33, i64 %.0824961
  %555 = load float, ptr %554, align 4, !tbaa !9
  %556 = fcmp oge float %555, 0.000000e+00
  %557 = fneg float %555
  %558 = select i1 %556, float %555, float %557
  %559 = getelementptr float, ptr %554, i64 %542
  %560 = load float, ptr %559, align 4, !tbaa !9
  %561 = fcmp oge float %560, 0.000000e+00
  %562 = fneg float %560
  %563 = select i1 %561, float %560, float %562
  %564 = fadd float %558, %563
  %565 = fcmp oge float %.11815962, %564
  %566 = select i1 %565, float %.11815962, float %564
  %567 = add nuw nsw i64 %.0824961, 1
  %.not865.not = icmp slt i64 %567, %.3829973
  br i1 %.not865.not, label %.lr.ph964, label %..loopexit_crit_edge, !llvm.loop !24

568:                                              ; preds = %.thread892
  store i64 2, ptr %10, align 8, !tbaa !5
  br label %569

569:                                              ; preds = %568, %.thread892
  %570 = load float, ptr %28, align 4, !tbaa !9
  %571 = fcmp une float %570, 1.000000e+00
  br i1 %571, label %572, label %579

572:                                              ; preds = %569
  %573 = load i64, ptr %2, align 8, !tbaa !5
  %574 = shl i64 %573, 1
  store i64 %574, ptr %12, align 8, !tbaa !5
  %575 = call i32 @f2c_sscal(ptr noundef nonnull %12, ptr noundef nonnull %28, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %576 = load float, ptr %28, align 4, !tbaa !9
  %577 = load float, ptr %7, align 4, !tbaa !9
  %578 = fmul float %576, %577
  store float %578, ptr %7, align 4, !tbaa !9
  br label %579

579:                                              ; preds = %572, %569
  %580 = load <2 x float>, ptr %16, align 16
  store <2 x float> %580, ptr %442, align 4, !tbaa !9
  %581 = load i64, ptr %2, align 8, !tbaa !5
  %582 = getelementptr float, ptr %33, i64 %581
  %583 = getelementptr float, ptr %582, i64 %.pre999
  %584 = load <2 x float>, ptr %431, align 8
  store <2 x float> %584, ptr %583, align 4, !tbaa !9
  %585 = extractelement <2 x float> %580, i64 0
  %586 = fcmp oge float %585, 0.000000e+00
  %587 = fneg float %585
  %588 = select i1 %586, float %585, float %587
  %589 = extractelement <2 x float> %584, i64 0
  %590 = fcmp oge float %589, 0.000000e+00
  %591 = fneg float %589
  %592 = select i1 %590, float %589, float %591
  %593 = fadd float %588, %592
  store float %593, ptr %14, align 4, !tbaa !9
  %594 = shufflevector <2 x float> %580, <2 x float> %584, <2 x i32> <i32 1, i32 3>
  %595 = fcmp oge <2 x float> %594, zeroinitializer
  %596 = fneg <2 x float> %594
  %597 = select <2 x i1> %595, <2 x float> %594, <2 x float> %596
  %shift = shufflevector <2 x float> %597, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %598 = fadd <2 x float> %597, %shift
  %599 = extractelement <2 x float> %598, i64 0
  %600 = fcmp oge float %593, %599
  %601 = select i1 %600, float %593, float %599
  %602 = fcmp ogt float %601, 1.000000e+00
  br i1 %602, label %603, label %619

603:                                              ; preds = %579
  %604 = fdiv float 1.000000e+00, %601
  store float %604, ptr %22, align 4, !tbaa !9
  %605 = getelementptr inbounds float, ptr %34, i64 %.pre999
  %606 = load float, ptr %605, align 4, !tbaa !9
  store float %606, ptr %14, align 4, !tbaa !9
  %607 = getelementptr inbounds float, ptr %34, i64 %.3829973
  %608 = load float, ptr %607, align 4, !tbaa !9
  %609 = fcmp oge float %606, %608
  %610 = select i1 %609, float %606, float %608
  %611 = fsub float %45, %.9813975
  %612 = fmul float %611, %604
  %613 = fcmp ogt float %610, %612
  br i1 %613, label %614, label %619

614:                                              ; preds = %603
  %615 = call i32 @f2c_sscal(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %616 = load float, ptr %22, align 4, !tbaa !9
  %617 = load float, ptr %7, align 4, !tbaa !9
  %618 = fmul float %616, %617
  store float %618, ptr %7, align 4, !tbaa !9
  br label %619

619:                                              ; preds = %603, %614, %579
  %620 = icmp ugt i64 %.pre999, 1
  br i1 %620, label %621, label %.loopexit

621:                                              ; preds = %619
  store i64 %441, ptr %12, align 8, !tbaa !5
  %622 = load float, ptr %442, align 4, !tbaa !9
  %623 = fneg float %622
  store float %623, ptr %14, align 4, !tbaa !9
  %gep968 = getelementptr float, ptr %invariant.gep, i64 %436
  %624 = call i32 @f2c_saxpy(ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef %gep968, ptr noundef nonnull @c__1, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  store i64 %441, ptr %12, align 8, !tbaa !5
  %625 = load float, ptr %443, align 4, !tbaa !9
  %626 = fneg float %625
  store float %626, ptr %14, align 4, !tbaa !9
  %627 = mul nsw i64 %.3829973, %29
  %gep970 = getelementptr float, ptr %invariant.gep, i64 %627
  %628 = call i32 @f2c_saxpy(ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef %gep970, ptr noundef nonnull @c__1, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  store i64 %441, ptr %12, align 8, !tbaa !5
  %629 = load i64, ptr %2, align 8, !tbaa !5
  %630 = getelementptr float, ptr %33, i64 %629
  %631 = getelementptr float, ptr %630, i64 %.pre999
  %632 = load float, ptr %631, align 4, !tbaa !9
  %633 = fneg float %632
  store float %633, ptr %14, align 4, !tbaa !9
  %634 = getelementptr float, ptr %8, i64 %629
  %635 = call i32 @f2c_saxpy(ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef %gep968, ptr noundef nonnull @c__1, ptr noundef %634, ptr noundef nonnull @c__1) #5
  store i64 %441, ptr %12, align 8, !tbaa !5
  %636 = load i64, ptr %2, align 8, !tbaa !5
  %637 = getelementptr float, ptr %33, i64 %636
  %638 = getelementptr float, ptr %637, i64 %.3829973
  %639 = load float, ptr %638, align 4, !tbaa !9
  %640 = fneg float %639
  store float %640, ptr %14, align 4, !tbaa !9
  %641 = getelementptr float, ptr %8, i64 %636
  %642 = call i32 @f2c_saxpy(ptr noundef nonnull %12, ptr noundef nonnull %14, ptr noundef %gep970, ptr noundef nonnull @c__1, ptr noundef %641, ptr noundef nonnull @c__1) #5
  %643 = load float, ptr %8, align 4, !tbaa !9
  %644 = getelementptr inbounds float, ptr %32, i64 %.pre999
  %645 = load float, ptr %644, align 4, !tbaa !9
  %646 = load i64, ptr %2, align 8, !tbaa !5
  %647 = getelementptr float, ptr %33, i64 %646
  %648 = getelementptr float, ptr %647, i64 %.pre999
  %649 = load float, ptr %648, align 4, !tbaa !9
  %650 = call float @llvm.fmuladd.f32(float %645, float %649, float %643)
  %651 = getelementptr inbounds float, ptr %32, i64 %.3829973
  %652 = load float, ptr %651, align 4, !tbaa !9
  %653 = getelementptr float, ptr %647, i64 %.3829973
  %654 = load float, ptr %653, align 4, !tbaa !9
  %655 = call float @llvm.fmuladd.f32(float %652, float %654, float %650)
  store float %655, ptr %8, align 4, !tbaa !9
  %656 = getelementptr float, ptr %8, i64 %646
  %657 = load float, ptr %656, align 4, !tbaa !9
  %658 = load float, ptr %644, align 4, !tbaa !9
  %659 = load float, ptr %442, align 4, !tbaa !9
  %660 = fneg float %658
  %661 = call float @llvm.fmuladd.f32(float %660, float %659, float %657)
  %662 = load float, ptr %651, align 4, !tbaa !9
  %663 = load float, ptr %443, align 4, !tbaa !9
  %664 = fneg float %662
  %665 = call float @llvm.fmuladd.f32(float %664, float %663, float %661)
  store float %665, ptr %656, align 4, !tbaa !9
  store i64 %441, ptr %12, align 8, !tbaa !5
  %.not864954 = icmp slt i64 %.3829973, 3
  br i1 %.not864954, label %.loopexit908, label %.lr.ph958

.lr.ph958:                                        ; preds = %621, %.lr.ph958
  %.12956 = phi float [ %678, %.lr.ph958 ], [ 0.000000e+00, %621 ]
  %.1825955 = phi i64 [ %679, %.lr.ph958 ], [ 1, %621 ]
  %666 = getelementptr inbounds float, ptr %33, i64 %.1825955
  %667 = load float, ptr %666, align 4, !tbaa !9
  %668 = fcmp oge float %667, 0.000000e+00
  %669 = fneg float %667
  %670 = select i1 %668, float %667, float %669
  %671 = getelementptr float, ptr %666, i64 %646
  %672 = load float, ptr %671, align 4, !tbaa !9
  %673 = fcmp oge float %672, 0.000000e+00
  %674 = fneg float %672
  %675 = select i1 %673, float %672, float %674
  %676 = fadd float %670, %675
  %677 = fcmp oge float %676, %.12956
  %678 = select i1 %677, float %676, float %.12956
  %679 = add nuw nsw i64 %.1825955, 1
  %.not864.not = icmp slt i64 %.1825955, %441
  br i1 %.not864.not, label %.lr.ph958, label %..loopexit907_crit_edge, !llvm.loop !25

..loopexit_crit_edge:                             ; preds = %.lr.ph964
  store float %555, ptr %14, align 4, !tbaa !9
  br label %.loopexit

..loopexit907_crit_edge:                          ; preds = %.lr.ph958
  store float %667, ptr %14, align 4, !tbaa !9
  br label %.loopexit

.loopexit:                                        ; preds = %432, %..loopexit907_crit_edge, %..loopexit_crit_edge, %484, %619
  %.13 = phi float [ %678, %..loopexit907_crit_edge ], [ %566, %..loopexit_crit_edge ], [ %.9813975, %484 ], [ %.9813975, %619 ], [ %.9813975, %432 ]
  %.8 = phi i64 [ %441, %..loopexit907_crit_edge ], [ %.7891900, %..loopexit_crit_edge ], [ %.7891900, %484 ], [ %441, %619 ], [ %.6976, %432 ]
  %680 = icmp sgt i64 %.3829973, 1
  br i1 %680, label %432, label %.loopexit908, !llvm.loop !26

681:                                              ; preds = %419
  store i64 %428, ptr %12, align 8, !tbaa !5
  %.not860948 = icmp slt i64 %428, 1
  br i1 %.not860948, label %.loopexit908, label %.lr.ph953

.lr.ph953:                                        ; preds = %681
  %682 = getelementptr inbounds i8, ptr %15, i64 4
  %683 = getelementptr inbounds i8, ptr %15, i64 8
  %684 = getelementptr inbounds i8, ptr %16, i64 4
  %685 = getelementptr inbounds i8, ptr %16, i64 8
  %686 = getelementptr inbounds i8, ptr %16, i64 12
  br label %687

687:                                              ; preds = %.lr.ph953, %._crit_edge997
  %688 = phi i64 [ %428, %.lr.ph953 ], [ %955, %._crit_edge997 ]
  %.9951 = phi i64 [ 1, %.lr.ph953 ], [ %.11, %._crit_edge997 ]
  %.14950 = phi float [ %.0804, %.lr.ph953 ], [ %.18, %._crit_edge997 ]
  %.4830949 = phi i64 [ 1, %.lr.ph953 ], [ %.pre1001, %._crit_edge997 ]
  %689 = icmp slt i64 %.4830949, %.9951
  %.pre1001 = add nuw nsw i64 %.4830949, 1
  br i1 %689, label %._crit_edge997, label %690

690:                                              ; preds = %687
  %691 = icmp slt i64 %.4830949, %688
  br i1 %691, label %692, label %700

692:                                              ; preds = %690
  %693 = mul nsw i64 %.4830949, %29
  %694 = getelementptr float, ptr %31, i64 %.pre1001
  %695 = getelementptr float, ptr %694, i64 %693
  %696 = load float, ptr %695, align 4, !tbaa !9
  %697 = fcmp une float %696, 0.000000e+00
  br i1 %697, label %698, label %700

698:                                              ; preds = %692
  %699 = add nuw nsw i64 %.4830949, 2
  br label %700

700:                                              ; preds = %692, %698, %690
  %.1821 = phi i64 [ %.pre1001, %698 ], [ %.4830949, %692 ], [ %.4830949, %690 ]
  %.10 = phi i64 [ %699, %698 ], [ %.pre1001, %692 ], [ %.pre1001, %690 ]
  %701 = icmp eq i64 %.4830949, %.1821
  %702 = getelementptr inbounds float, ptr %33, i64 %.4830949
  %703 = load float, ptr %702, align 4, !tbaa !9
  store float %703, ptr %14, align 4, !tbaa !9
  br i1 %701, label %704, label %818

704:                                              ; preds = %700
  %705 = fcmp ogt float %.14950, 1.000000e+00
  br i1 %705, label %706, label %728

706:                                              ; preds = %704
  %707 = getelementptr float, ptr %702, i64 %688
  %708 = load float, ptr %707, align 4, !tbaa !9
  %709 = fcmp oge float %708, 0.000000e+00
  %710 = fneg float %708
  %711 = select i1 %709, float %708, float %710
  %712 = fcmp oge float %703, 0.000000e+00
  %713 = fneg float %703
  %714 = select i1 %712, float %703, float %713
  %715 = fadd float %714, %711
  %716 = fdiv float 1.000000e+00, %.14950
  store float %716, ptr %22, align 4, !tbaa !9
  %717 = getelementptr inbounds float, ptr %34, i64 %.4830949
  %718 = load float, ptr %717, align 4, !tbaa !9
  %719 = fsub float %45, %715
  %720 = fmul float %716, %719
  %721 = fcmp ogt float %718, %720
  br i1 %721, label %722, label %728

722:                                              ; preds = %706
  %723 = call i32 @f2c_sscal(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %724 = load float, ptr %22, align 4, !tbaa !9
  %725 = load float, ptr %7, align 4, !tbaa !9
  %726 = fmul float %724, %725
  store float %726, ptr %7, align 4, !tbaa !9
  %727 = fmul float %.14950, %724
  br label %728

728:                                              ; preds = %706, %722, %704
  %.15 = phi float [ %727, %722 ], [ %.14950, %706 ], [ %.14950, %704 ]
  %729 = add nsw i64 %.4830949, -1
  store i64 %729, ptr %13, align 8, !tbaa !5
  %730 = mul nsw i64 %.4830949, %29
  %gep947 = getelementptr float, ptr %invariant.gep, i64 %730
  %731 = call double @f2c_sdot(ptr noundef nonnull %13, ptr noundef %gep947, ptr noundef nonnull @c__1, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %732 = load float, ptr %702, align 4, !tbaa !9
  %733 = fpext float %732 to double
  %734 = fsub double %733, %731
  %735 = fptrunc double %734 to float
  store float %735, ptr %702, align 4, !tbaa !9
  store i64 %729, ptr %13, align 8, !tbaa !5
  %736 = load i64, ptr %2, align 8, !tbaa !5
  %737 = getelementptr float, ptr %8, i64 %736
  %738 = call double @f2c_sdot(ptr noundef nonnull %13, ptr noundef %gep947, ptr noundef nonnull @c__1, ptr noundef %737, ptr noundef nonnull @c__1) #5
  %739 = load i64, ptr %2, align 8, !tbaa !5
  %740 = getelementptr float, ptr %33, i64 %739
  %741 = getelementptr float, ptr %740, i64 %.4830949
  %742 = load float, ptr %741, align 4, !tbaa !9
  %743 = fpext float %742 to double
  %744 = fsub double %743, %738
  %745 = fptrunc double %744 to float
  store float %745, ptr %741, align 4, !tbaa !9
  %746 = icmp ugt i64 %.4830949, 1
  br i1 %746, label %747, label %759

747:                                              ; preds = %728
  %748 = getelementptr inbounds float, ptr %32, i64 %.4830949
  %749 = load float, ptr %748, align 4, !tbaa !9
  %750 = getelementptr float, ptr %8, i64 %739
  %751 = load float, ptr %750, align 4, !tbaa !9
  %752 = load float, ptr %702, align 4, !tbaa !9
  %753 = fneg float %749
  %754 = call float @llvm.fmuladd.f32(float %753, float %751, float %752)
  store float %754, ptr %702, align 4, !tbaa !9
  %755 = load float, ptr %748, align 4, !tbaa !9
  %756 = load float, ptr %8, align 4, !tbaa !9
  %757 = load float, ptr %741, align 4, !tbaa !9
  %758 = call float @llvm.fmuladd.f32(float %755, float %756, float %757)
  store float %758, ptr %741, align 4, !tbaa !9
  br label %759

759:                                              ; preds = %747, %728
  %760 = phi float [ %758, %747 ], [ %745, %728 ]
  %761 = load float, ptr %702, align 4, !tbaa !9
  %762 = fcmp oge float %761, 0.000000e+00
  %763 = fneg float %761
  %764 = select i1 %762, float %761, float %763
  %765 = fcmp oge float %760, 0.000000e+00
  %766 = fneg float %760
  %767 = select i1 %765, float %760, float %766
  %768 = fadd float %764, %767
  %769 = load float, ptr %6, align 4, !tbaa !9
  store float %769, ptr %17, align 4, !tbaa !9
  %770 = icmp eq i64 %.4830949, 1
  br i1 %770, label %771, label %773

771:                                              ; preds = %759
  %772 = load float, ptr %5, align 4, !tbaa !9
  store float %772, ptr %17, align 4, !tbaa !9
  br label %773

773:                                              ; preds = %771, %759
  %774 = phi float [ %772, %771 ], [ %769, %759 ]
  %775 = getelementptr float, ptr %31, i64 %.4830949
  %776 = getelementptr float, ptr %775, i64 %730
  %777 = load float, ptr %776, align 4, !tbaa !9
  store float %777, ptr %14, align 4, !tbaa !9
  %778 = fcmp oge float %777, 0.000000e+00
  %779 = fneg float %777
  %780 = select i1 %778, float %777, float %779
  %781 = fcmp oge float %774, 0.000000e+00
  %782 = fneg float %774
  %783 = select i1 %781, float %774, float %782
  %784 = fadd float %780, %783
  store float %777, ptr %23, align 4, !tbaa !9
  %785 = load float, ptr %26, align 4, !tbaa !9
  %786 = fcmp olt float %784, %785
  br i1 %786, label %787, label %788

787:                                              ; preds = %773
  store float %785, ptr %23, align 4, !tbaa !9
  store i64 1, ptr %10, align 8, !tbaa !5
  br label %788

788:                                              ; preds = %787, %773
  %.3819 = phi float [ %785, %787 ], [ %784, %773 ]
  %789 = fcmp olt float %.3819, 1.000000e+00
  %790 = fmul float %45, %.3819
  %791 = fcmp ogt float %768, %790
  %or.cond876 = select i1 %789, i1 %791, i1 false
  br i1 %or.cond876, label %792, label %799

792:                                              ; preds = %788
  %793 = fdiv float 1.000000e+00, %768
  store float %793, ptr %22, align 4, !tbaa !9
  %794 = call i32 @f2c_sscal(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %795 = load float, ptr %22, align 4, !tbaa !9
  %796 = load float, ptr %7, align 4, !tbaa !9
  %797 = fmul float %795, %796
  store float %797, ptr %7, align 4, !tbaa !9
  %798 = fmul float %.15, %795
  %.pre991 = load float, ptr %17, align 4, !tbaa !9
  %.pre994 = fneg float %.pre991
  br label %799

799:                                              ; preds = %792, %788
  %.pre-phi = phi float [ %.pre994, %792 ], [ %782, %788 ]
  %.16 = phi float [ %798, %792 ], [ %.15, %788 ]
  store float %.pre-phi, ptr %14, align 4, !tbaa !9
  %800 = load i64, ptr %2, align 8, !tbaa !5
  %801 = getelementptr float, ptr %33, i64 %800
  %802 = getelementptr float, ptr %801, i64 %.4830949
  %803 = call i32 @sladiv_(ptr noundef nonnull %702, ptr noundef %802, ptr noundef nonnull %23, ptr noundef nonnull %14, ptr noundef nonnull %21, ptr noundef nonnull %20) #5
  %804 = load float, ptr %21, align 4, !tbaa !9
  store float %804, ptr %702, align 4, !tbaa !9
  %805 = load float, ptr %20, align 4, !tbaa !9
  %806 = load i64, ptr %2, align 8, !tbaa !5
  %807 = getelementptr float, ptr %702, i64 %806
  store float %805, ptr %807, align 4, !tbaa !9
  %808 = load float, ptr %702, align 4, !tbaa !9
  store float %808, ptr %14, align 4, !tbaa !9
  %809 = fcmp oge float %808, 0.000000e+00
  %810 = fneg float %808
  %811 = select i1 %809, float %808, float %810
  %812 = fcmp oge float %805, 0.000000e+00
  %813 = fneg float %805
  %814 = select i1 %812, float %805, float %813
  %815 = fadd float %814, %811
  %816 = fcmp oge float %815, %.16
  %817 = select i1 %816, float %815, float %.16
  br label %._crit_edge997

818:                                              ; preds = %700
  %819 = getelementptr inbounds float, ptr %33, i64 %.1821
  %820 = fcmp ogt float %.14950, 1.000000e+00
  br i1 %820, label %821, label %859

821:                                              ; preds = %818
  %822 = getelementptr float, ptr %33, i64 %688
  %823 = getelementptr float, ptr %822, i64 %.4830949
  %824 = load float, ptr %823, align 4, !tbaa !9
  %825 = load float, ptr %819, align 4, !tbaa !9
  %826 = getelementptr float, ptr %822, i64 %.1821
  %827 = load float, ptr %826, align 4, !tbaa !9
  %828 = insertelement <2 x float> poison, float %703, i64 0
  %829 = insertelement <2 x float> %828, float %825, i64 1
  %830 = fcmp oge <2 x float> %829, zeroinitializer
  %831 = fneg <2 x float> %829
  %832 = select <2 x i1> %830, <2 x float> %829, <2 x float> %831
  %833 = insertelement <2 x float> poison, float %824, i64 0
  %834 = insertelement <2 x float> %833, float %827, i64 1
  %835 = fcmp oge <2 x float> %834, zeroinitializer
  %836 = fneg <2 x float> %834
  %837 = select <2 x i1> %835, <2 x float> %834, <2 x float> %836
  %838 = fadd <2 x float> %832, %837
  %839 = extractelement <2 x float> %838, i64 0
  %840 = extractelement <2 x float> %838, i64 1
  %841 = fcmp oge float %839, %840
  %842 = select i1 %841, float %839, float %840
  %843 = fdiv float 1.000000e+00, %.14950
  store float %843, ptr %22, align 4, !tbaa !9
  %844 = getelementptr inbounds float, ptr %34, i64 %.4830949
  %845 = load float, ptr %844, align 4, !tbaa !9
  store float %845, ptr %14, align 4, !tbaa !9
  %846 = getelementptr inbounds float, ptr %34, i64 %.1821
  %847 = load float, ptr %846, align 4, !tbaa !9
  %848 = fcmp oge float %845, %847
  %849 = select i1 %848, float %845, float %847
  %850 = fsub float %45, %842
  %851 = fdiv float %850, %.14950
  %852 = fcmp ogt float %849, %851
  br i1 %852, label %853, label %859

853:                                              ; preds = %821
  %854 = call i32 @f2c_sscal(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %855 = load float, ptr %22, align 4, !tbaa !9
  %856 = load float, ptr %7, align 4, !tbaa !9
  %857 = fmul float %855, %856
  store float %857, ptr %7, align 4, !tbaa !9
  %858 = fmul float %.14950, %855
  %.pre990 = load float, ptr %702, align 4, !tbaa !9
  br label %859

859:                                              ; preds = %821, %853, %818
  %860 = phi float [ %.pre990, %853 ], [ %703, %821 ], [ %703, %818 ]
  %.17 = phi float [ %858, %853 ], [ %.14950, %821 ], [ %.14950, %818 ]
  %861 = add nsw i64 %.4830949, -1
  store i64 %861, ptr %13, align 8, !tbaa !5
  %862 = fpext float %860 to double
  %863 = mul nsw i64 %.4830949, %29
  %gep943 = getelementptr float, ptr %invariant.gep, i64 %863
  %864 = call double @f2c_sdot(ptr noundef nonnull %13, ptr noundef %gep943, ptr noundef nonnull @c__1, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %865 = fsub double %862, %864
  %866 = fptrunc double %865 to float
  store float %866, ptr %15, align 16, !tbaa !9
  store i64 %861, ptr %13, align 8, !tbaa !5
  %867 = load float, ptr %819, align 4, !tbaa !9
  %868 = fpext float %867 to double
  %869 = mul nsw i64 %.1821, %29
  %gep945 = getelementptr float, ptr %invariant.gep, i64 %869
  %870 = call double @f2c_sdot(ptr noundef nonnull %13, ptr noundef %gep945, ptr noundef nonnull @c__1, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %871 = fsub double %868, %870
  %872 = fptrunc double %871 to float
  store float %872, ptr %682, align 4, !tbaa !9
  store i64 %861, ptr %13, align 8, !tbaa !5
  %873 = load i64, ptr %2, align 8, !tbaa !5
  %874 = getelementptr float, ptr %33, i64 %873
  %875 = getelementptr float, ptr %874, i64 %.4830949
  %876 = load float, ptr %875, align 4, !tbaa !9
  %877 = fpext float %876 to double
  %878 = getelementptr float, ptr %8, i64 %873
  %879 = call double @f2c_sdot(ptr noundef nonnull %13, ptr noundef %gep943, ptr noundef nonnull @c__1, ptr noundef %878, ptr noundef nonnull @c__1) #5
  %880 = fsub double %877, %879
  %881 = fptrunc double %880 to float
  store float %881, ptr %683, align 8, !tbaa !9
  store i64 %861, ptr %13, align 8, !tbaa !5
  %882 = load i64, ptr %2, align 8, !tbaa !5
  %883 = getelementptr float, ptr %33, i64 %882
  %884 = getelementptr float, ptr %883, i64 %.1821
  %885 = load float, ptr %884, align 4, !tbaa !9
  %886 = fpext float %885 to double
  %887 = getelementptr float, ptr %8, i64 %882
  %888 = call double @f2c_sdot(ptr noundef nonnull %13, ptr noundef %gep945, ptr noundef nonnull @c__1, ptr noundef %887, ptr noundef nonnull @c__1) #5
  %889 = fsub double %886, %888
  %890 = fptrunc double %889 to float
  %891 = getelementptr inbounds float, ptr %32, i64 %.4830949
  %892 = load float, ptr %891, align 4, !tbaa !9
  %893 = load i64, ptr %2, align 8, !tbaa !5
  %894 = getelementptr float, ptr %8, i64 %893
  %895 = load float, ptr %894, align 4, !tbaa !9
  %896 = load <4 x float>, ptr %15, align 16
  %897 = getelementptr inbounds float, ptr %32, i64 %.1821
  %898 = load float, ptr %897, align 4, !tbaa !9
  %899 = insertelement <4 x float> poison, float %892, i64 0
  %900 = insertelement <4 x float> %899, float %898, i64 1
  %901 = load float, ptr %8, align 4, !tbaa !9
  %902 = load <2 x float>, ptr %682, align 4, !tbaa !9
  %903 = fneg <4 x float> %900
  %904 = insertelement <4 x float> %903, float %892, i64 2
  %905 = insertelement <4 x float> %904, float %898, i64 3
  %906 = insertelement <4 x float> poison, float %895, i64 0
  %907 = insertelement <4 x float> %906, float %901, i64 1
  %908 = shufflevector <4 x float> %907, <4 x float> poison, <4 x i32> <i32 0, i32 0, i32 1, i32 1>
  %909 = shufflevector <2 x float> %902, <2 x float> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
  %910 = shufflevector <4 x float> %896, <4 x float> %909, <4 x i32> <i32 0, i32 4, i32 5, i32 poison>
  %911 = insertelement <4 x float> %910, float %890, i64 3
  %912 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %905, <4 x float> %908, <4 x float> %911)
  store <4 x float> %912, ptr %15, align 16, !tbaa !9
  %913 = getelementptr float, ptr %31, i64 %.4830949
  %914 = getelementptr float, ptr %913, i64 %863
  %915 = call i32 @slaln2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef nonnull %26, ptr noundef nonnull @c_b21, ptr noundef %914, ptr noundef nonnull %4, ptr noundef nonnull @c_b21, ptr noundef nonnull @c_b21, ptr noundef nonnull %15, ptr noundef nonnull @c__2, ptr noundef nonnull @c_b25, ptr noundef nonnull %6, ptr noundef nonnull %16, ptr noundef nonnull @c__2, ptr noundef nonnull %28, ptr noundef nonnull %27, ptr noundef nonnull %24) #5
  %916 = load i64, ptr %24, align 8, !tbaa !5
  %.not861 = icmp eq i64 %916, 0
  br i1 %.not861, label %918, label %917

917:                                              ; preds = %859
  store i64 2, ptr %10, align 8, !tbaa !5
  br label %918

918:                                              ; preds = %917, %859
  %919 = load float, ptr %28, align 4, !tbaa !9
  %920 = fcmp une float %919, 1.000000e+00
  br i1 %920, label %921, label %926

921:                                              ; preds = %918
  %922 = call i32 @f2c_sscal(ptr noundef nonnull %19, ptr noundef nonnull %28, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  %923 = load float, ptr %28, align 4, !tbaa !9
  %924 = load float, ptr %7, align 4, !tbaa !9
  %925 = fmul float %923, %924
  store float %925, ptr %7, align 4, !tbaa !9
  br label %926

926:                                              ; preds = %921, %918
  %927 = load float, ptr %16, align 16, !tbaa !9
  store float %927, ptr %702, align 4, !tbaa !9
  %928 = load float, ptr %684, align 4, !tbaa !9
  store float %928, ptr %819, align 4, !tbaa !9
  %929 = load float, ptr %685, align 8, !tbaa !9
  %930 = load i64, ptr %2, align 8, !tbaa !5
  %931 = getelementptr float, ptr %33, i64 %930
  %932 = getelementptr float, ptr %931, i64 %.4830949
  store float %929, ptr %932, align 4, !tbaa !9
  %933 = load float, ptr %686, align 4, !tbaa !9
  %934 = getelementptr float, ptr %931, i64 %.1821
  store float %933, ptr %934, align 4, !tbaa !9
  %935 = load float, ptr %702, align 4, !tbaa !9
  store float %935, ptr %14, align 4, !tbaa !9
  %936 = load float, ptr %932, align 4, !tbaa !9
  %937 = load float, ptr %819, align 4, !tbaa !9
  %938 = insertelement <2 x float> poison, float %936, i64 0
  %939 = insertelement <2 x float> %938, float %937, i64 1
  %940 = fcmp oge <2 x float> %939, zeroinitializer
  %941 = fneg <2 x float> %939
  %942 = select <2 x i1> %940, <2 x float> %939, <2 x float> %941
  %943 = insertelement <2 x float> poison, float %935, i64 0
  %944 = insertelement <2 x float> %943, float %933, i64 1
  %945 = fcmp oge <2 x float> %944, zeroinitializer
  %946 = fneg <2 x float> %944
  %947 = select <2 x i1> %945, <2 x float> %944, <2 x float> %946
  %948 = fadd <2 x float> %947, %942
  %949 = extractelement <2 x float> %948, i64 0
  %950 = extractelement <2 x float> %948, i64 1
  %951 = fcmp oge float %949, %950
  %952 = select i1 %951, float %949, float %950
  %953 = fcmp oge float %952, %.17
  %954 = select i1 %953, float %952, float %.17
  br label %._crit_edge997

._crit_edge997:                                   ; preds = %687, %926, %799
  %955 = phi i64 [ %930, %926 ], [ %806, %799 ], [ %688, %687 ]
  %.18 = phi float [ %954, %926 ], [ %817, %799 ], [ %.14950, %687 ]
  %.11 = phi i64 [ %.10, %926 ], [ %.10, %799 ], [ %.9951, %687 ]
  %956 = load i64, ptr %12, align 8, !tbaa !5
  %.not860.not = icmp slt i64 %.4830949, %956
  br i1 %.not860.not, label %687, label %.loopexit908, !llvm.loop !27

.loopexit908:                                     ; preds = %._crit_edge995, %206, %._crit_edge996, %._crit_edge997, %528, %529, %621, %.loopexit, %269, %139, %681, %429, %11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 4, 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 8, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #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 double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

; 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 <4 x float> @llvm.fmuladd.v4f32(<4 x float>, <4 x float>, <4 x float>) #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 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14}
!14 = distinct !{!14, !15}
!15 = distinct !{!15, !"LVerDomain"}
!16 = !{!17}
!17 = distinct !{!17, !15}
!18 = distinct !{!18, !12, !19, !20}
!19 = !{!"llvm.loop.isvectorized", i32 1}
!20 = !{!"llvm.loop.unroll.runtime.disable"}
!21 = distinct !{!21, !12, !19}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}


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