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

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

; Function Attrs: nounwind uwtable
define dso_local double @slansf_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5) #0 {
  %7 = alloca double, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca float, align 4
  %17 = alloca float, align 4
  %18 = alloca float, align 4
  %19 = alloca float, align 4
  %20 = alloca i64, align 8
  %21 = alloca i64, align 8
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca float, align 4
  %25 = alloca i64, align 8
  %26 = alloca float, align 4
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca float, align 4
  %32 = alloca float, align 4
  %33 = alloca i32, align 4
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store ptr %3, ptr %11, align 8, !tbaa !5
  store ptr %4, ptr %12, align 8, !tbaa !5
  store ptr %5, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #4
  call void @llvm.lifetime.start.p0(i64 8, 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
  %34 = load ptr, ptr %11, align 8, !tbaa !5
  %35 = load i64, ptr %34, align 8, !tbaa !9
  %36 = icmp eq i64 %35, 0
  br i1 %36, label %37, label %40

37:                                               ; preds = %6
  store float 0.000000e+00, ptr %16, align 4, !tbaa !11
  %38 = load float, ptr %16, align 4, !tbaa !11
  %39 = fpext float %38 to double
  store double %39, ptr %7, align 8
  store i32 1, ptr %33, align 4
  br label %3045

40:                                               ; preds = %6
  store i64 1, ptr %29, align 8, !tbaa !9
  %41 = load ptr, ptr %11, align 8, !tbaa !5
  %42 = load i64, ptr %41, align 8, !tbaa !9
  %43 = srem i64 %42, 2
  %44 = icmp eq i64 %43, 0
  br i1 %44, label %45, label %46

45:                                               ; preds = %40
  store i64 0, ptr %29, align 8, !tbaa !9
  br label %46

46:                                               ; preds = %45, %40
  store i64 1, ptr %28, align 8, !tbaa !9
  %47 = load ptr, ptr %9, align 8, !tbaa !5
  %48 = call i64 @lsame_(ptr noundef %47, ptr noundef @.str)
  %49 = icmp ne i64 %48, 0
  br i1 %49, label %50, label %51

50:                                               ; preds = %46
  store i64 0, ptr %28, align 8, !tbaa !9
  br label %51

51:                                               ; preds = %50, %46
  store i64 1, ptr %30, align 8, !tbaa !9
  %52 = load ptr, ptr %10, align 8, !tbaa !5
  %53 = call i64 @lsame_(ptr noundef %52, ptr noundef @.str.1)
  %54 = icmp ne i64 %53, 0
  br i1 %54, label %55, label %56

55:                                               ; preds = %51
  store i64 0, ptr %30, align 8, !tbaa !9
  br label %56

56:                                               ; preds = %55, %51
  %57 = load i64, ptr %28, align 8, !tbaa !9
  %58 = icmp eq i64 %57, 1
  br i1 %58, label %59, label %70

59:                                               ; preds = %56
  %60 = load i64, ptr %29, align 8, !tbaa !9
  %61 = icmp eq i64 %60, 1
  br i1 %61, label %62, label %65

62:                                               ; preds = %59
  %63 = load ptr, ptr %11, align 8, !tbaa !5
  %64 = load i64, ptr %63, align 8, !tbaa !9
  store i64 %64, ptr %27, align 8, !tbaa !9
  br label %69

65:                                               ; preds = %59
  %66 = load ptr, ptr %11, align 8, !tbaa !5
  %67 = load i64, ptr %66, align 8, !tbaa !9
  %68 = add nsw i64 %67, 1
  store i64 %68, ptr %27, align 8, !tbaa !9
  br label %69

69:                                               ; preds = %65, %62
  br label %75

70:                                               ; preds = %56
  %71 = load ptr, ptr %11, align 8, !tbaa !5
  %72 = load i64, ptr %71, align 8, !tbaa !9
  %73 = add nsw i64 %72, 1
  %74 = sdiv i64 %73, 2
  store i64 %74, ptr %27, align 8, !tbaa !9
  br label %75

75:                                               ; preds = %70, %69
  %76 = load ptr, ptr %8, align 8, !tbaa !5
  %77 = call i64 @lsame_(ptr noundef %76, ptr noundef @.str.2)
  %78 = icmp ne i64 %77, 0
  br i1 %78, label %79, label %313

79:                                               ; preds = %75
  %80 = load ptr, ptr %11, align 8, !tbaa !5
  %81 = load i64, ptr %80, align 8, !tbaa !9
  %82 = add nsw i64 %81, 1
  %83 = sdiv i64 %82, 2
  store i64 %83, ptr %22, align 8, !tbaa !9
  store float 0.000000e+00, ptr %32, align 4, !tbaa !11
  %84 = load i64, ptr %29, align 8, !tbaa !9
  %85 = icmp eq i64 %84, 1
  br i1 %85, label %86, label %200

86:                                               ; preds = %79
  %87 = load i64, ptr %28, align 8, !tbaa !9
  %88 = icmp eq i64 %87, 1
  br i1 %88, label %89, label %144

89:                                               ; preds = %86
  %90 = load i64, ptr %22, align 8, !tbaa !9
  %91 = sub nsw i64 %90, 1
  store i64 %91, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %92

92:                                               ; preds = %140, %89
  %93 = load i64, ptr %21, align 8, !tbaa !9
  %94 = load i64, ptr %14, align 8, !tbaa !9
  %95 = icmp sle i64 %93, %94
  br i1 %95, label %96, label %143

96:                                               ; preds = %92
  %97 = load ptr, ptr %11, align 8, !tbaa !5
  %98 = load i64, ptr %97, align 8, !tbaa !9
  %99 = sub nsw i64 %98, 1
  store i64 %99, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %100

100:                                              ; preds = %136, %96
  %101 = load i64, ptr %20, align 8, !tbaa !9
  %102 = load i64, ptr %15, align 8, !tbaa !9
  %103 = icmp sle i64 %101, %102
  br i1 %103, label %104, label %139

104:                                              ; preds = %100
  %105 = load float, ptr %32, align 4, !tbaa !11
  store float %105, ptr %18, align 4, !tbaa !11
  %106 = load ptr, ptr %12, align 8, !tbaa !5
  %107 = load i64, ptr %20, align 8, !tbaa !9
  %108 = load i64, ptr %21, align 8, !tbaa !9
  %109 = load i64, ptr %27, align 8, !tbaa !9
  %110 = mul nsw i64 %108, %109
  %111 = add nsw i64 %107, %110
  %112 = getelementptr inbounds float, ptr %106, i64 %111
  %113 = load float, ptr %112, align 4, !tbaa !11
  store float %113, ptr %17, align 4, !tbaa !11
  %114 = load float, ptr %17, align 4, !tbaa !11
  %115 = fcmp oge float %114, 0.000000e+00
  br i1 %115, label %116, label %118

116:                                              ; preds = %104
  %117 = load float, ptr %17, align 4, !tbaa !11
  br label %121

118:                                              ; preds = %104
  %119 = load float, ptr %17, align 4, !tbaa !11
  %120 = fneg float %119
  br label %121

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

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

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

132:                                              ; preds = %130, %128
  %133 = phi float [ %129, %128 ], [ %131, %130 ]
  %134 = fpext float %133 to double
  %135 = fptrunc double %134 to float
  store float %135, ptr %32, align 4, !tbaa !11
  br label %136

136:                                              ; preds = %132
  %137 = load i64, ptr %20, align 8, !tbaa !9
  %138 = add nsw i64 %137, 1
  store i64 %138, ptr %20, align 8, !tbaa !9
  br label %100, !llvm.loop !13

139:                                              ; preds = %100
  br label %140

140:                                              ; preds = %139
  %141 = load i64, ptr %21, align 8, !tbaa !9
  %142 = add nsw i64 %141, 1
  store i64 %142, ptr %21, align 8, !tbaa !9
  br label %92, !llvm.loop !15

143:                                              ; preds = %92
  br label %199

144:                                              ; preds = %86
  %145 = load ptr, ptr %11, align 8, !tbaa !5
  %146 = load i64, ptr %145, align 8, !tbaa !9
  %147 = sub nsw i64 %146, 1
  store i64 %147, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %148

148:                                              ; preds = %195, %144
  %149 = load i64, ptr %21, align 8, !tbaa !9
  %150 = load i64, ptr %14, align 8, !tbaa !9
  %151 = icmp sle i64 %149, %150
  br i1 %151, label %152, label %198

152:                                              ; preds = %148
  %153 = load i64, ptr %22, align 8, !tbaa !9
  %154 = sub nsw i64 %153, 1
  store i64 %154, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %155

155:                                              ; preds = %191, %152
  %156 = load i64, ptr %20, align 8, !tbaa !9
  %157 = load i64, ptr %15, align 8, !tbaa !9
  %158 = icmp sle i64 %156, %157
  br i1 %158, label %159, label %194

159:                                              ; preds = %155
  %160 = load float, ptr %32, align 4, !tbaa !11
  store float %160, ptr %18, align 4, !tbaa !11
  %161 = load ptr, ptr %12, align 8, !tbaa !5
  %162 = load i64, ptr %20, align 8, !tbaa !9
  %163 = load i64, ptr %21, align 8, !tbaa !9
  %164 = load i64, ptr %27, align 8, !tbaa !9
  %165 = mul nsw i64 %163, %164
  %166 = add nsw i64 %162, %165
  %167 = getelementptr inbounds float, ptr %161, i64 %166
  %168 = load float, ptr %167, align 4, !tbaa !11
  store float %168, ptr %17, align 4, !tbaa !11
  %169 = load float, ptr %17, align 4, !tbaa !11
  %170 = fcmp oge float %169, 0.000000e+00
  br i1 %170, label %171, label %173

171:                                              ; preds = %159
  %172 = load float, ptr %17, align 4, !tbaa !11
  br label %176

173:                                              ; preds = %159
  %174 = load float, ptr %17, align 4, !tbaa !11
  %175 = fneg float %174
  br label %176

176:                                              ; preds = %173, %171
  %177 = phi float [ %172, %171 ], [ %175, %173 ]
  %178 = fpext float %177 to double
  %179 = fptrunc double %178 to float
  store float %179, ptr %19, align 4, !tbaa !11
  %180 = load float, ptr %18, align 4, !tbaa !11
  %181 = load float, ptr %19, align 4, !tbaa !11
  %182 = fcmp oge float %180, %181
  br i1 %182, label %183, label %185

183:                                              ; preds = %176
  %184 = load float, ptr %18, align 4, !tbaa !11
  br label %187

185:                                              ; preds = %176
  %186 = load float, ptr %19, align 4, !tbaa !11
  br label %187

187:                                              ; preds = %185, %183
  %188 = phi float [ %184, %183 ], [ %186, %185 ]
  %189 = fpext float %188 to double
  %190 = fptrunc double %189 to float
  store float %190, ptr %32, align 4, !tbaa !11
  br label %191

191:                                              ; preds = %187
  %192 = load i64, ptr %20, align 8, !tbaa !9
  %193 = add nsw i64 %192, 1
  store i64 %193, ptr %20, align 8, !tbaa !9
  br label %155, !llvm.loop !16

194:                                              ; preds = %155
  br label %195

195:                                              ; preds = %194
  %196 = load i64, ptr %21, align 8, !tbaa !9
  %197 = add nsw i64 %196, 1
  store i64 %197, ptr %21, align 8, !tbaa !9
  br label %148, !llvm.loop !17

198:                                              ; preds = %148
  br label %199

199:                                              ; preds = %198, %143
  br label %312

200:                                              ; preds = %79
  %201 = load i64, ptr %28, align 8, !tbaa !9
  %202 = icmp eq i64 %201, 1
  br i1 %202, label %203, label %257

203:                                              ; preds = %200
  %204 = load i64, ptr %22, align 8, !tbaa !9
  %205 = sub nsw i64 %204, 1
  store i64 %205, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %206

206:                                              ; preds = %253, %203
  %207 = load i64, ptr %21, align 8, !tbaa !9
  %208 = load i64, ptr %14, align 8, !tbaa !9
  %209 = icmp sle i64 %207, %208
  br i1 %209, label %210, label %256

210:                                              ; preds = %206
  %211 = load ptr, ptr %11, align 8, !tbaa !5
  %212 = load i64, ptr %211, align 8, !tbaa !9
  store i64 %212, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %213

213:                                              ; preds = %249, %210
  %214 = load i64, ptr %20, align 8, !tbaa !9
  %215 = load i64, ptr %15, align 8, !tbaa !9
  %216 = icmp sle i64 %214, %215
  br i1 %216, label %217, label %252

217:                                              ; preds = %213
  %218 = load float, ptr %32, align 4, !tbaa !11
  store float %218, ptr %18, align 4, !tbaa !11
  %219 = load ptr, ptr %12, align 8, !tbaa !5
  %220 = load i64, ptr %20, align 8, !tbaa !9
  %221 = load i64, ptr %21, align 8, !tbaa !9
  %222 = load i64, ptr %27, align 8, !tbaa !9
  %223 = mul nsw i64 %221, %222
  %224 = add nsw i64 %220, %223
  %225 = getelementptr inbounds float, ptr %219, i64 %224
  %226 = load float, ptr %225, align 4, !tbaa !11
  store float %226, ptr %17, align 4, !tbaa !11
  %227 = load float, ptr %17, align 4, !tbaa !11
  %228 = fcmp oge float %227, 0.000000e+00
  br i1 %228, label %229, label %231

229:                                              ; preds = %217
  %230 = load float, ptr %17, align 4, !tbaa !11
  br label %234

231:                                              ; preds = %217
  %232 = load float, ptr %17, align 4, !tbaa !11
  %233 = fneg float %232
  br label %234

234:                                              ; preds = %231, %229
  %235 = phi float [ %230, %229 ], [ %233, %231 ]
  %236 = fpext float %235 to double
  %237 = fptrunc double %236 to float
  store float %237, ptr %19, align 4, !tbaa !11
  %238 = load float, ptr %18, align 4, !tbaa !11
  %239 = load float, ptr %19, align 4, !tbaa !11
  %240 = fcmp oge float %238, %239
  br i1 %240, label %241, label %243

241:                                              ; preds = %234
  %242 = load float, ptr %18, align 4, !tbaa !11
  br label %245

243:                                              ; preds = %234
  %244 = load float, ptr %19, align 4, !tbaa !11
  br label %245

245:                                              ; preds = %243, %241
  %246 = phi float [ %242, %241 ], [ %244, %243 ]
  %247 = fpext float %246 to double
  %248 = fptrunc double %247 to float
  store float %248, ptr %32, align 4, !tbaa !11
  br label %249

249:                                              ; preds = %245
  %250 = load i64, ptr %20, align 8, !tbaa !9
  %251 = add nsw i64 %250, 1
  store i64 %251, ptr %20, align 8, !tbaa !9
  br label %213, !llvm.loop !18

252:                                              ; preds = %213
  br label %253

253:                                              ; preds = %252
  %254 = load i64, ptr %21, align 8, !tbaa !9
  %255 = add nsw i64 %254, 1
  store i64 %255, ptr %21, align 8, !tbaa !9
  br label %206, !llvm.loop !19

256:                                              ; preds = %206
  br label %311

257:                                              ; preds = %200
  %258 = load ptr, ptr %11, align 8, !tbaa !5
  %259 = load i64, ptr %258, align 8, !tbaa !9
  store i64 %259, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %260

260:                                              ; preds = %307, %257
  %261 = load i64, ptr %21, align 8, !tbaa !9
  %262 = load i64, ptr %14, align 8, !tbaa !9
  %263 = icmp sle i64 %261, %262
  br i1 %263, label %264, label %310

264:                                              ; preds = %260
  %265 = load i64, ptr %22, align 8, !tbaa !9
  %266 = sub nsw i64 %265, 1
  store i64 %266, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %267

267:                                              ; preds = %303, %264
  %268 = load i64, ptr %20, align 8, !tbaa !9
  %269 = load i64, ptr %15, align 8, !tbaa !9
  %270 = icmp sle i64 %268, %269
  br i1 %270, label %271, label %306

271:                                              ; preds = %267
  %272 = load float, ptr %32, align 4, !tbaa !11
  store float %272, ptr %18, align 4, !tbaa !11
  %273 = load ptr, ptr %12, align 8, !tbaa !5
  %274 = load i64, ptr %20, align 8, !tbaa !9
  %275 = load i64, ptr %21, align 8, !tbaa !9
  %276 = load i64, ptr %27, align 8, !tbaa !9
  %277 = mul nsw i64 %275, %276
  %278 = add nsw i64 %274, %277
  %279 = getelementptr inbounds float, ptr %273, i64 %278
  %280 = load float, ptr %279, align 4, !tbaa !11
  store float %280, ptr %17, align 4, !tbaa !11
  %281 = load float, ptr %17, align 4, !tbaa !11
  %282 = fcmp oge float %281, 0.000000e+00
  br i1 %282, label %283, label %285

283:                                              ; preds = %271
  %284 = load float, ptr %17, align 4, !tbaa !11
  br label %288

285:                                              ; preds = %271
  %286 = load float, ptr %17, align 4, !tbaa !11
  %287 = fneg float %286
  br label %288

288:                                              ; preds = %285, %283
  %289 = phi float [ %284, %283 ], [ %287, %285 ]
  %290 = fpext float %289 to double
  %291 = fptrunc double %290 to float
  store float %291, ptr %19, align 4, !tbaa !11
  %292 = load float, ptr %18, align 4, !tbaa !11
  %293 = load float, ptr %19, align 4, !tbaa !11
  %294 = fcmp oge float %292, %293
  br i1 %294, label %295, label %297

295:                                              ; preds = %288
  %296 = load float, ptr %18, align 4, !tbaa !11
  br label %299

297:                                              ; preds = %288
  %298 = load float, ptr %19, align 4, !tbaa !11
  br label %299

299:                                              ; preds = %297, %295
  %300 = phi float [ %296, %295 ], [ %298, %297 ]
  %301 = fpext float %300 to double
  %302 = fptrunc double %301 to float
  store float %302, ptr %32, align 4, !tbaa !11
  br label %303

303:                                              ; preds = %299
  %304 = load i64, ptr %20, align 8, !tbaa !9
  %305 = add nsw i64 %304, 1
  store i64 %305, ptr %20, align 8, !tbaa !9
  br label %267, !llvm.loop !20

306:                                              ; preds = %267
  br label %307

307:                                              ; preds = %306
  %308 = load i64, ptr %21, align 8, !tbaa !9
  %309 = add nsw i64 %308, 1
  store i64 %309, ptr %21, align 8, !tbaa !9
  br label %260, !llvm.loop !21

310:                                              ; preds = %260
  br label %311

311:                                              ; preds = %310, %256
  br label %312

312:                                              ; preds = %311, %199
  br label %3041

313:                                              ; preds = %75
  %314 = load ptr, ptr %8, align 8, !tbaa !5
  %315 = call i64 @lsame_(ptr noundef %314, ptr noundef @.str.3)
  %316 = icmp ne i64 %315, 0
  br i1 %316, label %326, label %317

317:                                              ; preds = %313
  %318 = load ptr, ptr %8, align 8, !tbaa !5
  %319 = call i64 @lsame_(ptr noundef %318, ptr noundef @.str.4)
  %320 = icmp ne i64 %319, 0
  br i1 %320, label %326, label %321

321:                                              ; preds = %317
  %322 = load ptr, ptr %8, align 8, !tbaa !5
  %323 = load i8, ptr %322, align 1, !tbaa !22
  %324 = zext i8 %323 to i32
  %325 = icmp eq i32 %324, 49
  br i1 %325, label %326, label %2429

326:                                              ; preds = %321, %317, %313
  %327 = load i64, ptr %28, align 8, !tbaa !9
  %328 = icmp eq i64 %327, 1
  br i1 %328, label %329, label %1075

329:                                              ; preds = %326
  %330 = load ptr, ptr %11, align 8, !tbaa !5
  %331 = load i64, ptr %330, align 8, !tbaa !9
  %332 = sdiv i64 %331, 2
  store i64 %332, ptr %22, align 8, !tbaa !9
  %333 = load i64, ptr %29, align 8, !tbaa !9
  %334 = icmp eq i64 %333, 1
  br i1 %334, label %335, label %711

335:                                              ; preds = %329
  %336 = load i64, ptr %30, align 8, !tbaa !9
  %337 = icmp eq i64 %336, 0
  br i1 %337, label %338, label %523

338:                                              ; preds = %335
  %339 = load i64, ptr %22, align 8, !tbaa !9
  %340 = sub nsw i64 %339, 1
  store i64 %340, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %341

341:                                              ; preds = %349, %338
  %342 = load i64, ptr %20, align 8, !tbaa !9
  %343 = load i64, ptr %14, align 8, !tbaa !9
  %344 = icmp sle i64 %342, %343
  br i1 %344, label %345, label %352

345:                                              ; preds = %341
  %346 = load ptr, ptr %13, align 8, !tbaa !5
  %347 = load i64, ptr %20, align 8, !tbaa !9
  %348 = getelementptr inbounds float, ptr %346, i64 %347
  store float 0.000000e+00, ptr %348, align 4, !tbaa !11
  br label %349

349:                                              ; preds = %345
  %350 = load i64, ptr %20, align 8, !tbaa !9
  %351 = add nsw i64 %350, 1
  store i64 %351, ptr %20, align 8, !tbaa !9
  br label %341, !llvm.loop !23

352:                                              ; preds = %341
  %353 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %353, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %354

354:                                              ; preds = %510, %352
  %355 = load i64, ptr %21, align 8, !tbaa !9
  %356 = load i64, ptr %14, align 8, !tbaa !9
  %357 = icmp sle i64 %355, %356
  br i1 %357, label %358, label %513

358:                                              ; preds = %354
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %359 = load i64, ptr %22, align 8, !tbaa !9
  %360 = load i64, ptr %21, align 8, !tbaa !9
  %361 = add nsw i64 %359, %360
  %362 = sub nsw i64 %361, 1
  store i64 %362, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %363

363:                                              ; preds = %396, %358
  %364 = load i64, ptr %20, align 8, !tbaa !9
  %365 = load i64, ptr %15, align 8, !tbaa !9
  %366 = icmp sle i64 %364, %365
  br i1 %366, label %367, label %399

367:                                              ; preds = %363
  %368 = load ptr, ptr %12, align 8, !tbaa !5
  %369 = load i64, ptr %20, align 8, !tbaa !9
  %370 = load i64, ptr %21, align 8, !tbaa !9
  %371 = load i64, ptr %27, align 8, !tbaa !9
  %372 = mul nsw i64 %370, %371
  %373 = add nsw i64 %369, %372
  %374 = getelementptr inbounds float, ptr %368, i64 %373
  %375 = load float, ptr %374, align 4, !tbaa !11
  store float %375, ptr %17, align 4, !tbaa !11
  %376 = load float, ptr %17, align 4, !tbaa !11
  %377 = fcmp oge float %376, 0.000000e+00
  br i1 %377, label %378, label %380

378:                                              ; preds = %367
  %379 = load float, ptr %17, align 4, !tbaa !11
  br label %383

380:                                              ; preds = %367
  %381 = load float, ptr %17, align 4, !tbaa !11
  %382 = fneg float %381
  br label %383

383:                                              ; preds = %380, %378
  %384 = phi float [ %379, %378 ], [ %382, %380 ]
  %385 = fpext float %384 to double
  %386 = fptrunc double %385 to float
  store float %386, ptr %26, align 4, !tbaa !11
  %387 = load float, ptr %26, align 4, !tbaa !11
  %388 = load float, ptr %24, align 4, !tbaa !11
  %389 = fadd float %388, %387
  store float %389, ptr %24, align 4, !tbaa !11
  %390 = load float, ptr %26, align 4, !tbaa !11
  %391 = load ptr, ptr %13, align 8, !tbaa !5
  %392 = load i64, ptr %20, align 8, !tbaa !9
  %393 = getelementptr inbounds float, ptr %391, i64 %392
  %394 = load float, ptr %393, align 4, !tbaa !11
  %395 = fadd float %394, %390
  store float %395, ptr %393, align 4, !tbaa !11
  br label %396

396:                                              ; preds = %383
  %397 = load i64, ptr %20, align 8, !tbaa !9
  %398 = add nsw i64 %397, 1
  store i64 %398, ptr %20, align 8, !tbaa !9
  br label %363, !llvm.loop !24

399:                                              ; preds = %363
  %400 = load ptr, ptr %12, align 8, !tbaa !5
  %401 = load i64, ptr %20, align 8, !tbaa !9
  %402 = load i64, ptr %21, align 8, !tbaa !9
  %403 = load i64, ptr %27, align 8, !tbaa !9
  %404 = mul nsw i64 %402, %403
  %405 = add nsw i64 %401, %404
  %406 = getelementptr inbounds float, ptr %400, i64 %405
  %407 = load float, ptr %406, align 4, !tbaa !11
  store float %407, ptr %17, align 4, !tbaa !11
  %408 = load float, ptr %17, align 4, !tbaa !11
  %409 = fcmp oge float %408, 0.000000e+00
  br i1 %409, label %410, label %412

410:                                              ; preds = %399
  %411 = load float, ptr %17, align 4, !tbaa !11
  br label %415

412:                                              ; preds = %399
  %413 = load float, ptr %17, align 4, !tbaa !11
  %414 = fneg float %413
  br label %415

415:                                              ; preds = %412, %410
  %416 = phi float [ %411, %410 ], [ %414, %412 ]
  %417 = fpext float %416 to double
  %418 = fptrunc double %417 to float
  store float %418, ptr %26, align 4, !tbaa !11
  %419 = load float, ptr %24, align 4, !tbaa !11
  %420 = load float, ptr %26, align 4, !tbaa !11
  %421 = fadd float %419, %420
  %422 = load ptr, ptr %13, align 8, !tbaa !5
  %423 = load i64, ptr %21, align 8, !tbaa !9
  %424 = load i64, ptr %22, align 8, !tbaa !9
  %425 = add nsw i64 %423, %424
  %426 = getelementptr inbounds float, ptr %422, i64 %425
  store float %421, ptr %426, align 4, !tbaa !11
  %427 = load i64, ptr %20, align 8, !tbaa !9
  %428 = load i64, ptr %22, align 8, !tbaa !9
  %429 = load i64, ptr %22, align 8, !tbaa !9
  %430 = add nsw i64 %428, %429
  %431 = icmp eq i64 %427, %430
  br i1 %431, label %432, label %433

432:                                              ; preds = %415
  br label %514

433:                                              ; preds = %415
  %434 = load i64, ptr %20, align 8, !tbaa !9
  %435 = add nsw i64 %434, 1
  store i64 %435, ptr %20, align 8, !tbaa !9
  %436 = load ptr, ptr %12, align 8, !tbaa !5
  %437 = load i64, ptr %20, align 8, !tbaa !9
  %438 = load i64, ptr %21, align 8, !tbaa !9
  %439 = load i64, ptr %27, align 8, !tbaa !9
  %440 = mul nsw i64 %438, %439
  %441 = add nsw i64 %437, %440
  %442 = getelementptr inbounds float, ptr %436, i64 %441
  %443 = load float, ptr %442, align 4, !tbaa !11
  store float %443, ptr %17, align 4, !tbaa !11
  %444 = load float, ptr %17, align 4, !tbaa !11
  %445 = fcmp oge float %444, 0.000000e+00
  br i1 %445, label %446, label %448

446:                                              ; preds = %433
  %447 = load float, ptr %17, align 4, !tbaa !11
  br label %451

448:                                              ; preds = %433
  %449 = load float, ptr %17, align 4, !tbaa !11
  %450 = fneg float %449
  br label %451

451:                                              ; preds = %448, %446
  %452 = phi float [ %447, %446 ], [ %450, %448 ]
  %453 = fpext float %452 to double
  %454 = fptrunc double %453 to float
  store float %454, ptr %26, align 4, !tbaa !11
  %455 = load float, ptr %26, align 4, !tbaa !11
  %456 = load ptr, ptr %13, align 8, !tbaa !5
  %457 = load i64, ptr %21, align 8, !tbaa !9
  %458 = getelementptr inbounds float, ptr %456, i64 %457
  %459 = load float, ptr %458, align 4, !tbaa !11
  %460 = fadd float %459, %455
  store float %460, ptr %458, align 4, !tbaa !11
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %461 = load i64, ptr %22, align 8, !tbaa !9
  %462 = sub nsw i64 %461, 1
  store i64 %462, ptr %15, align 8, !tbaa !9
  %463 = load i64, ptr %21, align 8, !tbaa !9
  %464 = add nsw i64 %463, 1
  store i64 %464, ptr %23, align 8, !tbaa !9
  br label %465

465:                                              ; preds = %500, %451
  %466 = load i64, ptr %23, align 8, !tbaa !9
  %467 = load i64, ptr %15, align 8, !tbaa !9
  %468 = icmp sle i64 %466, %467
  br i1 %468, label %469, label %503

469:                                              ; preds = %465
  %470 = load i64, ptr %20, align 8, !tbaa !9
  %471 = add nsw i64 %470, 1
  store i64 %471, ptr %20, align 8, !tbaa !9
  %472 = load ptr, ptr %12, align 8, !tbaa !5
  %473 = load i64, ptr %20, align 8, !tbaa !9
  %474 = load i64, ptr %21, align 8, !tbaa !9
  %475 = load i64, ptr %27, align 8, !tbaa !9
  %476 = mul nsw i64 %474, %475
  %477 = add nsw i64 %473, %476
  %478 = getelementptr inbounds float, ptr %472, i64 %477
  %479 = load float, ptr %478, align 4, !tbaa !11
  store float %479, ptr %17, align 4, !tbaa !11
  %480 = load float, ptr %17, align 4, !tbaa !11
  %481 = fcmp oge float %480, 0.000000e+00
  br i1 %481, label %482, label %484

482:                                              ; preds = %469
  %483 = load float, ptr %17, align 4, !tbaa !11
  br label %487

484:                                              ; preds = %469
  %485 = load float, ptr %17, align 4, !tbaa !11
  %486 = fneg float %485
  br label %487

487:                                              ; preds = %484, %482
  %488 = phi float [ %483, %482 ], [ %486, %484 ]
  %489 = fpext float %488 to double
  %490 = fptrunc double %489 to float
  store float %490, ptr %26, align 4, !tbaa !11
  %491 = load float, ptr %26, align 4, !tbaa !11
  %492 = load float, ptr %24, align 4, !tbaa !11
  %493 = fadd float %492, %491
  store float %493, ptr %24, align 4, !tbaa !11
  %494 = load float, ptr %26, align 4, !tbaa !11
  %495 = load ptr, ptr %13, align 8, !tbaa !5
  %496 = load i64, ptr %23, align 8, !tbaa !9
  %497 = getelementptr inbounds float, ptr %495, i64 %496
  %498 = load float, ptr %497, align 4, !tbaa !11
  %499 = fadd float %498, %494
  store float %499, ptr %497, align 4, !tbaa !11
  br label %500

500:                                              ; preds = %487
  %501 = load i64, ptr %23, align 8, !tbaa !9
  %502 = add nsw i64 %501, 1
  store i64 %502, ptr %23, align 8, !tbaa !9
  br label %465, !llvm.loop !25

503:                                              ; preds = %465
  %504 = load float, ptr %24, align 4, !tbaa !11
  %505 = load ptr, ptr %13, align 8, !tbaa !5
  %506 = load i64, ptr %21, align 8, !tbaa !9
  %507 = getelementptr inbounds float, ptr %505, i64 %506
  %508 = load float, ptr %507, align 4, !tbaa !11
  %509 = fadd float %508, %504
  store float %509, ptr %507, align 4, !tbaa !11
  br label %510

510:                                              ; preds = %503
  %511 = load i64, ptr %21, align 8, !tbaa !9
  %512 = add nsw i64 %511, 1
  store i64 %512, ptr %21, align 8, !tbaa !9
  br label %354, !llvm.loop !26

513:                                              ; preds = %354
  br label %514

514:                                              ; preds = %513, %432
  %515 = load ptr, ptr %11, align 8, !tbaa !5
  %516 = load ptr, ptr %13, align 8, !tbaa !5
  %517 = call i64 @f2c_isamax(ptr noundef %515, ptr noundef %516, ptr noundef @c__1)
  store i64 %517, ptr %20, align 8, !tbaa !9
  %518 = load ptr, ptr %13, align 8, !tbaa !5
  %519 = load i64, ptr %20, align 8, !tbaa !9
  %520 = sub nsw i64 %519, 1
  %521 = getelementptr inbounds float, ptr %518, i64 %520
  %522 = load float, ptr %521, align 4, !tbaa !11
  store float %522, ptr %32, align 4, !tbaa !11
  br label %710

523:                                              ; preds = %335
  %524 = load i64, ptr %22, align 8, !tbaa !9
  %525 = add nsw i64 %524, 1
  store i64 %525, ptr %22, align 8, !tbaa !9
  %526 = load ptr, ptr %11, align 8, !tbaa !5
  %527 = load i64, ptr %526, align 8, !tbaa !9
  %528 = sub nsw i64 %527, 1
  store i64 %528, ptr %14, align 8, !tbaa !9
  %529 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %529, ptr %20, align 8, !tbaa !9
  br label %530

530:                                              ; preds = %538, %523
  %531 = load i64, ptr %20, align 8, !tbaa !9
  %532 = load i64, ptr %14, align 8, !tbaa !9
  %533 = icmp sle i64 %531, %532
  br i1 %533, label %534, label %541

534:                                              ; preds = %530
  %535 = load ptr, ptr %13, align 8, !tbaa !5
  %536 = load i64, ptr %20, align 8, !tbaa !9
  %537 = getelementptr inbounds float, ptr %535, i64 %536
  store float 0.000000e+00, ptr %537, align 4, !tbaa !11
  br label %538

538:                                              ; preds = %534
  %539 = load i64, ptr %20, align 8, !tbaa !9
  %540 = add nsw i64 %539, 1
  store i64 %540, ptr %20, align 8, !tbaa !9
  br label %530, !llvm.loop !27

541:                                              ; preds = %530
  %542 = load i64, ptr %22, align 8, !tbaa !9
  %543 = sub nsw i64 %542, 1
  store i64 %543, ptr %21, align 8, !tbaa !9
  br label %544

544:                                              ; preds = %698, %541
  %545 = load i64, ptr %21, align 8, !tbaa !9
  %546 = icmp sge i64 %545, 0
  br i1 %546, label %547, label %701

547:                                              ; preds = %544
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %548 = load i64, ptr %21, align 8, !tbaa !9
  %549 = sub nsw i64 %548, 2
  store i64 %549, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %550

550:                                              ; preds = %585, %547
  %551 = load i64, ptr %20, align 8, !tbaa !9
  %552 = load i64, ptr %14, align 8, !tbaa !9
  %553 = icmp sle i64 %551, %552
  br i1 %553, label %554, label %588

554:                                              ; preds = %550
  %555 = load ptr, ptr %12, align 8, !tbaa !5
  %556 = load i64, ptr %20, align 8, !tbaa !9
  %557 = load i64, ptr %21, align 8, !tbaa !9
  %558 = load i64, ptr %27, align 8, !tbaa !9
  %559 = mul nsw i64 %557, %558
  %560 = add nsw i64 %556, %559
  %561 = getelementptr inbounds float, ptr %555, i64 %560
  %562 = load float, ptr %561, align 4, !tbaa !11
  store float %562, ptr %17, align 4, !tbaa !11
  %563 = load float, ptr %17, align 4, !tbaa !11
  %564 = fcmp oge float %563, 0.000000e+00
  br i1 %564, label %565, label %567

565:                                              ; preds = %554
  %566 = load float, ptr %17, align 4, !tbaa !11
  br label %570

567:                                              ; preds = %554
  %568 = load float, ptr %17, align 4, !tbaa !11
  %569 = fneg float %568
  br label %570

570:                                              ; preds = %567, %565
  %571 = phi float [ %566, %565 ], [ %569, %567 ]
  %572 = fpext float %571 to double
  %573 = fptrunc double %572 to float
  store float %573, ptr %26, align 4, !tbaa !11
  %574 = load float, ptr %26, align 4, !tbaa !11
  %575 = load float, ptr %24, align 4, !tbaa !11
  %576 = fadd float %575, %574
  store float %576, ptr %24, align 4, !tbaa !11
  %577 = load float, ptr %26, align 4, !tbaa !11
  %578 = load ptr, ptr %13, align 8, !tbaa !5
  %579 = load i64, ptr %20, align 8, !tbaa !9
  %580 = load i64, ptr %22, align 8, !tbaa !9
  %581 = add nsw i64 %579, %580
  %582 = getelementptr inbounds float, ptr %578, i64 %581
  %583 = load float, ptr %582, align 4, !tbaa !11
  %584 = fadd float %583, %577
  store float %584, ptr %582, align 4, !tbaa !11
  br label %585

585:                                              ; preds = %570
  %586 = load i64, ptr %20, align 8, !tbaa !9
  %587 = add nsw i64 %586, 1
  store i64 %587, ptr %20, align 8, !tbaa !9
  br label %550, !llvm.loop !28

588:                                              ; preds = %550
  %589 = load i64, ptr %21, align 8, !tbaa !9
  %590 = icmp sgt i64 %589, 0
  br i1 %590, label %591, label %624

591:                                              ; preds = %588
  %592 = load ptr, ptr %12, align 8, !tbaa !5
  %593 = load i64, ptr %20, align 8, !tbaa !9
  %594 = load i64, ptr %21, align 8, !tbaa !9
  %595 = load i64, ptr %27, align 8, !tbaa !9
  %596 = mul nsw i64 %594, %595
  %597 = add nsw i64 %593, %596
  %598 = getelementptr inbounds float, ptr %592, i64 %597
  %599 = load float, ptr %598, align 4, !tbaa !11
  store float %599, ptr %17, align 4, !tbaa !11
  %600 = load float, ptr %17, align 4, !tbaa !11
  %601 = fcmp oge float %600, 0.000000e+00
  br i1 %601, label %602, label %604

602:                                              ; preds = %591
  %603 = load float, ptr %17, align 4, !tbaa !11
  br label %607

604:                                              ; preds = %591
  %605 = load float, ptr %17, align 4, !tbaa !11
  %606 = fneg float %605
  br label %607

607:                                              ; preds = %604, %602
  %608 = phi float [ %603, %602 ], [ %606, %604 ]
  %609 = fpext float %608 to double
  %610 = fptrunc double %609 to float
  store float %610, ptr %26, align 4, !tbaa !11
  %611 = load float, ptr %26, align 4, !tbaa !11
  %612 = load float, ptr %24, align 4, !tbaa !11
  %613 = fadd float %612, %611
  store float %613, ptr %24, align 4, !tbaa !11
  %614 = load float, ptr %24, align 4, !tbaa !11
  %615 = load ptr, ptr %13, align 8, !tbaa !5
  %616 = load i64, ptr %20, align 8, !tbaa !9
  %617 = load i64, ptr %22, align 8, !tbaa !9
  %618 = add nsw i64 %616, %617
  %619 = getelementptr inbounds float, ptr %615, i64 %618
  %620 = load float, ptr %619, align 4, !tbaa !11
  %621 = fadd float %620, %614
  store float %621, ptr %619, align 4, !tbaa !11
  %622 = load i64, ptr %20, align 8, !tbaa !9
  %623 = add nsw i64 %622, 1
  store i64 %623, ptr %20, align 8, !tbaa !9
  br label %624

624:                                              ; preds = %607, %588
  %625 = load ptr, ptr %12, align 8, !tbaa !5
  %626 = load i64, ptr %20, align 8, !tbaa !9
  %627 = load i64, ptr %21, align 8, !tbaa !9
  %628 = load i64, ptr %27, align 8, !tbaa !9
  %629 = mul nsw i64 %627, %628
  %630 = add nsw i64 %626, %629
  %631 = getelementptr inbounds float, ptr %625, i64 %630
  %632 = load float, ptr %631, align 4, !tbaa !11
  store float %632, ptr %17, align 4, !tbaa !11
  %633 = load float, ptr %17, align 4, !tbaa !11
  %634 = fcmp oge float %633, 0.000000e+00
  br i1 %634, label %635, label %637

635:                                              ; preds = %624
  %636 = load float, ptr %17, align 4, !tbaa !11
  br label %640

637:                                              ; preds = %624
  %638 = load float, ptr %17, align 4, !tbaa !11
  %639 = fneg float %638
  br label %640

640:                                              ; preds = %637, %635
  %641 = phi float [ %636, %635 ], [ %639, %637 ]
  %642 = fpext float %641 to double
  %643 = fptrunc double %642 to float
  store float %643, ptr %26, align 4, !tbaa !11
  %644 = load float, ptr %26, align 4, !tbaa !11
  %645 = load ptr, ptr %13, align 8, !tbaa !5
  %646 = load i64, ptr %21, align 8, !tbaa !9
  %647 = getelementptr inbounds float, ptr %645, i64 %646
  store float %644, ptr %647, align 4, !tbaa !11
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %648 = load ptr, ptr %11, align 8, !tbaa !5
  %649 = load i64, ptr %648, align 8, !tbaa !9
  %650 = sub nsw i64 %649, 1
  store i64 %650, ptr %14, align 8, !tbaa !9
  %651 = load i64, ptr %21, align 8, !tbaa !9
  %652 = add nsw i64 %651, 1
  store i64 %652, ptr %23, align 8, !tbaa !9
  br label %653

653:                                              ; preds = %688, %640
  %654 = load i64, ptr %23, align 8, !tbaa !9
  %655 = load i64, ptr %14, align 8, !tbaa !9
  %656 = icmp sle i64 %654, %655
  br i1 %656, label %657, label %691

657:                                              ; preds = %653
  %658 = load i64, ptr %20, align 8, !tbaa !9
  %659 = add nsw i64 %658, 1
  store i64 %659, ptr %20, align 8, !tbaa !9
  %660 = load ptr, ptr %12, align 8, !tbaa !5
  %661 = load i64, ptr %20, align 8, !tbaa !9
  %662 = load i64, ptr %21, align 8, !tbaa !9
  %663 = load i64, ptr %27, align 8, !tbaa !9
  %664 = mul nsw i64 %662, %663
  %665 = add nsw i64 %661, %664
  %666 = getelementptr inbounds float, ptr %660, i64 %665
  %667 = load float, ptr %666, align 4, !tbaa !11
  store float %667, ptr %17, align 4, !tbaa !11
  %668 = load float, ptr %17, align 4, !tbaa !11
  %669 = fcmp oge float %668, 0.000000e+00
  br i1 %669, label %670, label %672

670:                                              ; preds = %657
  %671 = load float, ptr %17, align 4, !tbaa !11
  br label %675

672:                                              ; preds = %657
  %673 = load float, ptr %17, align 4, !tbaa !11
  %674 = fneg float %673
  br label %675

675:                                              ; preds = %672, %670
  %676 = phi float [ %671, %670 ], [ %674, %672 ]
  %677 = fpext float %676 to double
  %678 = fptrunc double %677 to float
  store float %678, ptr %26, align 4, !tbaa !11
  %679 = load float, ptr %26, align 4, !tbaa !11
  %680 = load float, ptr %24, align 4, !tbaa !11
  %681 = fadd float %680, %679
  store float %681, ptr %24, align 4, !tbaa !11
  %682 = load float, ptr %26, align 4, !tbaa !11
  %683 = load ptr, ptr %13, align 8, !tbaa !5
  %684 = load i64, ptr %23, align 8, !tbaa !9
  %685 = getelementptr inbounds float, ptr %683, i64 %684
  %686 = load float, ptr %685, align 4, !tbaa !11
  %687 = fadd float %686, %682
  store float %687, ptr %685, align 4, !tbaa !11
  br label %688

688:                                              ; preds = %675
  %689 = load i64, ptr %23, align 8, !tbaa !9
  %690 = add nsw i64 %689, 1
  store i64 %690, ptr %23, align 8, !tbaa !9
  br label %653, !llvm.loop !29

691:                                              ; preds = %653
  %692 = load float, ptr %24, align 4, !tbaa !11
  %693 = load ptr, ptr %13, align 8, !tbaa !5
  %694 = load i64, ptr %21, align 8, !tbaa !9
  %695 = getelementptr inbounds float, ptr %693, i64 %694
  %696 = load float, ptr %695, align 4, !tbaa !11
  %697 = fadd float %696, %692
  store float %697, ptr %695, align 4, !tbaa !11
  br label %698

698:                                              ; preds = %691
  %699 = load i64, ptr %21, align 8, !tbaa !9
  %700 = add nsw i64 %699, -1
  store i64 %700, ptr %21, align 8, !tbaa !9
  br label %544, !llvm.loop !30

701:                                              ; preds = %544
  %702 = load ptr, ptr %11, align 8, !tbaa !5
  %703 = load ptr, ptr %13, align 8, !tbaa !5
  %704 = call i64 @f2c_isamax(ptr noundef %702, ptr noundef %703, ptr noundef @c__1)
  store i64 %704, ptr %20, align 8, !tbaa !9
  %705 = load ptr, ptr %13, align 8, !tbaa !5
  %706 = load i64, ptr %20, align 8, !tbaa !9
  %707 = sub nsw i64 %706, 1
  %708 = getelementptr inbounds float, ptr %705, i64 %707
  %709 = load float, ptr %708, align 4, !tbaa !11
  store float %709, ptr %32, align 4, !tbaa !11
  br label %710

710:                                              ; preds = %701, %514
  br label %1074

711:                                              ; preds = %329
  %712 = load i64, ptr %30, align 8, !tbaa !9
  %713 = icmp eq i64 %712, 0
  br i1 %713, label %714, label %892

714:                                              ; preds = %711
  %715 = load i64, ptr %22, align 8, !tbaa !9
  %716 = sub nsw i64 %715, 1
  store i64 %716, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %717

717:                                              ; preds = %725, %714
  %718 = load i64, ptr %20, align 8, !tbaa !9
  %719 = load i64, ptr %14, align 8, !tbaa !9
  %720 = icmp sle i64 %718, %719
  br i1 %720, label %721, label %728

721:                                              ; preds = %717
  %722 = load ptr, ptr %13, align 8, !tbaa !5
  %723 = load i64, ptr %20, align 8, !tbaa !9
  %724 = getelementptr inbounds float, ptr %722, i64 %723
  store float 0.000000e+00, ptr %724, align 4, !tbaa !11
  br label %725

725:                                              ; preds = %721
  %726 = load i64, ptr %20, align 8, !tbaa !9
  %727 = add nsw i64 %726, 1
  store i64 %727, ptr %20, align 8, !tbaa !9
  br label %717, !llvm.loop !31

728:                                              ; preds = %717
  %729 = load i64, ptr %22, align 8, !tbaa !9
  %730 = sub nsw i64 %729, 1
  store i64 %730, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %731

731:                                              ; preds = %880, %728
  %732 = load i64, ptr %21, align 8, !tbaa !9
  %733 = load i64, ptr %14, align 8, !tbaa !9
  %734 = icmp sle i64 %732, %733
  br i1 %734, label %735, label %883

735:                                              ; preds = %731
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %736 = load i64, ptr %22, align 8, !tbaa !9
  %737 = load i64, ptr %21, align 8, !tbaa !9
  %738 = add nsw i64 %736, %737
  %739 = sub nsw i64 %738, 1
  store i64 %739, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %740

740:                                              ; preds = %773, %735
  %741 = load i64, ptr %20, align 8, !tbaa !9
  %742 = load i64, ptr %15, align 8, !tbaa !9
  %743 = icmp sle i64 %741, %742
  br i1 %743, label %744, label %776

744:                                              ; preds = %740
  %745 = load ptr, ptr %12, align 8, !tbaa !5
  %746 = load i64, ptr %20, align 8, !tbaa !9
  %747 = load i64, ptr %21, align 8, !tbaa !9
  %748 = load i64, ptr %27, align 8, !tbaa !9
  %749 = mul nsw i64 %747, %748
  %750 = add nsw i64 %746, %749
  %751 = getelementptr inbounds float, ptr %745, i64 %750
  %752 = load float, ptr %751, align 4, !tbaa !11
  store float %752, ptr %17, align 4, !tbaa !11
  %753 = load float, ptr %17, align 4, !tbaa !11
  %754 = fcmp oge float %753, 0.000000e+00
  br i1 %754, label %755, label %757

755:                                              ; preds = %744
  %756 = load float, ptr %17, align 4, !tbaa !11
  br label %760

757:                                              ; preds = %744
  %758 = load float, ptr %17, align 4, !tbaa !11
  %759 = fneg float %758
  br label %760

760:                                              ; preds = %757, %755
  %761 = phi float [ %756, %755 ], [ %759, %757 ]
  %762 = fpext float %761 to double
  %763 = fptrunc double %762 to float
  store float %763, ptr %26, align 4, !tbaa !11
  %764 = load float, ptr %26, align 4, !tbaa !11
  %765 = load float, ptr %24, align 4, !tbaa !11
  %766 = fadd float %765, %764
  store float %766, ptr %24, align 4, !tbaa !11
  %767 = load float, ptr %26, align 4, !tbaa !11
  %768 = load ptr, ptr %13, align 8, !tbaa !5
  %769 = load i64, ptr %20, align 8, !tbaa !9
  %770 = getelementptr inbounds float, ptr %768, i64 %769
  %771 = load float, ptr %770, align 4, !tbaa !11
  %772 = fadd float %771, %767
  store float %772, ptr %770, align 4, !tbaa !11
  br label %773

773:                                              ; preds = %760
  %774 = load i64, ptr %20, align 8, !tbaa !9
  %775 = add nsw i64 %774, 1
  store i64 %775, ptr %20, align 8, !tbaa !9
  br label %740, !llvm.loop !32

776:                                              ; preds = %740
  %777 = load ptr, ptr %12, align 8, !tbaa !5
  %778 = load i64, ptr %20, align 8, !tbaa !9
  %779 = load i64, ptr %21, align 8, !tbaa !9
  %780 = load i64, ptr %27, align 8, !tbaa !9
  %781 = mul nsw i64 %779, %780
  %782 = add nsw i64 %778, %781
  %783 = getelementptr inbounds float, ptr %777, i64 %782
  %784 = load float, ptr %783, align 4, !tbaa !11
  store float %784, ptr %17, align 4, !tbaa !11
  %785 = load float, ptr %17, align 4, !tbaa !11
  %786 = fcmp oge float %785, 0.000000e+00
  br i1 %786, label %787, label %789

787:                                              ; preds = %776
  %788 = load float, ptr %17, align 4, !tbaa !11
  br label %792

789:                                              ; preds = %776
  %790 = load float, ptr %17, align 4, !tbaa !11
  %791 = fneg float %790
  br label %792

792:                                              ; preds = %789, %787
  %793 = phi float [ %788, %787 ], [ %791, %789 ]
  %794 = fpext float %793 to double
  %795 = fptrunc double %794 to float
  store float %795, ptr %26, align 4, !tbaa !11
  %796 = load float, ptr %24, align 4, !tbaa !11
  %797 = load float, ptr %26, align 4, !tbaa !11
  %798 = fadd float %796, %797
  %799 = load ptr, ptr %13, align 8, !tbaa !5
  %800 = load i64, ptr %21, align 8, !tbaa !9
  %801 = load i64, ptr %22, align 8, !tbaa !9
  %802 = add nsw i64 %800, %801
  %803 = getelementptr inbounds float, ptr %799, i64 %802
  store float %798, ptr %803, align 4, !tbaa !11
  %804 = load i64, ptr %20, align 8, !tbaa !9
  %805 = add nsw i64 %804, 1
  store i64 %805, ptr %20, align 8, !tbaa !9
  %806 = load ptr, ptr %12, align 8, !tbaa !5
  %807 = load i64, ptr %20, align 8, !tbaa !9
  %808 = load i64, ptr %21, align 8, !tbaa !9
  %809 = load i64, ptr %27, align 8, !tbaa !9
  %810 = mul nsw i64 %808, %809
  %811 = add nsw i64 %807, %810
  %812 = getelementptr inbounds float, ptr %806, i64 %811
  %813 = load float, ptr %812, align 4, !tbaa !11
  store float %813, ptr %17, align 4, !tbaa !11
  %814 = load float, ptr %17, align 4, !tbaa !11
  %815 = fcmp oge float %814, 0.000000e+00
  br i1 %815, label %816, label %818

816:                                              ; preds = %792
  %817 = load float, ptr %17, align 4, !tbaa !11
  br label %821

818:                                              ; preds = %792
  %819 = load float, ptr %17, align 4, !tbaa !11
  %820 = fneg float %819
  br label %821

821:                                              ; preds = %818, %816
  %822 = phi float [ %817, %816 ], [ %820, %818 ]
  %823 = fpext float %822 to double
  %824 = fptrunc double %823 to float
  store float %824, ptr %26, align 4, !tbaa !11
  %825 = load float, ptr %26, align 4, !tbaa !11
  %826 = load ptr, ptr %13, align 8, !tbaa !5
  %827 = load i64, ptr %21, align 8, !tbaa !9
  %828 = getelementptr inbounds float, ptr %826, i64 %827
  %829 = load float, ptr %828, align 4, !tbaa !11
  %830 = fadd float %829, %825
  store float %830, ptr %828, align 4, !tbaa !11
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %831 = load i64, ptr %22, align 8, !tbaa !9
  %832 = sub nsw i64 %831, 1
  store i64 %832, ptr %15, align 8, !tbaa !9
  %833 = load i64, ptr %21, align 8, !tbaa !9
  %834 = add nsw i64 %833, 1
  store i64 %834, ptr %23, align 8, !tbaa !9
  br label %835

835:                                              ; preds = %870, %821
  %836 = load i64, ptr %23, align 8, !tbaa !9
  %837 = load i64, ptr %15, align 8, !tbaa !9
  %838 = icmp sle i64 %836, %837
  br i1 %838, label %839, label %873

839:                                              ; preds = %835
  %840 = load i64, ptr %20, align 8, !tbaa !9
  %841 = add nsw i64 %840, 1
  store i64 %841, ptr %20, align 8, !tbaa !9
  %842 = load ptr, ptr %12, align 8, !tbaa !5
  %843 = load i64, ptr %20, align 8, !tbaa !9
  %844 = load i64, ptr %21, align 8, !tbaa !9
  %845 = load i64, ptr %27, align 8, !tbaa !9
  %846 = mul nsw i64 %844, %845
  %847 = add nsw i64 %843, %846
  %848 = getelementptr inbounds float, ptr %842, i64 %847
  %849 = load float, ptr %848, align 4, !tbaa !11
  store float %849, ptr %17, align 4, !tbaa !11
  %850 = load float, ptr %17, align 4, !tbaa !11
  %851 = fcmp oge float %850, 0.000000e+00
  br i1 %851, label %852, label %854

852:                                              ; preds = %839
  %853 = load float, ptr %17, align 4, !tbaa !11
  br label %857

854:                                              ; preds = %839
  %855 = load float, ptr %17, align 4, !tbaa !11
  %856 = fneg float %855
  br label %857

857:                                              ; preds = %854, %852
  %858 = phi float [ %853, %852 ], [ %856, %854 ]
  %859 = fpext float %858 to double
  %860 = fptrunc double %859 to float
  store float %860, ptr %26, align 4, !tbaa !11
  %861 = load float, ptr %26, align 4, !tbaa !11
  %862 = load float, ptr %24, align 4, !tbaa !11
  %863 = fadd float %862, %861
  store float %863, ptr %24, align 4, !tbaa !11
  %864 = load float, ptr %26, align 4, !tbaa !11
  %865 = load ptr, ptr %13, align 8, !tbaa !5
  %866 = load i64, ptr %23, align 8, !tbaa !9
  %867 = getelementptr inbounds float, ptr %865, i64 %866
  %868 = load float, ptr %867, align 4, !tbaa !11
  %869 = fadd float %868, %864
  store float %869, ptr %867, align 4, !tbaa !11
  br label %870

870:                                              ; preds = %857
  %871 = load i64, ptr %23, align 8, !tbaa !9
  %872 = add nsw i64 %871, 1
  store i64 %872, ptr %23, align 8, !tbaa !9
  br label %835, !llvm.loop !33

873:                                              ; preds = %835
  %874 = load float, ptr %24, align 4, !tbaa !11
  %875 = load ptr, ptr %13, align 8, !tbaa !5
  %876 = load i64, ptr %21, align 8, !tbaa !9
  %877 = getelementptr inbounds float, ptr %875, i64 %876
  %878 = load float, ptr %877, align 4, !tbaa !11
  %879 = fadd float %878, %874
  store float %879, ptr %877, align 4, !tbaa !11
  br label %880

880:                                              ; preds = %873
  %881 = load i64, ptr %21, align 8, !tbaa !9
  %882 = add nsw i64 %881, 1
  store i64 %882, ptr %21, align 8, !tbaa !9
  br label %731, !llvm.loop !34

883:                                              ; preds = %731
  %884 = load ptr, ptr %11, align 8, !tbaa !5
  %885 = load ptr, ptr %13, align 8, !tbaa !5
  %886 = call i64 @f2c_isamax(ptr noundef %884, ptr noundef %885, ptr noundef @c__1)
  store i64 %886, ptr %20, align 8, !tbaa !9
  %887 = load ptr, ptr %13, align 8, !tbaa !5
  %888 = load i64, ptr %20, align 8, !tbaa !9
  %889 = sub nsw i64 %888, 1
  %890 = getelementptr inbounds float, ptr %887, i64 %889
  %891 = load float, ptr %890, align 4, !tbaa !11
  store float %891, ptr %32, align 4, !tbaa !11
  br label %1073

892:                                              ; preds = %711
  %893 = load ptr, ptr %11, align 8, !tbaa !5
  %894 = load i64, ptr %893, align 8, !tbaa !9
  %895 = sub nsw i64 %894, 1
  store i64 %895, ptr %14, align 8, !tbaa !9
  %896 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %896, ptr %20, align 8, !tbaa !9
  br label %897

897:                                              ; preds = %905, %892
  %898 = load i64, ptr %20, align 8, !tbaa !9
  %899 = load i64, ptr %14, align 8, !tbaa !9
  %900 = icmp sle i64 %898, %899
  br i1 %900, label %901, label %908

901:                                              ; preds = %897
  %902 = load ptr, ptr %13, align 8, !tbaa !5
  %903 = load i64, ptr %20, align 8, !tbaa !9
  %904 = getelementptr inbounds float, ptr %902, i64 %903
  store float 0.000000e+00, ptr %904, align 4, !tbaa !11
  br label %905

905:                                              ; preds = %901
  %906 = load i64, ptr %20, align 8, !tbaa !9
  %907 = add nsw i64 %906, 1
  store i64 %907, ptr %20, align 8, !tbaa !9
  br label %897, !llvm.loop !35

908:                                              ; preds = %897
  %909 = load i64, ptr %22, align 8, !tbaa !9
  %910 = sub nsw i64 %909, 1
  store i64 %910, ptr %21, align 8, !tbaa !9
  br label %911

911:                                              ; preds = %1061, %908
  %912 = load i64, ptr %21, align 8, !tbaa !9
  %913 = icmp sge i64 %912, 0
  br i1 %913, label %914, label %1064

914:                                              ; preds = %911
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %915 = load i64, ptr %21, align 8, !tbaa !9
  %916 = sub nsw i64 %915, 1
  store i64 %916, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %917

917:                                              ; preds = %952, %914
  %918 = load i64, ptr %20, align 8, !tbaa !9
  %919 = load i64, ptr %14, align 8, !tbaa !9
  %920 = icmp sle i64 %918, %919
  br i1 %920, label %921, label %955

921:                                              ; preds = %917
  %922 = load ptr, ptr %12, align 8, !tbaa !5
  %923 = load i64, ptr %20, align 8, !tbaa !9
  %924 = load i64, ptr %21, align 8, !tbaa !9
  %925 = load i64, ptr %27, align 8, !tbaa !9
  %926 = mul nsw i64 %924, %925
  %927 = add nsw i64 %923, %926
  %928 = getelementptr inbounds float, ptr %922, i64 %927
  %929 = load float, ptr %928, align 4, !tbaa !11
  store float %929, ptr %17, align 4, !tbaa !11
  %930 = load float, ptr %17, align 4, !tbaa !11
  %931 = fcmp oge float %930, 0.000000e+00
  br i1 %931, label %932, label %934

932:                                              ; preds = %921
  %933 = load float, ptr %17, align 4, !tbaa !11
  br label %937

934:                                              ; preds = %921
  %935 = load float, ptr %17, align 4, !tbaa !11
  %936 = fneg float %935
  br label %937

937:                                              ; preds = %934, %932
  %938 = phi float [ %933, %932 ], [ %936, %934 ]
  %939 = fpext float %938 to double
  %940 = fptrunc double %939 to float
  store float %940, ptr %26, align 4, !tbaa !11
  %941 = load float, ptr %26, align 4, !tbaa !11
  %942 = load float, ptr %24, align 4, !tbaa !11
  %943 = fadd float %942, %941
  store float %943, ptr %24, align 4, !tbaa !11
  %944 = load float, ptr %26, align 4, !tbaa !11
  %945 = load ptr, ptr %13, align 8, !tbaa !5
  %946 = load i64, ptr %20, align 8, !tbaa !9
  %947 = load i64, ptr %22, align 8, !tbaa !9
  %948 = add nsw i64 %946, %947
  %949 = getelementptr inbounds float, ptr %945, i64 %948
  %950 = load float, ptr %949, align 4, !tbaa !11
  %951 = fadd float %950, %944
  store float %951, ptr %949, align 4, !tbaa !11
  br label %952

952:                                              ; preds = %937
  %953 = load i64, ptr %20, align 8, !tbaa !9
  %954 = add nsw i64 %953, 1
  store i64 %954, ptr %20, align 8, !tbaa !9
  br label %917, !llvm.loop !36

955:                                              ; preds = %917
  %956 = load ptr, ptr %12, align 8, !tbaa !5
  %957 = load i64, ptr %20, align 8, !tbaa !9
  %958 = load i64, ptr %21, align 8, !tbaa !9
  %959 = load i64, ptr %27, align 8, !tbaa !9
  %960 = mul nsw i64 %958, %959
  %961 = add nsw i64 %957, %960
  %962 = getelementptr inbounds float, ptr %956, i64 %961
  %963 = load float, ptr %962, align 4, !tbaa !11
  store float %963, ptr %17, align 4, !tbaa !11
  %964 = load float, ptr %17, align 4, !tbaa !11
  %965 = fcmp oge float %964, 0.000000e+00
  br i1 %965, label %966, label %968

966:                                              ; preds = %955
  %967 = load float, ptr %17, align 4, !tbaa !11
  br label %971

968:                                              ; preds = %955
  %969 = load float, ptr %17, align 4, !tbaa !11
  %970 = fneg float %969
  br label %971

971:                                              ; preds = %968, %966
  %972 = phi float [ %967, %966 ], [ %970, %968 ]
  %973 = fpext float %972 to double
  %974 = fptrunc double %973 to float
  store float %974, ptr %26, align 4, !tbaa !11
  %975 = load float, ptr %26, align 4, !tbaa !11
  %976 = load float, ptr %24, align 4, !tbaa !11
  %977 = fadd float %976, %975
  store float %977, ptr %24, align 4, !tbaa !11
  %978 = load float, ptr %24, align 4, !tbaa !11
  %979 = load ptr, ptr %13, align 8, !tbaa !5
  %980 = load i64, ptr %20, align 8, !tbaa !9
  %981 = load i64, ptr %22, align 8, !tbaa !9
  %982 = add nsw i64 %980, %981
  %983 = getelementptr inbounds float, ptr %979, i64 %982
  %984 = load float, ptr %983, align 4, !tbaa !11
  %985 = fadd float %984, %978
  store float %985, ptr %983, align 4, !tbaa !11
  %986 = load i64, ptr %20, align 8, !tbaa !9
  %987 = add nsw i64 %986, 1
  store i64 %987, ptr %20, align 8, !tbaa !9
  %988 = load ptr, ptr %12, align 8, !tbaa !5
  %989 = load i64, ptr %20, align 8, !tbaa !9
  %990 = load i64, ptr %21, align 8, !tbaa !9
  %991 = load i64, ptr %27, align 8, !tbaa !9
  %992 = mul nsw i64 %990, %991
  %993 = add nsw i64 %989, %992
  %994 = getelementptr inbounds float, ptr %988, i64 %993
  %995 = load float, ptr %994, align 4, !tbaa !11
  store float %995, ptr %17, align 4, !tbaa !11
  %996 = load float, ptr %17, align 4, !tbaa !11
  %997 = fcmp oge float %996, 0.000000e+00
  br i1 %997, label %998, label %1000

998:                                              ; preds = %971
  %999 = load float, ptr %17, align 4, !tbaa !11
  br label %1003

1000:                                             ; preds = %971
  %1001 = load float, ptr %17, align 4, !tbaa !11
  %1002 = fneg float %1001
  br label %1003

1003:                                             ; preds = %1000, %998
  %1004 = phi float [ %999, %998 ], [ %1002, %1000 ]
  %1005 = fpext float %1004 to double
  %1006 = fptrunc double %1005 to float
  store float %1006, ptr %26, align 4, !tbaa !11
  %1007 = load float, ptr %26, align 4, !tbaa !11
  %1008 = load ptr, ptr %13, align 8, !tbaa !5
  %1009 = load i64, ptr %21, align 8, !tbaa !9
  %1010 = getelementptr inbounds float, ptr %1008, i64 %1009
  store float %1007, ptr %1010, align 4, !tbaa !11
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %1011 = load ptr, ptr %11, align 8, !tbaa !5
  %1012 = load i64, ptr %1011, align 8, !tbaa !9
  %1013 = sub nsw i64 %1012, 1
  store i64 %1013, ptr %14, align 8, !tbaa !9
  %1014 = load i64, ptr %21, align 8, !tbaa !9
  %1015 = add nsw i64 %1014, 1
  store i64 %1015, ptr %23, align 8, !tbaa !9
  br label %1016

1016:                                             ; preds = %1051, %1003
  %1017 = load i64, ptr %23, align 8, !tbaa !9
  %1018 = load i64, ptr %14, align 8, !tbaa !9
  %1019 = icmp sle i64 %1017, %1018
  br i1 %1019, label %1020, label %1054

1020:                                             ; preds = %1016
  %1021 = load i64, ptr %20, align 8, !tbaa !9
  %1022 = add nsw i64 %1021, 1
  store i64 %1022, ptr %20, align 8, !tbaa !9
  %1023 = load ptr, ptr %12, align 8, !tbaa !5
  %1024 = load i64, ptr %20, align 8, !tbaa !9
  %1025 = load i64, ptr %21, align 8, !tbaa !9
  %1026 = load i64, ptr %27, align 8, !tbaa !9
  %1027 = mul nsw i64 %1025, %1026
  %1028 = add nsw i64 %1024, %1027
  %1029 = getelementptr inbounds float, ptr %1023, i64 %1028
  %1030 = load float, ptr %1029, align 4, !tbaa !11
  store float %1030, ptr %17, align 4, !tbaa !11
  %1031 = load float, ptr %17, align 4, !tbaa !11
  %1032 = fcmp oge float %1031, 0.000000e+00
  br i1 %1032, label %1033, label %1035

1033:                                             ; preds = %1020
  %1034 = load float, ptr %17, align 4, !tbaa !11
  br label %1038

1035:                                             ; preds = %1020
  %1036 = load float, ptr %17, align 4, !tbaa !11
  %1037 = fneg float %1036
  br label %1038

1038:                                             ; preds = %1035, %1033
  %1039 = phi float [ %1034, %1033 ], [ %1037, %1035 ]
  %1040 = fpext float %1039 to double
  %1041 = fptrunc double %1040 to float
  store float %1041, ptr %26, align 4, !tbaa !11
  %1042 = load float, ptr %26, align 4, !tbaa !11
  %1043 = load float, ptr %24, align 4, !tbaa !11
  %1044 = fadd float %1043, %1042
  store float %1044, ptr %24, align 4, !tbaa !11
  %1045 = load float, ptr %26, align 4, !tbaa !11
  %1046 = load ptr, ptr %13, align 8, !tbaa !5
  %1047 = load i64, ptr %23, align 8, !tbaa !9
  %1048 = getelementptr inbounds float, ptr %1046, i64 %1047
  %1049 = load float, ptr %1048, align 4, !tbaa !11
  %1050 = fadd float %1049, %1045
  store float %1050, ptr %1048, align 4, !tbaa !11
  br label %1051

1051:                                             ; preds = %1038
  %1052 = load i64, ptr %23, align 8, !tbaa !9
  %1053 = add nsw i64 %1052, 1
  store i64 %1053, ptr %23, align 8, !tbaa !9
  br label %1016, !llvm.loop !37

1054:                                             ; preds = %1016
  %1055 = load float, ptr %24, align 4, !tbaa !11
  %1056 = load ptr, ptr %13, align 8, !tbaa !5
  %1057 = load i64, ptr %21, align 8, !tbaa !9
  %1058 = getelementptr inbounds float, ptr %1056, i64 %1057
  %1059 = load float, ptr %1058, align 4, !tbaa !11
  %1060 = fadd float %1059, %1055
  store float %1060, ptr %1058, align 4, !tbaa !11
  br label %1061

1061:                                             ; preds = %1054
  %1062 = load i64, ptr %21, align 8, !tbaa !9
  %1063 = add nsw i64 %1062, -1
  store i64 %1063, ptr %21, align 8, !tbaa !9
  br label %911, !llvm.loop !38

1064:                                             ; preds = %911
  %1065 = load ptr, ptr %11, align 8, !tbaa !5
  %1066 = load ptr, ptr %13, align 8, !tbaa !5
  %1067 = call i64 @f2c_isamax(ptr noundef %1065, ptr noundef %1066, ptr noundef @c__1)
  store i64 %1067, ptr %20, align 8, !tbaa !9
  %1068 = load ptr, ptr %13, align 8, !tbaa !5
  %1069 = load i64, ptr %20, align 8, !tbaa !9
  %1070 = sub nsw i64 %1069, 1
  %1071 = getelementptr inbounds float, ptr %1068, i64 %1070
  %1072 = load float, ptr %1071, align 4, !tbaa !11
  store float %1072, ptr %32, align 4, !tbaa !11
  br label %1073

1073:                                             ; preds = %1064, %883
  br label %1074

1074:                                             ; preds = %1073, %710
  br label %2428

1075:                                             ; preds = %326
  %1076 = load ptr, ptr %11, align 8, !tbaa !5
  %1077 = load i64, ptr %1076, align 8, !tbaa !9
  %1078 = sdiv i64 %1077, 2
  store i64 %1078, ptr %22, align 8, !tbaa !9
  %1079 = load i64, ptr %29, align 8, !tbaa !9
  %1080 = icmp eq i64 %1079, 1
  br i1 %1080, label %1081, label %1690

1081:                                             ; preds = %1075
  %1082 = load i64, ptr %30, align 8, !tbaa !9
  %1083 = icmp eq i64 %1082, 0
  br i1 %1083, label %1084, label %1387

1084:                                             ; preds = %1081
  %1085 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %1085, ptr %25, align 8, !tbaa !9
  %1086 = load i64, ptr %22, align 8, !tbaa !9
  %1087 = add nsw i64 %1086, 1
  store i64 %1087, ptr %22, align 8, !tbaa !9
  %1088 = load ptr, ptr %11, align 8, !tbaa !5
  %1089 = load i64, ptr %1088, align 8, !tbaa !9
  %1090 = sub nsw i64 %1089, 1
  store i64 %1090, ptr %14, align 8, !tbaa !9
  %1091 = load i64, ptr %25, align 8, !tbaa !9
  store i64 %1091, ptr %20, align 8, !tbaa !9
  br label %1092

1092:                                             ; preds = %1100, %1084
  %1093 = load i64, ptr %20, align 8, !tbaa !9
  %1094 = load i64, ptr %14, align 8, !tbaa !9
  %1095 = icmp sle i64 %1093, %1094
  br i1 %1095, label %1096, label %1103

1096:                                             ; preds = %1092
  %1097 = load ptr, ptr %13, align 8, !tbaa !5
  %1098 = load i64, ptr %20, align 8, !tbaa !9
  %1099 = getelementptr inbounds float, ptr %1097, i64 %1098
  store float 0.000000e+00, ptr %1099, align 4, !tbaa !11
  br label %1100

1100:                                             ; preds = %1096
  %1101 = load i64, ptr %20, align 8, !tbaa !9
  %1102 = add nsw i64 %1101, 1
  store i64 %1102, ptr %20, align 8, !tbaa !9
  br label %1092, !llvm.loop !39

1103:                                             ; preds = %1092
  %1104 = load i64, ptr %25, align 8, !tbaa !9
  %1105 = sub nsw i64 %1104, 1
  store i64 %1105, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %1106

1106:                                             ; preds = %1156, %1103
  %1107 = load i64, ptr %21, align 8, !tbaa !9
  %1108 = load i64, ptr %14, align 8, !tbaa !9
  %1109 = icmp sle i64 %1107, %1108
  br i1 %1109, label %1110, label %1159

1110:                                             ; preds = %1106
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %1111 = load i64, ptr %22, align 8, !tbaa !9
  %1112 = sub nsw i64 %1111, 1
  store i64 %1112, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1113

1113:                                             ; preds = %1148, %1110
  %1114 = load i64, ptr %20, align 8, !tbaa !9
  %1115 = load i64, ptr %15, align 8, !tbaa !9
  %1116 = icmp sle i64 %1114, %1115
  br i1 %1116, label %1117, label %1151

1117:                                             ; preds = %1113
  %1118 = load ptr, ptr %12, align 8, !tbaa !5
  %1119 = load i64, ptr %20, align 8, !tbaa !9
  %1120 = load i64, ptr %21, align 8, !tbaa !9
  %1121 = load i64, ptr %27, align 8, !tbaa !9
  %1122 = mul nsw i64 %1120, %1121
  %1123 = add nsw i64 %1119, %1122
  %1124 = getelementptr inbounds float, ptr %1118, i64 %1123
  %1125 = load float, ptr %1124, align 4, !tbaa !11
  store float %1125, ptr %17, align 4, !tbaa !11
  %1126 = load float, ptr %17, align 4, !tbaa !11
  %1127 = fcmp oge float %1126, 0.000000e+00
  br i1 %1127, label %1128, label %1130

1128:                                             ; preds = %1117
  %1129 = load float, ptr %17, align 4, !tbaa !11
  br label %1133

1130:                                             ; preds = %1117
  %1131 = load float, ptr %17, align 4, !tbaa !11
  %1132 = fneg float %1131
  br label %1133

1133:                                             ; preds = %1130, %1128
  %1134 = phi float [ %1129, %1128 ], [ %1132, %1130 ]
  %1135 = fpext float %1134 to double
  %1136 = fptrunc double %1135 to float
  store float %1136, ptr %26, align 4, !tbaa !11
  %1137 = load float, ptr %26, align 4, !tbaa !11
  %1138 = load ptr, ptr %13, align 8, !tbaa !5
  %1139 = load i64, ptr %20, align 8, !tbaa !9
  %1140 = load i64, ptr %25, align 8, !tbaa !9
  %1141 = add nsw i64 %1139, %1140
  %1142 = getelementptr inbounds float, ptr %1138, i64 %1141
  %1143 = load float, ptr %1142, align 4, !tbaa !11
  %1144 = fadd float %1143, %1137
  store float %1144, ptr %1142, align 4, !tbaa !11
  %1145 = load float, ptr %26, align 4, !tbaa !11
  %1146 = load float, ptr %24, align 4, !tbaa !11
  %1147 = fadd float %1146, %1145
  store float %1147, ptr %24, align 4, !tbaa !11
  br label %1148

1148:                                             ; preds = %1133
  %1149 = load i64, ptr %20, align 8, !tbaa !9
  %1150 = add nsw i64 %1149, 1
  store i64 %1150, ptr %20, align 8, !tbaa !9
  br label %1113, !llvm.loop !40

1151:                                             ; preds = %1113
  %1152 = load float, ptr %24, align 4, !tbaa !11
  %1153 = load ptr, ptr %13, align 8, !tbaa !5
  %1154 = load i64, ptr %21, align 8, !tbaa !9
  %1155 = getelementptr inbounds float, ptr %1153, i64 %1154
  store float %1152, ptr %1155, align 4, !tbaa !11
  br label %1156

1156:                                             ; preds = %1151
  %1157 = load i64, ptr %21, align 8, !tbaa !9
  %1158 = add nsw i64 %1157, 1
  store i64 %1158, ptr %21, align 8, !tbaa !9
  br label %1106, !llvm.loop !41

1159:                                             ; preds = %1106
  %1160 = load ptr, ptr %12, align 8, !tbaa !5
  %1161 = load i64, ptr %21, align 8, !tbaa !9
  %1162 = load i64, ptr %27, align 8, !tbaa !9
  %1163 = mul nsw i64 %1161, %1162
  %1164 = getelementptr inbounds float, ptr %1160, i64 %1163
  %1165 = load float, ptr %1164, align 4, !tbaa !11
  store float %1165, ptr %17, align 4, !tbaa !11
  %1166 = load float, ptr %17, align 4, !tbaa !11
  %1167 = fcmp oge float %1166, 0.000000e+00
  br i1 %1167, label %1168, label %1170

1168:                                             ; preds = %1159
  %1169 = load float, ptr %17, align 4, !tbaa !11
  br label %1173

1170:                                             ; preds = %1159
  %1171 = load float, ptr %17, align 4, !tbaa !11
  %1172 = fneg float %1171
  br label %1173

1173:                                             ; preds = %1170, %1168
  %1174 = phi float [ %1169, %1168 ], [ %1172, %1170 ]
  %1175 = fpext float %1174 to double
  %1176 = fptrunc double %1175 to float
  store float %1176, ptr %24, align 4, !tbaa !11
  %1177 = load i64, ptr %22, align 8, !tbaa !9
  %1178 = sub nsw i64 %1177, 1
  store i64 %1178, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %20, align 8, !tbaa !9
  br label %1179

1179:                                             ; preds = %1214, %1173
  %1180 = load i64, ptr %20, align 8, !tbaa !9
  %1181 = load i64, ptr %14, align 8, !tbaa !9
  %1182 = icmp sle i64 %1180, %1181
  br i1 %1182, label %1183, label %1217

1183:                                             ; preds = %1179
  %1184 = load ptr, ptr %12, align 8, !tbaa !5
  %1185 = load i64, ptr %20, align 8, !tbaa !9
  %1186 = load i64, ptr %21, align 8, !tbaa !9
  %1187 = load i64, ptr %27, align 8, !tbaa !9
  %1188 = mul nsw i64 %1186, %1187
  %1189 = add nsw i64 %1185, %1188
  %1190 = getelementptr inbounds float, ptr %1184, i64 %1189
  %1191 = load float, ptr %1190, align 4, !tbaa !11
  store float %1191, ptr %17, align 4, !tbaa !11
  %1192 = load float, ptr %17, align 4, !tbaa !11
  %1193 = fcmp oge float %1192, 0.000000e+00
  br i1 %1193, label %1194, label %1196

1194:                                             ; preds = %1183
  %1195 = load float, ptr %17, align 4, !tbaa !11
  br label %1199

1196:                                             ; preds = %1183
  %1197 = load float, ptr %17, align 4, !tbaa !11
  %1198 = fneg float %1197
  br label %1199

1199:                                             ; preds = %1196, %1194
  %1200 = phi float [ %1195, %1194 ], [ %1198, %1196 ]
  %1201 = fpext float %1200 to double
  %1202 = fptrunc double %1201 to float
  store float %1202, ptr %26, align 4, !tbaa !11
  %1203 = load float, ptr %26, align 4, !tbaa !11
  %1204 = load ptr, ptr %13, align 8, !tbaa !5
  %1205 = load i64, ptr %20, align 8, !tbaa !9
  %1206 = load i64, ptr %25, align 8, !tbaa !9
  %1207 = add nsw i64 %1205, %1206
  %1208 = getelementptr inbounds float, ptr %1204, i64 %1207
  %1209 = load float, ptr %1208, align 4, !tbaa !11
  %1210 = fadd float %1209, %1203
  store float %1210, ptr %1208, align 4, !tbaa !11
  %1211 = load float, ptr %26, align 4, !tbaa !11
  %1212 = load float, ptr %24, align 4, !tbaa !11
  %1213 = fadd float %1212, %1211
  store float %1213, ptr %24, align 4, !tbaa !11
  br label %1214

1214:                                             ; preds = %1199
  %1215 = load i64, ptr %20, align 8, !tbaa !9
  %1216 = add nsw i64 %1215, 1
  store i64 %1216, ptr %20, align 8, !tbaa !9
  br label %1179, !llvm.loop !42

1217:                                             ; preds = %1179
  %1218 = load float, ptr %24, align 4, !tbaa !11
  %1219 = load ptr, ptr %13, align 8, !tbaa !5
  %1220 = load i64, ptr %21, align 8, !tbaa !9
  %1221 = getelementptr inbounds float, ptr %1219, i64 %1220
  %1222 = load float, ptr %1221, align 4, !tbaa !11
  %1223 = fadd float %1222, %1218
  store float %1223, ptr %1221, align 4, !tbaa !11
  %1224 = load ptr, ptr %11, align 8, !tbaa !5
  %1225 = load i64, ptr %1224, align 8, !tbaa !9
  %1226 = sub nsw i64 %1225, 1
  store i64 %1226, ptr %14, align 8, !tbaa !9
  %1227 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %1227, ptr %21, align 8, !tbaa !9
  br label %1228

1228:                                             ; preds = %1375, %1217
  %1229 = load i64, ptr %21, align 8, !tbaa !9
  %1230 = load i64, ptr %14, align 8, !tbaa !9
  %1231 = icmp sle i64 %1229, %1230
  br i1 %1231, label %1232, label %1378

1232:                                             ; preds = %1228
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %1233 = load i64, ptr %21, align 8, !tbaa !9
  %1234 = load i64, ptr %22, align 8, !tbaa !9
  %1235 = sub nsw i64 %1233, %1234
  %1236 = sub nsw i64 %1235, 1
  store i64 %1236, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1237

1237:                                             ; preds = %1270, %1232
  %1238 = load i64, ptr %20, align 8, !tbaa !9
  %1239 = load i64, ptr %15, align 8, !tbaa !9
  %1240 = icmp sle i64 %1238, %1239
  br i1 %1240, label %1241, label %1273

1241:                                             ; preds = %1237
  %1242 = load ptr, ptr %12, align 8, !tbaa !5
  %1243 = load i64, ptr %20, align 8, !tbaa !9
  %1244 = load i64, ptr %21, align 8, !tbaa !9
  %1245 = load i64, ptr %27, align 8, !tbaa !9
  %1246 = mul nsw i64 %1244, %1245
  %1247 = add nsw i64 %1243, %1246
  %1248 = getelementptr inbounds float, ptr %1242, i64 %1247
  %1249 = load float, ptr %1248, align 4, !tbaa !11
  store float %1249, ptr %17, align 4, !tbaa !11
  %1250 = load float, ptr %17, align 4, !tbaa !11
  %1251 = fcmp oge float %1250, 0.000000e+00
  br i1 %1251, label %1252, label %1254

1252:                                             ; preds = %1241
  %1253 = load float, ptr %17, align 4, !tbaa !11
  br label %1257

1254:                                             ; preds = %1241
  %1255 = load float, ptr %17, align 4, !tbaa !11
  %1256 = fneg float %1255
  br label %1257

1257:                                             ; preds = %1254, %1252
  %1258 = phi float [ %1253, %1252 ], [ %1256, %1254 ]
  %1259 = fpext float %1258 to double
  %1260 = fptrunc double %1259 to float
  store float %1260, ptr %26, align 4, !tbaa !11
  %1261 = load float, ptr %26, align 4, !tbaa !11
  %1262 = load ptr, ptr %13, align 8, !tbaa !5
  %1263 = load i64, ptr %20, align 8, !tbaa !9
  %1264 = getelementptr inbounds float, ptr %1262, i64 %1263
  %1265 = load float, ptr %1264, align 4, !tbaa !11
  %1266 = fadd float %1265, %1261
  store float %1266, ptr %1264, align 4, !tbaa !11
  %1267 = load float, ptr %26, align 4, !tbaa !11
  %1268 = load float, ptr %24, align 4, !tbaa !11
  %1269 = fadd float %1268, %1267
  store float %1269, ptr %24, align 4, !tbaa !11
  br label %1270

1270:                                             ; preds = %1257
  %1271 = load i64, ptr %20, align 8, !tbaa !9
  %1272 = add nsw i64 %1271, 1
  store i64 %1272, ptr %20, align 8, !tbaa !9
  br label %1237, !llvm.loop !43

1273:                                             ; preds = %1237
  %1274 = load ptr, ptr %12, align 8, !tbaa !5
  %1275 = load i64, ptr %20, align 8, !tbaa !9
  %1276 = load i64, ptr %21, align 8, !tbaa !9
  %1277 = load i64, ptr %27, align 8, !tbaa !9
  %1278 = mul nsw i64 %1276, %1277
  %1279 = add nsw i64 %1275, %1278
  %1280 = getelementptr inbounds float, ptr %1274, i64 %1279
  %1281 = load float, ptr %1280, align 4, !tbaa !11
  store float %1281, ptr %17, align 4, !tbaa !11
  %1282 = load float, ptr %17, align 4, !tbaa !11
  %1283 = fcmp oge float %1282, 0.000000e+00
  br i1 %1283, label %1284, label %1286

1284:                                             ; preds = %1273
  %1285 = load float, ptr %17, align 4, !tbaa !11
  br label %1289

1286:                                             ; preds = %1273
  %1287 = load float, ptr %17, align 4, !tbaa !11
  %1288 = fneg float %1287
  br label %1289

1289:                                             ; preds = %1286, %1284
  %1290 = phi float [ %1285, %1284 ], [ %1288, %1286 ]
  %1291 = fpext float %1290 to double
  %1292 = fptrunc double %1291 to float
  store float %1292, ptr %26, align 4, !tbaa !11
  %1293 = load float, ptr %26, align 4, !tbaa !11
  %1294 = load float, ptr %24, align 4, !tbaa !11
  %1295 = fadd float %1294, %1293
  store float %1295, ptr %24, align 4, !tbaa !11
  %1296 = load float, ptr %24, align 4, !tbaa !11
  %1297 = load ptr, ptr %13, align 8, !tbaa !5
  %1298 = load i64, ptr %21, align 8, !tbaa !9
  %1299 = load i64, ptr %22, align 8, !tbaa !9
  %1300 = sub nsw i64 %1298, %1299
  %1301 = getelementptr inbounds float, ptr %1297, i64 %1300
  %1302 = load float, ptr %1301, align 4, !tbaa !11
  %1303 = fadd float %1302, %1296
  store float %1303, ptr %1301, align 4, !tbaa !11
  %1304 = load i64, ptr %20, align 8, !tbaa !9
  %1305 = add nsw i64 %1304, 1
  store i64 %1305, ptr %20, align 8, !tbaa !9
  %1306 = load ptr, ptr %12, align 8, !tbaa !5
  %1307 = load i64, ptr %20, align 8, !tbaa !9
  %1308 = load i64, ptr %21, align 8, !tbaa !9
  %1309 = load i64, ptr %27, align 8, !tbaa !9
  %1310 = mul nsw i64 %1308, %1309
  %1311 = add nsw i64 %1307, %1310
  %1312 = getelementptr inbounds float, ptr %1306, i64 %1311
  %1313 = load float, ptr %1312, align 4, !tbaa !11
  store float %1313, ptr %17, align 4, !tbaa !11
  %1314 = load float, ptr %17, align 4, !tbaa !11
  %1315 = fcmp oge float %1314, 0.000000e+00
  br i1 %1315, label %1316, label %1318

1316:                                             ; preds = %1289
  %1317 = load float, ptr %17, align 4, !tbaa !11
  br label %1321

1318:                                             ; preds = %1289
  %1319 = load float, ptr %17, align 4, !tbaa !11
  %1320 = fneg float %1319
  br label %1321

1321:                                             ; preds = %1318, %1316
  %1322 = phi float [ %1317, %1316 ], [ %1320, %1318 ]
  %1323 = fpext float %1322 to double
  %1324 = fptrunc double %1323 to float
  store float %1324, ptr %24, align 4, !tbaa !11
  %1325 = load ptr, ptr %11, align 8, !tbaa !5
  %1326 = load i64, ptr %1325, align 8, !tbaa !9
  %1327 = sub nsw i64 %1326, 1
  store i64 %1327, ptr %15, align 8, !tbaa !9
  %1328 = load i64, ptr %21, align 8, !tbaa !9
  %1329 = add nsw i64 %1328, 1
  store i64 %1329, ptr %23, align 8, !tbaa !9
  br label %1330

1330:                                             ; preds = %1365, %1321
  %1331 = load i64, ptr %23, align 8, !tbaa !9
  %1332 = load i64, ptr %15, align 8, !tbaa !9
  %1333 = icmp sle i64 %1331, %1332
  br i1 %1333, label %1334, label %1368

1334:                                             ; preds = %1330
  %1335 = load i64, ptr %20, align 8, !tbaa !9
  %1336 = add nsw i64 %1335, 1
  store i64 %1336, ptr %20, align 8, !tbaa !9
  %1337 = load ptr, ptr %12, align 8, !tbaa !5
  %1338 = load i64, ptr %20, align 8, !tbaa !9
  %1339 = load i64, ptr %21, align 8, !tbaa !9
  %1340 = load i64, ptr %27, align 8, !tbaa !9
  %1341 = mul nsw i64 %1339, %1340
  %1342 = add nsw i64 %1338, %1341
  %1343 = getelementptr inbounds float, ptr %1337, i64 %1342
  %1344 = load float, ptr %1343, align 4, !tbaa !11
  store float %1344, ptr %17, align 4, !tbaa !11
  %1345 = load float, ptr %17, align 4, !tbaa !11
  %1346 = fcmp oge float %1345, 0.000000e+00
  br i1 %1346, label %1347, label %1349

1347:                                             ; preds = %1334
  %1348 = load float, ptr %17, align 4, !tbaa !11
  br label %1352

1349:                                             ; preds = %1334
  %1350 = load float, ptr %17, align 4, !tbaa !11
  %1351 = fneg float %1350
  br label %1352

1352:                                             ; preds = %1349, %1347
  %1353 = phi float [ %1348, %1347 ], [ %1351, %1349 ]
  %1354 = fpext float %1353 to double
  %1355 = fptrunc double %1354 to float
  store float %1355, ptr %26, align 4, !tbaa !11
  %1356 = load float, ptr %26, align 4, !tbaa !11
  %1357 = load ptr, ptr %13, align 8, !tbaa !5
  %1358 = load i64, ptr %23, align 8, !tbaa !9
  %1359 = getelementptr inbounds float, ptr %1357, i64 %1358
  %1360 = load float, ptr %1359, align 4, !tbaa !11
  %1361 = fadd float %1360, %1356
  store float %1361, ptr %1359, align 4, !tbaa !11
  %1362 = load float, ptr %26, align 4, !tbaa !11
  %1363 = load float, ptr %24, align 4, !tbaa !11
  %1364 = fadd float %1363, %1362
  store float %1364, ptr %24, align 4, !tbaa !11
  br label %1365

1365:                                             ; preds = %1352
  %1366 = load i64, ptr %23, align 8, !tbaa !9
  %1367 = add nsw i64 %1366, 1
  store i64 %1367, ptr %23, align 8, !tbaa !9
  br label %1330, !llvm.loop !44

1368:                                             ; preds = %1330
  %1369 = load float, ptr %24, align 4, !tbaa !11
  %1370 = load ptr, ptr %13, align 8, !tbaa !5
  %1371 = load i64, ptr %21, align 8, !tbaa !9
  %1372 = getelementptr inbounds float, ptr %1370, i64 %1371
  %1373 = load float, ptr %1372, align 4, !tbaa !11
  %1374 = fadd float %1373, %1369
  store float %1374, ptr %1372, align 4, !tbaa !11
  br label %1375

1375:                                             ; preds = %1368
  %1376 = load i64, ptr %21, align 8, !tbaa !9
  %1377 = add nsw i64 %1376, 1
  store i64 %1377, ptr %21, align 8, !tbaa !9
  br label %1228, !llvm.loop !45

1378:                                             ; preds = %1228
  %1379 = load ptr, ptr %11, align 8, !tbaa !5
  %1380 = load ptr, ptr %13, align 8, !tbaa !5
  %1381 = call i64 @f2c_isamax(ptr noundef %1379, ptr noundef %1380, ptr noundef @c__1)
  store i64 %1381, ptr %20, align 8, !tbaa !9
  %1382 = load ptr, ptr %13, align 8, !tbaa !5
  %1383 = load i64, ptr %20, align 8, !tbaa !9
  %1384 = sub nsw i64 %1383, 1
  %1385 = getelementptr inbounds float, ptr %1382, i64 %1384
  %1386 = load float, ptr %1385, align 4, !tbaa !11
  store float %1386, ptr %32, align 4, !tbaa !11
  br label %1689

1387:                                             ; preds = %1081
  %1388 = load i64, ptr %22, align 8, !tbaa !9
  %1389 = add nsw i64 %1388, 1
  store i64 %1389, ptr %22, align 8, !tbaa !9
  %1390 = load ptr, ptr %11, align 8, !tbaa !5
  %1391 = load i64, ptr %1390, align 8, !tbaa !9
  %1392 = sub nsw i64 %1391, 1
  store i64 %1392, ptr %14, align 8, !tbaa !9
  %1393 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %1393, ptr %20, align 8, !tbaa !9
  br label %1394

1394:                                             ; preds = %1402, %1387
  %1395 = load i64, ptr %20, align 8, !tbaa !9
  %1396 = load i64, ptr %14, align 8, !tbaa !9
  %1397 = icmp sle i64 %1395, %1396
  br i1 %1397, label %1398, label %1405

1398:                                             ; preds = %1394
  %1399 = load ptr, ptr %13, align 8, !tbaa !5
  %1400 = load i64, ptr %20, align 8, !tbaa !9
  %1401 = getelementptr inbounds float, ptr %1399, i64 %1400
  store float 0.000000e+00, ptr %1401, align 4, !tbaa !11
  br label %1402

1402:                                             ; preds = %1398
  %1403 = load i64, ptr %20, align 8, !tbaa !9
  %1404 = add nsw i64 %1403, 1
  store i64 %1404, ptr %20, align 8, !tbaa !9
  br label %1394, !llvm.loop !46

1405:                                             ; preds = %1394
  %1406 = load i64, ptr %22, align 8, !tbaa !9
  %1407 = sub nsw i64 %1406, 2
  store i64 %1407, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %1408

1408:                                             ; preds = %1554, %1405
  %1409 = load i64, ptr %21, align 8, !tbaa !9
  %1410 = load i64, ptr %14, align 8, !tbaa !9
  %1411 = icmp sle i64 %1409, %1410
  br i1 %1411, label %1412, label %1557

1412:                                             ; preds = %1408
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %1413 = load i64, ptr %21, align 8, !tbaa !9
  %1414 = sub nsw i64 %1413, 1
  store i64 %1414, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1415

1415:                                             ; preds = %1448, %1412
  %1416 = load i64, ptr %20, align 8, !tbaa !9
  %1417 = load i64, ptr %15, align 8, !tbaa !9
  %1418 = icmp sle i64 %1416, %1417
  br i1 %1418, label %1419, label %1451

1419:                                             ; preds = %1415
  %1420 = load ptr, ptr %12, align 8, !tbaa !5
  %1421 = load i64, ptr %20, align 8, !tbaa !9
  %1422 = load i64, ptr %21, align 8, !tbaa !9
  %1423 = load i64, ptr %27, align 8, !tbaa !9
  %1424 = mul nsw i64 %1422, %1423
  %1425 = add nsw i64 %1421, %1424
  %1426 = getelementptr inbounds float, ptr %1420, i64 %1425
  %1427 = load float, ptr %1426, align 4, !tbaa !11
  store float %1427, ptr %17, align 4, !tbaa !11
  %1428 = load float, ptr %17, align 4, !tbaa !11
  %1429 = fcmp oge float %1428, 0.000000e+00
  br i1 %1429, label %1430, label %1432

1430:                                             ; preds = %1419
  %1431 = load float, ptr %17, align 4, !tbaa !11
  br label %1435

1432:                                             ; preds = %1419
  %1433 = load float, ptr %17, align 4, !tbaa !11
  %1434 = fneg float %1433
  br label %1435

1435:                                             ; preds = %1432, %1430
  %1436 = phi float [ %1431, %1430 ], [ %1434, %1432 ]
  %1437 = fpext float %1436 to double
  %1438 = fptrunc double %1437 to float
  store float %1438, ptr %26, align 4, !tbaa !11
  %1439 = load float, ptr %26, align 4, !tbaa !11
  %1440 = load ptr, ptr %13, align 8, !tbaa !5
  %1441 = load i64, ptr %20, align 8, !tbaa !9
  %1442 = getelementptr inbounds float, ptr %1440, i64 %1441
  %1443 = load float, ptr %1442, align 4, !tbaa !11
  %1444 = fadd float %1443, %1439
  store float %1444, ptr %1442, align 4, !tbaa !11
  %1445 = load float, ptr %26, align 4, !tbaa !11
  %1446 = load float, ptr %24, align 4, !tbaa !11
  %1447 = fadd float %1446, %1445
  store float %1447, ptr %24, align 4, !tbaa !11
  br label %1448

1448:                                             ; preds = %1435
  %1449 = load i64, ptr %20, align 8, !tbaa !9
  %1450 = add nsw i64 %1449, 1
  store i64 %1450, ptr %20, align 8, !tbaa !9
  br label %1415, !llvm.loop !47

1451:                                             ; preds = %1415
  %1452 = load ptr, ptr %12, align 8, !tbaa !5
  %1453 = load i64, ptr %20, align 8, !tbaa !9
  %1454 = load i64, ptr %21, align 8, !tbaa !9
  %1455 = load i64, ptr %27, align 8, !tbaa !9
  %1456 = mul nsw i64 %1454, %1455
  %1457 = add nsw i64 %1453, %1456
  %1458 = getelementptr inbounds float, ptr %1452, i64 %1457
  %1459 = load float, ptr %1458, align 4, !tbaa !11
  store float %1459, ptr %17, align 4, !tbaa !11
  %1460 = load float, ptr %17, align 4, !tbaa !11
  %1461 = fcmp oge float %1460, 0.000000e+00
  br i1 %1461, label %1462, label %1464

1462:                                             ; preds = %1451
  %1463 = load float, ptr %17, align 4, !tbaa !11
  br label %1467

1464:                                             ; preds = %1451
  %1465 = load float, ptr %17, align 4, !tbaa !11
  %1466 = fneg float %1465
  br label %1467

1467:                                             ; preds = %1464, %1462
  %1468 = phi float [ %1463, %1462 ], [ %1466, %1464 ]
  %1469 = fpext float %1468 to double
  %1470 = fptrunc double %1469 to float
  store float %1470, ptr %26, align 4, !tbaa !11
  %1471 = load float, ptr %26, align 4, !tbaa !11
  %1472 = load float, ptr %24, align 4, !tbaa !11
  %1473 = fadd float %1472, %1471
  store float %1473, ptr %24, align 4, !tbaa !11
  %1474 = load float, ptr %24, align 4, !tbaa !11
  %1475 = load ptr, ptr %13, align 8, !tbaa !5
  %1476 = load i64, ptr %21, align 8, !tbaa !9
  %1477 = getelementptr inbounds float, ptr %1475, i64 %1476
  store float %1474, ptr %1477, align 4, !tbaa !11
  %1478 = load i64, ptr %20, align 8, !tbaa !9
  %1479 = add nsw i64 %1478, 1
  store i64 %1479, ptr %20, align 8, !tbaa !9
  %1480 = load ptr, ptr %12, align 8, !tbaa !5
  %1481 = load i64, ptr %20, align 8, !tbaa !9
  %1482 = load i64, ptr %21, align 8, !tbaa !9
  %1483 = load i64, ptr %27, align 8, !tbaa !9
  %1484 = mul nsw i64 %1482, %1483
  %1485 = add nsw i64 %1481, %1484
  %1486 = getelementptr inbounds float, ptr %1480, i64 %1485
  %1487 = load float, ptr %1486, align 4, !tbaa !11
  store float %1487, ptr %17, align 4, !tbaa !11
  %1488 = load float, ptr %17, align 4, !tbaa !11
  %1489 = fcmp oge float %1488, 0.000000e+00
  br i1 %1489, label %1490, label %1492

1490:                                             ; preds = %1467
  %1491 = load float, ptr %17, align 4, !tbaa !11
  br label %1495

1492:                                             ; preds = %1467
  %1493 = load float, ptr %17, align 4, !tbaa !11
  %1494 = fneg float %1493
  br label %1495

1495:                                             ; preds = %1492, %1490
  %1496 = phi float [ %1491, %1490 ], [ %1494, %1492 ]
  %1497 = fpext float %1496 to double
  %1498 = fptrunc double %1497 to float
  store float %1498, ptr %26, align 4, !tbaa !11
  %1499 = load float, ptr %26, align 4, !tbaa !11
  store float %1499, ptr %24, align 4, !tbaa !11
  %1500 = load ptr, ptr %11, align 8, !tbaa !5
  %1501 = load i64, ptr %1500, align 8, !tbaa !9
  %1502 = sub nsw i64 %1501, 1
  store i64 %1502, ptr %15, align 8, !tbaa !9
  %1503 = load i64, ptr %22, align 8, !tbaa !9
  %1504 = load i64, ptr %21, align 8, !tbaa !9
  %1505 = add nsw i64 %1503, %1504
  %1506 = add nsw i64 %1505, 1
  store i64 %1506, ptr %23, align 8, !tbaa !9
  br label %1507

1507:                                             ; preds = %1542, %1495
  %1508 = load i64, ptr %23, align 8, !tbaa !9
  %1509 = load i64, ptr %15, align 8, !tbaa !9
  %1510 = icmp sle i64 %1508, %1509
  br i1 %1510, label %1511, label %1545

1511:                                             ; preds = %1507
  %1512 = load i64, ptr %20, align 8, !tbaa !9
  %1513 = add nsw i64 %1512, 1
  store i64 %1513, ptr %20, align 8, !tbaa !9
  %1514 = load ptr, ptr %12, align 8, !tbaa !5
  %1515 = load i64, ptr %20, align 8, !tbaa !9
  %1516 = load i64, ptr %21, align 8, !tbaa !9
  %1517 = load i64, ptr %27, align 8, !tbaa !9
  %1518 = mul nsw i64 %1516, %1517
  %1519 = add nsw i64 %1515, %1518
  %1520 = getelementptr inbounds float, ptr %1514, i64 %1519
  %1521 = load float, ptr %1520, align 4, !tbaa !11
  store float %1521, ptr %17, align 4, !tbaa !11
  %1522 = load float, ptr %17, align 4, !tbaa !11
  %1523 = fcmp oge float %1522, 0.000000e+00
  br i1 %1523, label %1524, label %1526

1524:                                             ; preds = %1511
  %1525 = load float, ptr %17, align 4, !tbaa !11
  br label %1529

1526:                                             ; preds = %1511
  %1527 = load float, ptr %17, align 4, !tbaa !11
  %1528 = fneg float %1527
  br label %1529

1529:                                             ; preds = %1526, %1524
  %1530 = phi float [ %1525, %1524 ], [ %1528, %1526 ]
  %1531 = fpext float %1530 to double
  %1532 = fptrunc double %1531 to float
  store float %1532, ptr %26, align 4, !tbaa !11
  %1533 = load float, ptr %26, align 4, !tbaa !11
  %1534 = load float, ptr %24, align 4, !tbaa !11
  %1535 = fadd float %1534, %1533
  store float %1535, ptr %24, align 4, !tbaa !11
  %1536 = load float, ptr %26, align 4, !tbaa !11
  %1537 = load ptr, ptr %13, align 8, !tbaa !5
  %1538 = load i64, ptr %23, align 8, !tbaa !9
  %1539 = getelementptr inbounds float, ptr %1537, i64 %1538
  %1540 = load float, ptr %1539, align 4, !tbaa !11
  %1541 = fadd float %1540, %1536
  store float %1541, ptr %1539, align 4, !tbaa !11
  br label %1542

1542:                                             ; preds = %1529
  %1543 = load i64, ptr %23, align 8, !tbaa !9
  %1544 = add nsw i64 %1543, 1
  store i64 %1544, ptr %23, align 8, !tbaa !9
  br label %1507, !llvm.loop !48

1545:                                             ; preds = %1507
  %1546 = load float, ptr %24, align 4, !tbaa !11
  %1547 = load ptr, ptr %13, align 8, !tbaa !5
  %1548 = load i64, ptr %22, align 8, !tbaa !9
  %1549 = load i64, ptr %21, align 8, !tbaa !9
  %1550 = add nsw i64 %1548, %1549
  %1551 = getelementptr inbounds float, ptr %1547, i64 %1550
  %1552 = load float, ptr %1551, align 4, !tbaa !11
  %1553 = fadd float %1552, %1546
  store float %1553, ptr %1551, align 4, !tbaa !11
  br label %1554

1554:                                             ; preds = %1545
  %1555 = load i64, ptr %21, align 8, !tbaa !9
  %1556 = add nsw i64 %1555, 1
  store i64 %1556, ptr %21, align 8, !tbaa !9
  br label %1408, !llvm.loop !49

1557:                                             ; preds = %1408
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %1558 = load i64, ptr %22, align 8, !tbaa !9
  %1559 = sub nsw i64 %1558, 2
  store i64 %1559, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1560

1560:                                             ; preds = %1593, %1557
  %1561 = load i64, ptr %20, align 8, !tbaa !9
  %1562 = load i64, ptr %14, align 8, !tbaa !9
  %1563 = icmp sle i64 %1561, %1562
  br i1 %1563, label %1564, label %1596

1564:                                             ; preds = %1560
  %1565 = load ptr, ptr %12, align 8, !tbaa !5
  %1566 = load i64, ptr %20, align 8, !tbaa !9
  %1567 = load i64, ptr %21, align 8, !tbaa !9
  %1568 = load i64, ptr %27, align 8, !tbaa !9
  %1569 = mul nsw i64 %1567, %1568
  %1570 = add nsw i64 %1566, %1569
  %1571 = getelementptr inbounds float, ptr %1565, i64 %1570
  %1572 = load float, ptr %1571, align 4, !tbaa !11
  store float %1572, ptr %17, align 4, !tbaa !11
  %1573 = load float, ptr %17, align 4, !tbaa !11
  %1574 = fcmp oge float %1573, 0.000000e+00
  br i1 %1574, label %1575, label %1577

1575:                                             ; preds = %1564
  %1576 = load float, ptr %17, align 4, !tbaa !11
  br label %1580

1577:                                             ; preds = %1564
  %1578 = load float, ptr %17, align 4, !tbaa !11
  %1579 = fneg float %1578
  br label %1580

1580:                                             ; preds = %1577, %1575
  %1581 = phi float [ %1576, %1575 ], [ %1579, %1577 ]
  %1582 = fpext float %1581 to double
  %1583 = fptrunc double %1582 to float
  store float %1583, ptr %26, align 4, !tbaa !11
  %1584 = load float, ptr %26, align 4, !tbaa !11
  %1585 = load ptr, ptr %13, align 8, !tbaa !5
  %1586 = load i64, ptr %20, align 8, !tbaa !9
  %1587 = getelementptr inbounds float, ptr %1585, i64 %1586
  %1588 = load float, ptr %1587, align 4, !tbaa !11
  %1589 = fadd float %1588, %1584
  store float %1589, ptr %1587, align 4, !tbaa !11
  %1590 = load float, ptr %26, align 4, !tbaa !11
  %1591 = load float, ptr %24, align 4, !tbaa !11
  %1592 = fadd float %1591, %1590
  store float %1592, ptr %24, align 4, !tbaa !11
  br label %1593

1593:                                             ; preds = %1580
  %1594 = load i64, ptr %20, align 8, !tbaa !9
  %1595 = add nsw i64 %1594, 1
  store i64 %1595, ptr %20, align 8, !tbaa !9
  br label %1560, !llvm.loop !50

1596:                                             ; preds = %1560
  %1597 = load ptr, ptr %12, align 8, !tbaa !5
  %1598 = load i64, ptr %20, align 8, !tbaa !9
  %1599 = load i64, ptr %21, align 8, !tbaa !9
  %1600 = load i64, ptr %27, align 8, !tbaa !9
  %1601 = mul nsw i64 %1599, %1600
  %1602 = add nsw i64 %1598, %1601
  %1603 = getelementptr inbounds float, ptr %1597, i64 %1602
  %1604 = load float, ptr %1603, align 4, !tbaa !11
  store float %1604, ptr %17, align 4, !tbaa !11
  %1605 = load float, ptr %17, align 4, !tbaa !11
  %1606 = fcmp oge float %1605, 0.000000e+00
  br i1 %1606, label %1607, label %1609

1607:                                             ; preds = %1596
  %1608 = load float, ptr %17, align 4, !tbaa !11
  br label %1612

1609:                                             ; preds = %1596
  %1610 = load float, ptr %17, align 4, !tbaa !11
  %1611 = fneg float %1610
  br label %1612

1612:                                             ; preds = %1609, %1607
  %1613 = phi float [ %1608, %1607 ], [ %1611, %1609 ]
  %1614 = fpext float %1613 to double
  %1615 = fptrunc double %1614 to float
  store float %1615, ptr %26, align 4, !tbaa !11
  %1616 = load float, ptr %26, align 4, !tbaa !11
  %1617 = load float, ptr %24, align 4, !tbaa !11
  %1618 = fadd float %1617, %1616
  store float %1618, ptr %24, align 4, !tbaa !11
  %1619 = load float, ptr %24, align 4, !tbaa !11
  %1620 = load ptr, ptr %13, align 8, !tbaa !5
  %1621 = load i64, ptr %20, align 8, !tbaa !9
  %1622 = getelementptr inbounds float, ptr %1620, i64 %1621
  store float %1619, ptr %1622, align 4, !tbaa !11
  %1623 = load ptr, ptr %11, align 8, !tbaa !5
  %1624 = load i64, ptr %1623, align 8, !tbaa !9
  %1625 = sub nsw i64 %1624, 1
  store i64 %1625, ptr %14, align 8, !tbaa !9
  %1626 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %1626, ptr %21, align 8, !tbaa !9
  br label %1627

1627:                                             ; preds = %1677, %1612
  %1628 = load i64, ptr %21, align 8, !tbaa !9
  %1629 = load i64, ptr %14, align 8, !tbaa !9
  %1630 = icmp sle i64 %1628, %1629
  br i1 %1630, label %1631, label %1680

1631:                                             ; preds = %1627
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %1632 = load i64, ptr %22, align 8, !tbaa !9
  %1633 = sub nsw i64 %1632, 1
  store i64 %1633, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1634

1634:                                             ; preds = %1667, %1631
  %1635 = load i64, ptr %20, align 8, !tbaa !9
  %1636 = load i64, ptr %15, align 8, !tbaa !9
  %1637 = icmp sle i64 %1635, %1636
  br i1 %1637, label %1638, label %1670

1638:                                             ; preds = %1634
  %1639 = load ptr, ptr %12, align 8, !tbaa !5
  %1640 = load i64, ptr %20, align 8, !tbaa !9
  %1641 = load i64, ptr %21, align 8, !tbaa !9
  %1642 = load i64, ptr %27, align 8, !tbaa !9
  %1643 = mul nsw i64 %1641, %1642
  %1644 = add nsw i64 %1640, %1643
  %1645 = getelementptr inbounds float, ptr %1639, i64 %1644
  %1646 = load float, ptr %1645, align 4, !tbaa !11
  store float %1646, ptr %17, align 4, !tbaa !11
  %1647 = load float, ptr %17, align 4, !tbaa !11
  %1648 = fcmp oge float %1647, 0.000000e+00
  br i1 %1648, label %1649, label %1651

1649:                                             ; preds = %1638
  %1650 = load float, ptr %17, align 4, !tbaa !11
  br label %1654

1651:                                             ; preds = %1638
  %1652 = load float, ptr %17, align 4, !tbaa !11
  %1653 = fneg float %1652
  br label %1654

1654:                                             ; preds = %1651, %1649
  %1655 = phi float [ %1650, %1649 ], [ %1653, %1651 ]
  %1656 = fpext float %1655 to double
  %1657 = fptrunc double %1656 to float
  store float %1657, ptr %26, align 4, !tbaa !11
  %1658 = load float, ptr %26, align 4, !tbaa !11
  %1659 = load ptr, ptr %13, align 8, !tbaa !5
  %1660 = load i64, ptr %20, align 8, !tbaa !9
  %1661 = getelementptr inbounds float, ptr %1659, i64 %1660
  %1662 = load float, ptr %1661, align 4, !tbaa !11
  %1663 = fadd float %1662, %1658
  store float %1663, ptr %1661, align 4, !tbaa !11
  %1664 = load float, ptr %26, align 4, !tbaa !11
  %1665 = load float, ptr %24, align 4, !tbaa !11
  %1666 = fadd float %1665, %1664
  store float %1666, ptr %24, align 4, !tbaa !11
  br label %1667

1667:                                             ; preds = %1654
  %1668 = load i64, ptr %20, align 8, !tbaa !9
  %1669 = add nsw i64 %1668, 1
  store i64 %1669, ptr %20, align 8, !tbaa !9
  br label %1634, !llvm.loop !51

1670:                                             ; preds = %1634
  %1671 = load float, ptr %24, align 4, !tbaa !11
  %1672 = load ptr, ptr %13, align 8, !tbaa !5
  %1673 = load i64, ptr %21, align 8, !tbaa !9
  %1674 = getelementptr inbounds float, ptr %1672, i64 %1673
  %1675 = load float, ptr %1674, align 4, !tbaa !11
  %1676 = fadd float %1675, %1671
  store float %1676, ptr %1674, align 4, !tbaa !11
  br label %1677

1677:                                             ; preds = %1670
  %1678 = load i64, ptr %21, align 8, !tbaa !9
  %1679 = add nsw i64 %1678, 1
  store i64 %1679, ptr %21, align 8, !tbaa !9
  br label %1627, !llvm.loop !52

1680:                                             ; preds = %1627
  %1681 = load ptr, ptr %11, align 8, !tbaa !5
  %1682 = load ptr, ptr %13, align 8, !tbaa !5
  %1683 = call i64 @f2c_isamax(ptr noundef %1681, ptr noundef %1682, ptr noundef @c__1)
  store i64 %1683, ptr %20, align 8, !tbaa !9
  %1684 = load ptr, ptr %13, align 8, !tbaa !5
  %1685 = load i64, ptr %20, align 8, !tbaa !9
  %1686 = sub nsw i64 %1685, 1
  %1687 = getelementptr inbounds float, ptr %1684, i64 %1686
  %1688 = load float, ptr %1687, align 4, !tbaa !11
  store float %1688, ptr %32, align 4, !tbaa !11
  br label %1689

1689:                                             ; preds = %1680, %1378
  br label %2427

1690:                                             ; preds = %1075
  %1691 = load i64, ptr %30, align 8, !tbaa !9
  %1692 = icmp eq i64 %1691, 0
  br i1 %1692, label %1693, label %2064

1693:                                             ; preds = %1690
  %1694 = load ptr, ptr %11, align 8, !tbaa !5
  %1695 = load i64, ptr %1694, align 8, !tbaa !9
  %1696 = sub nsw i64 %1695, 1
  store i64 %1696, ptr %14, align 8, !tbaa !9
  %1697 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %1697, ptr %20, align 8, !tbaa !9
  br label %1698

1698:                                             ; preds = %1706, %1693
  %1699 = load i64, ptr %20, align 8, !tbaa !9
  %1700 = load i64, ptr %14, align 8, !tbaa !9
  %1701 = icmp sle i64 %1699, %1700
  br i1 %1701, label %1702, label %1709

1702:                                             ; preds = %1698
  %1703 = load ptr, ptr %13, align 8, !tbaa !5
  %1704 = load i64, ptr %20, align 8, !tbaa !9
  %1705 = getelementptr inbounds float, ptr %1703, i64 %1704
  store float 0.000000e+00, ptr %1705, align 4, !tbaa !11
  br label %1706

1706:                                             ; preds = %1702
  %1707 = load i64, ptr %20, align 8, !tbaa !9
  %1708 = add nsw i64 %1707, 1
  store i64 %1708, ptr %20, align 8, !tbaa !9
  br label %1698, !llvm.loop !53

1709:                                             ; preds = %1698
  %1710 = load i64, ptr %22, align 8, !tbaa !9
  %1711 = sub nsw i64 %1710, 1
  store i64 %1711, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %1712

1712:                                             ; preds = %1762, %1709
  %1713 = load i64, ptr %21, align 8, !tbaa !9
  %1714 = load i64, ptr %14, align 8, !tbaa !9
  %1715 = icmp sle i64 %1713, %1714
  br i1 %1715, label %1716, label %1765

1716:                                             ; preds = %1712
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %1717 = load i64, ptr %22, align 8, !tbaa !9
  %1718 = sub nsw i64 %1717, 1
  store i64 %1718, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1719

1719:                                             ; preds = %1754, %1716
  %1720 = load i64, ptr %20, align 8, !tbaa !9
  %1721 = load i64, ptr %15, align 8, !tbaa !9
  %1722 = icmp sle i64 %1720, %1721
  br i1 %1722, label %1723, label %1757

1723:                                             ; preds = %1719
  %1724 = load ptr, ptr %12, align 8, !tbaa !5
  %1725 = load i64, ptr %20, align 8, !tbaa !9
  %1726 = load i64, ptr %21, align 8, !tbaa !9
  %1727 = load i64, ptr %27, align 8, !tbaa !9
  %1728 = mul nsw i64 %1726, %1727
  %1729 = add nsw i64 %1725, %1728
  %1730 = getelementptr inbounds float, ptr %1724, i64 %1729
  %1731 = load float, ptr %1730, align 4, !tbaa !11
  store float %1731, ptr %17, align 4, !tbaa !11
  %1732 = load float, ptr %17, align 4, !tbaa !11
  %1733 = fcmp oge float %1732, 0.000000e+00
  br i1 %1733, label %1734, label %1736

1734:                                             ; preds = %1723
  %1735 = load float, ptr %17, align 4, !tbaa !11
  br label %1739

1736:                                             ; preds = %1723
  %1737 = load float, ptr %17, align 4, !tbaa !11
  %1738 = fneg float %1737
  br label %1739

1739:                                             ; preds = %1736, %1734
  %1740 = phi float [ %1735, %1734 ], [ %1738, %1736 ]
  %1741 = fpext float %1740 to double
  %1742 = fptrunc double %1741 to float
  store float %1742, ptr %26, align 4, !tbaa !11
  %1743 = load float, ptr %26, align 4, !tbaa !11
  %1744 = load ptr, ptr %13, align 8, !tbaa !5
  %1745 = load i64, ptr %20, align 8, !tbaa !9
  %1746 = load i64, ptr %22, align 8, !tbaa !9
  %1747 = add nsw i64 %1745, %1746
  %1748 = getelementptr inbounds float, ptr %1744, i64 %1747
  %1749 = load float, ptr %1748, align 4, !tbaa !11
  %1750 = fadd float %1749, %1743
  store float %1750, ptr %1748, align 4, !tbaa !11
  %1751 = load float, ptr %26, align 4, !tbaa !11
  %1752 = load float, ptr %24, align 4, !tbaa !11
  %1753 = fadd float %1752, %1751
  store float %1753, ptr %24, align 4, !tbaa !11
  br label %1754

1754:                                             ; preds = %1739
  %1755 = load i64, ptr %20, align 8, !tbaa !9
  %1756 = add nsw i64 %1755, 1
  store i64 %1756, ptr %20, align 8, !tbaa !9
  br label %1719, !llvm.loop !54

1757:                                             ; preds = %1719
  %1758 = load float, ptr %24, align 4, !tbaa !11
  %1759 = load ptr, ptr %13, align 8, !tbaa !5
  %1760 = load i64, ptr %21, align 8, !tbaa !9
  %1761 = getelementptr inbounds float, ptr %1759, i64 %1760
  store float %1758, ptr %1761, align 4, !tbaa !11
  br label %1762

1762:                                             ; preds = %1757
  %1763 = load i64, ptr %21, align 8, !tbaa !9
  %1764 = add nsw i64 %1763, 1
  store i64 %1764, ptr %21, align 8, !tbaa !9
  br label %1712, !llvm.loop !55

1765:                                             ; preds = %1712
  %1766 = load ptr, ptr %12, align 8, !tbaa !5
  %1767 = load i64, ptr %21, align 8, !tbaa !9
  %1768 = load i64, ptr %27, align 8, !tbaa !9
  %1769 = mul nsw i64 %1767, %1768
  %1770 = getelementptr inbounds float, ptr %1766, i64 %1769
  %1771 = load float, ptr %1770, align 4, !tbaa !11
  store float %1771, ptr %17, align 4, !tbaa !11
  %1772 = load float, ptr %17, align 4, !tbaa !11
  %1773 = fcmp oge float %1772, 0.000000e+00
  br i1 %1773, label %1774, label %1776

1774:                                             ; preds = %1765
  %1775 = load float, ptr %17, align 4, !tbaa !11
  br label %1779

1776:                                             ; preds = %1765
  %1777 = load float, ptr %17, align 4, !tbaa !11
  %1778 = fneg float %1777
  br label %1779

1779:                                             ; preds = %1776, %1774
  %1780 = phi float [ %1775, %1774 ], [ %1778, %1776 ]
  %1781 = fpext float %1780 to double
  %1782 = fptrunc double %1781 to float
  store float %1782, ptr %26, align 4, !tbaa !11
  %1783 = load float, ptr %26, align 4, !tbaa !11
  store float %1783, ptr %24, align 4, !tbaa !11
  %1784 = load i64, ptr %22, align 8, !tbaa !9
  %1785 = sub nsw i64 %1784, 1
  store i64 %1785, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %20, align 8, !tbaa !9
  br label %1786

1786:                                             ; preds = %1821, %1779
  %1787 = load i64, ptr %20, align 8, !tbaa !9
  %1788 = load i64, ptr %14, align 8, !tbaa !9
  %1789 = icmp sle i64 %1787, %1788
  br i1 %1789, label %1790, label %1824

1790:                                             ; preds = %1786
  %1791 = load ptr, ptr %12, align 8, !tbaa !5
  %1792 = load i64, ptr %20, align 8, !tbaa !9
  %1793 = load i64, ptr %21, align 8, !tbaa !9
  %1794 = load i64, ptr %27, align 8, !tbaa !9
  %1795 = mul nsw i64 %1793, %1794
  %1796 = add nsw i64 %1792, %1795
  %1797 = getelementptr inbounds float, ptr %1791, i64 %1796
  %1798 = load float, ptr %1797, align 4, !tbaa !11
  store float %1798, ptr %17, align 4, !tbaa !11
  %1799 = load float, ptr %17, align 4, !tbaa !11
  %1800 = fcmp oge float %1799, 0.000000e+00
  br i1 %1800, label %1801, label %1803

1801:                                             ; preds = %1790
  %1802 = load float, ptr %17, align 4, !tbaa !11
  br label %1806

1803:                                             ; preds = %1790
  %1804 = load float, ptr %17, align 4, !tbaa !11
  %1805 = fneg float %1804
  br label %1806

1806:                                             ; preds = %1803, %1801
  %1807 = phi float [ %1802, %1801 ], [ %1805, %1803 ]
  %1808 = fpext float %1807 to double
  %1809 = fptrunc double %1808 to float
  store float %1809, ptr %26, align 4, !tbaa !11
  %1810 = load float, ptr %26, align 4, !tbaa !11
  %1811 = load ptr, ptr %13, align 8, !tbaa !5
  %1812 = load i64, ptr %20, align 8, !tbaa !9
  %1813 = load i64, ptr %22, align 8, !tbaa !9
  %1814 = add nsw i64 %1812, %1813
  %1815 = getelementptr inbounds float, ptr %1811, i64 %1814
  %1816 = load float, ptr %1815, align 4, !tbaa !11
  %1817 = fadd float %1816, %1810
  store float %1817, ptr %1815, align 4, !tbaa !11
  %1818 = load float, ptr %26, align 4, !tbaa !11
  %1819 = load float, ptr %24, align 4, !tbaa !11
  %1820 = fadd float %1819, %1818
  store float %1820, ptr %24, align 4, !tbaa !11
  br label %1821

1821:                                             ; preds = %1806
  %1822 = load i64, ptr %20, align 8, !tbaa !9
  %1823 = add nsw i64 %1822, 1
  store i64 %1823, ptr %20, align 8, !tbaa !9
  br label %1786, !llvm.loop !56

1824:                                             ; preds = %1786
  %1825 = load float, ptr %24, align 4, !tbaa !11
  %1826 = load ptr, ptr %13, align 8, !tbaa !5
  %1827 = load i64, ptr %21, align 8, !tbaa !9
  %1828 = getelementptr inbounds float, ptr %1826, i64 %1827
  %1829 = load float, ptr %1828, align 4, !tbaa !11
  %1830 = fadd float %1829, %1825
  store float %1830, ptr %1828, align 4, !tbaa !11
  %1831 = load ptr, ptr %11, align 8, !tbaa !5
  %1832 = load i64, ptr %1831, align 8, !tbaa !9
  %1833 = sub nsw i64 %1832, 1
  store i64 %1833, ptr %14, align 8, !tbaa !9
  %1834 = load i64, ptr %22, align 8, !tbaa !9
  %1835 = add nsw i64 %1834, 1
  store i64 %1835, ptr %21, align 8, !tbaa !9
  br label %1836

1836:                                             ; preds = %1985, %1824
  %1837 = load i64, ptr %21, align 8, !tbaa !9
  %1838 = load i64, ptr %14, align 8, !tbaa !9
  %1839 = icmp sle i64 %1837, %1838
  br i1 %1839, label %1840, label %1988

1840:                                             ; preds = %1836
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %1841 = load i64, ptr %21, align 8, !tbaa !9
  %1842 = sub nsw i64 %1841, 2
  %1843 = load i64, ptr %22, align 8, !tbaa !9
  %1844 = sub nsw i64 %1842, %1843
  store i64 %1844, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1845

1845:                                             ; preds = %1878, %1840
  %1846 = load i64, ptr %20, align 8, !tbaa !9
  %1847 = load i64, ptr %15, align 8, !tbaa !9
  %1848 = icmp sle i64 %1846, %1847
  br i1 %1848, label %1849, label %1881

1849:                                             ; preds = %1845
  %1850 = load ptr, ptr %12, align 8, !tbaa !5
  %1851 = load i64, ptr %20, align 8, !tbaa !9
  %1852 = load i64, ptr %21, align 8, !tbaa !9
  %1853 = load i64, ptr %27, align 8, !tbaa !9
  %1854 = mul nsw i64 %1852, %1853
  %1855 = add nsw i64 %1851, %1854
  %1856 = getelementptr inbounds float, ptr %1850, i64 %1855
  %1857 = load float, ptr %1856, align 4, !tbaa !11
  store float %1857, ptr %17, align 4, !tbaa !11
  %1858 = load float, ptr %17, align 4, !tbaa !11
  %1859 = fcmp oge float %1858, 0.000000e+00
  br i1 %1859, label %1860, label %1862

1860:                                             ; preds = %1849
  %1861 = load float, ptr %17, align 4, !tbaa !11
  br label %1865

1862:                                             ; preds = %1849
  %1863 = load float, ptr %17, align 4, !tbaa !11
  %1864 = fneg float %1863
  br label %1865

1865:                                             ; preds = %1862, %1860
  %1866 = phi float [ %1861, %1860 ], [ %1864, %1862 ]
  %1867 = fpext float %1866 to double
  %1868 = fptrunc double %1867 to float
  store float %1868, ptr %26, align 4, !tbaa !11
  %1869 = load float, ptr %26, align 4, !tbaa !11
  %1870 = load ptr, ptr %13, align 8, !tbaa !5
  %1871 = load i64, ptr %20, align 8, !tbaa !9
  %1872 = getelementptr inbounds float, ptr %1870, i64 %1871
  %1873 = load float, ptr %1872, align 4, !tbaa !11
  %1874 = fadd float %1873, %1869
  store float %1874, ptr %1872, align 4, !tbaa !11
  %1875 = load float, ptr %26, align 4, !tbaa !11
  %1876 = load float, ptr %24, align 4, !tbaa !11
  %1877 = fadd float %1876, %1875
  store float %1877, ptr %24, align 4, !tbaa !11
  br label %1878

1878:                                             ; preds = %1865
  %1879 = load i64, ptr %20, align 8, !tbaa !9
  %1880 = add nsw i64 %1879, 1
  store i64 %1880, ptr %20, align 8, !tbaa !9
  br label %1845, !llvm.loop !57

1881:                                             ; preds = %1845
  %1882 = load ptr, ptr %12, align 8, !tbaa !5
  %1883 = load i64, ptr %20, align 8, !tbaa !9
  %1884 = load i64, ptr %21, align 8, !tbaa !9
  %1885 = load i64, ptr %27, align 8, !tbaa !9
  %1886 = mul nsw i64 %1884, %1885
  %1887 = add nsw i64 %1883, %1886
  %1888 = getelementptr inbounds float, ptr %1882, i64 %1887
  %1889 = load float, ptr %1888, align 4, !tbaa !11
  store float %1889, ptr %17, align 4, !tbaa !11
  %1890 = load float, ptr %17, align 4, !tbaa !11
  %1891 = fcmp oge float %1890, 0.000000e+00
  br i1 %1891, label %1892, label %1894

1892:                                             ; preds = %1881
  %1893 = load float, ptr %17, align 4, !tbaa !11
  br label %1897

1894:                                             ; preds = %1881
  %1895 = load float, ptr %17, align 4, !tbaa !11
  %1896 = fneg float %1895
  br label %1897

1897:                                             ; preds = %1894, %1892
  %1898 = phi float [ %1893, %1892 ], [ %1896, %1894 ]
  %1899 = fpext float %1898 to double
  %1900 = fptrunc double %1899 to float
  store float %1900, ptr %26, align 4, !tbaa !11
  %1901 = load float, ptr %26, align 4, !tbaa !11
  %1902 = load float, ptr %24, align 4, !tbaa !11
  %1903 = fadd float %1902, %1901
  store float %1903, ptr %24, align 4, !tbaa !11
  %1904 = load float, ptr %24, align 4, !tbaa !11
  %1905 = load ptr, ptr %13, align 8, !tbaa !5
  %1906 = load i64, ptr %21, align 8, !tbaa !9
  %1907 = load i64, ptr %22, align 8, !tbaa !9
  %1908 = sub nsw i64 %1906, %1907
  %1909 = sub nsw i64 %1908, 1
  %1910 = getelementptr inbounds float, ptr %1905, i64 %1909
  %1911 = load float, ptr %1910, align 4, !tbaa !11
  %1912 = fadd float %1911, %1904
  store float %1912, ptr %1910, align 4, !tbaa !11
  %1913 = load i64, ptr %20, align 8, !tbaa !9
  %1914 = add nsw i64 %1913, 1
  store i64 %1914, ptr %20, align 8, !tbaa !9
  %1915 = load ptr, ptr %12, align 8, !tbaa !5
  %1916 = load i64, ptr %20, align 8, !tbaa !9
  %1917 = load i64, ptr %21, align 8, !tbaa !9
  %1918 = load i64, ptr %27, align 8, !tbaa !9
  %1919 = mul nsw i64 %1917, %1918
  %1920 = add nsw i64 %1916, %1919
  %1921 = getelementptr inbounds float, ptr %1915, i64 %1920
  %1922 = load float, ptr %1921, align 4, !tbaa !11
  store float %1922, ptr %17, align 4, !tbaa !11
  %1923 = load float, ptr %17, align 4, !tbaa !11
  %1924 = fcmp oge float %1923, 0.000000e+00
  br i1 %1924, label %1925, label %1927

1925:                                             ; preds = %1897
  %1926 = load float, ptr %17, align 4, !tbaa !11
  br label %1930

1927:                                             ; preds = %1897
  %1928 = load float, ptr %17, align 4, !tbaa !11
  %1929 = fneg float %1928
  br label %1930

1930:                                             ; preds = %1927, %1925
  %1931 = phi float [ %1926, %1925 ], [ %1929, %1927 ]
  %1932 = fpext float %1931 to double
  %1933 = fptrunc double %1932 to float
  store float %1933, ptr %26, align 4, !tbaa !11
  %1934 = load float, ptr %26, align 4, !tbaa !11
  store float %1934, ptr %24, align 4, !tbaa !11
  %1935 = load ptr, ptr %11, align 8, !tbaa !5
  %1936 = load i64, ptr %1935, align 8, !tbaa !9
  %1937 = sub nsw i64 %1936, 1
  store i64 %1937, ptr %15, align 8, !tbaa !9
  %1938 = load i64, ptr %21, align 8, !tbaa !9
  %1939 = add nsw i64 %1938, 1
  store i64 %1939, ptr %23, align 8, !tbaa !9
  br label %1940

1940:                                             ; preds = %1975, %1930
  %1941 = load i64, ptr %23, align 8, !tbaa !9
  %1942 = load i64, ptr %15, align 8, !tbaa !9
  %1943 = icmp sle i64 %1941, %1942
  br i1 %1943, label %1944, label %1978

1944:                                             ; preds = %1940
  %1945 = load i64, ptr %20, align 8, !tbaa !9
  %1946 = add nsw i64 %1945, 1
  store i64 %1946, ptr %20, align 8, !tbaa !9
  %1947 = load ptr, ptr %12, align 8, !tbaa !5
  %1948 = load i64, ptr %20, align 8, !tbaa !9
  %1949 = load i64, ptr %21, align 8, !tbaa !9
  %1950 = load i64, ptr %27, align 8, !tbaa !9
  %1951 = mul nsw i64 %1949, %1950
  %1952 = add nsw i64 %1948, %1951
  %1953 = getelementptr inbounds float, ptr %1947, i64 %1952
  %1954 = load float, ptr %1953, align 4, !tbaa !11
  store float %1954, ptr %17, align 4, !tbaa !11
  %1955 = load float, ptr %17, align 4, !tbaa !11
  %1956 = fcmp oge float %1955, 0.000000e+00
  br i1 %1956, label %1957, label %1959

1957:                                             ; preds = %1944
  %1958 = load float, ptr %17, align 4, !tbaa !11
  br label %1962

1959:                                             ; preds = %1944
  %1960 = load float, ptr %17, align 4, !tbaa !11
  %1961 = fneg float %1960
  br label %1962

1962:                                             ; preds = %1959, %1957
  %1963 = phi float [ %1958, %1957 ], [ %1961, %1959 ]
  %1964 = fpext float %1963 to double
  %1965 = fptrunc double %1964 to float
  store float %1965, ptr %26, align 4, !tbaa !11
  %1966 = load float, ptr %26, align 4, !tbaa !11
  %1967 = load ptr, ptr %13, align 8, !tbaa !5
  %1968 = load i64, ptr %23, align 8, !tbaa !9
  %1969 = getelementptr inbounds float, ptr %1967, i64 %1968
  %1970 = load float, ptr %1969, align 4, !tbaa !11
  %1971 = fadd float %1970, %1966
  store float %1971, ptr %1969, align 4, !tbaa !11
  %1972 = load float, ptr %26, align 4, !tbaa !11
  %1973 = load float, ptr %24, align 4, !tbaa !11
  %1974 = fadd float %1973, %1972
  store float %1974, ptr %24, align 4, !tbaa !11
  br label %1975

1975:                                             ; preds = %1962
  %1976 = load i64, ptr %23, align 8, !tbaa !9
  %1977 = add nsw i64 %1976, 1
  store i64 %1977, ptr %23, align 8, !tbaa !9
  br label %1940, !llvm.loop !58

1978:                                             ; preds = %1940
  %1979 = load float, ptr %24, align 4, !tbaa !11
  %1980 = load ptr, ptr %13, align 8, !tbaa !5
  %1981 = load i64, ptr %21, align 8, !tbaa !9
  %1982 = getelementptr inbounds float, ptr %1980, i64 %1981
  %1983 = load float, ptr %1982, align 4, !tbaa !11
  %1984 = fadd float %1983, %1979
  store float %1984, ptr %1982, align 4, !tbaa !11
  br label %1985

1985:                                             ; preds = %1978
  %1986 = load i64, ptr %21, align 8, !tbaa !9
  %1987 = add nsw i64 %1986, 1
  store i64 %1987, ptr %21, align 8, !tbaa !9
  br label %1836, !llvm.loop !59

1988:                                             ; preds = %1836
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %1989 = load i64, ptr %22, align 8, !tbaa !9
  %1990 = sub nsw i64 %1989, 2
  store i64 %1990, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %1991

1991:                                             ; preds = %2024, %1988
  %1992 = load i64, ptr %20, align 8, !tbaa !9
  %1993 = load i64, ptr %14, align 8, !tbaa !9
  %1994 = icmp sle i64 %1992, %1993
  br i1 %1994, label %1995, label %2027

1995:                                             ; preds = %1991
  %1996 = load ptr, ptr %12, align 8, !tbaa !5
  %1997 = load i64, ptr %20, align 8, !tbaa !9
  %1998 = load i64, ptr %21, align 8, !tbaa !9
  %1999 = load i64, ptr %27, align 8, !tbaa !9
  %2000 = mul nsw i64 %1998, %1999
  %2001 = add nsw i64 %1997, %2000
  %2002 = getelementptr inbounds float, ptr %1996, i64 %2001
  %2003 = load float, ptr %2002, align 4, !tbaa !11
  store float %2003, ptr %17, align 4, !tbaa !11
  %2004 = load float, ptr %17, align 4, !tbaa !11
  %2005 = fcmp oge float %2004, 0.000000e+00
  br i1 %2005, label %2006, label %2008

2006:                                             ; preds = %1995
  %2007 = load float, ptr %17, align 4, !tbaa !11
  br label %2011

2008:                                             ; preds = %1995
  %2009 = load float, ptr %17, align 4, !tbaa !11
  %2010 = fneg float %2009
  br label %2011

2011:                                             ; preds = %2008, %2006
  %2012 = phi float [ %2007, %2006 ], [ %2010, %2008 ]
  %2013 = fpext float %2012 to double
  %2014 = fptrunc double %2013 to float
  store float %2014, ptr %26, align 4, !tbaa !11
  %2015 = load float, ptr %26, align 4, !tbaa !11
  %2016 = load ptr, ptr %13, align 8, !tbaa !5
  %2017 = load i64, ptr %20, align 8, !tbaa !9
  %2018 = getelementptr inbounds float, ptr %2016, i64 %2017
  %2019 = load float, ptr %2018, align 4, !tbaa !11
  %2020 = fadd float %2019, %2015
  store float %2020, ptr %2018, align 4, !tbaa !11
  %2021 = load float, ptr %26, align 4, !tbaa !11
  %2022 = load float, ptr %24, align 4, !tbaa !11
  %2023 = fadd float %2022, %2021
  store float %2023, ptr %24, align 4, !tbaa !11
  br label %2024

2024:                                             ; preds = %2011
  %2025 = load i64, ptr %20, align 8, !tbaa !9
  %2026 = add nsw i64 %2025, 1
  store i64 %2026, ptr %20, align 8, !tbaa !9
  br label %1991, !llvm.loop !60

2027:                                             ; preds = %1991
  %2028 = load ptr, ptr %12, align 8, !tbaa !5
  %2029 = load i64, ptr %20, align 8, !tbaa !9
  %2030 = load i64, ptr %21, align 8, !tbaa !9
  %2031 = load i64, ptr %27, align 8, !tbaa !9
  %2032 = mul nsw i64 %2030, %2031
  %2033 = add nsw i64 %2029, %2032
  %2034 = getelementptr inbounds float, ptr %2028, i64 %2033
  %2035 = load float, ptr %2034, align 4, !tbaa !11
  store float %2035, ptr %17, align 4, !tbaa !11
  %2036 = load float, ptr %17, align 4, !tbaa !11
  %2037 = fcmp oge float %2036, 0.000000e+00
  br i1 %2037, label %2038, label %2040

2038:                                             ; preds = %2027
  %2039 = load float, ptr %17, align 4, !tbaa !11
  br label %2043

2040:                                             ; preds = %2027
  %2041 = load float, ptr %17, align 4, !tbaa !11
  %2042 = fneg float %2041
  br label %2043

2043:                                             ; preds = %2040, %2038
  %2044 = phi float [ %2039, %2038 ], [ %2042, %2040 ]
  %2045 = fpext float %2044 to double
  %2046 = fptrunc double %2045 to float
  store float %2046, ptr %26, align 4, !tbaa !11
  %2047 = load float, ptr %26, align 4, !tbaa !11
  %2048 = load float, ptr %24, align 4, !tbaa !11
  %2049 = fadd float %2048, %2047
  store float %2049, ptr %24, align 4, !tbaa !11
  %2050 = load float, ptr %24, align 4, !tbaa !11
  %2051 = load ptr, ptr %13, align 8, !tbaa !5
  %2052 = load i64, ptr %20, align 8, !tbaa !9
  %2053 = getelementptr inbounds float, ptr %2051, i64 %2052
  %2054 = load float, ptr %2053, align 4, !tbaa !11
  %2055 = fadd float %2054, %2050
  store float %2055, ptr %2053, align 4, !tbaa !11
  %2056 = load ptr, ptr %11, align 8, !tbaa !5
  %2057 = load ptr, ptr %13, align 8, !tbaa !5
  %2058 = call i64 @f2c_isamax(ptr noundef %2056, ptr noundef %2057, ptr noundef @c__1)
  store i64 %2058, ptr %20, align 8, !tbaa !9
  %2059 = load ptr, ptr %13, align 8, !tbaa !5
  %2060 = load i64, ptr %20, align 8, !tbaa !9
  %2061 = sub nsw i64 %2060, 1
  %2062 = getelementptr inbounds float, ptr %2059, i64 %2061
  %2063 = load float, ptr %2062, align 4, !tbaa !11
  store float %2063, ptr %32, align 4, !tbaa !11
  br label %2426

2064:                                             ; preds = %1690
  %2065 = load ptr, ptr %11, align 8, !tbaa !5
  %2066 = load i64, ptr %2065, align 8, !tbaa !9
  %2067 = sub nsw i64 %2066, 1
  store i64 %2067, ptr %14, align 8, !tbaa !9
  %2068 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %2068, ptr %20, align 8, !tbaa !9
  br label %2069

2069:                                             ; preds = %2077, %2064
  %2070 = load i64, ptr %20, align 8, !tbaa !9
  %2071 = load i64, ptr %14, align 8, !tbaa !9
  %2072 = icmp sle i64 %2070, %2071
  br i1 %2072, label %2073, label %2080

2073:                                             ; preds = %2069
  %2074 = load ptr, ptr %13, align 8, !tbaa !5
  %2075 = load i64, ptr %20, align 8, !tbaa !9
  %2076 = getelementptr inbounds float, ptr %2074, i64 %2075
  store float 0.000000e+00, ptr %2076, align 4, !tbaa !11
  br label %2077

2077:                                             ; preds = %2073
  %2078 = load i64, ptr %20, align 8, !tbaa !9
  %2079 = add nsw i64 %2078, 1
  store i64 %2079, ptr %20, align 8, !tbaa !9
  br label %2069, !llvm.loop !61

2080:                                             ; preds = %2069
  %2081 = load ptr, ptr %12, align 8, !tbaa !5
  %2082 = getelementptr inbounds float, ptr %2081, i64 0
  %2083 = load float, ptr %2082, align 4, !tbaa !11
  %2084 = fcmp oge float %2083, 0.000000e+00
  br i1 %2084, label %2085, label %2089

2085:                                             ; preds = %2080
  %2086 = load ptr, ptr %12, align 8, !tbaa !5
  %2087 = getelementptr inbounds float, ptr %2086, i64 0
  %2088 = load float, ptr %2087, align 4, !tbaa !11
  br label %2094

2089:                                             ; preds = %2080
  %2090 = load ptr, ptr %12, align 8, !tbaa !5
  %2091 = getelementptr inbounds float, ptr %2090, i64 0
  %2092 = load float, ptr %2091, align 4, !tbaa !11
  %2093 = fneg float %2092
  br label %2094

2094:                                             ; preds = %2089, %2085
  %2095 = phi float [ %2088, %2085 ], [ %2093, %2089 ]
  %2096 = fpext float %2095 to double
  %2097 = fptrunc double %2096 to float
  store float %2097, ptr %24, align 4, !tbaa !11
  %2098 = load i64, ptr %22, align 8, !tbaa !9
  %2099 = sub nsw i64 %2098, 1
  store i64 %2099, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %20, align 8, !tbaa !9
  br label %2100

2100:                                             ; preds = %2131, %2094
  %2101 = load i64, ptr %20, align 8, !tbaa !9
  %2102 = load i64, ptr %14, align 8, !tbaa !9
  %2103 = icmp sle i64 %2101, %2102
  br i1 %2103, label %2104, label %2134

2104:                                             ; preds = %2100
  %2105 = load ptr, ptr %12, align 8, !tbaa !5
  %2106 = load i64, ptr %20, align 8, !tbaa !9
  %2107 = getelementptr inbounds float, ptr %2105, i64 %2106
  %2108 = load float, ptr %2107, align 4, !tbaa !11
  store float %2108, ptr %17, align 4, !tbaa !11
  %2109 = load float, ptr %17, align 4, !tbaa !11
  %2110 = fcmp oge float %2109, 0.000000e+00
  br i1 %2110, label %2111, label %2113

2111:                                             ; preds = %2104
  %2112 = load float, ptr %17, align 4, !tbaa !11
  br label %2116

2113:                                             ; preds = %2104
  %2114 = load float, ptr %17, align 4, !tbaa !11
  %2115 = fneg float %2114
  br label %2116

2116:                                             ; preds = %2113, %2111
  %2117 = phi float [ %2112, %2111 ], [ %2115, %2113 ]
  %2118 = fpext float %2117 to double
  %2119 = fptrunc double %2118 to float
  store float %2119, ptr %26, align 4, !tbaa !11
  %2120 = load float, ptr %26, align 4, !tbaa !11
  %2121 = load ptr, ptr %13, align 8, !tbaa !5
  %2122 = load i64, ptr %20, align 8, !tbaa !9
  %2123 = load i64, ptr %22, align 8, !tbaa !9
  %2124 = add nsw i64 %2122, %2123
  %2125 = getelementptr inbounds float, ptr %2121, i64 %2124
  %2126 = load float, ptr %2125, align 4, !tbaa !11
  %2127 = fadd float %2126, %2120
  store float %2127, ptr %2125, align 4, !tbaa !11
  %2128 = load float, ptr %26, align 4, !tbaa !11
  %2129 = load float, ptr %24, align 4, !tbaa !11
  %2130 = fadd float %2129, %2128
  store float %2130, ptr %24, align 4, !tbaa !11
  br label %2131

2131:                                             ; preds = %2116
  %2132 = load i64, ptr %20, align 8, !tbaa !9
  %2133 = add nsw i64 %2132, 1
  store i64 %2133, ptr %20, align 8, !tbaa !9
  br label %2100, !llvm.loop !62

2134:                                             ; preds = %2100
  %2135 = load float, ptr %24, align 4, !tbaa !11
  %2136 = load ptr, ptr %13, align 8, !tbaa !5
  %2137 = load i64, ptr %22, align 8, !tbaa !9
  %2138 = getelementptr inbounds float, ptr %2136, i64 %2137
  %2139 = load float, ptr %2138, align 4, !tbaa !11
  %2140 = fadd float %2139, %2135
  store float %2140, ptr %2138, align 4, !tbaa !11
  %2141 = load i64, ptr %22, align 8, !tbaa !9
  %2142 = sub nsw i64 %2141, 1
  store i64 %2142, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %2143

2143:                                             ; preds = %2290, %2134
  %2144 = load i64, ptr %21, align 8, !tbaa !9
  %2145 = load i64, ptr %14, align 8, !tbaa !9
  %2146 = icmp sle i64 %2144, %2145
  br i1 %2146, label %2147, label %2293

2147:                                             ; preds = %2143
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %2148 = load i64, ptr %21, align 8, !tbaa !9
  %2149 = sub nsw i64 %2148, 2
  store i64 %2149, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %2150

2150:                                             ; preds = %2183, %2147
  %2151 = load i64, ptr %20, align 8, !tbaa !9
  %2152 = load i64, ptr %15, align 8, !tbaa !9
  %2153 = icmp sle i64 %2151, %2152
  br i1 %2153, label %2154, label %2186

2154:                                             ; preds = %2150
  %2155 = load ptr, ptr %12, align 8, !tbaa !5
  %2156 = load i64, ptr %20, align 8, !tbaa !9
  %2157 = load i64, ptr %21, align 8, !tbaa !9
  %2158 = load i64, ptr %27, align 8, !tbaa !9
  %2159 = mul nsw i64 %2157, %2158
  %2160 = add nsw i64 %2156, %2159
  %2161 = getelementptr inbounds float, ptr %2155, i64 %2160
  %2162 = load float, ptr %2161, align 4, !tbaa !11
  store float %2162, ptr %17, align 4, !tbaa !11
  %2163 = load float, ptr %17, align 4, !tbaa !11
  %2164 = fcmp oge float %2163, 0.000000e+00
  br i1 %2164, label %2165, label %2167

2165:                                             ; preds = %2154
  %2166 = load float, ptr %17, align 4, !tbaa !11
  br label %2170

2167:                                             ; preds = %2154
  %2168 = load float, ptr %17, align 4, !tbaa !11
  %2169 = fneg float %2168
  br label %2170

2170:                                             ; preds = %2167, %2165
  %2171 = phi float [ %2166, %2165 ], [ %2169, %2167 ]
  %2172 = fpext float %2171 to double
  %2173 = fptrunc double %2172 to float
  store float %2173, ptr %26, align 4, !tbaa !11
  %2174 = load float, ptr %26, align 4, !tbaa !11
  %2175 = load ptr, ptr %13, align 8, !tbaa !5
  %2176 = load i64, ptr %20, align 8, !tbaa !9
  %2177 = getelementptr inbounds float, ptr %2175, i64 %2176
  %2178 = load float, ptr %2177, align 4, !tbaa !11
  %2179 = fadd float %2178, %2174
  store float %2179, ptr %2177, align 4, !tbaa !11
  %2180 = load float, ptr %26, align 4, !tbaa !11
  %2181 = load float, ptr %24, align 4, !tbaa !11
  %2182 = fadd float %2181, %2180
  store float %2182, ptr %24, align 4, !tbaa !11
  br label %2183

2183:                                             ; preds = %2170
  %2184 = load i64, ptr %20, align 8, !tbaa !9
  %2185 = add nsw i64 %2184, 1
  store i64 %2185, ptr %20, align 8, !tbaa !9
  br label %2150, !llvm.loop !63

2186:                                             ; preds = %2150
  %2187 = load ptr, ptr %12, align 8, !tbaa !5
  %2188 = load i64, ptr %20, align 8, !tbaa !9
  %2189 = load i64, ptr %21, align 8, !tbaa !9
  %2190 = load i64, ptr %27, align 8, !tbaa !9
  %2191 = mul nsw i64 %2189, %2190
  %2192 = add nsw i64 %2188, %2191
  %2193 = getelementptr inbounds float, ptr %2187, i64 %2192
  %2194 = load float, ptr %2193, align 4, !tbaa !11
  store float %2194, ptr %17, align 4, !tbaa !11
  %2195 = load float, ptr %17, align 4, !tbaa !11
  %2196 = fcmp oge float %2195, 0.000000e+00
  br i1 %2196, label %2197, label %2199

2197:                                             ; preds = %2186
  %2198 = load float, ptr %17, align 4, !tbaa !11
  br label %2202

2199:                                             ; preds = %2186
  %2200 = load float, ptr %17, align 4, !tbaa !11
  %2201 = fneg float %2200
  br label %2202

2202:                                             ; preds = %2199, %2197
  %2203 = phi float [ %2198, %2197 ], [ %2201, %2199 ]
  %2204 = fpext float %2203 to double
  %2205 = fptrunc double %2204 to float
  store float %2205, ptr %26, align 4, !tbaa !11
  %2206 = load float, ptr %26, align 4, !tbaa !11
  %2207 = load float, ptr %24, align 4, !tbaa !11
  %2208 = fadd float %2207, %2206
  store float %2208, ptr %24, align 4, !tbaa !11
  %2209 = load float, ptr %24, align 4, !tbaa !11
  %2210 = load ptr, ptr %13, align 8, !tbaa !5
  %2211 = load i64, ptr %21, align 8, !tbaa !9
  %2212 = sub nsw i64 %2211, 1
  %2213 = getelementptr inbounds float, ptr %2210, i64 %2212
  store float %2209, ptr %2213, align 4, !tbaa !11
  %2214 = load i64, ptr %20, align 8, !tbaa !9
  %2215 = add nsw i64 %2214, 1
  store i64 %2215, ptr %20, align 8, !tbaa !9
  %2216 = load ptr, ptr %12, align 8, !tbaa !5
  %2217 = load i64, ptr %20, align 8, !tbaa !9
  %2218 = load i64, ptr %21, align 8, !tbaa !9
  %2219 = load i64, ptr %27, align 8, !tbaa !9
  %2220 = mul nsw i64 %2218, %2219
  %2221 = add nsw i64 %2217, %2220
  %2222 = getelementptr inbounds float, ptr %2216, i64 %2221
  %2223 = load float, ptr %2222, align 4, !tbaa !11
  store float %2223, ptr %17, align 4, !tbaa !11
  %2224 = load float, ptr %17, align 4, !tbaa !11
  %2225 = fcmp oge float %2224, 0.000000e+00
  br i1 %2225, label %2226, label %2228

2226:                                             ; preds = %2202
  %2227 = load float, ptr %17, align 4, !tbaa !11
  br label %2231

2228:                                             ; preds = %2202
  %2229 = load float, ptr %17, align 4, !tbaa !11
  %2230 = fneg float %2229
  br label %2231

2231:                                             ; preds = %2228, %2226
  %2232 = phi float [ %2227, %2226 ], [ %2230, %2228 ]
  %2233 = fpext float %2232 to double
  %2234 = fptrunc double %2233 to float
  store float %2234, ptr %26, align 4, !tbaa !11
  %2235 = load float, ptr %26, align 4, !tbaa !11
  store float %2235, ptr %24, align 4, !tbaa !11
  %2236 = load ptr, ptr %11, align 8, !tbaa !5
  %2237 = load i64, ptr %2236, align 8, !tbaa !9
  %2238 = sub nsw i64 %2237, 1
  store i64 %2238, ptr %15, align 8, !tbaa !9
  %2239 = load i64, ptr %22, align 8, !tbaa !9
  %2240 = load i64, ptr %21, align 8, !tbaa !9
  %2241 = add nsw i64 %2239, %2240
  %2242 = add nsw i64 %2241, 1
  store i64 %2242, ptr %23, align 8, !tbaa !9
  br label %2243

2243:                                             ; preds = %2278, %2231
  %2244 = load i64, ptr %23, align 8, !tbaa !9
  %2245 = load i64, ptr %15, align 8, !tbaa !9
  %2246 = icmp sle i64 %2244, %2245
  br i1 %2246, label %2247, label %2281

2247:                                             ; preds = %2243
  %2248 = load i64, ptr %20, align 8, !tbaa !9
  %2249 = add nsw i64 %2248, 1
  store i64 %2249, ptr %20, align 8, !tbaa !9
  %2250 = load ptr, ptr %12, align 8, !tbaa !5
  %2251 = load i64, ptr %20, align 8, !tbaa !9
  %2252 = load i64, ptr %21, align 8, !tbaa !9
  %2253 = load i64, ptr %27, align 8, !tbaa !9
  %2254 = mul nsw i64 %2252, %2253
  %2255 = add nsw i64 %2251, %2254
  %2256 = getelementptr inbounds float, ptr %2250, i64 %2255
  %2257 = load float, ptr %2256, align 4, !tbaa !11
  store float %2257, ptr %17, align 4, !tbaa !11
  %2258 = load float, ptr %17, align 4, !tbaa !11
  %2259 = fcmp oge float %2258, 0.000000e+00
  br i1 %2259, label %2260, label %2262

2260:                                             ; preds = %2247
  %2261 = load float, ptr %17, align 4, !tbaa !11
  br label %2265

2262:                                             ; preds = %2247
  %2263 = load float, ptr %17, align 4, !tbaa !11
  %2264 = fneg float %2263
  br label %2265

2265:                                             ; preds = %2262, %2260
  %2266 = phi float [ %2261, %2260 ], [ %2264, %2262 ]
  %2267 = fpext float %2266 to double
  %2268 = fptrunc double %2267 to float
  store float %2268, ptr %26, align 4, !tbaa !11
  %2269 = load float, ptr %26, align 4, !tbaa !11
  %2270 = load float, ptr %24, align 4, !tbaa !11
  %2271 = fadd float %2270, %2269
  store float %2271, ptr %24, align 4, !tbaa !11
  %2272 = load float, ptr %26, align 4, !tbaa !11
  %2273 = load ptr, ptr %13, align 8, !tbaa !5
  %2274 = load i64, ptr %23, align 8, !tbaa !9
  %2275 = getelementptr inbounds float, ptr %2273, i64 %2274
  %2276 = load float, ptr %2275, align 4, !tbaa !11
  %2277 = fadd float %2276, %2272
  store float %2277, ptr %2275, align 4, !tbaa !11
  br label %2278

2278:                                             ; preds = %2265
  %2279 = load i64, ptr %23, align 8, !tbaa !9
  %2280 = add nsw i64 %2279, 1
  store i64 %2280, ptr %23, align 8, !tbaa !9
  br label %2243, !llvm.loop !64

2281:                                             ; preds = %2243
  %2282 = load float, ptr %24, align 4, !tbaa !11
  %2283 = load ptr, ptr %13, align 8, !tbaa !5
  %2284 = load i64, ptr %22, align 8, !tbaa !9
  %2285 = load i64, ptr %21, align 8, !tbaa !9
  %2286 = add nsw i64 %2284, %2285
  %2287 = getelementptr inbounds float, ptr %2283, i64 %2286
  %2288 = load float, ptr %2287, align 4, !tbaa !11
  %2289 = fadd float %2288, %2282
  store float %2289, ptr %2287, align 4, !tbaa !11
  br label %2290

2290:                                             ; preds = %2281
  %2291 = load i64, ptr %21, align 8, !tbaa !9
  %2292 = add nsw i64 %2291, 1
  store i64 %2292, ptr %21, align 8, !tbaa !9
  br label %2143, !llvm.loop !65

2293:                                             ; preds = %2143
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %2294 = load i64, ptr %22, align 8, !tbaa !9
  %2295 = sub nsw i64 %2294, 2
  store i64 %2295, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %2296

2296:                                             ; preds = %2329, %2293
  %2297 = load i64, ptr %20, align 8, !tbaa !9
  %2298 = load i64, ptr %14, align 8, !tbaa !9
  %2299 = icmp sle i64 %2297, %2298
  br i1 %2299, label %2300, label %2332

2300:                                             ; preds = %2296
  %2301 = load ptr, ptr %12, align 8, !tbaa !5
  %2302 = load i64, ptr %20, align 8, !tbaa !9
  %2303 = load i64, ptr %21, align 8, !tbaa !9
  %2304 = load i64, ptr %27, align 8, !tbaa !9
  %2305 = mul nsw i64 %2303, %2304
  %2306 = add nsw i64 %2302, %2305
  %2307 = getelementptr inbounds float, ptr %2301, i64 %2306
  %2308 = load float, ptr %2307, align 4, !tbaa !11
  store float %2308, ptr %17, align 4, !tbaa !11
  %2309 = load float, ptr %17, align 4, !tbaa !11
  %2310 = fcmp oge float %2309, 0.000000e+00
  br i1 %2310, label %2311, label %2313

2311:                                             ; preds = %2300
  %2312 = load float, ptr %17, align 4, !tbaa !11
  br label %2316

2313:                                             ; preds = %2300
  %2314 = load float, ptr %17, align 4, !tbaa !11
  %2315 = fneg float %2314
  br label %2316

2316:                                             ; preds = %2313, %2311
  %2317 = phi float [ %2312, %2311 ], [ %2315, %2313 ]
  %2318 = fpext float %2317 to double
  %2319 = fptrunc double %2318 to float
  store float %2319, ptr %26, align 4, !tbaa !11
  %2320 = load float, ptr %26, align 4, !tbaa !11
  %2321 = load ptr, ptr %13, align 8, !tbaa !5
  %2322 = load i64, ptr %20, align 8, !tbaa !9
  %2323 = getelementptr inbounds float, ptr %2321, i64 %2322
  %2324 = load float, ptr %2323, align 4, !tbaa !11
  %2325 = fadd float %2324, %2320
  store float %2325, ptr %2323, align 4, !tbaa !11
  %2326 = load float, ptr %26, align 4, !tbaa !11
  %2327 = load float, ptr %24, align 4, !tbaa !11
  %2328 = fadd float %2327, %2326
  store float %2328, ptr %24, align 4, !tbaa !11
  br label %2329

2329:                                             ; preds = %2316
  %2330 = load i64, ptr %20, align 8, !tbaa !9
  %2331 = add nsw i64 %2330, 1
  store i64 %2331, ptr %20, align 8, !tbaa !9
  br label %2296, !llvm.loop !66

2332:                                             ; preds = %2296
  %2333 = load ptr, ptr %12, align 8, !tbaa !5
  %2334 = load i64, ptr %20, align 8, !tbaa !9
  %2335 = load i64, ptr %21, align 8, !tbaa !9
  %2336 = load i64, ptr %27, align 8, !tbaa !9
  %2337 = mul nsw i64 %2335, %2336
  %2338 = add nsw i64 %2334, %2337
  %2339 = getelementptr inbounds float, ptr %2333, i64 %2338
  %2340 = load float, ptr %2339, align 4, !tbaa !11
  store float %2340, ptr %17, align 4, !tbaa !11
  %2341 = load float, ptr %17, align 4, !tbaa !11
  %2342 = fcmp oge float %2341, 0.000000e+00
  br i1 %2342, label %2343, label %2345

2343:                                             ; preds = %2332
  %2344 = load float, ptr %17, align 4, !tbaa !11
  br label %2348

2345:                                             ; preds = %2332
  %2346 = load float, ptr %17, align 4, !tbaa !11
  %2347 = fneg float %2346
  br label %2348

2348:                                             ; preds = %2345, %2343
  %2349 = phi float [ %2344, %2343 ], [ %2347, %2345 ]
  %2350 = fpext float %2349 to double
  %2351 = fptrunc double %2350 to float
  store float %2351, ptr %26, align 4, !tbaa !11
  %2352 = load float, ptr %26, align 4, !tbaa !11
  %2353 = load float, ptr %24, align 4, !tbaa !11
  %2354 = fadd float %2353, %2352
  store float %2354, ptr %24, align 4, !tbaa !11
  %2355 = load float, ptr %24, align 4, !tbaa !11
  %2356 = load ptr, ptr %13, align 8, !tbaa !5
  %2357 = load i64, ptr %20, align 8, !tbaa !9
  %2358 = getelementptr inbounds float, ptr %2356, i64 %2357
  store float %2355, ptr %2358, align 4, !tbaa !11
  %2359 = load ptr, ptr %11, align 8, !tbaa !5
  %2360 = load i64, ptr %2359, align 8, !tbaa !9
  store i64 %2360, ptr %14, align 8, !tbaa !9
  %2361 = load i64, ptr %22, align 8, !tbaa !9
  %2362 = add nsw i64 %2361, 1
  store i64 %2362, ptr %21, align 8, !tbaa !9
  br label %2363

2363:                                             ; preds = %2414, %2348
  %2364 = load i64, ptr %21, align 8, !tbaa !9
  %2365 = load i64, ptr %14, align 8, !tbaa !9
  %2366 = icmp sle i64 %2364, %2365
  br i1 %2366, label %2367, label %2417

2367:                                             ; preds = %2363
  store float 0.000000e+00, ptr %24, align 4, !tbaa !11
  %2368 = load i64, ptr %22, align 8, !tbaa !9
  %2369 = sub nsw i64 %2368, 1
  store i64 %2369, ptr %15, align 8, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !9
  br label %2370

2370:                                             ; preds = %2403, %2367
  %2371 = load i64, ptr %20, align 8, !tbaa !9
  %2372 = load i64, ptr %15, align 8, !tbaa !9
  %2373 = icmp sle i64 %2371, %2372
  br i1 %2373, label %2374, label %2406

2374:                                             ; preds = %2370
  %2375 = load ptr, ptr %12, align 8, !tbaa !5
  %2376 = load i64, ptr %20, align 8, !tbaa !9
  %2377 = load i64, ptr %21, align 8, !tbaa !9
  %2378 = load i64, ptr %27, align 8, !tbaa !9
  %2379 = mul nsw i64 %2377, %2378
  %2380 = add nsw i64 %2376, %2379
  %2381 = getelementptr inbounds float, ptr %2375, i64 %2380
  %2382 = load float, ptr %2381, align 4, !tbaa !11
  store float %2382, ptr %17, align 4, !tbaa !11
  %2383 = load float, ptr %17, align 4, !tbaa !11
  %2384 = fcmp oge float %2383, 0.000000e+00
  br i1 %2384, label %2385, label %2387

2385:                                             ; preds = %2374
  %2386 = load float, ptr %17, align 4, !tbaa !11
  br label %2390

2387:                                             ; preds = %2374
  %2388 = load float, ptr %17, align 4, !tbaa !11
  %2389 = fneg float %2388
  br label %2390

2390:                                             ; preds = %2387, %2385
  %2391 = phi float [ %2386, %2385 ], [ %2389, %2387 ]
  %2392 = fpext float %2391 to double
  %2393 = fptrunc double %2392 to float
  store float %2393, ptr %26, align 4, !tbaa !11
  %2394 = load float, ptr %26, align 4, !tbaa !11
  %2395 = load ptr, ptr %13, align 8, !tbaa !5
  %2396 = load i64, ptr %20, align 8, !tbaa !9
  %2397 = getelementptr inbounds float, ptr %2395, i64 %2396
  %2398 = load float, ptr %2397, align 4, !tbaa !11
  %2399 = fadd float %2398, %2394
  store float %2399, ptr %2397, align 4, !tbaa !11
  %2400 = load float, ptr %26, align 4, !tbaa !11
  %2401 = load float, ptr %24, align 4, !tbaa !11
  %2402 = fadd float %2401, %2400
  store float %2402, ptr %24, align 4, !tbaa !11
  br label %2403

2403:                                             ; preds = %2390
  %2404 = load i64, ptr %20, align 8, !tbaa !9
  %2405 = add nsw i64 %2404, 1
  store i64 %2405, ptr %20, align 8, !tbaa !9
  br label %2370, !llvm.loop !67

2406:                                             ; preds = %2370
  %2407 = load float, ptr %24, align 4, !tbaa !11
  %2408 = load ptr, ptr %13, align 8, !tbaa !5
  %2409 = load i64, ptr %21, align 8, !tbaa !9
  %2410 = sub nsw i64 %2409, 1
  %2411 = getelementptr inbounds float, ptr %2408, i64 %2410
  %2412 = load float, ptr %2411, align 4, !tbaa !11
  %2413 = fadd float %2412, %2407
  store float %2413, ptr %2411, align 4, !tbaa !11
  br label %2414

2414:                                             ; preds = %2406
  %2415 = load i64, ptr %21, align 8, !tbaa !9
  %2416 = add nsw i64 %2415, 1
  store i64 %2416, ptr %21, align 8, !tbaa !9
  br label %2363, !llvm.loop !68

2417:                                             ; preds = %2363
  %2418 = load ptr, ptr %11, align 8, !tbaa !5
  %2419 = load ptr, ptr %13, align 8, !tbaa !5
  %2420 = call i64 @f2c_isamax(ptr noundef %2418, ptr noundef %2419, ptr noundef @c__1)
  store i64 %2420, ptr %20, align 8, !tbaa !9
  %2421 = load ptr, ptr %13, align 8, !tbaa !5
  %2422 = load i64, ptr %20, align 8, !tbaa !9
  %2423 = sub nsw i64 %2422, 1
  %2424 = getelementptr inbounds float, ptr %2421, i64 %2423
  %2425 = load float, ptr %2424, align 4, !tbaa !11
  store float %2425, ptr %32, align 4, !tbaa !11
  br label %2426

2426:                                             ; preds = %2417, %2043
  br label %2427

2427:                                             ; preds = %2426, %1689
  br label %2428

2428:                                             ; preds = %2427, %1074
  br label %3040

2429:                                             ; preds = %321
  %2430 = load ptr, ptr %8, align 8, !tbaa !5
  %2431 = call i64 @lsame_(ptr noundef %2430, ptr noundef @.str.5)
  %2432 = icmp ne i64 %2431, 0
  br i1 %2432, label %2437, label %2433

2433:                                             ; preds = %2429
  %2434 = load ptr, ptr %8, align 8, !tbaa !5
  %2435 = call i64 @lsame_(ptr noundef %2434, ptr noundef @.str.6)
  %2436 = icmp ne i64 %2435, 0
  br i1 %2436, label %2437, label %3039

2437:                                             ; preds = %2433, %2429
  %2438 = load ptr, ptr %11, align 8, !tbaa !5
  %2439 = load i64, ptr %2438, align 8, !tbaa !9
  %2440 = add nsw i64 %2439, 1
  %2441 = sdiv i64 %2440, 2
  store i64 %2441, ptr %22, align 8, !tbaa !9
  store float 0.000000e+00, ptr %31, align 4, !tbaa !11
  store float 1.000000e+00, ptr %24, align 4, !tbaa !11
  %2442 = load i64, ptr %29, align 8, !tbaa !9
  %2443 = icmp eq i64 %2442, 1
  br i1 %2443, label %2444, label %2742

2444:                                             ; preds = %2437
  %2445 = load i64, ptr %28, align 8, !tbaa !9
  %2446 = icmp eq i64 %2445, 1
  br i1 %2446, label %2447, label %2576

2447:                                             ; preds = %2444
  %2448 = load i64, ptr %30, align 8, !tbaa !9
  %2449 = icmp eq i64 %2448, 0
  br i1 %2449, label %2450, label %2516

2450:                                             ; preds = %2447
  %2451 = load i64, ptr %22, align 8, !tbaa !9
  %2452 = sub nsw i64 %2451, 3
  store i64 %2452, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2453

2453:                                             ; preds = %2473, %2450
  %2454 = load i64, ptr %21, align 8, !tbaa !9
  %2455 = load i64, ptr %14, align 8, !tbaa !9
  %2456 = icmp sle i64 %2454, %2455
  br i1 %2456, label %2457, label %2476

2457:                                             ; preds = %2453
  %2458 = load i64, ptr %22, align 8, !tbaa !9
  %2459 = load i64, ptr %21, align 8, !tbaa !9
  %2460 = sub nsw i64 %2458, %2459
  %2461 = sub nsw i64 %2460, 2
  store i64 %2461, ptr %15, align 8, !tbaa !9
  %2462 = load ptr, ptr %12, align 8, !tbaa !5
  %2463 = load i64, ptr %22, align 8, !tbaa !9
  %2464 = load i64, ptr %21, align 8, !tbaa !9
  %2465 = add nsw i64 %2463, %2464
  %2466 = add nsw i64 %2465, 1
  %2467 = load i64, ptr %21, align 8, !tbaa !9
  %2468 = load i64, ptr %27, align 8, !tbaa !9
  %2469 = mul nsw i64 %2467, %2468
  %2470 = add nsw i64 %2466, %2469
  %2471 = getelementptr inbounds float, ptr %2462, i64 %2470
  %2472 = call i32 @slassq_(ptr noundef %15, ptr noundef %2471, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2473

2473:                                             ; preds = %2457
  %2474 = load i64, ptr %21, align 8, !tbaa !9
  %2475 = add nsw i64 %2474, 1
  store i64 %2475, ptr %21, align 8, !tbaa !9
  br label %2453, !llvm.loop !69

2476:                                             ; preds = %2453
  %2477 = load i64, ptr %22, align 8, !tbaa !9
  %2478 = sub nsw i64 %2477, 1
  store i64 %2478, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2479

2479:                                             ; preds = %2494, %2476
  %2480 = load i64, ptr %21, align 8, !tbaa !9
  %2481 = load i64, ptr %14, align 8, !tbaa !9
  %2482 = icmp sle i64 %2480, %2481
  br i1 %2482, label %2483, label %2497

2483:                                             ; preds = %2479
  %2484 = load i64, ptr %22, align 8, !tbaa !9
  %2485 = load i64, ptr %21, align 8, !tbaa !9
  %2486 = add nsw i64 %2484, %2485
  %2487 = sub nsw i64 %2486, 1
  store i64 %2487, ptr %15, align 8, !tbaa !9
  %2488 = load ptr, ptr %12, align 8, !tbaa !5
  %2489 = load i64, ptr %21, align 8, !tbaa !9
  %2490 = load i64, ptr %27, align 8, !tbaa !9
  %2491 = mul nsw i64 %2489, %2490
  %2492 = getelementptr inbounds float, ptr %2488, i64 %2491
  %2493 = call i32 @slassq_(ptr noundef %15, ptr noundef %2492, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2494

2494:                                             ; preds = %2483
  %2495 = load i64, ptr %21, align 8, !tbaa !9
  %2496 = add nsw i64 %2495, 1
  store i64 %2496, ptr %21, align 8, !tbaa !9
  br label %2479, !llvm.loop !70

2497:                                             ; preds = %2479
  %2498 = load float, ptr %24, align 4, !tbaa !11
  %2499 = load float, ptr %24, align 4, !tbaa !11
  %2500 = fadd float %2499, %2498
  store float %2500, ptr %24, align 4, !tbaa !11
  %2501 = load i64, ptr %22, align 8, !tbaa !9
  %2502 = sub nsw i64 %2501, 1
  store i64 %2502, ptr %14, align 8, !tbaa !9
  %2503 = load i64, ptr %27, align 8, !tbaa !9
  %2504 = add nsw i64 %2503, 1
  store i64 %2504, ptr %15, align 8, !tbaa !9
  %2505 = load ptr, ptr %12, align 8, !tbaa !5
  %2506 = load i64, ptr %22, align 8, !tbaa !9
  %2507 = getelementptr inbounds float, ptr %2505, i64 %2506
  %2508 = call i32 @slassq_(ptr noundef %14, ptr noundef %2507, ptr noundef %15, ptr noundef %31, ptr noundef %24)
  %2509 = load i64, ptr %27, align 8, !tbaa !9
  %2510 = add nsw i64 %2509, 1
  store i64 %2510, ptr %14, align 8, !tbaa !9
  %2511 = load ptr, ptr %12, align 8, !tbaa !5
  %2512 = load i64, ptr %22, align 8, !tbaa !9
  %2513 = sub nsw i64 %2512, 1
  %2514 = getelementptr inbounds float, ptr %2511, i64 %2513
  %2515 = call i32 @slassq_(ptr noundef %22, ptr noundef %2514, ptr noundef %14, ptr noundef %31, ptr noundef %24)
  br label %2575

2516:                                             ; preds = %2447
  %2517 = load i64, ptr %22, align 8, !tbaa !9
  %2518 = sub nsw i64 %2517, 1
  store i64 %2518, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2519

2519:                                             ; preds = %2538, %2516
  %2520 = load i64, ptr %21, align 8, !tbaa !9
  %2521 = load i64, ptr %14, align 8, !tbaa !9
  %2522 = icmp sle i64 %2520, %2521
  br i1 %2522, label %2523, label %2541

2523:                                             ; preds = %2519
  %2524 = load ptr, ptr %11, align 8, !tbaa !5
  %2525 = load i64, ptr %2524, align 8, !tbaa !9
  %2526 = load i64, ptr %21, align 8, !tbaa !9
  %2527 = sub nsw i64 %2525, %2526
  %2528 = sub nsw i64 %2527, 1
  store i64 %2528, ptr %15, align 8, !tbaa !9
  %2529 = load ptr, ptr %12, align 8, !tbaa !5
  %2530 = load i64, ptr %21, align 8, !tbaa !9
  %2531 = add nsw i64 %2530, 1
  %2532 = load i64, ptr %21, align 8, !tbaa !9
  %2533 = load i64, ptr %27, align 8, !tbaa !9
  %2534 = mul nsw i64 %2532, %2533
  %2535 = add nsw i64 %2531, %2534
  %2536 = getelementptr inbounds float, ptr %2529, i64 %2535
  %2537 = call i32 @slassq_(ptr noundef %15, ptr noundef %2536, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2538

2538:                                             ; preds = %2523
  %2539 = load i64, ptr %21, align 8, !tbaa !9
  %2540 = add nsw i64 %2539, 1
  store i64 %2540, ptr %21, align 8, !tbaa !9
  br label %2519, !llvm.loop !71

2541:                                             ; preds = %2519
  %2542 = load i64, ptr %22, align 8, !tbaa !9
  %2543 = sub nsw i64 %2542, 2
  store i64 %2543, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2544

2544:                                             ; preds = %2556, %2541
  %2545 = load i64, ptr %21, align 8, !tbaa !9
  %2546 = load i64, ptr %14, align 8, !tbaa !9
  %2547 = icmp sle i64 %2545, %2546
  br i1 %2547, label %2548, label %2559

2548:                                             ; preds = %2544
  %2549 = load ptr, ptr %12, align 8, !tbaa !5
  %2550 = load i64, ptr %21, align 8, !tbaa !9
  %2551 = add nsw i64 %2550, 1
  %2552 = load i64, ptr %27, align 8, !tbaa !9
  %2553 = mul nsw i64 %2551, %2552
  %2554 = getelementptr inbounds float, ptr %2549, i64 %2553
  %2555 = call i32 @slassq_(ptr noundef %21, ptr noundef %2554, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2556

2556:                                             ; preds = %2548
  %2557 = load i64, ptr %21, align 8, !tbaa !9
  %2558 = add nsw i64 %2557, 1
  store i64 %2558, ptr %21, align 8, !tbaa !9
  br label %2544, !llvm.loop !72

2559:                                             ; preds = %2544
  %2560 = load float, ptr %24, align 4, !tbaa !11
  %2561 = load float, ptr %24, align 4, !tbaa !11
  %2562 = fadd float %2561, %2560
  store float %2562, ptr %24, align 4, !tbaa !11
  %2563 = load i64, ptr %27, align 8, !tbaa !9
  %2564 = add nsw i64 %2563, 1
  store i64 %2564, ptr %14, align 8, !tbaa !9
  %2565 = load ptr, ptr %12, align 8, !tbaa !5
  %2566 = call i32 @slassq_(ptr noundef %22, ptr noundef %2565, ptr noundef %14, ptr noundef %31, ptr noundef %24)
  %2567 = load i64, ptr %22, align 8, !tbaa !9
  %2568 = sub nsw i64 %2567, 1
  store i64 %2568, ptr %14, align 8, !tbaa !9
  %2569 = load i64, ptr %27, align 8, !tbaa !9
  %2570 = add nsw i64 %2569, 1
  store i64 %2570, ptr %15, align 8, !tbaa !9
  %2571 = load ptr, ptr %12, align 8, !tbaa !5
  %2572 = load i64, ptr %27, align 8, !tbaa !9
  %2573 = getelementptr inbounds float, ptr %2571, i64 %2572
  %2574 = call i32 @slassq_(ptr noundef %14, ptr noundef %2573, ptr noundef %15, ptr noundef %31, ptr noundef %24)
  br label %2575

2575:                                             ; preds = %2559, %2497
  br label %2741

2576:                                             ; preds = %2444
  %2577 = load i64, ptr %30, align 8, !tbaa !9
  %2578 = icmp eq i64 %2577, 0
  br i1 %2578, label %2579, label %2665

2579:                                             ; preds = %2576
  %2580 = load i64, ptr %22, align 8, !tbaa !9
  %2581 = sub nsw i64 %2580, 2
  store i64 %2581, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %2582

2582:                                             ; preds = %2595, %2579
  %2583 = load i64, ptr %21, align 8, !tbaa !9
  %2584 = load i64, ptr %14, align 8, !tbaa !9
  %2585 = icmp sle i64 %2583, %2584
  br i1 %2585, label %2586, label %2598

2586:                                             ; preds = %2582
  %2587 = load ptr, ptr %12, align 8, !tbaa !5
  %2588 = load i64, ptr %22, align 8, !tbaa !9
  %2589 = load i64, ptr %21, align 8, !tbaa !9
  %2590 = add nsw i64 %2588, %2589
  %2591 = load i64, ptr %27, align 8, !tbaa !9
  %2592 = mul nsw i64 %2590, %2591
  %2593 = getelementptr inbounds float, ptr %2587, i64 %2592
  %2594 = call i32 @slassq_(ptr noundef %21, ptr noundef %2593, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2595

2595:                                             ; preds = %2586
  %2596 = load i64, ptr %21, align 8, !tbaa !9
  %2597 = add nsw i64 %2596, 1
  store i64 %2597, ptr %21, align 8, !tbaa !9
  br label %2582, !llvm.loop !73

2598:                                             ; preds = %2582
  %2599 = load i64, ptr %22, align 8, !tbaa !9
  %2600 = sub nsw i64 %2599, 2
  store i64 %2600, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2601

2601:                                             ; preds = %2612, %2598
  %2602 = load i64, ptr %21, align 8, !tbaa !9
  %2603 = load i64, ptr %14, align 8, !tbaa !9
  %2604 = icmp sle i64 %2602, %2603
  br i1 %2604, label %2605, label %2615

2605:                                             ; preds = %2601
  %2606 = load ptr, ptr %12, align 8, !tbaa !5
  %2607 = load i64, ptr %21, align 8, !tbaa !9
  %2608 = load i64, ptr %27, align 8, !tbaa !9
  %2609 = mul nsw i64 %2607, %2608
  %2610 = getelementptr inbounds float, ptr %2606, i64 %2609
  %2611 = call i32 @slassq_(ptr noundef %22, ptr noundef %2610, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2612

2612:                                             ; preds = %2605
  %2613 = load i64, ptr %21, align 8, !tbaa !9
  %2614 = add nsw i64 %2613, 1
  store i64 %2614, ptr %21, align 8, !tbaa !9
  br label %2601, !llvm.loop !74

2615:                                             ; preds = %2601
  %2616 = load i64, ptr %22, align 8, !tbaa !9
  %2617 = sub nsw i64 %2616, 2
  store i64 %2617, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2618

2618:                                             ; preds = %2639, %2615
  %2619 = load i64, ptr %21, align 8, !tbaa !9
  %2620 = load i64, ptr %14, align 8, !tbaa !9
  %2621 = icmp sle i64 %2619, %2620
  br i1 %2621, label %2622, label %2642

2622:                                             ; preds = %2618
  %2623 = load i64, ptr %22, align 8, !tbaa !9
  %2624 = load i64, ptr %21, align 8, !tbaa !9
  %2625 = sub nsw i64 %2623, %2624
  %2626 = sub nsw i64 %2625, 1
  store i64 %2626, ptr %15, align 8, !tbaa !9
  %2627 = load ptr, ptr %12, align 8, !tbaa !5
  %2628 = load i64, ptr %21, align 8, !tbaa !9
  %2629 = add nsw i64 %2628, 1
  %2630 = load i64, ptr %21, align 8, !tbaa !9
  %2631 = load i64, ptr %22, align 8, !tbaa !9
  %2632 = add nsw i64 %2630, %2631
  %2633 = sub nsw i64 %2632, 1
  %2634 = load i64, ptr %27, align 8, !tbaa !9
  %2635 = mul nsw i64 %2633, %2634
  %2636 = add nsw i64 %2629, %2635
  %2637 = getelementptr inbounds float, ptr %2627, i64 %2636
  %2638 = call i32 @slassq_(ptr noundef %15, ptr noundef %2637, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2639

2639:                                             ; preds = %2622
  %2640 = load i64, ptr %21, align 8, !tbaa !9
  %2641 = add nsw i64 %2640, 1
  store i64 %2641, ptr %21, align 8, !tbaa !9
  br label %2618, !llvm.loop !75

2642:                                             ; preds = %2618
  %2643 = load float, ptr %24, align 4, !tbaa !11
  %2644 = load float, ptr %24, align 4, !tbaa !11
  %2645 = fadd float %2644, %2643
  store float %2645, ptr %24, align 4, !tbaa !11
  %2646 = load i64, ptr %22, align 8, !tbaa !9
  %2647 = sub nsw i64 %2646, 1
  store i64 %2647, ptr %14, align 8, !tbaa !9
  %2648 = load i64, ptr %27, align 8, !tbaa !9
  %2649 = add nsw i64 %2648, 1
  store i64 %2649, ptr %15, align 8, !tbaa !9
  %2650 = load ptr, ptr %12, align 8, !tbaa !5
  %2651 = load i64, ptr %22, align 8, !tbaa !9
  %2652 = load i64, ptr %27, align 8, !tbaa !9
  %2653 = mul nsw i64 %2651, %2652
  %2654 = getelementptr inbounds float, ptr %2650, i64 %2653
  %2655 = call i32 @slassq_(ptr noundef %14, ptr noundef %2654, ptr noundef %15, ptr noundef %31, ptr noundef %24)
  %2656 = load i64, ptr %27, align 8, !tbaa !9
  %2657 = add nsw i64 %2656, 1
  store i64 %2657, ptr %14, align 8, !tbaa !9
  %2658 = load ptr, ptr %12, align 8, !tbaa !5
  %2659 = load i64, ptr %22, align 8, !tbaa !9
  %2660 = sub nsw i64 %2659, 1
  %2661 = load i64, ptr %27, align 8, !tbaa !9
  %2662 = mul nsw i64 %2660, %2661
  %2663 = getelementptr inbounds float, ptr %2658, i64 %2662
  %2664 = call i32 @slassq_(ptr noundef %22, ptr noundef %2663, ptr noundef %14, ptr noundef %31, ptr noundef %24)
  br label %2740

2665:                                             ; preds = %2576
  %2666 = load i64, ptr %22, align 8, !tbaa !9
  %2667 = sub nsw i64 %2666, 1
  store i64 %2667, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %2668

2668:                                             ; preds = %2679, %2665
  %2669 = load i64, ptr %21, align 8, !tbaa !9
  %2670 = load i64, ptr %14, align 8, !tbaa !9
  %2671 = icmp sle i64 %2669, %2670
  br i1 %2671, label %2672, label %2682

2672:                                             ; preds = %2668
  %2673 = load ptr, ptr %12, align 8, !tbaa !5
  %2674 = load i64, ptr %21, align 8, !tbaa !9
  %2675 = load i64, ptr %27, align 8, !tbaa !9
  %2676 = mul nsw i64 %2674, %2675
  %2677 = getelementptr inbounds float, ptr %2673, i64 %2676
  %2678 = call i32 @slassq_(ptr noundef %21, ptr noundef %2677, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2679

2679:                                             ; preds = %2672
  %2680 = load i64, ptr %21, align 8, !tbaa !9
  %2681 = add nsw i64 %2680, 1
  store i64 %2681, ptr %21, align 8, !tbaa !9
  br label %2668, !llvm.loop !76

2682:                                             ; preds = %2668
  %2683 = load ptr, ptr %11, align 8, !tbaa !5
  %2684 = load i64, ptr %2683, align 8, !tbaa !9
  %2685 = sub nsw i64 %2684, 1
  store i64 %2685, ptr %14, align 8, !tbaa !9
  %2686 = load i64, ptr %22, align 8, !tbaa !9
  store i64 %2686, ptr %21, align 8, !tbaa !9
  br label %2687

2687:                                             ; preds = %2698, %2682
  %2688 = load i64, ptr %21, align 8, !tbaa !9
  %2689 = load i64, ptr %14, align 8, !tbaa !9
  %2690 = icmp sle i64 %2688, %2689
  br i1 %2690, label %2691, label %2701

2691:                                             ; preds = %2687
  %2692 = load ptr, ptr %12, align 8, !tbaa !5
  %2693 = load i64, ptr %21, align 8, !tbaa !9
  %2694 = load i64, ptr %27, align 8, !tbaa !9
  %2695 = mul nsw i64 %2693, %2694
  %2696 = getelementptr inbounds float, ptr %2692, i64 %2695
  %2697 = call i32 @slassq_(ptr noundef %22, ptr noundef %2696, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2698

2698:                                             ; preds = %2691
  %2699 = load i64, ptr %21, align 8, !tbaa !9
  %2700 = add nsw i64 %2699, 1
  store i64 %2700, ptr %21, align 8, !tbaa !9
  br label %2687, !llvm.loop !77

2701:                                             ; preds = %2687
  %2702 = load i64, ptr %22, align 8, !tbaa !9
  %2703 = sub nsw i64 %2702, 3
  store i64 %2703, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2704

2704:                                             ; preds = %2722, %2701
  %2705 = load i64, ptr %21, align 8, !tbaa !9
  %2706 = load i64, ptr %14, align 8, !tbaa !9
  %2707 = icmp sle i64 %2705, %2706
  br i1 %2707, label %2708, label %2725

2708:                                             ; preds = %2704
  %2709 = load i64, ptr %22, align 8, !tbaa !9
  %2710 = load i64, ptr %21, align 8, !tbaa !9
  %2711 = sub nsw i64 %2709, %2710
  %2712 = sub nsw i64 %2711, 2
  store i64 %2712, ptr %15, align 8, !tbaa !9
  %2713 = load ptr, ptr %12, align 8, !tbaa !5
  %2714 = load i64, ptr %21, align 8, !tbaa !9
  %2715 = add nsw i64 %2714, 2
  %2716 = load i64, ptr %21, align 8, !tbaa !9
  %2717 = load i64, ptr %27, align 8, !tbaa !9
  %2718 = mul nsw i64 %2716, %2717
  %2719 = add nsw i64 %2715, %2718
  %2720 = getelementptr inbounds float, ptr %2713, i64 %2719
  %2721 = call i32 @slassq_(ptr noundef %15, ptr noundef %2720, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2722

2722:                                             ; preds = %2708
  %2723 = load i64, ptr %21, align 8, !tbaa !9
  %2724 = add nsw i64 %2723, 1
  store i64 %2724, ptr %21, align 8, !tbaa !9
  br label %2704, !llvm.loop !78

2725:                                             ; preds = %2704
  %2726 = load float, ptr %24, align 4, !tbaa !11
  %2727 = load float, ptr %24, align 4, !tbaa !11
  %2728 = fadd float %2727, %2726
  store float %2728, ptr %24, align 4, !tbaa !11
  %2729 = load i64, ptr %27, align 8, !tbaa !9
  %2730 = add nsw i64 %2729, 1
  store i64 %2730, ptr %14, align 8, !tbaa !9
  %2731 = load ptr, ptr %12, align 8, !tbaa !5
  %2732 = call i32 @slassq_(ptr noundef %22, ptr noundef %2731, ptr noundef %14, ptr noundef %31, ptr noundef %24)
  %2733 = load i64, ptr %22, align 8, !tbaa !9
  %2734 = sub nsw i64 %2733, 1
  store i64 %2734, ptr %14, align 8, !tbaa !9
  %2735 = load i64, ptr %27, align 8, !tbaa !9
  %2736 = add nsw i64 %2735, 1
  store i64 %2736, ptr %15, align 8, !tbaa !9
  %2737 = load ptr, ptr %12, align 8, !tbaa !5
  %2738 = getelementptr inbounds float, ptr %2737, i64 1
  %2739 = call i32 @slassq_(ptr noundef %14, ptr noundef %2738, ptr noundef %15, ptr noundef %31, ptr noundef %24)
  br label %2740

2740:                                             ; preds = %2725, %2642
  br label %2741

2741:                                             ; preds = %2740, %2575
  br label %3031

2742:                                             ; preds = %2437
  %2743 = load i64, ptr %28, align 8, !tbaa !9
  %2744 = icmp eq i64 %2743, 1
  br i1 %2744, label %2745, label %2867

2745:                                             ; preds = %2742
  %2746 = load i64, ptr %30, align 8, !tbaa !9
  %2747 = icmp eq i64 %2746, 0
  br i1 %2747, label %2748, label %2811

2748:                                             ; preds = %2745
  %2749 = load i64, ptr %22, align 8, !tbaa !9
  %2750 = sub nsw i64 %2749, 2
  store i64 %2750, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2751

2751:                                             ; preds = %2771, %2748
  %2752 = load i64, ptr %21, align 8, !tbaa !9
  %2753 = load i64, ptr %14, align 8, !tbaa !9
  %2754 = icmp sle i64 %2752, %2753
  br i1 %2754, label %2755, label %2774

2755:                                             ; preds = %2751
  %2756 = load i64, ptr %22, align 8, !tbaa !9
  %2757 = load i64, ptr %21, align 8, !tbaa !9
  %2758 = sub nsw i64 %2756, %2757
  %2759 = sub nsw i64 %2758, 1
  store i64 %2759, ptr %15, align 8, !tbaa !9
  %2760 = load ptr, ptr %12, align 8, !tbaa !5
  %2761 = load i64, ptr %22, align 8, !tbaa !9
  %2762 = load i64, ptr %21, align 8, !tbaa !9
  %2763 = add nsw i64 %2761, %2762
  %2764 = add nsw i64 %2763, 2
  %2765 = load i64, ptr %21, align 8, !tbaa !9
  %2766 = load i64, ptr %27, align 8, !tbaa !9
  %2767 = mul nsw i64 %2765, %2766
  %2768 = add nsw i64 %2764, %2767
  %2769 = getelementptr inbounds float, ptr %2760, i64 %2768
  %2770 = call i32 @slassq_(ptr noundef %15, ptr noundef %2769, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2771

2771:                                             ; preds = %2755
  %2772 = load i64, ptr %21, align 8, !tbaa !9
  %2773 = add nsw i64 %2772, 1
  store i64 %2773, ptr %21, align 8, !tbaa !9
  br label %2751, !llvm.loop !79

2774:                                             ; preds = %2751
  %2775 = load i64, ptr %22, align 8, !tbaa !9
  %2776 = sub nsw i64 %2775, 1
  store i64 %2776, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2777

2777:                                             ; preds = %2791, %2774
  %2778 = load i64, ptr %21, align 8, !tbaa !9
  %2779 = load i64, ptr %14, align 8, !tbaa !9
  %2780 = icmp sle i64 %2778, %2779
  br i1 %2780, label %2781, label %2794

2781:                                             ; preds = %2777
  %2782 = load i64, ptr %22, align 8, !tbaa !9
  %2783 = load i64, ptr %21, align 8, !tbaa !9
  %2784 = add nsw i64 %2782, %2783
  store i64 %2784, ptr %15, align 8, !tbaa !9
  %2785 = load ptr, ptr %12, align 8, !tbaa !5
  %2786 = load i64, ptr %21, align 8, !tbaa !9
  %2787 = load i64, ptr %27, align 8, !tbaa !9
  %2788 = mul nsw i64 %2786, %2787
  %2789 = getelementptr inbounds float, ptr %2785, i64 %2788
  %2790 = call i32 @slassq_(ptr noundef %15, ptr noundef %2789, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2791

2791:                                             ; preds = %2781
  %2792 = load i64, ptr %21, align 8, !tbaa !9
  %2793 = add nsw i64 %2792, 1
  store i64 %2793, ptr %21, align 8, !tbaa !9
  br label %2777, !llvm.loop !80

2794:                                             ; preds = %2777
  %2795 = load float, ptr %24, align 4, !tbaa !11
  %2796 = load float, ptr %24, align 4, !tbaa !11
  %2797 = fadd float %2796, %2795
  store float %2797, ptr %24, align 4, !tbaa !11
  %2798 = load i64, ptr %27, align 8, !tbaa !9
  %2799 = add nsw i64 %2798, 1
  store i64 %2799, ptr %14, align 8, !tbaa !9
  %2800 = load ptr, ptr %12, align 8, !tbaa !5
  %2801 = load i64, ptr %22, align 8, !tbaa !9
  %2802 = add nsw i64 %2801, 1
  %2803 = getelementptr inbounds float, ptr %2800, i64 %2802
  %2804 = call i32 @slassq_(ptr noundef %22, ptr noundef %2803, ptr noundef %14, ptr noundef %31, ptr noundef %24)
  %2805 = load i64, ptr %27, align 8, !tbaa !9
  %2806 = add nsw i64 %2805, 1
  store i64 %2806, ptr %14, align 8, !tbaa !9
  %2807 = load ptr, ptr %12, align 8, !tbaa !5
  %2808 = load i64, ptr %22, align 8, !tbaa !9
  %2809 = getelementptr inbounds float, ptr %2807, i64 %2808
  %2810 = call i32 @slassq_(ptr noundef %22, ptr noundef %2809, ptr noundef %14, ptr noundef %31, ptr noundef %24)
  br label %2866

2811:                                             ; preds = %2745
  %2812 = load i64, ptr %22, align 8, !tbaa !9
  %2813 = sub nsw i64 %2812, 1
  store i64 %2813, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2814

2814:                                             ; preds = %2833, %2811
  %2815 = load i64, ptr %21, align 8, !tbaa !9
  %2816 = load i64, ptr %14, align 8, !tbaa !9
  %2817 = icmp sle i64 %2815, %2816
  br i1 %2817, label %2818, label %2836

2818:                                             ; preds = %2814
  %2819 = load ptr, ptr %11, align 8, !tbaa !5
  %2820 = load i64, ptr %2819, align 8, !tbaa !9
  %2821 = load i64, ptr %21, align 8, !tbaa !9
  %2822 = sub nsw i64 %2820, %2821
  %2823 = sub nsw i64 %2822, 1
  store i64 %2823, ptr %15, align 8, !tbaa !9
  %2824 = load ptr, ptr %12, align 8, !tbaa !5
  %2825 = load i64, ptr %21, align 8, !tbaa !9
  %2826 = add nsw i64 %2825, 2
  %2827 = load i64, ptr %21, align 8, !tbaa !9
  %2828 = load i64, ptr %27, align 8, !tbaa !9
  %2829 = mul nsw i64 %2827, %2828
  %2830 = add nsw i64 %2826, %2829
  %2831 = getelementptr inbounds float, ptr %2824, i64 %2830
  %2832 = call i32 @slassq_(ptr noundef %15, ptr noundef %2831, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2833

2833:                                             ; preds = %2818
  %2834 = load i64, ptr %21, align 8, !tbaa !9
  %2835 = add nsw i64 %2834, 1
  store i64 %2835, ptr %21, align 8, !tbaa !9
  br label %2814, !llvm.loop !81

2836:                                             ; preds = %2814
  %2837 = load i64, ptr %22, align 8, !tbaa !9
  %2838 = sub nsw i64 %2837, 1
  store i64 %2838, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %2839

2839:                                             ; preds = %2850, %2836
  %2840 = load i64, ptr %21, align 8, !tbaa !9
  %2841 = load i64, ptr %14, align 8, !tbaa !9
  %2842 = icmp sle i64 %2840, %2841
  br i1 %2842, label %2843, label %2853

2843:                                             ; preds = %2839
  %2844 = load ptr, ptr %12, align 8, !tbaa !5
  %2845 = load i64, ptr %21, align 8, !tbaa !9
  %2846 = load i64, ptr %27, align 8, !tbaa !9
  %2847 = mul nsw i64 %2845, %2846
  %2848 = getelementptr inbounds float, ptr %2844, i64 %2847
  %2849 = call i32 @slassq_(ptr noundef %21, ptr noundef %2848, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2850

2850:                                             ; preds = %2843
  %2851 = load i64, ptr %21, align 8, !tbaa !9
  %2852 = add nsw i64 %2851, 1
  store i64 %2852, ptr %21, align 8, !tbaa !9
  br label %2839, !llvm.loop !82

2853:                                             ; preds = %2839
  %2854 = load float, ptr %24, align 4, !tbaa !11
  %2855 = load float, ptr %24, align 4, !tbaa !11
  %2856 = fadd float %2855, %2854
  store float %2856, ptr %24, align 4, !tbaa !11
  %2857 = load i64, ptr %27, align 8, !tbaa !9
  %2858 = add nsw i64 %2857, 1
  store i64 %2858, ptr %14, align 8, !tbaa !9
  %2859 = load ptr, ptr %12, align 8, !tbaa !5
  %2860 = getelementptr inbounds float, ptr %2859, i64 1
  %2861 = call i32 @slassq_(ptr noundef %22, ptr noundef %2860, ptr noundef %14, ptr noundef %31, ptr noundef %24)
  %2862 = load i64, ptr %27, align 8, !tbaa !9
  %2863 = add nsw i64 %2862, 1
  store i64 %2863, ptr %14, align 8, !tbaa !9
  %2864 = load ptr, ptr %12, align 8, !tbaa !5
  %2865 = call i32 @slassq_(ptr noundef %22, ptr noundef %2864, ptr noundef %14, ptr noundef %31, ptr noundef %24)
  br label %2866

2866:                                             ; preds = %2853, %2794
  br label %3030

2867:                                             ; preds = %2742
  %2868 = load i64, ptr %30, align 8, !tbaa !9
  %2869 = icmp eq i64 %2868, 0
  br i1 %2869, label %2870, label %2954

2870:                                             ; preds = %2867
  %2871 = load i64, ptr %22, align 8, !tbaa !9
  %2872 = sub nsw i64 %2871, 1
  store i64 %2872, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %2873

2873:                                             ; preds = %2887, %2870
  %2874 = load i64, ptr %21, align 8, !tbaa !9
  %2875 = load i64, ptr %14, align 8, !tbaa !9
  %2876 = icmp sle i64 %2874, %2875
  br i1 %2876, label %2877, label %2890

2877:                                             ; preds = %2873
  %2878 = load ptr, ptr %12, align 8, !tbaa !5
  %2879 = load i64, ptr %22, align 8, !tbaa !9
  %2880 = add nsw i64 %2879, 1
  %2881 = load i64, ptr %21, align 8, !tbaa !9
  %2882 = add nsw i64 %2880, %2881
  %2883 = load i64, ptr %27, align 8, !tbaa !9
  %2884 = mul nsw i64 %2882, %2883
  %2885 = getelementptr inbounds float, ptr %2878, i64 %2884
  %2886 = call i32 @slassq_(ptr noundef %21, ptr noundef %2885, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2887

2887:                                             ; preds = %2877
  %2888 = load i64, ptr %21, align 8, !tbaa !9
  %2889 = add nsw i64 %2888, 1
  store i64 %2889, ptr %21, align 8, !tbaa !9
  br label %2873, !llvm.loop !83

2890:                                             ; preds = %2873
  %2891 = load i64, ptr %22, align 8, !tbaa !9
  %2892 = sub nsw i64 %2891, 1
  store i64 %2892, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2893

2893:                                             ; preds = %2904, %2890
  %2894 = load i64, ptr %21, align 8, !tbaa !9
  %2895 = load i64, ptr %14, align 8, !tbaa !9
  %2896 = icmp sle i64 %2894, %2895
  br i1 %2896, label %2897, label %2907

2897:                                             ; preds = %2893
  %2898 = load ptr, ptr %12, align 8, !tbaa !5
  %2899 = load i64, ptr %21, align 8, !tbaa !9
  %2900 = load i64, ptr %27, align 8, !tbaa !9
  %2901 = mul nsw i64 %2899, %2900
  %2902 = getelementptr inbounds float, ptr %2898, i64 %2901
  %2903 = call i32 @slassq_(ptr noundef %22, ptr noundef %2902, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2904

2904:                                             ; preds = %2897
  %2905 = load i64, ptr %21, align 8, !tbaa !9
  %2906 = add nsw i64 %2905, 1
  store i64 %2906, ptr %21, align 8, !tbaa !9
  br label %2893, !llvm.loop !84

2907:                                             ; preds = %2893
  %2908 = load i64, ptr %22, align 8, !tbaa !9
  %2909 = sub nsw i64 %2908, 2
  store i64 %2909, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2910

2910:                                             ; preds = %2930, %2907
  %2911 = load i64, ptr %21, align 8, !tbaa !9
  %2912 = load i64, ptr %14, align 8, !tbaa !9
  %2913 = icmp sle i64 %2911, %2912
  br i1 %2913, label %2914, label %2933

2914:                                             ; preds = %2910
  %2915 = load i64, ptr %22, align 8, !tbaa !9
  %2916 = load i64, ptr %21, align 8, !tbaa !9
  %2917 = sub nsw i64 %2915, %2916
  %2918 = sub nsw i64 %2917, 1
  store i64 %2918, ptr %15, align 8, !tbaa !9
  %2919 = load ptr, ptr %12, align 8, !tbaa !5
  %2920 = load i64, ptr %21, align 8, !tbaa !9
  %2921 = add nsw i64 %2920, 1
  %2922 = load i64, ptr %21, align 8, !tbaa !9
  %2923 = load i64, ptr %22, align 8, !tbaa !9
  %2924 = add nsw i64 %2922, %2923
  %2925 = load i64, ptr %27, align 8, !tbaa !9
  %2926 = mul nsw i64 %2924, %2925
  %2927 = add nsw i64 %2921, %2926
  %2928 = getelementptr inbounds float, ptr %2919, i64 %2927
  %2929 = call i32 @slassq_(ptr noundef %15, ptr noundef %2928, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2930

2930:                                             ; preds = %2914
  %2931 = load i64, ptr %21, align 8, !tbaa !9
  %2932 = add nsw i64 %2931, 1
  store i64 %2932, ptr %21, align 8, !tbaa !9
  br label %2910, !llvm.loop !85

2933:                                             ; preds = %2910
  %2934 = load float, ptr %24, align 4, !tbaa !11
  %2935 = load float, ptr %24, align 4, !tbaa !11
  %2936 = fadd float %2935, %2934
  store float %2936, ptr %24, align 4, !tbaa !11
  %2937 = load i64, ptr %27, align 8, !tbaa !9
  %2938 = add nsw i64 %2937, 1
  store i64 %2938, ptr %14, align 8, !tbaa !9
  %2939 = load ptr, ptr %12, align 8, !tbaa !5
  %2940 = load i64, ptr %22, align 8, !tbaa !9
  %2941 = add nsw i64 %2940, 1
  %2942 = load i64, ptr %27, align 8, !tbaa !9
  %2943 = mul nsw i64 %2941, %2942
  %2944 = getelementptr inbounds float, ptr %2939, i64 %2943
  %2945 = call i32 @slassq_(ptr noundef %22, ptr noundef %2944, ptr noundef %14, ptr noundef %31, ptr noundef %24)
  %2946 = load i64, ptr %27, align 8, !tbaa !9
  %2947 = add nsw i64 %2946, 1
  store i64 %2947, ptr %14, align 8, !tbaa !9
  %2948 = load ptr, ptr %12, align 8, !tbaa !5
  %2949 = load i64, ptr %22, align 8, !tbaa !9
  %2950 = load i64, ptr %27, align 8, !tbaa !9
  %2951 = mul nsw i64 %2949, %2950
  %2952 = getelementptr inbounds float, ptr %2948, i64 %2951
  %2953 = call i32 @slassq_(ptr noundef %22, ptr noundef %2952, ptr noundef %14, ptr noundef %31, ptr noundef %24)
  br label %3029

2954:                                             ; preds = %2867
  %2955 = load i64, ptr %22, align 8, !tbaa !9
  %2956 = sub nsw i64 %2955, 1
  store i64 %2956, ptr %14, align 8, !tbaa !9
  store i64 1, ptr %21, align 8, !tbaa !9
  br label %2957

2957:                                             ; preds = %2969, %2954
  %2958 = load i64, ptr %21, align 8, !tbaa !9
  %2959 = load i64, ptr %14, align 8, !tbaa !9
  %2960 = icmp sle i64 %2958, %2959
  br i1 %2960, label %2961, label %2972

2961:                                             ; preds = %2957
  %2962 = load ptr, ptr %12, align 8, !tbaa !5
  %2963 = load i64, ptr %21, align 8, !tbaa !9
  %2964 = add nsw i64 %2963, 1
  %2965 = load i64, ptr %27, align 8, !tbaa !9
  %2966 = mul nsw i64 %2964, %2965
  %2967 = getelementptr inbounds float, ptr %2962, i64 %2966
  %2968 = call i32 @slassq_(ptr noundef %21, ptr noundef %2967, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2969

2969:                                             ; preds = %2961
  %2970 = load i64, ptr %21, align 8, !tbaa !9
  %2971 = add nsw i64 %2970, 1
  store i64 %2971, ptr %21, align 8, !tbaa !9
  br label %2957, !llvm.loop !86

2972:                                             ; preds = %2957
  %2973 = load ptr, ptr %11, align 8, !tbaa !5
  %2974 = load i64, ptr %2973, align 8, !tbaa !9
  store i64 %2974, ptr %14, align 8, !tbaa !9
  %2975 = load i64, ptr %22, align 8, !tbaa !9
  %2976 = add nsw i64 %2975, 1
  store i64 %2976, ptr %21, align 8, !tbaa !9
  br label %2977

2977:                                             ; preds = %2988, %2972
  %2978 = load i64, ptr %21, align 8, !tbaa !9
  %2979 = load i64, ptr %14, align 8, !tbaa !9
  %2980 = icmp sle i64 %2978, %2979
  br i1 %2980, label %2981, label %2991

2981:                                             ; preds = %2977
  %2982 = load ptr, ptr %12, align 8, !tbaa !5
  %2983 = load i64, ptr %21, align 8, !tbaa !9
  %2984 = load i64, ptr %27, align 8, !tbaa !9
  %2985 = mul nsw i64 %2983, %2984
  %2986 = getelementptr inbounds float, ptr %2982, i64 %2985
  %2987 = call i32 @slassq_(ptr noundef %22, ptr noundef %2986, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %2988

2988:                                             ; preds = %2981
  %2989 = load i64, ptr %21, align 8, !tbaa !9
  %2990 = add nsw i64 %2989, 1
  store i64 %2990, ptr %21, align 8, !tbaa !9
  br label %2977, !llvm.loop !87

2991:                                             ; preds = %2977
  %2992 = load i64, ptr %22, align 8, !tbaa !9
  %2993 = sub nsw i64 %2992, 2
  store i64 %2993, ptr %14, align 8, !tbaa !9
  store i64 0, ptr %21, align 8, !tbaa !9
  br label %2994

2994:                                             ; preds = %3012, %2991
  %2995 = load i64, ptr %21, align 8, !tbaa !9
  %2996 = load i64, ptr %14, align 8, !tbaa !9
  %2997 = icmp sle i64 %2995, %2996
  br i1 %2997, label %2998, label %3015

2998:                                             ; preds = %2994
  %2999 = load i64, ptr %22, align 8, !tbaa !9
  %3000 = load i64, ptr %21, align 8, !tbaa !9
  %3001 = sub nsw i64 %2999, %3000
  %3002 = sub nsw i64 %3001, 1
  store i64 %3002, ptr %15, align 8, !tbaa !9
  %3003 = load ptr, ptr %12, align 8, !tbaa !5
  %3004 = load i64, ptr %21, align 8, !tbaa !9
  %3005 = add nsw i64 %3004, 1
  %3006 = load i64, ptr %21, align 8, !tbaa !9
  %3007 = load i64, ptr %27, align 8, !tbaa !9
  %3008 = mul nsw i64 %3006, %3007
  %3009 = add nsw i64 %3005, %3008
  %3010 = getelementptr inbounds float, ptr %3003, i64 %3009
  %3011 = call i32 @slassq_(ptr noundef %15, ptr noundef %3010, ptr noundef @c__1, ptr noundef %31, ptr noundef %24)
  br label %3012

3012:                                             ; preds = %2998
  %3013 = load i64, ptr %21, align 8, !tbaa !9
  %3014 = add nsw i64 %3013, 1
  store i64 %3014, ptr %21, align 8, !tbaa !9
  br label %2994, !llvm.loop !88

3015:                                             ; preds = %2994
  %3016 = load float, ptr %24, align 4, !tbaa !11
  %3017 = load float, ptr %24, align 4, !tbaa !11
  %3018 = fadd float %3017, %3016
  store float %3018, ptr %24, align 4, !tbaa !11
  %3019 = load i64, ptr %27, align 8, !tbaa !9
  %3020 = add nsw i64 %3019, 1
  store i64 %3020, ptr %14, align 8, !tbaa !9
  %3021 = load ptr, ptr %12, align 8, !tbaa !5
  %3022 = load i64, ptr %27, align 8, !tbaa !9
  %3023 = getelementptr inbounds float, ptr %3021, i64 %3022
  %3024 = call i32 @slassq_(ptr noundef %22, ptr noundef %3023, ptr noundef %14, ptr noundef %31, ptr noundef %24)
  %3025 = load i64, ptr %27, align 8, !tbaa !9
  %3026 = add nsw i64 %3025, 1
  store i64 %3026, ptr %14, align 8, !tbaa !9
  %3027 = load ptr, ptr %12, align 8, !tbaa !5
  %3028 = call i32 @slassq_(ptr noundef %22, ptr noundef %3027, ptr noundef %14, ptr noundef %31, ptr noundef %24)
  br label %3029

3029:                                             ; preds = %3015, %2933
  br label %3030

3030:                                             ; preds = %3029, %2866
  br label %3031

3031:                                             ; preds = %3030, %2741
  %3032 = load float, ptr %31, align 4, !tbaa !11
  %3033 = fpext float %3032 to double
  %3034 = load float, ptr %24, align 4, !tbaa !11
  %3035 = fpext float %3034 to double
  %3036 = call double @sqrt(double noundef %3035) #4
  %3037 = fmul double %3033, %3036
  %3038 = fptrunc double %3037 to float
  store float %3038, ptr %32, align 4, !tbaa !11
  br label %3039

3039:                                             ; preds = %3031, %2433
  br label %3040

3040:                                             ; preds = %3039, %2428
  br label %3041

3041:                                             ; preds = %3040, %312
  %3042 = load float, ptr %32, align 4, !tbaa !11
  store float %3042, ptr %16, align 4, !tbaa !11
  %3043 = load float, ptr %16, align 4, !tbaa !11
  %3044 = fpext float %3043 to double
  store double %3044, ptr %7, align 8
  store i32 1, ptr %33, align 4
  br label %3045

3045:                                             ; preds = %3041, %37
  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 8, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #4
  %3046 = load double, ptr %7, align 8
  ret double %3046
}

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = !{!7, !7, i64 0}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}
!38 = distinct !{!38, !14}
!39 = distinct !{!39, !14}
!40 = distinct !{!40, !14}
!41 = distinct !{!41, !14}
!42 = distinct !{!42, !14}
!43 = distinct !{!43, !14}
!44 = distinct !{!44, !14}
!45 = distinct !{!45, !14}
!46 = distinct !{!46, !14}
!47 = distinct !{!47, !14}
!48 = distinct !{!48, !14}
!49 = distinct !{!49, !14}
!50 = distinct !{!50, !14}
!51 = distinct !{!51, !14}
!52 = distinct !{!52, !14}
!53 = distinct !{!53, !14}
!54 = distinct !{!54, !14}
!55 = distinct !{!55, !14}
!56 = distinct !{!56, !14}
!57 = distinct !{!57, !14}
!58 = distinct !{!58, !14}
!59 = distinct !{!59, !14}
!60 = distinct !{!60, !14}
!61 = distinct !{!61, !14}
!62 = distinct !{!62, !14}
!63 = distinct !{!63, !14}
!64 = distinct !{!64, !14}
!65 = distinct !{!65, !14}
!66 = distinct !{!66, !14}
!67 = distinct !{!67, !14}
!68 = distinct !{!68, !14}
!69 = distinct !{!69, !14}
!70 = distinct !{!70, !14}
!71 = distinct !{!71, !14}
!72 = distinct !{!72, !14}
!73 = distinct !{!73, !14}
!74 = distinct !{!74, !14}
!75 = distinct !{!75, !14}
!76 = distinct !{!76, !14}
!77 = distinct !{!77, !14}
!78 = distinct !{!78, !14}
!79 = distinct !{!79, !14}
!80 = distinct !{!80, !14}
!81 = distinct !{!81, !14}
!82 = distinct !{!82, !14}
!83 = distinct !{!83, !14}
!84 = distinct !{!84, !14}
!85 = distinct !{!85, !14}
!86 = distinct !{!86, !14}
!87 = distinct !{!87, !14}
!88 = distinct !{!88, !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
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local double @slansf_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5) local_unnamed_addr #0 {
  %7 = alloca i64, align 8
  %8 = alloca i64, align 8
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca float, align 4
  %12 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #6
  %13 = load i64, ptr %3, align 8, !tbaa !5
  %14 = icmp eq i64 %13, 0
  br i1 %14, label %1375, label %15

15:                                               ; preds = %6
  %16 = and i64 %13, 1
  %17 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #6
  %.not = icmp eq i64 %17, 0
  %18 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #6
  %.not817.not.not.not.not.not.not.not.not = icmp eq i64 %18, 0
  %19 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %.not, label %20, label %22

20:                                               ; preds = %15
  %21 = xor i64 %16, 1
  %spec.select = add i64 %19, %21
  br label %25

22:                                               ; preds = %15
  %23 = add nsw i64 %19, 1
  %24 = sdiv i64 %23, 2
  br label %25

25:                                               ; preds = %20, %22
  %.0772 = phi i64 [ %24, %22 ], [ %spec.select, %20 ]
  %26 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  %.not819 = icmp eq i64 %26, 0
  br i1 %.not819, label %131, label %27

27:                                               ; preds = %25
  %28 = load i64, ptr %3, align 8, !tbaa !5
  %29 = add i64 %28, 1
  %30 = sdiv i64 %29, 2
  %.not922 = icmp eq i64 %16, 0
  br i1 %.not922, label %80, label %31

31:                                               ; preds = %27
  %.not933.not962 = icmp sgt i64 %28, 0
  br i1 %.not, label %32, label %56

32:                                               ; preds = %31
  br i1 %.not933.not962, label %.lr.ph966, label %.loopexit

.lr.ph966:                                        ; preds = %32
  %smax1656 = tail call i64 @llvm.smax.i64(i64 %30, i64 1)
  %xtraiter1912 = and i64 %28, 1
  %33 = icmp eq i64 %28, 1
  %unroll_iter1915 = and i64 %28, 9223372036854775806
  %lcmp.mod1913.not = icmp eq i64 %xtraiter1912, 0
  br label %.lr.ph955

.lr.ph955:                                        ; preds = %._crit_edge956, %.lr.ph966
  %.0964 = phi float [ 0.000000e+00, %.lr.ph966 ], [ %.lcssa1907, %._crit_edge956 ]
  %storemerge932963 = phi i64 [ 0, %.lr.ph966 ], [ %55, %._crit_edge956 ]
  %34 = mul nsw i64 %storemerge932963, %.0772
  %invariant.gep958 = getelementptr float, ptr %4, i64 %34
  br i1 %33, label %._crit_edge956.unr-lcssa, label %.lr.ph955.new

.lr.ph955.new:                                    ; preds = %.lr.ph955, %.lr.ph955.new
  %.1953 = phi float [ %47, %.lr.ph955.new ], [ %.0964, %.lr.ph955 ]
  %.0782952 = phi i64 [ %48, %.lr.ph955.new ], [ 0, %.lr.ph955 ]
  %niter1916 = phi i64 [ %niter1916.next.1, %.lr.ph955.new ], [ 0, %.lr.ph955 ]
  %gep959 = getelementptr float, ptr %invariant.gep958, i64 %.0782952
  %35 = load float, ptr %gep959, align 4, !tbaa !9
  %36 = fcmp oge float %35, 0.000000e+00
  %37 = fneg float %35
  %38 = select i1 %36, float %35, float %37
  %39 = fcmp oge float %.1953, %38
  %40 = select i1 %39, float %.1953, float %38
  %41 = or disjoint i64 %.0782952, 1
  %gep959.1 = getelementptr float, ptr %invariant.gep958, i64 %41
  %42 = load float, ptr %gep959.1, align 4, !tbaa !9
  %43 = fcmp oge float %42, 0.000000e+00
  %44 = fneg float %42
  %45 = select i1 %43, float %42, float %44
  %46 = fcmp oge float %40, %45
  %47 = select i1 %46, float %40, float %45
  %48 = add nuw nsw i64 %.0782952, 2
  %niter1916.next.1 = add i64 %niter1916, 2
  %niter1916.ncmp.1 = icmp eq i64 %niter1916.next.1, %unroll_iter1915
  br i1 %niter1916.ncmp.1, label %._crit_edge956.unr-lcssa, label %.lr.ph955.new, !llvm.loop !11

._crit_edge956.unr-lcssa:                         ; preds = %.lr.ph955.new, %.lr.ph955
  %.lcssa1907.ph = phi float [ poison, %.lr.ph955 ], [ %47, %.lr.ph955.new ]
  %.1953.unr = phi float [ %.0964, %.lr.ph955 ], [ %47, %.lr.ph955.new ]
  %.0782952.unr = phi i64 [ 0, %.lr.ph955 ], [ %48, %.lr.ph955.new ]
  br i1 %lcmp.mod1913.not, label %._crit_edge956, label %._crit_edge956.epilog-lcssa

._crit_edge956.epilog-lcssa:                      ; preds = %._crit_edge956.unr-lcssa
  %gep959.epil = getelementptr float, ptr %invariant.gep958, i64 %.0782952.unr
  %49 = load float, ptr %gep959.epil, align 4, !tbaa !9
  %50 = fcmp oge float %49, 0.000000e+00
  %51 = fneg float %49
  %52 = select i1 %50, float %49, float %51
  %53 = fcmp oge float %.1953.unr, %52
  %54 = select i1 %53, float %.1953.unr, float %52
  br label %._crit_edge956

._crit_edge956:                                   ; preds = %._crit_edge956.unr-lcssa, %._crit_edge956.epilog-lcssa
  %.lcssa1907 = phi float [ %.lcssa1907.ph, %._crit_edge956.unr-lcssa ], [ %54, %._crit_edge956.epilog-lcssa ]
  %55 = add nuw nsw i64 %storemerge932963, 1
  %exitcond1657.not = icmp eq i64 %55, %smax1656
  br i1 %exitcond1657.not, label %.loopexit, label %.lr.ph955, !llvm.loop !13

56:                                               ; preds = %31
  br i1 %.not933.not962, label %.lr.ph947, label %.loopexit

.lr.ph947:                                        ; preds = %56
  %smax = tail call i64 @llvm.smax.i64(i64 %30, i64 1)
  %xtraiter = and i64 %smax, 1
  %57 = icmp slt i64 %29, 4
  %unroll_iter = and i64 %smax, 4611686018427387902
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br label %.lr.ph

.lr.ph:                                           ; preds = %._crit_edge, %.lr.ph947
  %.2945 = phi float [ 0.000000e+00, %.lr.ph947 ], [ %.lcssa1909, %._crit_edge ]
  %storemerge929944 = phi i64 [ 0, %.lr.ph947 ], [ %79, %._crit_edge ]
  %58 = mul nsw i64 %storemerge929944, %.0772
  %invariant.gep = getelementptr float, ptr %4, i64 %58
  br i1 %57, label %._crit_edge.unr-lcssa, label %.lr.ph.new

.lr.ph.new:                                       ; preds = %.lr.ph, %.lr.ph.new
  %.3942 = phi float [ %71, %.lr.ph.new ], [ %.2945, %.lr.ph ]
  %.1783941 = phi i64 [ %72, %.lr.ph.new ], [ 0, %.lr.ph ]
  %niter = phi i64 [ %niter.next.1, %.lr.ph.new ], [ 0, %.lr.ph ]
  %gep = getelementptr float, ptr %invariant.gep, i64 %.1783941
  %59 = load float, ptr %gep, align 4, !tbaa !9
  %60 = fcmp oge float %59, 0.000000e+00
  %61 = fneg float %59
  %62 = select i1 %60, float %59, float %61
  %63 = fcmp oge float %.3942, %62
  %64 = select i1 %63, float %.3942, float %62
  %65 = or disjoint i64 %.1783941, 1
  %gep.1 = getelementptr float, ptr %invariant.gep, i64 %65
  %66 = load float, ptr %gep.1, align 4, !tbaa !9
  %67 = fcmp oge float %66, 0.000000e+00
  %68 = fneg float %66
  %69 = select i1 %67, float %66, float %68
  %70 = fcmp oge float %64, %69
  %71 = select i1 %70, float %64, float %69
  %72 = add nuw nsw i64 %.1783941, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge.unr-lcssa, label %.lr.ph.new, !llvm.loop !14

._crit_edge.unr-lcssa:                            ; preds = %.lr.ph.new, %.lr.ph
  %.lcssa1909.ph = phi float [ poison, %.lr.ph ], [ %71, %.lr.ph.new ]
  %.3942.unr = phi float [ %.2945, %.lr.ph ], [ %71, %.lr.ph.new ]
  %.1783941.unr = phi i64 [ 0, %.lr.ph ], [ %72, %.lr.ph.new ]
  br i1 %lcmp.mod.not, label %._crit_edge, label %._crit_edge.epilog-lcssa

._crit_edge.epilog-lcssa:                         ; preds = %._crit_edge.unr-lcssa
  %gep.epil = getelementptr float, ptr %invariant.gep, i64 %.1783941.unr
  %73 = load float, ptr %gep.epil, align 4, !tbaa !9
  %74 = fcmp oge float %73, 0.000000e+00
  %75 = fneg float %73
  %76 = select i1 %74, float %73, float %75
  %77 = fcmp oge float %.3942.unr, %76
  %78 = select i1 %77, float %.3942.unr, float %76
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.unr-lcssa, %._crit_edge.epilog-lcssa
  %.lcssa1909 = phi float [ %.lcssa1909.ph, %._crit_edge.unr-lcssa ], [ %78, %._crit_edge.epilog-lcssa ]
  %79 = add nuw nsw i64 %storemerge929944, 1
  %exitcond1654.not = icmp eq i64 %79, %28
  br i1 %exitcond1654.not, label %.loopexit, label %.lr.ph, !llvm.loop !15

80:                                               ; preds = %27
  br i1 %.not, label %81, label %106

81:                                               ; preds = %80
  %.not927.not1000 = icmp sgt i64 %28, 0
  br i1 %.not927.not1000, label %.lr.ph1004, label %.loopexit

.lr.ph1004:                                       ; preds = %81
  %smax1662 = tail call i64 @llvm.smax.i64(i64 %30, i64 1)
  %unroll_iter1927 = and i64 %29, -2
  %82 = and i64 %28, 1
  %lcmp.mod1925.not.not = icmp eq i64 %82, 0
  br label %.lr.ph993

.lr.ph993:                                        ; preds = %._crit_edge994, %.lr.ph1004
  %.41002 = phi float [ 0.000000e+00, %.lr.ph1004 ], [ %.lcssa1903, %._crit_edge994 ]
  %storemerge9261001 = phi i64 [ 0, %.lr.ph1004 ], [ %105, %._crit_edge994 ]
  %83 = mul nsw i64 %storemerge9261001, %.0772
  %invariant.gep996 = getelementptr float, ptr %4, i64 %83
  br label %84

84:                                               ; preds = %84, %.lr.ph993
  %.5991 = phi float [ %.41002, %.lr.ph993 ], [ %97, %84 ]
  %.2784990 = phi i64 [ 0, %.lr.ph993 ], [ %98, %84 ]
  %niter1928 = phi i64 [ 0, %.lr.ph993 ], [ %niter1928.next.1, %84 ]
  %gep997 = getelementptr float, ptr %invariant.gep996, i64 %.2784990
  %85 = load float, ptr %gep997, align 4, !tbaa !9
  %86 = fcmp oge float %85, 0.000000e+00
  %87 = fneg float %85
  %88 = select i1 %86, float %85, float %87
  %89 = fcmp oge float %.5991, %88
  %90 = select i1 %89, float %.5991, float %88
  %91 = or disjoint i64 %.2784990, 1
  %gep997.1 = getelementptr float, ptr %invariant.gep996, i64 %91
  %92 = load float, ptr %gep997.1, align 4, !tbaa !9
  %93 = fcmp oge float %92, 0.000000e+00
  %94 = fneg float %92
  %95 = select i1 %93, float %92, float %94
  %96 = fcmp oge float %90, %95
  %97 = select i1 %96, float %90, float %95
  %98 = add nuw i64 %.2784990, 2
  %niter1928.next.1 = add i64 %niter1928, 2
  %niter1928.ncmp.1 = icmp eq i64 %niter1928.next.1, %unroll_iter1927
  br i1 %niter1928.ncmp.1, label %._crit_edge994.unr-lcssa, label %84, !llvm.loop !16

._crit_edge994.unr-lcssa:                         ; preds = %84
  br i1 %lcmp.mod1925.not.not, label %._crit_edge994.epilog-lcssa, label %._crit_edge994

._crit_edge994.epilog-lcssa:                      ; preds = %._crit_edge994.unr-lcssa
  %gep997.epil = getelementptr float, ptr %invariant.gep996, i64 %98
  %99 = load float, ptr %gep997.epil, align 4, !tbaa !9
  %100 = fcmp oge float %99, 0.000000e+00
  %101 = fneg float %99
  %102 = select i1 %100, float %99, float %101
  %103 = fcmp oge float %97, %102
  %104 = select i1 %103, float %97, float %102
  br label %._crit_edge994

._crit_edge994:                                   ; preds = %._crit_edge994.unr-lcssa, %._crit_edge994.epilog-lcssa
  %.lcssa1903 = phi float [ %97, %._crit_edge994.unr-lcssa ], [ %104, %._crit_edge994.epilog-lcssa ]
  %105 = add nuw nsw i64 %storemerge9261001, 1
  %exitcond1663.not = icmp eq i64 %105, %smax1662
  br i1 %exitcond1663.not, label %.loopexit, label %.lr.ph993, !llvm.loop !17

106:                                              ; preds = %80
  %.not924981 = icmp slt i64 %28, 0
  br i1 %.not924981, label %.loopexit, label %.lr.ph985

.lr.ph985:                                        ; preds = %106
  %.not925.not970.not = icmp eq i64 %28, 0
  %smax1658 = tail call i64 @llvm.smax.i64(i64 %30, i64 1)
  %xtraiter1918 = and i64 %smax1658, 1
  %107 = icmp slt i64 %29, 4
  %unroll_iter1921 = and i64 %smax1658, 4611686018427387902
  %lcmp.mod1919.not = icmp eq i64 %xtraiter1918, 0
  br label %108

108:                                              ; preds = %.lr.ph985, %._crit_edge975
  %.6983 = phi float [ 0.000000e+00, %.lr.ph985 ], [ %.7.lcssa, %._crit_edge975 ]
  %storemerge923982 = phi i64 [ 0, %.lr.ph985 ], [ %130, %._crit_edge975 ]
  br i1 %.not925.not970.not, label %._crit_edge975, label %.lr.ph974

.lr.ph974:                                        ; preds = %108
  %109 = mul nsw i64 %storemerge923982, %.0772
  %invariant.gep977 = getelementptr float, ptr %4, i64 %109
  br i1 %107, label %._crit_edge975.loopexit.unr-lcssa, label %.lr.ph974.new

.lr.ph974.new:                                    ; preds = %.lr.ph974, %.lr.ph974.new
  %.7972 = phi float [ %122, %.lr.ph974.new ], [ %.6983, %.lr.ph974 ]
  %.3785971 = phi i64 [ %123, %.lr.ph974.new ], [ 0, %.lr.ph974 ]
  %niter1922 = phi i64 [ %niter1922.next.1, %.lr.ph974.new ], [ 0, %.lr.ph974 ]
  %gep978 = getelementptr float, ptr %invariant.gep977, i64 %.3785971
  %110 = load float, ptr %gep978, align 4, !tbaa !9
  %111 = fcmp oge float %110, 0.000000e+00
  %112 = fneg float %110
  %113 = select i1 %111, float %110, float %112
  %114 = fcmp oge float %.7972, %113
  %115 = select i1 %114, float %.7972, float %113
  %116 = or disjoint i64 %.3785971, 1
  %gep978.1 = getelementptr float, ptr %invariant.gep977, i64 %116
  %117 = load float, ptr %gep978.1, align 4, !tbaa !9
  %118 = fcmp oge float %117, 0.000000e+00
  %119 = fneg float %117
  %120 = select i1 %118, float %117, float %119
  %121 = fcmp oge float %115, %120
  %122 = select i1 %121, float %115, float %120
  %123 = add nuw nsw i64 %.3785971, 2
  %niter1922.next.1 = add i64 %niter1922, 2
  %niter1922.ncmp.1 = icmp eq i64 %niter1922.next.1, %unroll_iter1921
  br i1 %niter1922.ncmp.1, label %._crit_edge975.loopexit.unr-lcssa, label %.lr.ph974.new, !llvm.loop !18

._crit_edge975.loopexit.unr-lcssa:                ; preds = %.lr.ph974.new, %.lr.ph974
  %.lcssa1905.ph = phi float [ poison, %.lr.ph974 ], [ %122, %.lr.ph974.new ]
  %.7972.unr = phi float [ %.6983, %.lr.ph974 ], [ %122, %.lr.ph974.new ]
  %.3785971.unr = phi i64 [ 0, %.lr.ph974 ], [ %123, %.lr.ph974.new ]
  br i1 %lcmp.mod1919.not, label %._crit_edge975, label %._crit_edge975.loopexit.epilog-lcssa

._crit_edge975.loopexit.epilog-lcssa:             ; preds = %._crit_edge975.loopexit.unr-lcssa
  %gep978.epil = getelementptr float, ptr %invariant.gep977, i64 %.3785971.unr
  %124 = load float, ptr %gep978.epil, align 4, !tbaa !9
  %125 = fcmp oge float %124, 0.000000e+00
  %126 = fneg float %124
  %127 = select i1 %125, float %124, float %126
  %128 = fcmp oge float %.7972.unr, %127
  %129 = select i1 %128, float %.7972.unr, float %127
  br label %._crit_edge975

._crit_edge975:                                   ; preds = %._crit_edge975.loopexit.epilog-lcssa, %._crit_edge975.loopexit.unr-lcssa, %108
  %.7.lcssa = phi float [ %.6983, %108 ], [ %.lcssa1905.ph, %._crit_edge975.loopexit.unr-lcssa ], [ %129, %._crit_edge975.loopexit.epilog-lcssa ]
  %130 = add nuw i64 %storemerge923982, 1
  %exitcond1660.not = icmp eq i64 %storemerge923982, %28
  br i1 %exitcond1660.not, label %.loopexit, label %108, !llvm.loop !19

131:                                              ; preds = %25
  %132 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.3) #6
  %.not820 = icmp eq i64 %132, 0
  br i1 %.not820, label %133, label %138

133:                                              ; preds = %131
  %134 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.4) #6
  %.not821 = icmp eq i64 %134, 0
  br i1 %.not821, label %135, label %138

135:                                              ; preds = %133
  %136 = load i8, ptr %0, align 1, !tbaa !20
  %137 = icmp eq i8 %136, 49
  br i1 %137, label %138, label %1085

138:                                              ; preds = %135, %133, %131
  %139 = load i64, ptr %3, align 8, !tbaa !5
  %140 = sdiv i64 %139, 2
  %.not903 = icmp eq i64 %16, 0
  br i1 %.not, label %141, label %432

141:                                              ; preds = %138
  br i1 %.not903, label %291, label %142

142:                                              ; preds = %141
  br i1 %.not817.not.not.not.not.not.not.not.not, label %217, label %143

143:                                              ; preds = %142
  %144 = add nsw i64 %140, -1
  %.not917.not1436 = icmp sgt i64 %139, 1
  br i1 %.not917.not1436, label %._crit_edge1440.thread, label %._crit_edge1440

._crit_edge1440.thread:                           ; preds = %143
  %145 = shl nuw i64 %140, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %5, i8 0, i64 %145, i1 false), !tbaa !9
  br label %.lr.ph1468

._crit_edge1440:                                  ; preds = %143
  %.not9191465 = icmp slt i64 %139, -1
  br i1 %.not9191465, label %._crit_edge1469, label %.lr.ph1468

.lr.ph1468:                                       ; preds = %._crit_edge1440.thread, %._crit_edge1440
  %146 = shl nsw i64 %140, 1
  %invariant.op = sub nsw i64 0, %140
  %147 = add nsw i64 %140, -1
  br label %148

148:                                              ; preds = %.lr.ph1468, %._crit_edge1459
  %indvars.iv1698 = phi i64 [ %140, %.lr.ph1468 ], [ %indvars.iv.next1699, %._crit_edge1459 ]
  %storemerge9181466 = phi i64 [ 0, %.lr.ph1468 ], [ %212, %._crit_edge1459 ]
  %.not920.not1442 = icmp sgt i64 %storemerge9181466, %invariant.op
  %149 = mul nsw i64 %storemerge9181466, %.0772
  br i1 %.not920.not1442, label %.lr.ph1445, label %._crit_edge1446

.lr.ph1445:                                       ; preds = %148
  %invariant.gep1448 = getelementptr float, ptr %4, i64 %149
  %xtraiter2024 = and i64 %indvars.iv1698, 1
  %150 = sub nsw i64 0, %storemerge9181466
  %151 = icmp eq i64 %147, %150
  br i1 %151, label %._crit_edge1446.loopexit.unr-lcssa, label %.lr.ph1445.new

.lr.ph1445.new:                                   ; preds = %.lr.ph1445
  %unroll_iter2028 = and i64 %indvars.iv1698, -2
  br label %152

152:                                              ; preds = %152, %.lr.ph1445.new
  %.57871443 = phi i64 [ 0, %.lr.ph1445.new ], [ %171, %152 ]
  %153 = phi float [ 0.000000e+00, %.lr.ph1445.new ], [ %167, %152 ]
  %niter2029 = phi i64 [ 0, %.lr.ph1445.new ], [ %niter2029.next.1, %152 ]
  %gep1449 = getelementptr float, ptr %invariant.gep1448, i64 %.57871443
  %154 = load float, ptr %gep1449, align 4, !tbaa !9
  %155 = fcmp oge float %154, 0.000000e+00
  %156 = fneg float %154
  %157 = select i1 %155, float %154, float %156
  %158 = fadd float %153, %157
  %159 = getelementptr inbounds float, ptr %5, i64 %.57871443
  %160 = load float, ptr %159, align 4, !tbaa !9
  %161 = fadd float %157, %160
  store float %161, ptr %159, align 4, !tbaa !9
  %162 = or disjoint i64 %.57871443, 1
  %gep1449.1 = getelementptr float, ptr %invariant.gep1448, i64 %162
  %163 = load float, ptr %gep1449.1, align 4, !tbaa !9
  %164 = fcmp oge float %163, 0.000000e+00
  %165 = fneg float %163
  %166 = select i1 %164, float %163, float %165
  %167 = fadd float %158, %166
  %168 = getelementptr inbounds float, ptr %5, i64 %162
  %169 = load float, ptr %168, align 4, !tbaa !9
  %170 = fadd float %166, %169
  store float %170, ptr %168, align 4, !tbaa !9
  %171 = add nuw nsw i64 %.57871443, 2
  %niter2029.next.1 = add i64 %niter2029, 2
  %niter2029.ncmp.1 = icmp eq i64 %niter2029.next.1, %unroll_iter2028
  br i1 %niter2029.ncmp.1, label %._crit_edge1446.loopexit.unr-lcssa, label %152, !llvm.loop !21

._crit_edge1446.loopexit.unr-lcssa:               ; preds = %152, %.lr.ph1445
  %.lcssa1876.ph = phi float [ poison, %.lr.ph1445 ], [ %167, %152 ]
  %.57871443.unr = phi i64 [ 0, %.lr.ph1445 ], [ %171, %152 ]
  %.unr2025 = phi float [ 0.000000e+00, %.lr.ph1445 ], [ %167, %152 ]
  %lcmp.mod2026.not = icmp eq i64 %xtraiter2024, 0
  br i1 %lcmp.mod2026.not, label %._crit_edge1446, label %._crit_edge1446.loopexit.epilog-lcssa

._crit_edge1446.loopexit.epilog-lcssa:            ; preds = %._crit_edge1446.loopexit.unr-lcssa
  %gep1449.epil = getelementptr float, ptr %invariant.gep1448, i64 %.57871443.unr
  %172 = load float, ptr %gep1449.epil, align 4, !tbaa !9
  %173 = fcmp oge float %172, 0.000000e+00
  %174 = fneg float %172
  %175 = select i1 %173, float %172, float %174
  %176 = fadd float %.unr2025, %175
  %177 = getelementptr inbounds float, ptr %5, i64 %.57871443.unr
  %178 = load float, ptr %177, align 4, !tbaa !9
  %179 = fadd float %175, %178
  store float %179, ptr %177, align 4, !tbaa !9
  br label %._crit_edge1446

._crit_edge1446:                                  ; preds = %._crit_edge1446.loopexit.epilog-lcssa, %._crit_edge1446.loopexit.unr-lcssa, %148
  %.lcssa14601463 = phi float [ 0.000000e+00, %148 ], [ %.lcssa1876.ph, %._crit_edge1446.loopexit.unr-lcssa ], [ %176, %._crit_edge1446.loopexit.epilog-lcssa ]
  %.5787.lcssa = phi i64 [ 0, %148 ], [ %indvars.iv1698, %._crit_edge1446.loopexit.unr-lcssa ], [ %indvars.iv1698, %._crit_edge1446.loopexit.epilog-lcssa ]
  %180 = getelementptr float, ptr %4, i64 %.5787.lcssa
  %181 = getelementptr float, ptr %180, i64 %149
  %182 = load float, ptr %181, align 4, !tbaa !9
  %183 = fcmp oge float %182, 0.000000e+00
  %184 = fneg float %182
  %185 = select i1 %183, float %182, float %184
  %186 = fadd float %.lcssa14601463, %185
  %187 = getelementptr float, ptr %5, i64 %storemerge9181466
  %188 = getelementptr float, ptr %187, i64 %140
  store float %186, ptr %188, align 4, !tbaa !9
  %189 = icmp eq i64 %.5787.lcssa, %146
  br i1 %189, label %._crit_edge1469, label %190

190:                                              ; preds = %._crit_edge1446
  %191 = add nuw nsw i64 %.5787.lcssa, 1
  %192 = getelementptr float, ptr %4, i64 %191
  %193 = getelementptr float, ptr %192, i64 %149
  %194 = load float, ptr %193, align 4, !tbaa !9
  %195 = fcmp oge float %194, 0.000000e+00
  %196 = fneg float %194
  %197 = select i1 %195, float %194, float %196
  %198 = load float, ptr %187, align 4, !tbaa !9
  %199 = fadd float %198, %197
  store float %199, ptr %187, align 4, !tbaa !9
  %invariant.gep1451 = getelementptr float, ptr %4, i64 %149
  %.not921.not1454 = icmp slt i64 %storemerge9181466, %144
  br i1 %.not921.not1454, label %.lr.ph1458, label %._crit_edge1459

.lr.ph1458:                                       ; preds = %190, %.lr.ph1458
  %.0774.in1456 = phi i64 [ %.0774, %.lr.ph1458 ], [ %storemerge9181466, %190 ]
  %.67881455 = phi i64 [ %201, %.lr.ph1458 ], [ %191, %190 ]
  %200 = phi float [ %206, %.lr.ph1458 ], [ 0.000000e+00, %190 ]
  %.0774 = add nuw nsw i64 %.0774.in1456, 1
  %201 = add nuw nsw i64 %.67881455, 1
  %gep1452 = getelementptr float, ptr %invariant.gep1451, i64 %201
  %202 = load float, ptr %gep1452, align 4, !tbaa !9
  %203 = fcmp oge float %202, 0.000000e+00
  %204 = fneg float %202
  %205 = select i1 %203, float %202, float %204
  %206 = fadd float %200, %205
  %207 = getelementptr inbounds float, ptr %5, i64 %.0774
  %208 = load float, ptr %207, align 4, !tbaa !9
  %209 = fadd float %205, %208
  store float %209, ptr %207, align 4, !tbaa !9
  %.not921.not = icmp slt i64 %.0774, %144
  br i1 %.not921.not, label %.lr.ph1458, label %._crit_edge1459.loopexit, !llvm.loop !22

._crit_edge1459.loopexit:                         ; preds = %.lr.ph1458
  %.pre1730 = load float, ptr %187, align 4, !tbaa !9
  br label %._crit_edge1459

._crit_edge1459:                                  ; preds = %._crit_edge1459.loopexit, %190
  %210 = phi float [ %199, %190 ], [ %.pre1730, %._crit_edge1459.loopexit ]
  %.lcssa14601462 = phi float [ 0.000000e+00, %190 ], [ %206, %._crit_edge1459.loopexit ]
  %211 = fadd float %.lcssa14601462, %210
  store float %211, ptr %187, align 4, !tbaa !9
  %212 = add nuw nsw i64 %storemerge9181466, 1
  %indvars.iv.next1699 = add i64 %indvars.iv1698, 1
  %exitcond1701.not = icmp eq i64 %storemerge9181466, %140
  br i1 %exitcond1701.not, label %._crit_edge1469, label %148, !llvm.loop !23

._crit_edge1469:                                  ; preds = %._crit_edge1446, %._crit_edge1459, %._crit_edge1440
  %213 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull @c__1) #6
  %214 = getelementptr float, ptr %5, i64 %213
  %215 = getelementptr i8, ptr %214, i64 -4
  %216 = load float, ptr %215, align 4, !tbaa !9
  br label %.loopexit

217:                                              ; preds = %142
  %218 = add nsw i64 %140, 1
  %219 = add i64 %139, -1
  %.not913.not1476 = icmp slt i64 %218, %139
  br i1 %.not913.not1476, label %.lr.ph1479.preheader, label %.preheader936

.lr.ph1479.preheader:                             ; preds = %217
  %220 = shl nuw i64 %140, 2
  %221 = getelementptr i8, ptr %5, i64 %220
  %scevgep1702 = getelementptr i8, ptr %221, i64 4
  %222 = sub i64 %219, %140
  %223 = shl nuw i64 %222, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep1702, i8 0, i64 %223, i1 false), !tbaa !9
  br label %.preheader936

.preheader936:                                    ; preds = %.lr.ph1479.preheader, %217
  %invariant.gep1502 = getelementptr float, ptr %5, i64 %218
  %224 = icmp sgt i64 %139, -2
  br i1 %224, label %.lr.ph1511.preheader, label %._crit_edge1512

.lr.ph1511.preheader:                             ; preds = %.preheader936
  %225 = add nsw i64 %140, -2
  br label %.lr.ph1511

.lr.ph1511:                                       ; preds = %.lr.ph1511.preheader, %._crit_edge1500
  %indvar2031 = phi i64 [ 0, %.lr.ph1511.preheader ], [ %indvar.next2032, %._crit_edge1500 ]
  %storemerge914.in1514 = phi i64 [ %140, %.lr.ph1511.preheader ], [ %storemerge914, %._crit_edge1500 ]
  %storemerge914.in1509 = phi i64 [ %218, %.lr.ph1511.preheader ], [ %storemerge914.in1514, %._crit_edge1500 ]
  %226 = xor i64 %indvar2031, -1
  %227 = add i64 %140, %226
  %.not9151483 = icmp slt i64 %storemerge914.in1509, 3
  br i1 %.not9151483, label %._crit_edge1487, label %.lr.ph1486

.lr.ph1486:                                       ; preds = %.lr.ph1511
  %228 = mul nsw i64 %storemerge914.in1514, %.0772
  %invariant.gep1489 = getelementptr float, ptr %4, i64 %228
  %229 = add nsw i64 %storemerge914.in1509, -2
  %xtraiter2033 = and i64 %227, 1
  %230 = icmp eq i64 %225, %indvar2031
  br i1 %230, label %._crit_edge1487.loopexit.unr-lcssa, label %.lr.ph1486.new

.lr.ph1486.new:                                   ; preds = %.lr.ph1486
  %unroll_iter2037 = and i64 %227, -2
  br label %231

231:                                              ; preds = %231, %.lr.ph1486.new
  %.87901484 = phi i64 [ 0, %.lr.ph1486.new ], [ %248, %231 ]
  %232 = phi float [ 0.000000e+00, %.lr.ph1486.new ], [ %245, %231 ]
  %niter2038 = phi i64 [ 0, %.lr.ph1486.new ], [ %niter2038.next.1, %231 ]
  %gep1490 = getelementptr float, ptr %invariant.gep1489, i64 %.87901484
  %233 = load float, ptr %gep1490, align 4, !tbaa !9
  %234 = fcmp oge float %233, 0.000000e+00
  %235 = fneg float %233
  %236 = select i1 %234, float %233, float %235
  %237 = fadd float %232, %236
  %gep1481 = getelementptr float, ptr %invariant.gep1502, i64 %.87901484
  %238 = load float, ptr %gep1481, align 4, !tbaa !9
  %239 = fadd float %236, %238
  store float %239, ptr %gep1481, align 4, !tbaa !9
  %240 = or disjoint i64 %.87901484, 1
  %gep1490.1 = getelementptr float, ptr %invariant.gep1489, i64 %240
  %241 = load float, ptr %gep1490.1, align 4, !tbaa !9
  %242 = fcmp oge float %241, 0.000000e+00
  %243 = fneg float %241
  %244 = select i1 %242, float %241, float %243
  %245 = fadd float %237, %244
  %gep1481.1 = getelementptr float, ptr %invariant.gep1502, i64 %240
  %246 = load float, ptr %gep1481.1, align 4, !tbaa !9
  %247 = fadd float %244, %246
  store float %247, ptr %gep1481.1, align 4, !tbaa !9
  %248 = add nuw i64 %.87901484, 2
  %niter2038.next.1 = add i64 %niter2038, 2
  %niter2038.ncmp.1 = icmp eq i64 %niter2038.next.1, %unroll_iter2037
  br i1 %niter2038.ncmp.1, label %._crit_edge1487.loopexit.unr-lcssa, label %231, !llvm.loop !24

._crit_edge1487.loopexit.unr-lcssa:               ; preds = %231, %.lr.ph1486
  %.lcssa1874.ph = phi float [ poison, %.lr.ph1486 ], [ %245, %231 ]
  %.87901484.unr = phi i64 [ 0, %.lr.ph1486 ], [ %248, %231 ]
  %.unr2034 = phi float [ 0.000000e+00, %.lr.ph1486 ], [ %245, %231 ]
  %lcmp.mod2035.not = icmp eq i64 %xtraiter2033, 0
  br i1 %lcmp.mod2035.not, label %._crit_edge1487, label %._crit_edge1487.loopexit.epilog-lcssa

._crit_edge1487.loopexit.epilog-lcssa:            ; preds = %._crit_edge1487.loopexit.unr-lcssa
  %gep1490.epil = getelementptr float, ptr %invariant.gep1489, i64 %.87901484.unr
  %249 = load float, ptr %gep1490.epil, align 4, !tbaa !9
  %250 = fcmp oge float %249, 0.000000e+00
  %251 = fneg float %249
  %252 = select i1 %250, float %249, float %251
  %253 = fadd float %.unr2034, %252
  %gep1481.epil = getelementptr float, ptr %invariant.gep1502, i64 %.87901484.unr
  %254 = load float, ptr %gep1481.epil, align 4, !tbaa !9
  %255 = fadd float %252, %254
  store float %255, ptr %gep1481.epil, align 4, !tbaa !9
  br label %._crit_edge1487

._crit_edge1487:                                  ; preds = %._crit_edge1487.loopexit.epilog-lcssa, %._crit_edge1487.loopexit.unr-lcssa, %.lr.ph1511
  %.lcssa15011506 = phi float [ 0.000000e+00, %.lr.ph1511 ], [ %.lcssa1874.ph, %._crit_edge1487.loopexit.unr-lcssa ], [ %253, %._crit_edge1487.loopexit.epilog-lcssa ]
  %.8790.lcssa = phi i64 [ 0, %.lr.ph1511 ], [ %229, %._crit_edge1487.loopexit.unr-lcssa ], [ %229, %._crit_edge1487.loopexit.epilog-lcssa ]
  %.not935 = icmp eq i64 %storemerge914.in1509, 1
  %.pre1750 = mul nsw i64 %storemerge914.in1514, %.0772
  br i1 %.not935, label %._crit_edge1487._crit_edge, label %256

256:                                              ; preds = %._crit_edge1487
  %257 = getelementptr float, ptr %4, i64 %.8790.lcssa
  %258 = getelementptr float, ptr %257, i64 %.pre1750
  %259 = load float, ptr %258, align 4, !tbaa !9
  %260 = fcmp oge float %259, 0.000000e+00
  %261 = fneg float %259
  %262 = select i1 %260, float %259, float %261
  %263 = fadd float %.lcssa15011506, %262
  %gep1503 = getelementptr float, ptr %invariant.gep1502, i64 %.8790.lcssa
  %264 = load float, ptr %gep1503, align 4, !tbaa !9
  %265 = fadd float %264, %263
  store float %265, ptr %gep1503, align 4, !tbaa !9
  %266 = add nuw nsw i64 %.8790.lcssa, 1
  br label %._crit_edge1487._crit_edge

._crit_edge1487._crit_edge:                       ; preds = %._crit_edge1487, %256
  %.9 = phi i64 [ %266, %256 ], [ %.8790.lcssa, %._crit_edge1487 ]
  %267 = getelementptr float, ptr %4, i64 %.9
  %268 = getelementptr float, ptr %267, i64 %.pre1750
  %269 = load float, ptr %268, align 4, !tbaa !9
  %270 = fcmp oge float %269, 0.000000e+00
  %271 = fneg float %269
  %272 = select i1 %270, float %269, float %271
  %273 = getelementptr inbounds float, ptr %5, i64 %storemerge914.in1514
  store float %272, ptr %273, align 4, !tbaa !9
  %invariant.gep1492 = getelementptr float, ptr %4, i64 %.pre1750
  %.not916.not1495 = icmp slt i64 %storemerge914.in1514, %219
  br i1 %.not916.not1495, label %.lr.ph1499, label %._crit_edge1500

.lr.ph1499:                                       ; preds = %._crit_edge1487._crit_edge, %.lr.ph1499
  %.1775.in1497 = phi i64 [ %.1775, %.lr.ph1499 ], [ %storemerge914.in1514, %._crit_edge1487._crit_edge ]
  %.101496 = phi i64 [ %275, %.lr.ph1499 ], [ %.9, %._crit_edge1487._crit_edge ]
  %274 = phi float [ %280, %.lr.ph1499 ], [ 0.000000e+00, %._crit_edge1487._crit_edge ]
  %.1775 = add nsw i64 %.1775.in1497, 1
  %275 = add nsw i64 %.101496, 1
  %gep1493 = getelementptr float, ptr %invariant.gep1492, i64 %275
  %276 = load float, ptr %gep1493, align 4, !tbaa !9
  %277 = fcmp oge float %276, 0.000000e+00
  %278 = fneg float %276
  %279 = select i1 %277, float %276, float %278
  %280 = fadd float %274, %279
  %281 = getelementptr inbounds float, ptr %5, i64 %.1775
  %282 = load float, ptr %281, align 4, !tbaa !9
  %283 = fadd float %279, %282
  store float %283, ptr %281, align 4, !tbaa !9
  %exitcond1704.not = icmp eq i64 %.1775, %219
  br i1 %exitcond1704.not, label %._crit_edge1500.loopexit, label %.lr.ph1499, !llvm.loop !25

._crit_edge1500.loopexit:                         ; preds = %.lr.ph1499
  %.pre1731 = load float, ptr %273, align 4, !tbaa !9
  br label %._crit_edge1500

._crit_edge1500:                                  ; preds = %._crit_edge1500.loopexit, %._crit_edge1487._crit_edge
  %284 = phi float [ %272, %._crit_edge1487._crit_edge ], [ %.pre1731, %._crit_edge1500.loopexit ]
  %.lcssa15011505 = phi float [ 0.000000e+00, %._crit_edge1487._crit_edge ], [ %280, %._crit_edge1500.loopexit ]
  %285 = fadd float %.lcssa15011505, %284
  store float %285, ptr %273, align 4, !tbaa !9
  %storemerge914 = add nsw i64 %storemerge914.in1514, -1
  %286 = icmp sgt i64 %storemerge914.in1514, 0
  %indvar.next2032 = add i64 %indvar2031, 1
  br i1 %286, label %.lr.ph1511, label %._crit_edge1512, !llvm.loop !26

._crit_edge1512:                                  ; preds = %._crit_edge1500, %.preheader936
  %287 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull @c__1) #6
  %288 = getelementptr float, ptr %5, i64 %287
  %289 = getelementptr i8, ptr %288, i64 -4
  %290 = load float, ptr %289, align 4, !tbaa !9
  br label %.loopexit

291:                                              ; preds = %141
  br i1 %.not817.not.not.not.not.not.not.not.not, label %362, label %292

292:                                              ; preds = %291
  %293 = add nsw i64 %140, -1
  %.not908.not1515 = icmp sgt i64 %139, 1
  br i1 %.not908.not1515, label %.lr.ph1548.preheader, label %._crit_edge1519

.lr.ph1548.preheader:                             ; preds = %292
  %294 = shl nuw i64 %140, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %5, i8 0, i64 %294, i1 false), !tbaa !9
  %invariant.op1830 = sub nsw i64 0, %140
  %295 = add nsw i64 %140, -1
  br label %.lr.ph1548

.lr.ph1548:                                       ; preds = %.lr.ph1548.preheader, %._crit_edge1538
  %indvars.iv1705 = phi i64 [ %140, %.lr.ph1548.preheader ], [ %indvars.iv.next1706, %._crit_edge1538 ]
  %storemerge9091546 = phi i64 [ 0, %.lr.ph1548.preheader ], [ %357, %._crit_edge1538 ]
  %.not911.not1521 = icmp sgt i64 %storemerge9091546, %invariant.op1830
  %296 = mul nsw i64 %storemerge9091546, %.0772
  br i1 %.not911.not1521, label %.lr.ph1524, label %._crit_edge1525

.lr.ph1524:                                       ; preds = %.lr.ph1548
  %invariant.gep1527 = getelementptr float, ptr %4, i64 %296
  %xtraiter2040 = and i64 %indvars.iv1705, 1
  %297 = sub nsw i64 0, %storemerge9091546
  %298 = icmp eq i64 %295, %297
  br i1 %298, label %._crit_edge1525.loopexit.unr-lcssa, label %.lr.ph1524.new

.lr.ph1524.new:                                   ; preds = %.lr.ph1524
  %unroll_iter2044 = and i64 %indvars.iv1705, -2
  br label %299

299:                                              ; preds = %299, %.lr.ph1524.new
  %.121522 = phi i64 [ 0, %.lr.ph1524.new ], [ %318, %299 ]
  %300 = phi float [ 0.000000e+00, %.lr.ph1524.new ], [ %314, %299 ]
  %niter2045 = phi i64 [ 0, %.lr.ph1524.new ], [ %niter2045.next.1, %299 ]
  %gep1528 = getelementptr float, ptr %invariant.gep1527, i64 %.121522
  %301 = load float, ptr %gep1528, align 4, !tbaa !9
  %302 = fcmp oge float %301, 0.000000e+00
  %303 = fneg float %301
  %304 = select i1 %302, float %301, float %303
  %305 = fadd float %300, %304
  %306 = getelementptr inbounds float, ptr %5, i64 %.121522
  %307 = load float, ptr %306, align 4, !tbaa !9
  %308 = fadd float %304, %307
  store float %308, ptr %306, align 4, !tbaa !9
  %309 = or disjoint i64 %.121522, 1
  %gep1528.1 = getelementptr float, ptr %invariant.gep1527, i64 %309
  %310 = load float, ptr %gep1528.1, align 4, !tbaa !9
  %311 = fcmp oge float %310, 0.000000e+00
  %312 = fneg float %310
  %313 = select i1 %311, float %310, float %312
  %314 = fadd float %305, %313
  %315 = getelementptr inbounds float, ptr %5, i64 %309
  %316 = load float, ptr %315, align 4, !tbaa !9
  %317 = fadd float %313, %316
  store float %317, ptr %315, align 4, !tbaa !9
  %318 = add nuw nsw i64 %.121522, 2
  %niter2045.next.1 = add i64 %niter2045, 2
  %niter2045.ncmp.1 = icmp eq i64 %niter2045.next.1, %unroll_iter2044
  br i1 %niter2045.ncmp.1, label %._crit_edge1525.loopexit.unr-lcssa, label %299, !llvm.loop !27

._crit_edge1525.loopexit.unr-lcssa:               ; preds = %299, %.lr.ph1524
  %.lcssa1872.ph = phi float [ poison, %.lr.ph1524 ], [ %314, %299 ]
  %.121522.unr = phi i64 [ 0, %.lr.ph1524 ], [ %318, %299 ]
  %.unr2041 = phi float [ 0.000000e+00, %.lr.ph1524 ], [ %314, %299 ]
  %lcmp.mod2042.not = icmp eq i64 %xtraiter2040, 0
  br i1 %lcmp.mod2042.not, label %._crit_edge1525, label %._crit_edge1525.loopexit.epilog-lcssa

._crit_edge1525.loopexit.epilog-lcssa:            ; preds = %._crit_edge1525.loopexit.unr-lcssa
  %gep1528.epil = getelementptr float, ptr %invariant.gep1527, i64 %.121522.unr
  %319 = load float, ptr %gep1528.epil, align 4, !tbaa !9
  %320 = fcmp oge float %319, 0.000000e+00
  %321 = fneg float %319
  %322 = select i1 %320, float %319, float %321
  %323 = fadd float %.unr2041, %322
  %324 = getelementptr inbounds float, ptr %5, i64 %.121522.unr
  %325 = load float, ptr %324, align 4, !tbaa !9
  %326 = fadd float %322, %325
  store float %326, ptr %324, align 4, !tbaa !9
  br label %._crit_edge1525

._crit_edge1525:                                  ; preds = %._crit_edge1525.loopexit.epilog-lcssa, %._crit_edge1525.loopexit.unr-lcssa, %.lr.ph1548
  %.lcssa15391541 = phi float [ 0.000000e+00, %.lr.ph1548 ], [ %.lcssa1872.ph, %._crit_edge1525.loopexit.unr-lcssa ], [ %323, %._crit_edge1525.loopexit.epilog-lcssa ]
  %.12.lcssa = phi i64 [ 0, %.lr.ph1548 ], [ %indvars.iv1705, %._crit_edge1525.loopexit.unr-lcssa ], [ %indvars.iv1705, %._crit_edge1525.loopexit.epilog-lcssa ]
  %327 = getelementptr float, ptr %4, i64 %.12.lcssa
  %328 = getelementptr float, ptr %327, i64 %296
  %329 = load float, ptr %328, align 4, !tbaa !9
  %330 = fcmp oge float %329, 0.000000e+00
  %331 = fneg float %329
  %332 = select i1 %330, float %329, float %331
  %333 = fadd float %.lcssa15391541, %332
  %334 = getelementptr float, ptr %5, i64 %storemerge9091546
  %335 = getelementptr float, ptr %334, i64 %140
  store float %333, ptr %335, align 4, !tbaa !9
  %336 = add nuw nsw i64 %.12.lcssa, 1
  %337 = getelementptr float, ptr %4, i64 %336
  %338 = getelementptr float, ptr %337, i64 %296
  %339 = load float, ptr %338, align 4, !tbaa !9
  %340 = fcmp oge float %339, 0.000000e+00
  %341 = fneg float %339
  %342 = select i1 %340, float %339, float %341
  %343 = load float, ptr %334, align 4, !tbaa !9
  %344 = fadd float %343, %342
  store float %344, ptr %334, align 4, !tbaa !9
  %invariant.gep1530 = getelementptr float, ptr %4, i64 %296
  %.not912.not1533 = icmp slt i64 %storemerge9091546, %293
  br i1 %.not912.not1533, label %.lr.ph1537, label %._crit_edge1538

.lr.ph1537:                                       ; preds = %._crit_edge1525, %.lr.ph1537
  %.2776.in1535 = phi i64 [ %.2776, %.lr.ph1537 ], [ %storemerge9091546, %._crit_edge1525 ]
  %.131534 = phi i64 [ %346, %.lr.ph1537 ], [ %336, %._crit_edge1525 ]
  %345 = phi float [ %351, %.lr.ph1537 ], [ 0.000000e+00, %._crit_edge1525 ]
  %.2776 = add nuw nsw i64 %.2776.in1535, 1
  %346 = add nuw nsw i64 %.131534, 1
  %gep1531 = getelementptr float, ptr %invariant.gep1530, i64 %346
  %347 = load float, ptr %gep1531, align 4, !tbaa !9
  %348 = fcmp oge float %347, 0.000000e+00
  %349 = fneg float %347
  %350 = select i1 %348, float %347, float %349
  %351 = fadd float %345, %350
  %352 = getelementptr inbounds float, ptr %5, i64 %.2776
  %353 = load float, ptr %352, align 4, !tbaa !9
  %354 = fadd float %350, %353
  store float %354, ptr %352, align 4, !tbaa !9
  %.not912.not = icmp slt i64 %.2776, %293
  br i1 %.not912.not, label %.lr.ph1537, label %._crit_edge1538.loopexit, !llvm.loop !28

._crit_edge1538.loopexit:                         ; preds = %.lr.ph1537
  %.pre1732 = load float, ptr %334, align 4, !tbaa !9
  br label %._crit_edge1538

._crit_edge1538:                                  ; preds = %._crit_edge1538.loopexit, %._crit_edge1525
  %355 = phi float [ %344, %._crit_edge1525 ], [ %.pre1732, %._crit_edge1538.loopexit ]
  %.lcssa15391542 = phi float [ 0.000000e+00, %._crit_edge1525 ], [ %351, %._crit_edge1538.loopexit ]
  %356 = fadd float %.lcssa15391542, %355
  store float %356, ptr %334, align 4, !tbaa !9
  %357 = add nuw nsw i64 %storemerge9091546, 1
  %indvars.iv.next1706 = add i64 %indvars.iv1705, 1
  %exitcond1708.not = icmp eq i64 %357, %140
  br i1 %exitcond1708.not, label %._crit_edge1519, label %.lr.ph1548, !llvm.loop !29

._crit_edge1519:                                  ; preds = %._crit_edge1538, %292
  %358 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull @c__1) #6
  %359 = getelementptr float, ptr %5, i64 %358
  %360 = getelementptr i8, ptr %359, i64 -4
  %361 = load float, ptr %360, align 4, !tbaa !9
  br label %.loopexit

362:                                              ; preds = %291
  %363 = add i64 %139, -1
  %.not904.not1552 = icmp sgt i64 %139, 0
  br i1 %.not904.not1552, label %.preheader, label %.preheader.thread

.preheader:                                       ; preds = %362
  %364 = shl nuw i64 %140, 2
  %scevgep1709 = getelementptr i8, ptr %5, i64 %364
  %365 = add nuw nsw i64 %140, 1
  %smax1710 = tail call i64 @llvm.smax.i64(i64 %139, i64 %365)
  %366 = sub nsw i64 %smax1710, %140
  %367 = shl i64 %366, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep1709, i8 0, i64 %367, i1 false), !tbaa !9
  %invariant.gep1578 = getelementptr float, ptr %5, i64 %140
  %.not1831 = icmp eq i64 %139, 1
  br i1 %.not1831, label %.preheader.thread, label %.lr.ph1589.preheader

.lr.ph1589.preheader:                             ; preds = %.preheader
  %368 = add nsw i64 %140, -2
  br label %.lr.ph1589

.lr.ph1589:                                       ; preds = %.lr.ph1589.preheader, %._crit_edge1576
  %indvar2047 = phi i64 [ 0, %.lr.ph1589.preheader ], [ %indvar.next2048, %._crit_edge1576 ]
  %storemerge905.in1587 = phi i64 [ %140, %.lr.ph1589.preheader ], [ %storemerge905.in1593, %._crit_edge1576 ]
  %369 = xor i64 %indvar2047, -1
  %370 = add i64 %140, %369
  %storemerge905.in1593 = add nsw i64 %storemerge905.in1587, -1
  %.not9061559 = icmp slt i64 %storemerge905.in1587, 2
  %.pre1746 = mul nsw i64 %storemerge905.in1593, %.0772
  br i1 %.not9061559, label %._crit_edge1563, label %.lr.ph1562

.lr.ph1562:                                       ; preds = %.lr.ph1589
  %invariant.gep1565 = getelementptr float, ptr %4, i64 %.pre1746
  %371 = add nsw i64 %storemerge905.in1587, -1
  %xtraiter2049 = and i64 %370, 1
  %372 = icmp eq i64 %368, %indvar2047
  br i1 %372, label %._crit_edge1563.loopexit.unr-lcssa, label %.lr.ph1562.new

.lr.ph1562.new:                                   ; preds = %.lr.ph1562
  %unroll_iter2053 = and i64 %370, -2
  br label %373

373:                                              ; preds = %373, %.lr.ph1562.new
  %.151560 = phi i64 [ 0, %.lr.ph1562.new ], [ %390, %373 ]
  %374 = phi float [ 0.000000e+00, %.lr.ph1562.new ], [ %387, %373 ]
  %niter2054 = phi i64 [ 0, %.lr.ph1562.new ], [ %niter2054.next.1, %373 ]
  %gep1566 = getelementptr float, ptr %invariant.gep1565, i64 %.151560
  %375 = load float, ptr %gep1566, align 4, !tbaa !9
  %376 = fcmp oge float %375, 0.000000e+00
  %377 = fneg float %375
  %378 = select i1 %376, float %375, float %377
  %379 = fadd float %374, %378
  %gep1557 = getelementptr float, ptr %invariant.gep1578, i64 %.151560
  %380 = load float, ptr %gep1557, align 4, !tbaa !9
  %381 = fadd float %378, %380
  store float %381, ptr %gep1557, align 4, !tbaa !9
  %382 = or disjoint i64 %.151560, 1
  %gep1566.1 = getelementptr float, ptr %invariant.gep1565, i64 %382
  %383 = load float, ptr %gep1566.1, align 4, !tbaa !9
  %384 = fcmp oge float %383, 0.000000e+00
  %385 = fneg float %383
  %386 = select i1 %384, float %383, float %385
  %387 = fadd float %379, %386
  %gep1557.1 = getelementptr float, ptr %invariant.gep1578, i64 %382
  %388 = load float, ptr %gep1557.1, align 4, !tbaa !9
  %389 = fadd float %386, %388
  store float %389, ptr %gep1557.1, align 4, !tbaa !9
  %390 = add nuw i64 %.151560, 2
  %niter2054.next.1 = add i64 %niter2054, 2
  %niter2054.ncmp.1 = icmp eq i64 %niter2054.next.1, %unroll_iter2053
  br i1 %niter2054.ncmp.1, label %._crit_edge1563.loopexit.unr-lcssa, label %373, !llvm.loop !30

._crit_edge1563.loopexit.unr-lcssa:               ; preds = %373, %.lr.ph1562
  %.lcssa.ph = phi float [ poison, %.lr.ph1562 ], [ %387, %373 ]
  %.151560.unr = phi i64 [ 0, %.lr.ph1562 ], [ %390, %373 ]
  %.unr2050 = phi float [ 0.000000e+00, %.lr.ph1562 ], [ %387, %373 ]
  %lcmp.mod2051.not = icmp eq i64 %xtraiter2049, 0
  br i1 %lcmp.mod2051.not, label %._crit_edge1563, label %._crit_edge1563.loopexit.epilog-lcssa

._crit_edge1563.loopexit.epilog-lcssa:            ; preds = %._crit_edge1563.loopexit.unr-lcssa
  %gep1566.epil = getelementptr float, ptr %invariant.gep1565, i64 %.151560.unr
  %391 = load float, ptr %gep1566.epil, align 4, !tbaa !9
  %392 = fcmp oge float %391, 0.000000e+00
  %393 = fneg float %391
  %394 = select i1 %392, float %391, float %393
  %395 = fadd float %.unr2050, %394
  %gep1557.epil = getelementptr float, ptr %invariant.gep1578, i64 %.151560.unr
  %396 = load float, ptr %gep1557.epil, align 4, !tbaa !9
  %397 = fadd float %394, %396
  store float %397, ptr %gep1557.epil, align 4, !tbaa !9
  br label %._crit_edge1563

._crit_edge1563:                                  ; preds = %._crit_edge1563.loopexit.epilog-lcssa, %._crit_edge1563.loopexit.unr-lcssa, %.lr.ph1589
  %.lcssa15771581 = phi float [ 0.000000e+00, %.lr.ph1589 ], [ %.lcssa.ph, %._crit_edge1563.loopexit.unr-lcssa ], [ %395, %._crit_edge1563.loopexit.epilog-lcssa ]
  %.15.lcssa = phi i64 [ 0, %.lr.ph1589 ], [ %371, %._crit_edge1563.loopexit.unr-lcssa ], [ %371, %._crit_edge1563.loopexit.epilog-lcssa ]
  %398 = getelementptr float, ptr %4, i64 %.15.lcssa
  %399 = getelementptr float, ptr %398, i64 %.pre1746
  %400 = load float, ptr %399, align 4, !tbaa !9
  %401 = fcmp oge float %400, 0.000000e+00
  %402 = fneg float %400
  %403 = select i1 %401, float %400, float %402
  %404 = fadd float %.lcssa15771581, %403
  %gep1579 = getelementptr float, ptr %invariant.gep1578, i64 %.15.lcssa
  %405 = load float, ptr %gep1579, align 4, !tbaa !9
  %406 = fadd float %405, %404
  store float %406, ptr %gep1579, align 4, !tbaa !9
  %407 = add nuw nsw i64 %.15.lcssa, 1
  %408 = getelementptr float, ptr %4, i64 %407
  %409 = getelementptr float, ptr %408, i64 %.pre1746
  %410 = load float, ptr %409, align 4, !tbaa !9
  %411 = fcmp oge float %410, 0.000000e+00
  %412 = fneg float %410
  %413 = select i1 %411, float %410, float %412
  %414 = getelementptr inbounds float, ptr %5, i64 %storemerge905.in1593
  store float %413, ptr %414, align 4, !tbaa !9
  %invariant.gep1568 = getelementptr float, ptr %4, i64 %.pre1746
  %.not907.not1571.not = icmp sgt i64 %storemerge905.in1587, %363
  br i1 %.not907.not1571.not, label %._crit_edge1576, label %.lr.ph1575

.lr.ph1575:                                       ; preds = %._crit_edge1563, %.lr.ph1575
  %.3777.in1573 = phi i64 [ %.3777, %.lr.ph1575 ], [ %storemerge905.in1593, %._crit_edge1563 ]
  %.161572 = phi i64 [ %416, %.lr.ph1575 ], [ %407, %._crit_edge1563 ]
  %415 = phi float [ %421, %.lr.ph1575 ], [ 0.000000e+00, %._crit_edge1563 ]
  %.3777 = add nsw i64 %.3777.in1573, 1
  %416 = add nuw nsw i64 %.161572, 1
  %gep1569 = getelementptr float, ptr %invariant.gep1568, i64 %416
  %417 = load float, ptr %gep1569, align 4, !tbaa !9
  %418 = fcmp oge float %417, 0.000000e+00
  %419 = fneg float %417
  %420 = select i1 %418, float %417, float %419
  %421 = fadd float %415, %420
  %422 = getelementptr inbounds float, ptr %5, i64 %.3777
  %423 = load float, ptr %422, align 4, !tbaa !9
  %424 = fadd float %420, %423
  store float %424, ptr %422, align 4, !tbaa !9
  %exitcond1712.not = icmp eq i64 %.3777, %363
  br i1 %exitcond1712.not, label %._crit_edge1576.loopexit, label %.lr.ph1575, !llvm.loop !31

._crit_edge1576.loopexit:                         ; preds = %.lr.ph1575
  %.pre1733 = load float, ptr %414, align 4, !tbaa !9
  br label %._crit_edge1576

._crit_edge1576:                                  ; preds = %._crit_edge1576.loopexit, %._crit_edge1563
  %425 = phi float [ %413, %._crit_edge1563 ], [ %.pre1733, %._crit_edge1576.loopexit ]
  %.lcssa15771582 = phi float [ 0.000000e+00, %._crit_edge1563 ], [ %421, %._crit_edge1576.loopexit ]
  %426 = fadd float %.lcssa15771582, %425
  store float %426, ptr %414, align 4, !tbaa !9
  %427 = icmp sgt i64 %storemerge905.in1587, 1
  %indvar.next2048 = add i64 %indvar2047, 1
  br i1 %427, label %.lr.ph1589, label %.preheader.thread, !llvm.loop !32

.preheader.thread:                                ; preds = %._crit_edge1576, %362, %.preheader
  %428 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull @c__1) #6
  %429 = getelementptr float, ptr %5, i64 %428
  %430 = getelementptr i8, ptr %429, i64 -4
  %431 = load float, ptr %430, align 4, !tbaa !9
  br label %.loopexit

432:                                              ; preds = %138
  br i1 %.not903, label %720, label %433

433:                                              ; preds = %432
  %434 = add nsw i64 %140, 1
  %435 = add i64 %139, -1
  br i1 %.not817.not.not.not.not.not.not.not.not, label %573, label %436

436:                                              ; preds = %433
  %.not894.not1122 = icmp sgt i64 %139, 0
  br i1 %.not894.not1122, label %._crit_edge1126, label %._crit_edge1126.thread

._crit_edge1126:                                  ; preds = %436
  %437 = shl nuw i64 %140, 2
  %scevgep = getelementptr i8, ptr %5, i64 %437
  %smax1664 = tail call i64 @llvm.smax.i64(i64 %139, i64 %434)
  %438 = sub nsw i64 %smax1664, %140
  %439 = shl i64 %438, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep, i8 0, i64 %439, i1 false), !tbaa !9
  %.not896.not1143.not = icmp eq i64 %139, 1
  br i1 %.not896.not1143.not, label %._crit_edge1126.thread, label %.lr.ph1146

.lr.ph1146:                                       ; preds = %._crit_edge1126
  %invariant.gep1127 = getelementptr float, ptr %5, i64 %140
  %440 = add nuw nsw i64 %140, 1
  %unroll_iter1933 = and i64 %440, 9223372036854775806
  %441 = and i64 %140, 1
  %lcmp.mod1931.not.not = icmp eq i64 %441, 0
  br label %.lr.ph1133

.lr.ph1133:                                       ; preds = %._crit_edge1134, %.lr.ph1146
  %storemerge8951144 = phi i64 [ 0, %.lr.ph1146 ], [ %469, %._crit_edge1134 ]
  %442 = mul nsw i64 %storemerge8951144, %.0772
  %invariant.gep1135 = getelementptr float, ptr %4, i64 %442
  br label %443

443:                                              ; preds = %443, %.lr.ph1133
  %.181131 = phi i64 [ 0, %.lr.ph1133 ], [ %460, %443 ]
  %444 = phi float [ 0.000000e+00, %.lr.ph1133 ], [ %459, %443 ]
  %niter1934 = phi i64 [ 0, %.lr.ph1133 ], [ %niter1934.next.1, %443 ]
  %gep1136 = getelementptr float, ptr %invariant.gep1135, i64 %.181131
  %445 = load float, ptr %gep1136, align 4, !tbaa !9
  %446 = fcmp oge float %445, 0.000000e+00
  %447 = fneg float %445
  %448 = select i1 %446, float %445, float %447
  %gep1128 = getelementptr float, ptr %invariant.gep1127, i64 %.181131
  %449 = load float, ptr %gep1128, align 4, !tbaa !9
  %450 = fadd float %449, %448
  store float %450, ptr %gep1128, align 4, !tbaa !9
  %451 = fadd float %448, %444
  %452 = or disjoint i64 %.181131, 1
  %gep1136.1 = getelementptr float, ptr %invariant.gep1135, i64 %452
  %453 = load float, ptr %gep1136.1, align 4, !tbaa !9
  %454 = fcmp oge float %453, 0.000000e+00
  %455 = fneg float %453
  %456 = select i1 %454, float %453, float %455
  %gep1128.1 = getelementptr float, ptr %invariant.gep1127, i64 %452
  %457 = load float, ptr %gep1128.1, align 4, !tbaa !9
  %458 = fadd float %457, %456
  store float %458, ptr %gep1128.1, align 4, !tbaa !9
  %459 = fadd float %456, %451
  %460 = add nuw nsw i64 %.181131, 2
  %niter1934.next.1 = add i64 %niter1934, 2
  %niter1934.ncmp.1 = icmp eq i64 %niter1934.next.1, %unroll_iter1933
  br i1 %niter1934.ncmp.1, label %._crit_edge1134.unr-lcssa, label %443, !llvm.loop !33

._crit_edge1134.unr-lcssa:                        ; preds = %443
  br i1 %lcmp.mod1931.not.not, label %._crit_edge1134.epilog-lcssa, label %._crit_edge1134

._crit_edge1134.epilog-lcssa:                     ; preds = %._crit_edge1134.unr-lcssa
  %gep1136.epil = getelementptr float, ptr %invariant.gep1135, i64 %460
  %461 = load float, ptr %gep1136.epil, align 4, !tbaa !9
  %462 = fcmp oge float %461, 0.000000e+00
  %463 = fneg float %461
  %464 = select i1 %462, float %461, float %463
  %gep1128.epil = getelementptr float, ptr %invariant.gep1127, i64 %460
  %465 = load float, ptr %gep1128.epil, align 4, !tbaa !9
  %466 = fadd float %465, %464
  store float %466, ptr %gep1128.epil, align 4, !tbaa !9
  %467 = fadd float %464, %459
  br label %._crit_edge1134

._crit_edge1134:                                  ; preds = %._crit_edge1134.unr-lcssa, %._crit_edge1134.epilog-lcssa
  %.lcssa1902 = phi float [ %459, %._crit_edge1134.unr-lcssa ], [ %467, %._crit_edge1134.epilog-lcssa ]
  %468 = getelementptr inbounds float, ptr %5, i64 %storemerge8951144
  store float %.lcssa1902, ptr %468, align 4, !tbaa !9
  %469 = add nuw nsw i64 %storemerge8951144, 1
  %exitcond1666.not = icmp eq i64 %469, %140
  br i1 %exitcond1666.not, label %._crit_edge1126.thread, label %.lr.ph1133, !llvm.loop !34

._crit_edge1126.thread:                           ; preds = %._crit_edge1134, %436, %._crit_edge1126
  %storemerge895.lcssa1138 = phi i64 [ 0, %._crit_edge1126 ], [ 0, %436 ], [ %140, %._crit_edge1134 ]
  %470 = mul nsw i64 %storemerge895.lcssa1138, %.0772
  %471 = getelementptr float, ptr %4, i64 %470
  %472 = load float, ptr %471, align 4, !tbaa !9
  %473 = fcmp oge float %472, 0.000000e+00
  %474 = fneg float %472
  %475 = select i1 %473, float %472, float %474
  %invariant.gep1153 = getelementptr float, ptr %5, i64 %140
  %.not8971156 = icmp slt i64 %139, 2
  br i1 %.not8971156, label %._crit_edge1160, label %.lr.ph1159.preheader

.lr.ph1159.preheader:                             ; preds = %._crit_edge1126.thread
  %xtraiter1935 = and i64 %140, 1
  %476 = and i64 %139, 9223372036854775806
  %477 = icmp eq i64 %476, 2
  br i1 %477, label %._crit_edge1160.loopexit.unr-lcssa, label %.lr.ph1159.preheader.new

.lr.ph1159.preheader.new:                         ; preds = %.lr.ph1159.preheader
  %unroll_iter1939 = and i64 %140, 4611686018427387902
  br label %.lr.ph1159

.lr.ph1159:                                       ; preds = %.lr.ph1159, %.lr.ph1159.preheader.new
  %.191157 = phi i64 [ 1, %.lr.ph1159.preheader.new ], [ %494, %.lr.ph1159 ]
  %478 = phi float [ %475, %.lr.ph1159.preheader.new ], [ %493, %.lr.ph1159 ]
  %niter1940 = phi i64 [ 0, %.lr.ph1159.preheader.new ], [ %niter1940.next.1, %.lr.ph1159 ]
  %gep1152 = getelementptr float, ptr %471, i64 %.191157
  %479 = load float, ptr %gep1152, align 4, !tbaa !9
  %480 = fcmp oge float %479, 0.000000e+00
  %481 = fneg float %479
  %482 = select i1 %480, float %479, float %481
  %gep1154 = getelementptr float, ptr %invariant.gep1153, i64 %.191157
  %483 = load float, ptr %gep1154, align 4, !tbaa !9
  %484 = fadd float %483, %482
  store float %484, ptr %gep1154, align 4, !tbaa !9
  %485 = fadd float %482, %478
  %486 = add nuw nsw i64 %.191157, 1
  %gep1152.1 = getelementptr float, ptr %471, i64 %486
  %487 = load float, ptr %gep1152.1, align 4, !tbaa !9
  %488 = fcmp oge float %487, 0.000000e+00
  %489 = fneg float %487
  %490 = select i1 %488, float %487, float %489
  %gep1154.1 = getelementptr float, ptr %invariant.gep1153, i64 %486
  %491 = load float, ptr %gep1154.1, align 4, !tbaa !9
  %492 = fadd float %491, %490
  store float %492, ptr %gep1154.1, align 4, !tbaa !9
  %493 = fadd float %490, %485
  %494 = add nuw nsw i64 %.191157, 2
  %niter1940.next.1 = add i64 %niter1940, 2
  %niter1940.ncmp.1 = icmp eq i64 %niter1940.next.1, %unroll_iter1939
  br i1 %niter1940.ncmp.1, label %._crit_edge1160.loopexit.unr-lcssa, label %.lr.ph1159, !llvm.loop !35

._crit_edge1160.loopexit.unr-lcssa:               ; preds = %.lr.ph1159, %.lr.ph1159.preheader
  %.lcssa1901.ph = phi float [ poison, %.lr.ph1159.preheader ], [ %493, %.lr.ph1159 ]
  %.191157.unr = phi i64 [ 1, %.lr.ph1159.preheader ], [ %494, %.lr.ph1159 ]
  %.unr1936 = phi float [ %475, %.lr.ph1159.preheader ], [ %493, %.lr.ph1159 ]
  %lcmp.mod1937.not = icmp eq i64 %xtraiter1935, 0
  br i1 %lcmp.mod1937.not, label %._crit_edge1160, label %.lr.ph1159.epil

.lr.ph1159.epil:                                  ; preds = %._crit_edge1160.loopexit.unr-lcssa
  %gep1152.epil = getelementptr float, ptr %471, i64 %.191157.unr
  %495 = load float, ptr %gep1152.epil, align 4, !tbaa !9
  %496 = fcmp oge float %495, 0.000000e+00
  %497 = fneg float %495
  %498 = select i1 %496, float %495, float %497
  %gep1154.epil = getelementptr float, ptr %invariant.gep1153, i64 %.191157.unr
  %499 = load float, ptr %gep1154.epil, align 4, !tbaa !9
  %500 = fadd float %499, %498
  store float %500, ptr %gep1154.epil, align 4, !tbaa !9
  %501 = fadd float %498, %.unr1936
  br label %._crit_edge1160

._crit_edge1160:                                  ; preds = %.lr.ph1159.epil, %._crit_edge1160.loopexit.unr-lcssa, %._crit_edge1126.thread
  %502 = phi float [ %475, %._crit_edge1126.thread ], [ %.lcssa1901.ph, %._crit_edge1160.loopexit.unr-lcssa ], [ %501, %.lr.ph1159.epil ]
  %503 = getelementptr inbounds float, ptr %5, i64 %storemerge895.lcssa1138
  %504 = load float, ptr %503, align 4, !tbaa !9
  %505 = fadd float %502, %504
  store float %505, ptr %503, align 4, !tbaa !9
  %.not899.not1187 = icmp slt i64 %434, %139
  br i1 %.not899.not1187, label %.lr.ph1190.preheader, label %._crit_edge1191

.lr.ph1190.preheader:                             ; preds = %._crit_edge1160
  %506 = sub i64 %435, %140
  br label %.lr.ph1190

.lr.ph1190:                                       ; preds = %.lr.ph1190.preheader, %._crit_edge1180
  %indvars.iv = phi i64 [ 0, %.lr.ph1190.preheader ], [ %indvars.iv.next, %._crit_edge1180 ]
  %storemerge8981188 = phi i64 [ %434, %.lr.ph1190.preheader ], [ %568, %._crit_edge1180 ]
  %reass.sub = sub i64 %storemerge8981188, %140
  %507 = add i64 %reass.sub, -2
  %.not9001163 = icmp slt i64 %507, 0
  %.pre1766 = mul nsw i64 %storemerge8981188, %.0772
  br i1 %.not9001163, label %._crit_edge1167, label %.lr.ph1166

.lr.ph1166:                                       ; preds = %.lr.ph1190
  %invariant.gep1169 = getelementptr float, ptr %4, i64 %.pre1766
  %xtraiter1942 = and i64 %indvars.iv, 1
  %508 = icmp eq i64 %indvars.iv, 1
  br i1 %508, label %._crit_edge1167.loopexit.unr-lcssa, label %.lr.ph1166.new

.lr.ph1166.new:                                   ; preds = %.lr.ph1166
  %unroll_iter1946 = and i64 %indvars.iv, -2
  br label %509

509:                                              ; preds = %509, %.lr.ph1166.new
  %.201164 = phi i64 [ 0, %.lr.ph1166.new ], [ %528, %509 ]
  %510 = phi float [ 0.000000e+00, %.lr.ph1166.new ], [ %527, %509 ]
  %niter1947 = phi i64 [ 0, %.lr.ph1166.new ], [ %niter1947.next.1, %509 ]
  %gep1170 = getelementptr float, ptr %invariant.gep1169, i64 %.201164
  %511 = load float, ptr %gep1170, align 4, !tbaa !9
  %512 = fcmp oge float %511, 0.000000e+00
  %513 = fneg float %511
  %514 = select i1 %512, float %511, float %513
  %515 = getelementptr inbounds float, ptr %5, i64 %.201164
  %516 = load float, ptr %515, align 4, !tbaa !9
  %517 = fadd float %516, %514
  store float %517, ptr %515, align 4, !tbaa !9
  %518 = fadd float %514, %510
  %519 = or disjoint i64 %.201164, 1
  %gep1170.1 = getelementptr float, ptr %invariant.gep1169, i64 %519
  %520 = load float, ptr %gep1170.1, align 4, !tbaa !9
  %521 = fcmp oge float %520, 0.000000e+00
  %522 = fneg float %520
  %523 = select i1 %521, float %520, float %522
  %524 = getelementptr inbounds float, ptr %5, i64 %519
  %525 = load float, ptr %524, align 4, !tbaa !9
  %526 = fadd float %525, %523
  store float %526, ptr %524, align 4, !tbaa !9
  %527 = fadd float %523, %518
  %528 = add nuw i64 %.201164, 2
  %niter1947.next.1 = add i64 %niter1947, 2
  %niter1947.ncmp.1 = icmp eq i64 %niter1947.next.1, %unroll_iter1946
  br i1 %niter1947.ncmp.1, label %._crit_edge1167.loopexit.unr-lcssa, label %509, !llvm.loop !36

._crit_edge1167.loopexit.unr-lcssa:               ; preds = %509, %.lr.ph1166
  %.lcssa1899.ph = phi float [ poison, %.lr.ph1166 ], [ %527, %509 ]
  %.201164.unr = phi i64 [ 0, %.lr.ph1166 ], [ %528, %509 ]
  %.unr1943 = phi float [ 0.000000e+00, %.lr.ph1166 ], [ %527, %509 ]
  %lcmp.mod1944.not = icmp eq i64 %xtraiter1942, 0
  br i1 %lcmp.mod1944.not, label %._crit_edge1167, label %._crit_edge1167.loopexit.epilog-lcssa

._crit_edge1167.loopexit.epilog-lcssa:            ; preds = %._crit_edge1167.loopexit.unr-lcssa
  %gep1170.epil = getelementptr float, ptr %invariant.gep1169, i64 %.201164.unr
  %529 = load float, ptr %gep1170.epil, align 4, !tbaa !9
  %530 = fcmp oge float %529, 0.000000e+00
  %531 = fneg float %529
  %532 = select i1 %530, float %529, float %531
  %533 = getelementptr inbounds float, ptr %5, i64 %.201164.unr
  %534 = load float, ptr %533, align 4, !tbaa !9
  %535 = fadd float %534, %532
  store float %535, ptr %533, align 4, !tbaa !9
  %536 = fadd float %532, %.unr1943
  br label %._crit_edge1167

._crit_edge1167:                                  ; preds = %._crit_edge1167.loopexit.epilog-lcssa, %._crit_edge1167.loopexit.unr-lcssa, %.lr.ph1190
  %.lcssa11811183 = phi float [ 0.000000e+00, %.lr.ph1190 ], [ %.lcssa1899.ph, %._crit_edge1167.loopexit.unr-lcssa ], [ %536, %._crit_edge1167.loopexit.epilog-lcssa ]
  %.20.lcssa = phi i64 [ 0, %.lr.ph1190 ], [ %indvars.iv, %._crit_edge1167.loopexit.unr-lcssa ], [ %indvars.iv, %._crit_edge1167.loopexit.epilog-lcssa ]
  %537 = getelementptr float, ptr %4, i64 %.20.lcssa
  %538 = getelementptr float, ptr %537, i64 %.pre1766
  %539 = load float, ptr %538, align 4, !tbaa !9
  %540 = fcmp oge float %539, 0.000000e+00
  %541 = fneg float %539
  %542 = select i1 %540, float %539, float %541
  %543 = fadd float %.lcssa11811183, %542
  %544 = sub nsw i64 %storemerge8981188, %434
  %545 = getelementptr inbounds float, ptr %5, i64 %544
  %546 = load float, ptr %545, align 4, !tbaa !9
  %547 = fadd float %546, %543
  store float %547, ptr %545, align 4, !tbaa !9
  %548 = add nuw nsw i64 %.20.lcssa, 1
  %549 = getelementptr float, ptr %4, i64 %548
  %550 = getelementptr float, ptr %549, i64 %.pre1766
  %551 = load float, ptr %550, align 4, !tbaa !9
  %552 = fcmp oge float %551, 0.000000e+00
  %553 = fneg float %551
  %554 = select i1 %552, float %551, float %553
  %invariant.gep1172 = getelementptr float, ptr %4, i64 %.pre1766
  %.not901.not1175 = icmp slt i64 %storemerge8981188, %435
  br i1 %.not901.not1175, label %.lr.ph1179, label %._crit_edge1180

.lr.ph1179:                                       ; preds = %._crit_edge1167, %.lr.ph1179
  %.4778.in1177 = phi i64 [ %.4778, %.lr.ph1179 ], [ %storemerge8981188, %._crit_edge1167 ]
  %.211176 = phi i64 [ %556, %.lr.ph1179 ], [ %548, %._crit_edge1167 ]
  %555 = phi float [ %564, %.lr.ph1179 ], [ %554, %._crit_edge1167 ]
  %.4778 = add nsw i64 %.4778.in1177, 1
  %556 = add nuw nsw i64 %.211176, 1
  %gep1173 = getelementptr float, ptr %invariant.gep1172, i64 %556
  %557 = load float, ptr %gep1173, align 4, !tbaa !9
  %558 = fcmp oge float %557, 0.000000e+00
  %559 = fneg float %557
  %560 = select i1 %558, float %557, float %559
  %561 = getelementptr inbounds float, ptr %5, i64 %.4778
  %562 = load float, ptr %561, align 4, !tbaa !9
  %563 = fadd float %562, %560
  store float %563, ptr %561, align 4, !tbaa !9
  %564 = fadd float %560, %555
  %.not901.not = icmp slt i64 %.4778, %435
  br i1 %.not901.not, label %.lr.ph1179, label %._crit_edge1180, !llvm.loop !37

._crit_edge1180:                                  ; preds = %.lr.ph1179, %._crit_edge1167
  %.lcssa11811184 = phi float [ %554, %._crit_edge1167 ], [ %564, %.lr.ph1179 ]
  %565 = getelementptr inbounds float, ptr %5, i64 %storemerge8981188
  %566 = load float, ptr %565, align 4, !tbaa !9
  %567 = fadd float %.lcssa11811184, %566
  store float %567, ptr %565, align 4, !tbaa !9
  %568 = add nsw i64 %storemerge8981188, 1
  %indvars.iv.next = add nuw i64 %indvars.iv, 1
  %exitcond1669.not = icmp eq i64 %indvars.iv.next, %506
  br i1 %exitcond1669.not, label %._crit_edge1191, label %.lr.ph1190, !llvm.loop !38

._crit_edge1191:                                  ; preds = %._crit_edge1180, %._crit_edge1160
  %569 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef nonnull %5, ptr noundef nonnull @c__1) #6
  %570 = getelementptr float, ptr %5, i64 %569
  %571 = getelementptr i8, ptr %570, i64 -4
  %572 = load float, ptr %571, align 4, !tbaa !9
  br label %.loopexit

573:                                              ; preds = %433
  %.not885.not1194 = icmp slt i64 %434, %139
  br i1 %.not885.not1194, label %.lr.ph1197.preheader, label %._crit_edge1198

.lr.ph1197.preheader:                             ; preds = %573
  %574 = shl i64 %140, 2
  %575 = getelementptr i8, ptr %5, i64 %574
  %scevgep1670 = getelementptr i8, ptr %575, i64 4
  %576 = sub i64 %435, %140
  %577 = shl nuw i64 %576, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep1670, i8 0, i64 %577, i1 false), !tbaa !9
  br label %._crit_edge1198

._crit_edge1198:                                  ; preds = %.lr.ph1197.preheader, %573
  %.not887.not1225 = icmp sgt i64 %139, 1
  br i1 %.not887.not1225, label %.lr.ph1228, label %._crit_edge1743

.lr.ph1228:                                       ; preds = %._crit_edge1198
  %578 = getelementptr float, ptr %5, i64 %434
  br label %579

579:                                              ; preds = %.lr.ph1228, %._crit_edge1217
  %storemerge8861226 = phi i64 [ 0, %.lr.ph1228 ], [ %639, %._crit_edge1217 ]
  %.not892.not1200.not = icmp eq i64 %storemerge8861226, 0
  br i1 %.not892.not1200.not, label %._crit_edge1204, label %.lr.ph1203

.lr.ph1203:                                       ; preds = %579
  %580 = mul nsw i64 %storemerge8861226, %.0772
  %invariant.gep1206 = getelementptr float, ptr %4, i64 %580
  %xtraiter1949 = and i64 %storemerge8861226, 1
  %581 = icmp eq i64 %storemerge8861226, 1
  br i1 %581, label %._crit_edge1204.loopexit.unr-lcssa, label %.lr.ph1203.new

.lr.ph1203.new:                                   ; preds = %.lr.ph1203
  %unroll_iter1953 = and i64 %storemerge8861226, 9223372036854775806
  br label %582

582:                                              ; preds = %582, %.lr.ph1203.new
  %.231201 = phi i64 [ 0, %.lr.ph1203.new ], [ %601, %582 ]
  %583 = phi float [ 0.000000e+00, %.lr.ph1203.new ], [ %600, %582 ]
  %niter1954 = phi i64 [ 0, %.lr.ph1203.new ], [ %niter1954.next.1, %582 ]
  %gep1207 = getelementptr float, ptr %invariant.gep1206, i64 %.231201
  %584 = load float, ptr %gep1207, align 4, !tbaa !9
  %585 = fcmp oge float %584, 0.000000e+00
  %586 = fneg float %584
  %587 = select i1 %585, float %584, float %586
  %588 = getelementptr inbounds float, ptr %5, i64 %.231201
  %589 = load float, ptr %588, align 4, !tbaa !9
  %590 = fadd float %589, %587
  store float %590, ptr %588, align 4, !tbaa !9
  %591 = fadd float %587, %583
  %592 = or disjoint i64 %.231201, 1
  %gep1207.1 = getelementptr float, ptr %invariant.gep1206, i64 %592
  %593 = load float, ptr %gep1207.1, align 4, !tbaa !9
  %594 = fcmp oge float %593, 0.000000e+00
  %595 = fneg float %593
  %596 = select i1 %594, float %593, float %595
  %597 = getelementptr inbounds float, ptr %5, i64 %592
  %598 = load float, ptr %597, align 4, !tbaa !9
  %599 = fadd float %598, %596
  store float %599, ptr %597, align 4, !tbaa !9
  %600 = fadd float %596, %591
  %601 = add nuw nsw i64 %.231201, 2
  %niter1954.next.1 = add i64 %niter1954, 2
  %niter1954.ncmp.1 = icmp eq i64 %niter1954.next.1, %unroll_iter1953
  br i1 %niter1954.ncmp.1, label %._crit_edge1204.loopexit.unr-lcssa, label %582, !llvm.loop !39

._crit_edge1204.loopexit.unr-lcssa:               ; preds = %582, %.lr.ph1203
  %.lcssa1897.ph = phi float [ poison, %.lr.ph1203 ], [ %600, %582 ]
  %.231201.unr = phi i64 [ 0, %.lr.ph1203 ], [ %601, %582 ]
  %.unr1950 = phi float [ 0.000000e+00, %.lr.ph1203 ], [ %600, %582 ]
  %lcmp.mod1951.not = icmp eq i64 %xtraiter1949, 0
  br i1 %lcmp.mod1951.not, label %._crit_edge1204, label %._crit_edge1204.loopexit.epilog-lcssa

._crit_edge1204.loopexit.epilog-lcssa:            ; preds = %._crit_edge1204.loopexit.unr-lcssa
  %gep1207.epil = getelementptr float, ptr %invariant.gep1206, i64 %.231201.unr
  %602 = load float, ptr %gep1207.epil, align 4, !tbaa !9
  %603 = fcmp oge float %602, 0.000000e+00
  %604 = fneg float %602
  %605 = select i1 %603, float %602, float %604
  %606 = getelementptr inbounds float, ptr %5, i64 %.231201.unr
  %607 = load float, ptr %606, align 4, !tbaa !9
  %608 = fadd float %607, %605
  store float %608, ptr %606, align 4, !tbaa !9
  %609 = fadd float %605, %.unr1950
  br label %._crit_edge1204

._crit_edge1204:                                  ; preds = %._crit_edge1204.loopexit.epilog-lcssa, %._crit_edge1204.loopexit.unr-lcssa, %579
  %.pre-phi1763 = phi i64 [ 0, %579 ], [ %580, %._crit_edge1204.loopexit.unr-lcssa ], [ %580, %._crit_edge1204.loopexit.epilog-lcssa ]
  %.lcssa12181221 = phi float [ 0.000000e+00, %579 ], [ %.lcssa1897.ph, %._crit_edge1204.loopexit.unr-lcssa ], [ %609, %._crit_edge1204.loopexit.epilog-lcssa ]
  %610 = getelementptr float, ptr %4, i64 %storemerge8861226
  %611 = getelementptr float, ptr %610, i64 %.pre-phi1763
  %612 = load float, ptr %611, align 4, !tbaa !9
  %613 = fcmp oge float %612, 0.000000e+00
  %614 = fneg float %612
  %615 = select i1 %613, float %612, float %614
  %616 = fadd float %.lcssa12181221, %615
  %617 = getelementptr inbounds float, ptr %5, i64 %storemerge8861226
  store float %616, ptr %617, align 4, !tbaa !9
  %618 = add nuw nsw i64 %storemerge8861226, 1
  %619 = getelementptr float, ptr %4, i64 %618
  %620 = getelementptr float, ptr %619, i64 %.pre-phi1763
  %621 = load float, ptr %620, align 4, !tbaa !9
  %622 = fcmp oge float %621, 0.000000e+00
  %623 = fneg float %621
  %624 = select i1 %622, float %621, float %623
  %625 = add nuw nsw i64 %storemerge8861226, %434
  %invariant.gep1209 = getelementptr float, ptr %4, i64 %.pre-phi1763
  %.not893.not1212 = icmp slt i64 %625, %435
  br i1 %.not893.not1212, label %.lr.ph1216, label %._crit_edge1217

.lr.ph1216:                                       ; preds = %._crit_edge1204, %.lr.ph1216
  %.5779.in1214 = phi i64 [ %.5779, %.lr.ph1216 ], [ %625, %._crit_edge1204 ]
  %.241213 = phi i64 [ %627, %.lr.ph1216 ], [ %618, %._crit_edge1204 ]
  %626 = phi float [ %632, %.lr.ph1216 ], [ %624, %._crit_edge1204 ]
  %.5779 = add nuw nsw i64 %.5779.in1214, 1
  %627 = add nuw nsw i64 %.241213, 1
  %gep1210 = getelementptr float, ptr %invariant.gep1209, i64 %627
  %628 = load float, ptr %gep1210, align 4, !tbaa !9
  %629 = fcmp oge float %628, 0.000000e+00
  %630 = fneg float %628
  %631 = select i1 %629, float %628, float %630
  %632 = fadd float %626, %631
  %633 = getelementptr inbounds float, ptr %5, i64 %.5779
  %634 = load float, ptr %633, align 4, !tbaa !9
  %635 = fadd float %631, %634
  store float %635, ptr %633, align 4, !tbaa !9
  %.not893.not = icmp slt i64 %.5779, %435
  br i1 %.not893.not, label %.lr.ph1216, label %._crit_edge1217, !llvm.loop !40

._crit_edge1217:                                  ; preds = %.lr.ph1216, %._crit_edge1204
  %.lcssa12181222 = phi float [ %624, %._crit_edge1204 ], [ %632, %.lr.ph1216 ]
  %636 = getelementptr float, ptr %578, i64 %storemerge8861226
  %637 = load float, ptr %636, align 4, !tbaa !9
  %638 = fadd float %.lcssa12181222, %637
  store float %638, ptr %636, align 4, !tbaa !9
  %639 = add nuw nsw i64 %storemerge8861226, 1
  %exitcond1672.not = icmp eq i64 %639, %140
  br i1 %exitcond1672.not, label %640, label %579, !llvm.loop !41

640:                                              ; preds = %._crit_edge1217
  br i1 %.not887.not1225, label %.lr.ph1237, label %._crit_edge1743

._crit_edge1743:                                  ; preds = %._crit_edge1198, %640
  %storemerge886.lcssa12191773 = phi i64 [ %140, %640 ], [ 0, %._crit_edge1198 ]
  %.pre1764 = mul nsw i64 %storemerge886.lcssa12191773, %.0772
  br label %._crit_edge1238

.lr.ph1237:                                       ; preds = %640
  %641 = mul nsw i64 %140, %.0772
  %invariant.gep1240 = getelementptr float, ptr %4, i64 %641
  %xtraiter1956 = and i64 %140, 1
  %642 = and i64 %139, 9223372036854775806
  %643 = icmp eq i64 %642, 2
  br i1 %643, label %._crit_edge1238.loopexit.unr-lcssa, label %.lr.ph1237.new

.lr.ph1237.new:                                   ; preds = %.lr.ph1237
  %unroll_iter1960 = and i64 %140, 4611686018427387902
  br label %644

644:                                              ; preds = %644, %.lr.ph1237.new
  %.251235 = phi i64 [ 0, %.lr.ph1237.new ], [ %663, %644 ]
  %645 = phi float [ 0.000000e+00, %.lr.ph1237.new ], [ %662, %644 ]
  %niter1961 = phi i64 [ 0, %.lr.ph1237.new ], [ %niter1961.next.1, %644 ]
  %gep1241 = getelementptr float, ptr %invariant.gep1240, i64 %.251235
  %646 = load float, ptr %gep1241, align 4, !tbaa !9
  %647 = fcmp oge float %646, 0.000000e+00
  %648 = fneg float %646
  %649 = select i1 %647, float %646, float %648
  %650 = getelementptr inbounds float, ptr %5, i64 %.251235
  %651 = load float, ptr %650, align 4, !tbaa !9
  %652 = fadd float %651, %649
  store float %652, ptr %650, align 4, !tbaa !9
  %653 = fadd float %649, %645
  %654 = or disjoint i64 %.251235, 1
  %gep1241.1 = getelementptr float, ptr %invariant.gep1240, i64 %654
  %655 = load float, ptr %gep1241.1, align 4, !tbaa !9
  %656 = fcmp oge float %655, 0.000000e+00
  %657 = fneg float %655
  %658 = select i1 %656, float %655, float %657
  %659 = getelementptr inbounds float, ptr %5, i64 %654
  %660 = load float, ptr %659, align 4, !tbaa !9
  %661 = fadd float %660, %658
  store float %661, ptr %659, align 4, !tbaa !9
  %662 = fadd float %658, %653
  %663 = add nuw nsw i64 %.251235, 2
  %niter1961.next.1 = add i64 %niter1961, 2
  %niter1961.ncmp.1 = icmp eq i64 %niter1961.next.1, %unroll_iter1960
  br i1 %niter1961.ncmp.1, label %._crit_edge1238.loopexit.unr-lcssa, label %644, !llvm.loop !42

._crit_edge1238.loopexit.unr-lcssa:               ; preds = %644, %.lr.ph1237
  %.lcssa1896.ph = phi float [ poison, %.lr.ph1237 ], [ %662, %644 ]
  %.251235.unr = phi i64 [ 0, %.lr.ph1237 ], [ %663, %644 ]
  %.unr1957 = phi float [ 0.000000e+00, %.lr.ph1237 ], [ %662, %644 ]
  %lcmp.mod1958.not = icmp eq i64 %xtraiter1956, 0
  br i1 %lcmp.mod1958.not, label %._crit_edge1238, label %._crit_edge1238.loopexit.epilog-lcssa

._crit_edge1238.loopexit.epilog-lcssa:            ; preds = %._crit_edge1238.loopexit.unr-lcssa
  %gep1241.epil = getelementptr float, ptr %invariant.gep1240, i64 %.251235.unr
  %664 = load float, ptr %gep1241.epil, align 4, !tbaa !9
  %665 = fcmp oge float %664, 0.000000e+00
  %666 = fneg float %664
  %667 = select i1 %665, float %664, float %666
  %668 = getelementptr inbounds float, ptr %5, i64 %.251235.unr
  %669 = load float, ptr %668, align 4, !tbaa !9
  %670 = fadd float %669, %667
  store float %670, ptr %668, align 4, !tbaa !9
  %671 = fadd float %667, %.unr1957
  br label %._crit_edge1238

._crit_edge1238:                                  ; preds = %._crit_edge1238.loopexit.epilog-lcssa, %._crit_edge1238.loopexit.unr-lcssa, %._crit_edge1743
  %.pre-phi1765 = phi i64 [ %.pre1764, %._crit_edge1743 ], [ %641, %._crit_edge1238.loopexit.unr-lcssa ], [ %641, %._crit_edge1238.loopexit.epilog-lcssa ]
  %672 = phi float [ 0.000000e+00, %._crit_edge1743 ], [ %.lcssa1896.ph, %._crit_edge1238.loopexit.unr-lcssa ], [ %671, %._crit_edge1238.loopexit.epilog-lcssa ]
  %.25.lcssa = phi i64 [ 0, %._crit_edge1743 ], [ %140, %._crit_edge1238.loopexit.unr-lcssa ], [ %140, %._crit_edge1238.loopexit.epilog-lcssa ]
  %673 = getelementptr float, ptr %4, i64 %.25.lcssa
  %674 = getelementptr float, ptr %673, i64 %.pre-phi1765
  %675 = load float, ptr %674, align 4, !tbaa !9
  %676 = fcmp oge float %675, 0.000000e+00
  %677 = fneg float %675
  %678 = select i1 %676, float %675, float %677
  %679 = fadd float %672, %678
  %680 = getelementptr inbounds float, ptr %5, i64 %.25.lcssa
  store float %679, ptr %680, align 4, !tbaa !9
  br i1 %.not885.not1194, label %.lr.ph1259, label %._crit_edge1260

.lr.ph1259:                                       ; preds = %._crit_edge1238
  %.not8911244 = icmp slt i64 %139, -1
  %.off = add i64 %139, 1
  %681 = icmp ult i64 %.off, 3
  %unroll_iter1967 = and i64 %434, -2
  %682 = and i64 %140, 1
  %lcmp.mod1965.not.not = icmp eq i64 %682, 0
  br label %683

683:                                              ; preds = %.lr.ph1259, %._crit_edge1248
  %storemerge8891257 = phi i64 [ %434, %.lr.ph1259 ], [ %715, %._crit_edge1248 ]
  br i1 %.not8911244, label %._crit_edge1248, label %.lr.ph1247

.lr.ph1247:                                       ; preds = %683
  %684 = mul nsw i64 %storemerge8891257, %.0772
  %invariant.gep1249 = getelementptr float, ptr %4, i64 %684
  br i1 %681, label %._crit_edge1248.loopexit.unr-lcssa, label %.lr.ph1247.new

.lr.ph1247.new:                                   ; preds = %.lr.ph1247, %.lr.ph1247.new
  %.261245 = phi i64 [ %703, %.lr.ph1247.new ], [ 0, %.lr.ph1247 ]
  %685 = phi float [ %702, %.lr.ph1247.new ], [ 0.000000e+00, %.lr.ph1247 ]
  %niter1968 = phi i64 [ %niter1968.next.1, %.lr.ph1247.new ], [ 0, %.lr.ph1247 ]
  %gep1250 = getelementptr float, ptr %invariant.gep1249, i64 %.261245
  %686 = load float, ptr %gep1250, align 4, !tbaa !9
  %687 = fcmp oge float %686, 0.000000e+00
  %688 = fneg float %686
  %689 = select i1 %687, float %686, float %688
  %690 = getelementptr inbounds float, ptr %5, i64 %.261245
  %691 = load float, ptr %690, align 4, !tbaa !9
  %692 = fadd float %691, %689
  store float %692, ptr %690, align 4, !tbaa !9
  %693 = fadd float %689, %685
  %694 = or disjoint i64 %.261245, 1
  %gep1250.1 = getelementptr float, ptr %invariant.gep1249, i64 %694
  %695 = load float, ptr %gep1250.1, align 4, !tbaa !9
  %696 = fcmp oge float %695, 0.000000e+00
  %697 = fneg float %695
  %698 = select i1 %696, float %695, float %697
  %699 = getelementptr inbounds float, ptr %5, i64 %694
  %700 = load float, ptr %699, align 4, !tbaa !9
  %701 = fadd float %700, %698
  store float %701, ptr %699, align 4, !tbaa !9
  %702 = fadd float %698, %693
  %703 = add nuw nsw i64 %.261245, 2
  %niter1968.next.1 = add i64 %niter1968, 2
  %niter1968.ncmp.1 = icmp eq i64 %niter1968.next.1, %unroll_iter1967
  br i1 %niter1968.ncmp.1, label %._crit_edge1248.loopexit.unr-lcssa, label %.lr.ph1247.new, !llvm.loop !43

._crit_edge1248.loopexit.unr-lcssa:               ; preds = %.lr.ph1247.new, %.lr.ph1247
  %.lcssa1895.ph = phi float [ poison, %.lr.ph1247 ], [ %702, %.lr.ph1247.new ]
  %.261245.unr = phi i64 [ 0, %.lr.ph1247 ], [ %703, %.lr.ph1247.new ]
  %.unr1964 = phi float [ 0.000000e+00, %.lr.ph1247 ], [ %702, %.lr.ph1247.new ]
  br i1 %lcmp.mod1965.not.not, label %._crit_edge1248.loopexit.epilog-lcssa, label %._crit_edge1248

._crit_edge1248.loopexit.epilog-lcssa:            ; preds = %._crit_edge1248.loopexit.unr-lcssa
  %gep1250.epil = getelementptr float, ptr %invariant.gep1249, i64 %.261245.unr
  %704 = load float, ptr %gep1250.epil, align 4, !tbaa !9
  %705 = fcmp oge float %704, 0.000000e+00
  %706 = fneg float %704
  %707 = select i1 %705, float %704, float %706
  %708 = getelementptr inbounds float, ptr %5, i64 %.261245.unr
  %709 = load float, ptr %708, align 4, !tbaa !9
  %710 = fadd float %709, %707
  store float %710, ptr %708, align 4, !tbaa !9
  %711 = fadd float %707, %.unr1964
  br label %._crit_edge1248

._crit_edge1248:                                  ; preds = %._crit_edge1248.loopexit.epilog-lcssa, %._crit_edge1248.loopexit.unr-lcssa, %683
  %.lcssa12511253 = phi float [ 0.000000e+00, %683 ], [ %.lcssa1895.ph, %._crit_edge1248.loopexit.unr-lcssa ], [ %711, %._crit_edge1248.loopexit.epilog-lcssa ]
  %712 = getelementptr inbounds float, ptr %5, i64 %storemerge8891257
  %713 = load float, ptr %712, align 4, !tbaa !9
  %714 = fadd float %.lcssa12511253, %713
  store float %714, ptr %712, align 4, !tbaa !9
  %715 = add nsw i64 %storemerge8891257, 1
  %exitcond1675.not = icmp eq i64 %715, %139
  br i1 %exitcond1675.not, label %._crit_edge1260, label %683, !llvm.loop !44

._crit_edge1260:                                  ; preds = %._crit_edge1248, %._crit_edge1238
  %716 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef nonnull %5, ptr noundef nonnull @c__1) #6
  %717 = getelementptr float, ptr %5, i64 %716
  %718 = getelementptr i8, ptr %717, i64 -4
  %719 = load float, ptr %718, align 4, !tbaa !9
  br label %.loopexit

720:                                              ; preds = %432
  %721 = add i64 %139, -1
  %.not865.not1351 = icmp sgt i64 %139, 0
  br i1 %.not817.not.not.not.not.not.not.not.not, label %904, label %722

722:                                              ; preds = %720
  br i1 %.not865.not1351, label %._crit_edge1267, label %._crit_edge1267.thread

._crit_edge1267:                                  ; preds = %722
  %723 = shl nuw i64 %140, 2
  %scevgep1676 = getelementptr i8, ptr %5, i64 %723
  %724 = add nuw nsw i64 %140, 1
  %smax1677 = tail call i64 @llvm.smax.i64(i64 %139, i64 %724)
  %725 = sub nsw i64 %smax1677, %140
  %726 = shl i64 %725, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep1676, i8 0, i64 %726, i1 false), !tbaa !9
  %.not877.not1284.not = icmp eq i64 %139, 1
  br i1 %.not877.not1284.not, label %._crit_edge1267.thread, label %.lr.ph1287

.lr.ph1287:                                       ; preds = %._crit_edge1267
  %invariant.gep1268 = getelementptr float, ptr %5, i64 %140
  %xtraiter1970 = and i64 %140, 1
  %727 = and i64 %139, 9223372036854775806
  %728 = icmp eq i64 %727, 2
  %unroll_iter1974 = and i64 %140, 4611686018427387902
  %lcmp.mod1972.not = icmp eq i64 %xtraiter1970, 0
  br label %.lr.ph1274

.lr.ph1274:                                       ; preds = %._crit_edge1275, %.lr.ph1287
  %storemerge8761285 = phi i64 [ 0, %.lr.ph1287 ], [ %755, %._crit_edge1275 ]
  %729 = mul nsw i64 %storemerge8761285, %.0772
  %invariant.gep1276 = getelementptr float, ptr %4, i64 %729
  br i1 %728, label %._crit_edge1275.unr-lcssa, label %.lr.ph1274.new

.lr.ph1274.new:                                   ; preds = %.lr.ph1274, %.lr.ph1274.new
  %.281272 = phi i64 [ %746, %.lr.ph1274.new ], [ 0, %.lr.ph1274 ]
  %730 = phi float [ %745, %.lr.ph1274.new ], [ 0.000000e+00, %.lr.ph1274 ]
  %niter1975 = phi i64 [ %niter1975.next.1, %.lr.ph1274.new ], [ 0, %.lr.ph1274 ]
  %gep1277 = getelementptr float, ptr %invariant.gep1276, i64 %.281272
  %731 = load float, ptr %gep1277, align 4, !tbaa !9
  %732 = fcmp oge float %731, 0.000000e+00
  %733 = fneg float %731
  %734 = select i1 %732, float %731, float %733
  %gep1269 = getelementptr float, ptr %invariant.gep1268, i64 %.281272
  %735 = load float, ptr %gep1269, align 4, !tbaa !9
  %736 = fadd float %735, %734
  store float %736, ptr %gep1269, align 4, !tbaa !9
  %737 = fadd float %734, %730
  %738 = or disjoint i64 %.281272, 1
  %gep1277.1 = getelementptr float, ptr %invariant.gep1276, i64 %738
  %739 = load float, ptr %gep1277.1, align 4, !tbaa !9
  %740 = fcmp oge float %739, 0.000000e+00
  %741 = fneg float %739
  %742 = select i1 %740, float %739, float %741
  %gep1269.1 = getelementptr float, ptr %invariant.gep1268, i64 %738
  %743 = load float, ptr %gep1269.1, align 4, !tbaa !9
  %744 = fadd float %743, %742
  store float %744, ptr %gep1269.1, align 4, !tbaa !9
  %745 = fadd float %742, %737
  %746 = add nuw nsw i64 %.281272, 2
  %niter1975.next.1 = add i64 %niter1975, 2
  %niter1975.ncmp.1 = icmp eq i64 %niter1975.next.1, %unroll_iter1974
  br i1 %niter1975.ncmp.1, label %._crit_edge1275.unr-lcssa, label %.lr.ph1274.new, !llvm.loop !45

._crit_edge1275.unr-lcssa:                        ; preds = %.lr.ph1274.new, %.lr.ph1274
  %.lcssa1894.ph = phi float [ poison, %.lr.ph1274 ], [ %745, %.lr.ph1274.new ]
  %.281272.unr = phi i64 [ 0, %.lr.ph1274 ], [ %746, %.lr.ph1274.new ]
  %.unr1971 = phi float [ 0.000000e+00, %.lr.ph1274 ], [ %745, %.lr.ph1274.new ]
  br i1 %lcmp.mod1972.not, label %._crit_edge1275, label %._crit_edge1275.epilog-lcssa

._crit_edge1275.epilog-lcssa:                     ; preds = %._crit_edge1275.unr-lcssa
  %gep1277.epil = getelementptr float, ptr %invariant.gep1276, i64 %.281272.unr
  %747 = load float, ptr %gep1277.epil, align 4, !tbaa !9
  %748 = fcmp oge float %747, 0.000000e+00
  %749 = fneg float %747
  %750 = select i1 %748, float %747, float %749
  %gep1269.epil = getelementptr float, ptr %invariant.gep1268, i64 %.281272.unr
  %751 = load float, ptr %gep1269.epil, align 4, !tbaa !9
  %752 = fadd float %751, %750
  store float %752, ptr %gep1269.epil, align 4, !tbaa !9
  %753 = fadd float %750, %.unr1971
  br label %._crit_edge1275

._crit_edge1275:                                  ; preds = %._crit_edge1275.unr-lcssa, %._crit_edge1275.epilog-lcssa
  %.lcssa1894 = phi float [ %.lcssa1894.ph, %._crit_edge1275.unr-lcssa ], [ %753, %._crit_edge1275.epilog-lcssa ]
  %754 = getelementptr inbounds float, ptr %5, i64 %storemerge8761285
  store float %.lcssa1894, ptr %754, align 4, !tbaa !9
  %755 = add nuw nsw i64 %storemerge8761285, 1
  %exitcond1679.not = icmp eq i64 %755, %140
  br i1 %exitcond1679.not, label %._crit_edge1267.thread, label %.lr.ph1274, !llvm.loop !46

._crit_edge1267.thread:                           ; preds = %._crit_edge1275, %722, %._crit_edge1267
  %storemerge876.lcssa1279 = phi i64 [ 0, %._crit_edge1267 ], [ 0, %722 ], [ %140, %._crit_edge1275 ]
  %756 = mul nsw i64 %storemerge876.lcssa1279, %.0772
  %757 = getelementptr float, ptr %4, i64 %756
  %758 = load float, ptr %757, align 4, !tbaa !9
  %759 = fcmp oge float %758, 0.000000e+00
  %760 = fneg float %758
  %761 = select i1 %759, float %758, float %760
  %invariant.gep1294 = getelementptr float, ptr %5, i64 %140
  %.not878.not1297 = icmp sgt i64 %139, 3
  br i1 %.not878.not1297, label %.lr.ph1300.preheader, label %._crit_edge1301

.lr.ph1300.preheader:                             ; preds = %._crit_edge1267.thread
  %smax1680 = tail call i64 @llvm.smax.i64(i64 %140, i64 2)
  %762 = add nsw i64 %smax1680, -1
  %xtraiter1976 = and i64 %762, 1
  %763 = icmp slt i64 %139, 6
  br i1 %763, label %._crit_edge1301.loopexit.unr-lcssa, label %.lr.ph1300.preheader.new

.lr.ph1300.preheader.new:                         ; preds = %.lr.ph1300.preheader
  %unroll_iter1980 = and i64 %762, -2
  br label %.lr.ph1300

.lr.ph1300:                                       ; preds = %.lr.ph1300, %.lr.ph1300.preheader.new
  %.291298 = phi i64 [ 1, %.lr.ph1300.preheader.new ], [ %780, %.lr.ph1300 ]
  %764 = phi float [ %761, %.lr.ph1300.preheader.new ], [ %779, %.lr.ph1300 ]
  %niter1981 = phi i64 [ 0, %.lr.ph1300.preheader.new ], [ %niter1981.next.1, %.lr.ph1300 ]
  %gep1293 = getelementptr float, ptr %757, i64 %.291298
  %765 = load float, ptr %gep1293, align 4, !tbaa !9
  %766 = fcmp oge float %765, 0.000000e+00
  %767 = fneg float %765
  %768 = select i1 %766, float %765, float %767
  %gep1295 = getelementptr float, ptr %invariant.gep1294, i64 %.291298
  %769 = load float, ptr %gep1295, align 4, !tbaa !9
  %770 = fadd float %769, %768
  store float %770, ptr %gep1295, align 4, !tbaa !9
  %771 = fadd float %768, %764
  %772 = add nuw nsw i64 %.291298, 1
  %gep1293.1 = getelementptr float, ptr %757, i64 %772
  %773 = load float, ptr %gep1293.1, align 4, !tbaa !9
  %774 = fcmp oge float %773, 0.000000e+00
  %775 = fneg float %773
  %776 = select i1 %774, float %773, float %775
  %gep1295.1 = getelementptr float, ptr %invariant.gep1294, i64 %772
  %777 = load float, ptr %gep1295.1, align 4, !tbaa !9
  %778 = fadd float %777, %776
  store float %778, ptr %gep1295.1, align 4, !tbaa !9
  %779 = fadd float %776, %771
  %780 = add nuw nsw i64 %.291298, 2
  %niter1981.next.1 = add i64 %niter1981, 2
  %niter1981.ncmp.1 = icmp eq i64 %niter1981.next.1, %unroll_iter1980
  br i1 %niter1981.ncmp.1, label %._crit_edge1301.loopexit.unr-lcssa, label %.lr.ph1300, !llvm.loop !47

._crit_edge1301.loopexit.unr-lcssa:               ; preds = %.lr.ph1300, %.lr.ph1300.preheader
  %.lcssa1893.ph = phi float [ poison, %.lr.ph1300.preheader ], [ %779, %.lr.ph1300 ]
  %.291298.unr = phi i64 [ 1, %.lr.ph1300.preheader ], [ %780, %.lr.ph1300 ]
  %.unr1977 = phi float [ %761, %.lr.ph1300.preheader ], [ %779, %.lr.ph1300 ]
  %lcmp.mod1978.not = icmp eq i64 %xtraiter1976, 0
  br i1 %lcmp.mod1978.not, label %._crit_edge1301, label %.lr.ph1300.epil

.lr.ph1300.epil:                                  ; preds = %._crit_edge1301.loopexit.unr-lcssa
  %gep1293.epil = getelementptr float, ptr %757, i64 %.291298.unr
  %781 = load float, ptr %gep1293.epil, align 4, !tbaa !9
  %782 = fcmp oge float %781, 0.000000e+00
  %783 = fneg float %781
  %784 = select i1 %782, float %781, float %783
  %gep1295.epil = getelementptr float, ptr %invariant.gep1294, i64 %.291298.unr
  %785 = load float, ptr %gep1295.epil, align 4, !tbaa !9
  %786 = fadd float %785, %784
  store float %786, ptr %gep1295.epil, align 4, !tbaa !9
  %787 = fadd float %784, %.unr1977
  br label %._crit_edge1301

._crit_edge1301:                                  ; preds = %.lr.ph1300.epil, %._crit_edge1301.loopexit.unr-lcssa, %._crit_edge1267.thread
  %788 = phi float [ %761, %._crit_edge1267.thread ], [ %.lcssa1893.ph, %._crit_edge1301.loopexit.unr-lcssa ], [ %787, %.lr.ph1300.epil ]
  %789 = getelementptr inbounds float, ptr %5, i64 %storemerge876.lcssa1279
  %790 = load float, ptr %789, align 4, !tbaa !9
  %791 = fadd float %788, %790
  store float %791, ptr %789, align 4, !tbaa !9
  %storemerge8791329 = add nsw i64 %140, 1
  %.not880.not1330 = icmp slt i64 %140, %721
  br i1 %.not880.not1330, label %.lr.ph1334, label %._crit_edge1335

.lr.ph1334:                                       ; preds = %._crit_edge1301
  %792 = xor i64 %140, -1
  br label %793

793:                                              ; preds = %.lr.ph1334, %._crit_edge1321
  %indvar = phi i64 [ 0, %.lr.ph1334 ], [ %indvar.next, %._crit_edge1321 ]
  %storemerge879.in1339 = phi i64 [ %storemerge8791329, %.lr.ph1334 ], [ %storemerge879, %._crit_edge1321 ]
  %storemerge879.in1331 = phi i64 [ %140, %.lr.ph1334 ], [ %storemerge879.in1339, %._crit_edge1321 ]
  %794 = sub i64 %140, %storemerge879.in1331
  %.not8821304 = icmp sgt i64 %794, -1
  %.pre1758 = mul nsw i64 %storemerge879.in1339, %.0772
  br i1 %.not8821304, label %._crit_edge1308, label %.lr.ph1307

.lr.ph1307:                                       ; preds = %793
  %invariant.gep1310 = getelementptr float, ptr %4, i64 %.pre1758
  %795 = sub i64 %storemerge879.in1331, %140
  %xtraiter1983 = and i64 %indvar, 1
  %796 = icmp eq i64 %indvar, 1
  br i1 %796, label %._crit_edge1308.loopexit.unr-lcssa, label %.lr.ph1307.new

.lr.ph1307.new:                                   ; preds = %.lr.ph1307
  %unroll_iter1987 = and i64 %indvar, -2
  br label %797

797:                                              ; preds = %797, %.lr.ph1307.new
  %.301305 = phi i64 [ 0, %.lr.ph1307.new ], [ %816, %797 ]
  %798 = phi float [ 0.000000e+00, %.lr.ph1307.new ], [ %815, %797 ]
  %niter1988 = phi i64 [ 0, %.lr.ph1307.new ], [ %niter1988.next.1, %797 ]
  %gep1311 = getelementptr float, ptr %invariant.gep1310, i64 %.301305
  %799 = load float, ptr %gep1311, align 4, !tbaa !9
  %800 = fcmp oge float %799, 0.000000e+00
  %801 = fneg float %799
  %802 = select i1 %800, float %799, float %801
  %803 = getelementptr inbounds float, ptr %5, i64 %.301305
  %804 = load float, ptr %803, align 4, !tbaa !9
  %805 = fadd float %804, %802
  store float %805, ptr %803, align 4, !tbaa !9
  %806 = fadd float %802, %798
  %807 = or disjoint i64 %.301305, 1
  %gep1311.1 = getelementptr float, ptr %invariant.gep1310, i64 %807
  %808 = load float, ptr %gep1311.1, 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 = getelementptr inbounds float, ptr %5, i64 %807
  %813 = load float, ptr %812, align 4, !tbaa !9
  %814 = fadd float %813, %811
  store float %814, ptr %812, align 4, !tbaa !9
  %815 = fadd float %811, %806
  %816 = add nuw i64 %.301305, 2
  %niter1988.next.1 = add i64 %niter1988, 2
  %niter1988.ncmp.1 = icmp eq i64 %niter1988.next.1, %unroll_iter1987
  br i1 %niter1988.ncmp.1, label %._crit_edge1308.loopexit.unr-lcssa, label %797, !llvm.loop !48

._crit_edge1308.loopexit.unr-lcssa:               ; preds = %797, %.lr.ph1307
  %.lcssa1885.ph = phi float [ poison, %.lr.ph1307 ], [ %815, %797 ]
  %.301305.unr = phi i64 [ 0, %.lr.ph1307 ], [ %816, %797 ]
  %.unr1984 = phi float [ 0.000000e+00, %.lr.ph1307 ], [ %815, %797 ]
  %lcmp.mod1985.not = icmp eq i64 %xtraiter1983, 0
  br i1 %lcmp.mod1985.not, label %._crit_edge1308, label %._crit_edge1308.loopexit.epilog-lcssa

._crit_edge1308.loopexit.epilog-lcssa:            ; preds = %._crit_edge1308.loopexit.unr-lcssa
  %gep1311.epil = getelementptr float, ptr %invariant.gep1310, i64 %.301305.unr
  %817 = load float, ptr %gep1311.epil, align 4, !tbaa !9
  %818 = fcmp oge float %817, 0.000000e+00
  %819 = fneg float %817
  %820 = select i1 %818, float %817, float %819
  %821 = getelementptr inbounds float, ptr %5, i64 %.301305.unr
  %822 = load float, ptr %821, align 4, !tbaa !9
  %823 = fadd float %822, %820
  store float %823, ptr %821, align 4, !tbaa !9
  %824 = fadd float %820, %.unr1984
  br label %._crit_edge1308

._crit_edge1308:                                  ; preds = %._crit_edge1308.loopexit.epilog-lcssa, %._crit_edge1308.loopexit.unr-lcssa, %793
  %.lcssa13221324 = phi float [ 0.000000e+00, %793 ], [ %.lcssa1885.ph, %._crit_edge1308.loopexit.unr-lcssa ], [ %824, %._crit_edge1308.loopexit.epilog-lcssa ]
  %.30.lcssa = phi i64 [ 0, %793 ], [ %795, %._crit_edge1308.loopexit.unr-lcssa ], [ %795, %._crit_edge1308.loopexit.epilog-lcssa ]
  %825 = getelementptr float, ptr %4, i64 %.30.lcssa
  %826 = getelementptr float, ptr %825, i64 %.pre1758
  %827 = load float, ptr %826, align 4, !tbaa !9
  %828 = fcmp oge float %827, 0.000000e+00
  %829 = fneg float %827
  %830 = select i1 %828, float %827, float %829
  %831 = fadd float %.lcssa13221324, %830
  %832 = getelementptr float, ptr %5, i64 %storemerge879.in1339
  %833 = getelementptr float, ptr %832, i64 %792
  %834 = load float, ptr %833, align 4, !tbaa !9
  %835 = fadd float %834, %831
  store float %835, ptr %833, align 4, !tbaa !9
  %836 = add nuw nsw i64 %.30.lcssa, 1
  %837 = getelementptr float, ptr %4, i64 %836
  %838 = getelementptr float, ptr %837, i64 %.pre1758
  %839 = load float, ptr %838, align 4, !tbaa !9
  %840 = fcmp oge float %839, 0.000000e+00
  %841 = fneg float %839
  %842 = select i1 %840, float %839, float %841
  %invariant.gep1313 = getelementptr float, ptr %4, i64 %.pre1758
  %.not883.not1316 = icmp slt i64 %storemerge879.in1339, %721
  br i1 %.not883.not1316, label %.lr.ph1320, label %._crit_edge1321.thread

._crit_edge1321.thread:                           ; preds = %._crit_edge1308
  %843 = load float, ptr %832, align 4, !tbaa !9
  %844 = fadd float %842, %843
  store float %844, ptr %832, align 4, !tbaa !9
  %storemerge8791776 = add nsw i64 %storemerge879.in1339, 1
  br label %._crit_edge1335

.lr.ph1320:                                       ; preds = %._crit_edge1308, %.lr.ph1320
  %.6780.in1318 = phi i64 [ %.6780, %.lr.ph1320 ], [ %storemerge879.in1339, %._crit_edge1308 ]
  %.311317 = phi i64 [ %846, %.lr.ph1320 ], [ %836, %._crit_edge1308 ]
  %845 = phi float [ %854, %.lr.ph1320 ], [ %842, %._crit_edge1308 ]
  %.6780 = add nsw i64 %.6780.in1318, 1
  %846 = add nuw nsw i64 %.311317, 1
  %gep1314 = getelementptr float, ptr %invariant.gep1313, i64 %846
  %847 = load float, ptr %gep1314, align 4, !tbaa !9
  %848 = fcmp oge float %847, 0.000000e+00
  %849 = fneg float %847
  %850 = select i1 %848, float %847, float %849
  %851 = getelementptr inbounds float, ptr %5, i64 %.6780
  %852 = load float, ptr %851, align 4, !tbaa !9
  %853 = fadd float %852, %850
  store float %853, ptr %851, align 4, !tbaa !9
  %854 = fadd float %850, %845
  %exitcond1683.not = icmp eq i64 %.6780, %721
  br i1 %exitcond1683.not, label %._crit_edge1321, label %.lr.ph1320, !llvm.loop !49

._crit_edge1321:                                  ; preds = %.lr.ph1320
  %855 = load float, ptr %832, align 4, !tbaa !9
  %856 = fadd float %854, %855
  store float %856, ptr %832, align 4, !tbaa !9
  %storemerge879 = add nsw i64 %storemerge879.in1339, 1
  %indvar.next = add i64 %indvar, 1
  br i1 %.not883.not1316, label %793, label %._crit_edge1335, !llvm.loop !50

._crit_edge1335:                                  ; preds = %._crit_edge1321, %._crit_edge1321.thread, %._crit_edge1301
  %storemerge879.lcssa = phi i64 [ %storemerge8791329, %._crit_edge1301 ], [ %storemerge8791776, %._crit_edge1321.thread ], [ %storemerge879, %._crit_edge1321 ]
  %.not8811342 = icmp slt i64 %139, 4
  %.pre1760 = mul nsw i64 %storemerge879.lcssa, %.0772
  br i1 %.not8811342, label %._crit_edge1744, label %.lr.ph1345

.lr.ph1345:                                       ; preds = %._crit_edge1335
  %invariant.gep1348 = getelementptr float, ptr %4, i64 %.pre1760
  %857 = tail call i64 @llvm.smax.i64(i64 %140, i64 2)
  %858 = add nsw i64 %857, -1
  %859 = add nsw i64 %857, -1
  %xtraiter1990 = and i64 %859, 1
  %860 = icmp slt i64 %139, 6
  br i1 %860, label %._crit_edge1744.loopexit.unr-lcssa, label %.lr.ph1345.new

.lr.ph1345.new:                                   ; preds = %.lr.ph1345
  %unroll_iter1994 = and i64 %859, -2
  br label %861

861:                                              ; preds = %861, %.lr.ph1345.new
  %.321343 = phi i64 [ 0, %.lr.ph1345.new ], [ %880, %861 ]
  %862 = phi float [ 0.000000e+00, %.lr.ph1345.new ], [ %879, %861 ]
  %niter1995 = phi i64 [ 0, %.lr.ph1345.new ], [ %niter1995.next.1, %861 ]
  %gep1349 = getelementptr float, ptr %invariant.gep1348, i64 %.321343
  %863 = load float, ptr %gep1349, align 4, !tbaa !9
  %864 = fcmp oge float %863, 0.000000e+00
  %865 = fneg float %863
  %866 = select i1 %864, float %863, float %865
  %867 = getelementptr inbounds float, ptr %5, i64 %.321343
  %868 = load float, ptr %867, align 4, !tbaa !9
  %869 = fadd float %868, %866
  store float %869, ptr %867, align 4, !tbaa !9
  %870 = fadd float %866, %862
  %871 = or disjoint i64 %.321343, 1
  %gep1349.1 = getelementptr float, ptr %invariant.gep1348, i64 %871
  %872 = load float, ptr %gep1349.1, align 4, !tbaa !9
  %873 = fcmp oge float %872, 0.000000e+00
  %874 = fneg float %872
  %875 = select i1 %873, float %872, float %874
  %876 = getelementptr inbounds float, ptr %5, i64 %871
  %877 = load float, ptr %876, align 4, !tbaa !9
  %878 = fadd float %877, %875
  store float %878, ptr %876, align 4, !tbaa !9
  %879 = fadd float %875, %870
  %880 = add nuw nsw i64 %.321343, 2
  %niter1995.next.1 = add i64 %niter1995, 2
  %niter1995.ncmp.1 = icmp eq i64 %niter1995.next.1, %unroll_iter1994
  br i1 %niter1995.ncmp.1, label %._crit_edge1744.loopexit.unr-lcssa, label %861, !llvm.loop !51

._crit_edge1744.loopexit.unr-lcssa:               ; preds = %861, %.lr.ph1345
  %.lcssa1884.ph = phi float [ poison, %.lr.ph1345 ], [ %879, %861 ]
  %.321343.unr = phi i64 [ 0, %.lr.ph1345 ], [ %880, %861 ]
  %.unr1991 = phi float [ 0.000000e+00, %.lr.ph1345 ], [ %879, %861 ]
  %lcmp.mod1992.not = icmp eq i64 %xtraiter1990, 0
  br i1 %lcmp.mod1992.not, label %._crit_edge1744, label %._crit_edge1744.loopexit.epilog-lcssa

._crit_edge1744.loopexit.epilog-lcssa:            ; preds = %._crit_edge1744.loopexit.unr-lcssa
  %gep1349.epil = getelementptr float, ptr %invariant.gep1348, i64 %.321343.unr
  %881 = load float, ptr %gep1349.epil, align 4, !tbaa !9
  %882 = fcmp oge float %881, 0.000000e+00
  %883 = fneg float %881
  %884 = select i1 %882, float %881, float %883
  %885 = getelementptr inbounds float, ptr %5, i64 %.321343.unr
  %886 = load float, ptr %885, align 4, !tbaa !9
  %887 = fadd float %886, %884
  store float %887, ptr %885, align 4, !tbaa !9
  %888 = fadd float %884, %.unr1991
  br label %._crit_edge1744

._crit_edge1744:                                  ; preds = %._crit_edge1744.loopexit.epilog-lcssa, %._crit_edge1744.loopexit.unr-lcssa, %._crit_edge1335
  %889 = phi float [ 0.000000e+00, %._crit_edge1335 ], [ %.lcssa1884.ph, %._crit_edge1744.loopexit.unr-lcssa ], [ %888, %._crit_edge1744.loopexit.epilog-lcssa ]
  %.32.lcssa = phi i64 [ 0, %._crit_edge1335 ], [ %858, %._crit_edge1744.loopexit.unr-lcssa ], [ %858, %._crit_edge1744.loopexit.epilog-lcssa ]
  %890 = getelementptr float, ptr %4, i64 %.32.lcssa
  %891 = getelementptr float, ptr %890, i64 %.pre1760
  %892 = load float, ptr %891, align 4, !tbaa !9
  %893 = fcmp oge float %892, 0.000000e+00
  %894 = fneg float %892
  %895 = select i1 %893, float %892, float %894
  %896 = fadd float %889, %895
  %897 = getelementptr inbounds float, ptr %5, i64 %.32.lcssa
  %898 = load float, ptr %897, align 4, !tbaa !9
  %899 = fadd float %898, %896
  store float %899, ptr %897, align 4, !tbaa !9
  %900 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef nonnull %5, ptr noundef nonnull @c__1) #6
  %901 = getelementptr float, ptr %5, i64 %900
  %902 = getelementptr i8, ptr %901, i64 -4
  %903 = load float, ptr %902, align 4, !tbaa !9
  br label %.loopexit

904:                                              ; preds = %720
  br i1 %.not865.not1351, label %.lr.ph1354.preheader, label %._crit_edge1355

.lr.ph1354.preheader:                             ; preds = %904
  %905 = shl nuw i64 %140, 2
  %scevgep1686 = getelementptr i8, ptr %5, i64 %905
  %906 = add nuw nsw i64 %140, 1
  %smax1687 = tail call i64 @llvm.smax.i64(i64 %139, i64 %906)
  %907 = sub nsw i64 %smax1687, %140
  %908 = shl i64 %907, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %scevgep1686, i8 0, i64 %908, i1 false), !tbaa !9
  br label %._crit_edge1355

._crit_edge1355:                                  ; preds = %.lr.ph1354.preheader, %904
  %909 = load float, ptr %4, align 4, !tbaa !9
  %910 = fcmp ult float %909, 0.000000e+00
  %911 = fneg float %909
  %912 = select i1 %910, float %911, float %909
  %invariant.gep1356 = getelementptr float, ptr %5, i64 %140
  %.not866.not1359 = icmp sgt i64 %139, 3
  br i1 %.not866.not1359, label %.lr.ph1362.preheader, label %.thread1779

.thread1779:                                      ; preds = %._crit_edge1355
  %913 = load float, ptr %invariant.gep1356, align 4, !tbaa !9
  %914 = fadd float %912, %913
  store float %914, ptr %invariant.gep1356, align 4, !tbaa !9
  br label %._crit_edge1406

.lr.ph1362.preheader:                             ; preds = %._crit_edge1355
  %smax1688 = tail call i64 @llvm.smax.i64(i64 %140, i64 2)
  %915 = add nsw i64 %smax1688, -1
  %916 = add nsw i64 %smax1688, -2
  %xtraiter1996 = and i64 %915, 1
  %917 = icmp eq i64 %916, 0
  br i1 %917, label %.unr-lcssa, label %.lr.ph1362.preheader.new

.lr.ph1362.preheader.new:                         ; preds = %.lr.ph1362.preheader
  %unroll_iter2000 = and i64 %915, -2
  br label %.lr.ph1362

.lr.ph1362:                                       ; preds = %.lr.ph1362, %.lr.ph1362.preheader.new
  %.341360 = phi i64 [ 1, %.lr.ph1362.preheader.new ], [ %936, %.lr.ph1362 ]
  %918 = phi float [ %912, %.lr.ph1362.preheader.new ], [ %935, %.lr.ph1362 ]
  %niter2001 = phi i64 [ 0, %.lr.ph1362.preheader.new ], [ %niter2001.next.1, %.lr.ph1362 ]
  %919 = getelementptr inbounds float, ptr %4, i64 %.341360
  %920 = load float, ptr %919, align 4, !tbaa !9
  %921 = fcmp oge float %920, 0.000000e+00
  %922 = fneg float %920
  %923 = select i1 %921, float %920, float %922
  %gep1357 = getelementptr float, ptr %invariant.gep1356, i64 %.341360
  %924 = load float, ptr %gep1357, align 4, !tbaa !9
  %925 = fadd float %924, %923
  store float %925, ptr %gep1357, align 4, !tbaa !9
  %926 = fadd float %923, %918
  %927 = add nuw nsw i64 %.341360, 1
  %928 = getelementptr inbounds float, ptr %4, i64 %927
  %929 = load float, ptr %928, align 4, !tbaa !9
  %930 = fcmp oge float %929, 0.000000e+00
  %931 = fneg float %929
  %932 = select i1 %930, float %929, float %931
  %gep1357.1 = getelementptr float, ptr %invariant.gep1356, i64 %927
  %933 = load float, ptr %gep1357.1, align 4, !tbaa !9
  %934 = fadd float %933, %932
  store float %934, ptr %gep1357.1, align 4, !tbaa !9
  %935 = fadd float %932, %926
  %936 = add nuw nsw i64 %.341360, 2
  %niter2001.next.1 = add i64 %niter2001, 2
  %niter2001.ncmp.1 = icmp eq i64 %niter2001.next.1, %unroll_iter2000
  br i1 %niter2001.ncmp.1, label %.unr-lcssa, label %.lr.ph1362, !llvm.loop !52

.unr-lcssa:                                       ; preds = %.lr.ph1362, %.lr.ph1362.preheader
  %.lcssa1883.ph = phi float [ poison, %.lr.ph1362.preheader ], [ %935, %.lr.ph1362 ]
  %.341360.unr = phi i64 [ 1, %.lr.ph1362.preheader ], [ %936, %.lr.ph1362 ]
  %.unr1997 = phi float [ %912, %.lr.ph1362.preheader ], [ %935, %.lr.ph1362 ]
  %lcmp.mod1998.not = icmp eq i64 %xtraiter1996, 0
  br i1 %lcmp.mod1998.not, label %945, label %.lr.ph1362.epil

.lr.ph1362.epil:                                  ; preds = %.unr-lcssa
  %937 = getelementptr inbounds float, ptr %4, i64 %.341360.unr
  %938 = load float, ptr %937, align 4, !tbaa !9
  %939 = fcmp oge float %938, 0.000000e+00
  %940 = fneg float %938
  %941 = select i1 %939, float %938, float %940
  %gep1357.epil = getelementptr float, ptr %invariant.gep1356, i64 %.341360.unr
  %942 = load float, ptr %gep1357.epil, align 4, !tbaa !9
  %943 = fadd float %942, %941
  store float %943, ptr %gep1357.epil, align 4, !tbaa !9
  %944 = fadd float %941, %.unr1997
  br label %945

945:                                              ; preds = %.unr-lcssa, %.lr.ph1362.epil
  %.lcssa1883 = phi float [ %.lcssa1883.ph, %.unr-lcssa ], [ %944, %.lr.ph1362.epil ]
  store float %.lcssa1883, ptr %11, align 4, !tbaa !9
  %946 = load float, ptr %invariant.gep1356, align 4, !tbaa !9
  %947 = fadd float %.lcssa1883, %946
  store float %947, ptr %invariant.gep1356, align 4, !tbaa !9
  %invariant.gep1385 = getelementptr i8, ptr %5, i64 -4
  br i1 %.not866.not1359, label %.lr.ph1396.preheader, label %._crit_edge1406

.lr.ph1396.preheader:                             ; preds = %945
  %smax1693 = tail call i64 @llvm.smax.i64(i64 %140, i64 2)
  %948 = add nsw i64 %smax1693, -2
  br label %.lr.ph1396

.lr.ph1396:                                       ; preds = %.lr.ph1396.preheader, %._crit_edge1383
  %indvars.iv1690 = phi i64 [ 0, %.lr.ph1396.preheader ], [ %indvars.iv.next1691, %._crit_edge1383 ]
  %storemerge8671394 = phi i64 [ 1, %.lr.ph1396.preheader ], [ %1006, %._crit_edge1383 ]
  %.not8731366 = icmp ult i64 %storemerge8671394, 2
  %.pre1754 = mul nsw i64 %storemerge8671394, %.0772
  br i1 %.not8731366, label %._crit_edge1370, label %.lr.ph1369

.lr.ph1369:                                       ; preds = %.lr.ph1396
  %invariant.gep1372 = getelementptr float, ptr %4, i64 %.pre1754
  %xtraiter2003 = and i64 %indvars.iv1690, 1
  %949 = icmp eq i64 %indvars.iv1690, 1
  br i1 %949, label %._crit_edge1370.loopexit.unr-lcssa, label %.lr.ph1369.new

.lr.ph1369.new:                                   ; preds = %.lr.ph1369
  %unroll_iter2007 = and i64 %indvars.iv1690, 9223372036854775806
  br label %950

950:                                              ; preds = %950, %.lr.ph1369.new
  %.351367 = phi i64 [ 0, %.lr.ph1369.new ], [ %969, %950 ]
  %951 = phi float [ 0.000000e+00, %.lr.ph1369.new ], [ %968, %950 ]
  %niter2008 = phi i64 [ 0, %.lr.ph1369.new ], [ %niter2008.next.1, %950 ]
  %gep1373 = getelementptr float, ptr %invariant.gep1372, i64 %.351367
  %952 = load float, ptr %gep1373, align 4, !tbaa !9
  %953 = fcmp oge float %952, 0.000000e+00
  %954 = fneg float %952
  %955 = select i1 %953, float %952, float %954
  %956 = getelementptr inbounds float, ptr %5, i64 %.351367
  %957 = load float, ptr %956, align 4, !tbaa !9
  %958 = fadd float %957, %955
  store float %958, ptr %956, align 4, !tbaa !9
  %959 = fadd float %955, %951
  %960 = or disjoint i64 %.351367, 1
  %gep1373.1 = getelementptr float, ptr %invariant.gep1372, i64 %960
  %961 = load float, ptr %gep1373.1, align 4, !tbaa !9
  %962 = fcmp oge float %961, 0.000000e+00
  %963 = fneg float %961
  %964 = select i1 %962, float %961, float %963
  %965 = getelementptr inbounds float, ptr %5, i64 %960
  %966 = load float, ptr %965, align 4, !tbaa !9
  %967 = fadd float %966, %964
  store float %967, ptr %965, align 4, !tbaa !9
  %968 = fadd float %964, %959
  %969 = add nuw nsw i64 %.351367, 2
  %niter2008.next.1 = add i64 %niter2008, 2
  %niter2008.ncmp.1 = icmp eq i64 %niter2008.next.1, %unroll_iter2007
  br i1 %niter2008.ncmp.1, label %._crit_edge1370.loopexit.unr-lcssa, label %950, !llvm.loop !53

._crit_edge1370.loopexit.unr-lcssa:               ; preds = %950, %.lr.ph1369
  %.lcssa1880.ph = phi float [ poison, %.lr.ph1369 ], [ %968, %950 ]
  %.351367.unr = phi i64 [ 0, %.lr.ph1369 ], [ %969, %950 ]
  %.unr2004 = phi float [ 0.000000e+00, %.lr.ph1369 ], [ %968, %950 ]
  %lcmp.mod2005.not = icmp eq i64 %xtraiter2003, 0
  br i1 %lcmp.mod2005.not, label %._crit_edge1370, label %._crit_edge1370.loopexit.epilog-lcssa

._crit_edge1370.loopexit.epilog-lcssa:            ; preds = %._crit_edge1370.loopexit.unr-lcssa
  %gep1373.epil = getelementptr float, ptr %invariant.gep1372, i64 %.351367.unr
  %970 = load float, ptr %gep1373.epil, align 4, !tbaa !9
  %971 = fcmp oge float %970, 0.000000e+00
  %972 = fneg float %970
  %973 = select i1 %971, float %970, float %972
  %974 = getelementptr inbounds float, ptr %5, i64 %.351367.unr
  %975 = load float, ptr %974, align 4, !tbaa !9
  %976 = fadd float %975, %973
  store float %976, ptr %974, align 4, !tbaa !9
  %977 = fadd float %973, %.unr2004
  br label %._crit_edge1370

._crit_edge1370:                                  ; preds = %._crit_edge1370.loopexit.epilog-lcssa, %._crit_edge1370.loopexit.unr-lcssa, %.lr.ph1396
  %.lcssa13841389 = phi float [ 0.000000e+00, %.lr.ph1396 ], [ %.lcssa1880.ph, %._crit_edge1370.loopexit.unr-lcssa ], [ %977, %._crit_edge1370.loopexit.epilog-lcssa ]
  %.35.lcssa = phi i64 [ 0, %.lr.ph1396 ], [ %indvars.iv1690, %._crit_edge1370.loopexit.unr-lcssa ], [ %indvars.iv1690, %._crit_edge1370.loopexit.epilog-lcssa ]
  %978 = getelementptr float, ptr %4, i64 %.35.lcssa
  %979 = getelementptr float, ptr %978, i64 %.pre1754
  %980 = load float, ptr %979, align 4, !tbaa !9
  %981 = fcmp oge float %980, 0.000000e+00
  %982 = fneg float %980
  %983 = select i1 %981, float %980, float %982
  %984 = fadd float %.lcssa13841389, %983
  %gep1386 = getelementptr float, ptr %invariant.gep1385, i64 %storemerge8671394
  store float %984, ptr %gep1386, align 4, !tbaa !9
  %985 = add nuw nsw i64 %.35.lcssa, 1
  %986 = getelementptr float, ptr %4, i64 %985
  %987 = getelementptr float, ptr %986, i64 %.pre1754
  %988 = load float, ptr %987, align 4, !tbaa !9
  %989 = fcmp oge float %988, 0.000000e+00
  %990 = fneg float %988
  %991 = select i1 %989, float %988, float %990
  %992 = add nuw nsw i64 %storemerge8671394, %140
  %invariant.gep1375 = getelementptr float, ptr %4, i64 %.pre1754
  %.not874.not1378 = icmp slt i64 %992, %721
  br i1 %.not874.not1378, label %.lr.ph1382, label %._crit_edge1383

.lr.ph1382:                                       ; preds = %._crit_edge1370, %.lr.ph1382
  %.7781.in1380 = phi i64 [ %.7781, %.lr.ph1382 ], [ %992, %._crit_edge1370 ]
  %.361379 = phi i64 [ %994, %.lr.ph1382 ], [ %985, %._crit_edge1370 ]
  %993 = phi float [ %999, %.lr.ph1382 ], [ %991, %._crit_edge1370 ]
  %.7781 = add nuw nsw i64 %.7781.in1380, 1
  %994 = add nuw nsw i64 %.361379, 1
  %gep1376 = getelementptr float, ptr %invariant.gep1375, i64 %994
  %995 = load float, ptr %gep1376, align 4, !tbaa !9
  %996 = fcmp oge float %995, 0.000000e+00
  %997 = fneg float %995
  %998 = select i1 %996, float %995, float %997
  %999 = fadd float %993, %998
  %1000 = getelementptr inbounds float, ptr %5, i64 %.7781
  %1001 = load float, ptr %1000, align 4, !tbaa !9
  %1002 = fadd float %998, %1001
  store float %1002, ptr %1000, align 4, !tbaa !9
  %.not874.not = icmp slt i64 %.7781, %721
  br i1 %.not874.not, label %.lr.ph1382, label %._crit_edge1383, !llvm.loop !54

._crit_edge1383:                                  ; preds = %.lr.ph1382, %._crit_edge1370
  %.lcssa13841390 = phi float [ %991, %._crit_edge1370 ], [ %999, %.lr.ph1382 ]
  %1003 = getelementptr float, ptr %invariant.gep1356, i64 %storemerge8671394
  %1004 = load float, ptr %1003, align 4, !tbaa !9
  %1005 = fadd float %.lcssa13841390, %1004
  store float %1005, ptr %1003, align 4, !tbaa !9
  %1006 = add nuw nsw i64 %storemerge8671394, 1
  %indvars.iv.next1691 = add nuw nsw i64 %indvars.iv1690, 1
  %exitcond1694.not = icmp eq i64 %indvars.iv1690, %948
  br i1 %exitcond1694.not, label %.lr.ph1405, label %.lr.ph1396, !llvm.loop !55

.lr.ph1405:                                       ; preds = %._crit_edge1383
  %1007 = mul nsw i64 %1006, %.0772
  %invariant.gep1408 = getelementptr float, ptr %4, i64 %1007
  %1008 = tail call i64 @llvm.smax.i64(i64 %140, i64 2)
  %1009 = add nsw i64 %1008, -1
  %xtraiter2010 = and i64 %915, 1
  %1010 = icmp eq i64 %916, 0
  br i1 %1010, label %._crit_edge1406.loopexit.unr-lcssa, label %.lr.ph1405.new

.lr.ph1405.new:                                   ; preds = %.lr.ph1405
  %unroll_iter2014 = and i64 %915, -2
  br label %1011

1011:                                             ; preds = %1011, %.lr.ph1405.new
  %.371403 = phi i64 [ 0, %.lr.ph1405.new ], [ %1030, %1011 ]
  %1012 = phi float [ 0.000000e+00, %.lr.ph1405.new ], [ %1029, %1011 ]
  %niter2015 = phi i64 [ 0, %.lr.ph1405.new ], [ %niter2015.next.1, %1011 ]
  %gep1409 = getelementptr float, ptr %invariant.gep1408, i64 %.371403
  %1013 = load float, ptr %gep1409, align 4, !tbaa !9
  %1014 = fcmp oge float %1013, 0.000000e+00
  %1015 = fneg float %1013
  %1016 = select i1 %1014, float %1013, float %1015
  %1017 = getelementptr inbounds float, ptr %5, i64 %.371403
  %1018 = load float, ptr %1017, align 4, !tbaa !9
  %1019 = fadd float %1018, %1016
  store float %1019, ptr %1017, align 4, !tbaa !9
  %1020 = fadd float %1016, %1012
  %1021 = or disjoint i64 %.371403, 1
  %gep1409.1 = getelementptr float, ptr %invariant.gep1408, i64 %1021
  %1022 = load float, ptr %gep1409.1, align 4, !tbaa !9
  %1023 = fcmp oge float %1022, 0.000000e+00
  %1024 = fneg float %1022
  %1025 = select i1 %1023, float %1022, float %1024
  %1026 = getelementptr inbounds float, ptr %5, i64 %1021
  %1027 = load float, ptr %1026, align 4, !tbaa !9
  %1028 = fadd float %1027, %1025
  store float %1028, ptr %1026, align 4, !tbaa !9
  %1029 = fadd float %1025, %1020
  %1030 = add nuw nsw i64 %.371403, 2
  %niter2015.next.1 = add i64 %niter2015, 2
  %niter2015.ncmp.1 = icmp eq i64 %niter2015.next.1, %unroll_iter2014
  br i1 %niter2015.ncmp.1, label %._crit_edge1406.loopexit.unr-lcssa, label %1011, !llvm.loop !56

._crit_edge1406.loopexit.unr-lcssa:               ; preds = %1011, %.lr.ph1405
  %.lcssa1879.ph = phi float [ poison, %.lr.ph1405 ], [ %1029, %1011 ]
  %.371403.unr = phi i64 [ 0, %.lr.ph1405 ], [ %1030, %1011 ]
  %.unr2011 = phi float [ 0.000000e+00, %.lr.ph1405 ], [ %1029, %1011 ]
  %lcmp.mod2012.not = icmp eq i64 %xtraiter2010, 0
  br i1 %lcmp.mod2012.not, label %._crit_edge1406, label %._crit_edge1406.loopexit.epilog-lcssa

._crit_edge1406.loopexit.epilog-lcssa:            ; preds = %._crit_edge1406.loopexit.unr-lcssa
  %gep1409.epil = getelementptr float, ptr %invariant.gep1408, i64 %.371403.unr
  %1031 = load float, ptr %gep1409.epil, align 4, !tbaa !9
  %1032 = fcmp oge float %1031, 0.000000e+00
  %1033 = fneg float %1031
  %1034 = select i1 %1032, float %1031, float %1033
  %1035 = getelementptr inbounds float, ptr %5, i64 %.371403.unr
  %1036 = load float, ptr %1035, align 4, !tbaa !9
  %1037 = fadd float %1036, %1034
  store float %1037, ptr %1035, align 4, !tbaa !9
  %1038 = fadd float %1034, %.unr2011
  br label %._crit_edge1406

._crit_edge1406:                                  ; preds = %._crit_edge1406.loopexit.epilog-lcssa, %._crit_edge1406.loopexit.unr-lcssa, %.thread1779, %945
  %.pre-phi1757 = phi i64 [ %.0772, %.thread1779 ], [ %.0772, %945 ], [ %1007, %._crit_edge1406.loopexit.unr-lcssa ], [ %1007, %._crit_edge1406.loopexit.epilog-lcssa ]
  %1039 = phi float [ 0.000000e+00, %.thread1779 ], [ 0.000000e+00, %945 ], [ %.lcssa1879.ph, %._crit_edge1406.loopexit.unr-lcssa ], [ %1038, %._crit_edge1406.loopexit.epilog-lcssa ]
  %.37.lcssa = phi i64 [ 0, %.thread1779 ], [ 0, %945 ], [ %1009, %._crit_edge1406.loopexit.unr-lcssa ], [ %1009, %._crit_edge1406.loopexit.epilog-lcssa ]
  %1040 = getelementptr float, ptr %4, i64 %.37.lcssa
  %1041 = getelementptr float, ptr %1040, i64 %.pre-phi1757
  %1042 = load float, ptr %1041, align 4, !tbaa !9
  %1043 = fcmp oge float %1042, 0.000000e+00
  %1044 = fneg float %1042
  %1045 = select i1 %1043, float %1042, float %1044
  %1046 = fadd float %1039, %1045
  store float %1046, ptr %11, align 4, !tbaa !9
  %1047 = getelementptr inbounds float, ptr %5, i64 %.37.lcssa
  store float %1046, ptr %1047, align 4, !tbaa !9
  %.not871.not1428 = icmp sgt i64 %139, 0
  br i1 %.not871.not1428, label %.lr.ph1431, label %._crit_edge1432

.lr.ph1431:                                       ; preds = %._crit_edge1406
  %.not872.not1412.not = icmp eq i64 %139, 1
  %xtraiter2017 = and i64 %140, 1
  %1048 = and i64 %139, 9223372036854775806
  %1049 = icmp eq i64 %1048, 2
  %unroll_iter2021 = and i64 %140, 4611686018427387902
  %lcmp.mod2019.not = icmp eq i64 %xtraiter2017, 0
  br label %1050

1050:                                             ; preds = %.lr.ph1431, %._crit_edge1416
  %storemerge870.in1435.in = phi i64 [ %140, %.lr.ph1431 ], [ %storemerge870.in1435, %._crit_edge1416 ]
  %storemerge870.in1435 = add nuw nsw i64 %storemerge870.in1435.in, 1
  br i1 %.not872.not1412.not, label %._crit_edge1416, label %.lr.ph1415

.lr.ph1415:                                       ; preds = %1050
  %1051 = mul nsw i64 %storemerge870.in1435, %.0772
  %invariant.gep1417 = getelementptr float, ptr %4, i64 %1051
  br i1 %1049, label %._crit_edge1416.loopexit.unr-lcssa, label %.lr.ph1415.new

.lr.ph1415.new:                                   ; preds = %.lr.ph1415, %.lr.ph1415.new
  %.381413 = phi i64 [ %1070, %.lr.ph1415.new ], [ 0, %.lr.ph1415 ]
  %1052 = phi float [ %1069, %.lr.ph1415.new ], [ 0.000000e+00, %.lr.ph1415 ]
  %niter2022 = phi i64 [ %niter2022.next.1, %.lr.ph1415.new ], [ 0, %.lr.ph1415 ]
  %gep1418 = getelementptr float, ptr %invariant.gep1417, i64 %.381413
  %1053 = load float, ptr %gep1418, align 4, !tbaa !9
  %1054 = fcmp oge float %1053, 0.000000e+00
  %1055 = fneg float %1053
  %1056 = select i1 %1054, float %1053, float %1055
  %1057 = getelementptr inbounds float, ptr %5, i64 %.381413
  %1058 = load float, ptr %1057, align 4, !tbaa !9
  %1059 = fadd float %1058, %1056
  store float %1059, ptr %1057, align 4, !tbaa !9
  %1060 = fadd float %1056, %1052
  %1061 = or disjoint i64 %.381413, 1
  %gep1418.1 = getelementptr float, ptr %invariant.gep1417, i64 %1061
  %1062 = load float, ptr %gep1418.1, align 4, !tbaa !9
  %1063 = fcmp oge float %1062, 0.000000e+00
  %1064 = fneg float %1062
  %1065 = select i1 %1063, float %1062, float %1064
  %1066 = getelementptr inbounds float, ptr %5, i64 %1061
  %1067 = load float, ptr %1066, align 4, !tbaa !9
  %1068 = fadd float %1067, %1065
  store float %1068, ptr %1066, align 4, !tbaa !9
  %1069 = fadd float %1065, %1060
  %1070 = add nuw nsw i64 %.381413, 2
  %niter2022.next.1 = add i64 %niter2022, 2
  %niter2022.ncmp.1 = icmp eq i64 %niter2022.next.1, %unroll_iter2021
  br i1 %niter2022.ncmp.1, label %._crit_edge1416.loopexit.unr-lcssa, label %.lr.ph1415.new, !llvm.loop !57

._crit_edge1416.loopexit.unr-lcssa:               ; preds = %.lr.ph1415.new, %.lr.ph1415
  %.lcssa1878.ph = phi float [ poison, %.lr.ph1415 ], [ %1069, %.lr.ph1415.new ]
  %.381413.unr = phi i64 [ 0, %.lr.ph1415 ], [ %1070, %.lr.ph1415.new ]
  %.unr2018 = phi float [ 0.000000e+00, %.lr.ph1415 ], [ %1069, %.lr.ph1415.new ]
  br i1 %lcmp.mod2019.not, label %._crit_edge1416, label %._crit_edge1416.loopexit.epilog-lcssa

._crit_edge1416.loopexit.epilog-lcssa:            ; preds = %._crit_edge1416.loopexit.unr-lcssa
  %gep1418.epil = getelementptr float, ptr %invariant.gep1417, i64 %.381413.unr
  %1071 = load float, ptr %gep1418.epil, align 4, !tbaa !9
  %1072 = fcmp oge float %1071, 0.000000e+00
  %1073 = fneg float %1071
  %1074 = select i1 %1072, float %1071, float %1073
  %1075 = getelementptr inbounds float, ptr %5, i64 %.381413.unr
  %1076 = load float, ptr %1075, align 4, !tbaa !9
  %1077 = fadd float %1076, %1074
  store float %1077, ptr %1075, align 4, !tbaa !9
  %1078 = fadd float %1074, %.unr2018
  br label %._crit_edge1416

._crit_edge1416:                                  ; preds = %._crit_edge1416.loopexit.epilog-lcssa, %._crit_edge1416.loopexit.unr-lcssa, %1050
  %.lcssa14191423 = phi float [ 0.000000e+00, %1050 ], [ %.lcssa1878.ph, %._crit_edge1416.loopexit.unr-lcssa ], [ %1078, %._crit_edge1416.loopexit.epilog-lcssa ]
  %gep1421 = getelementptr float, ptr %5, i64 %storemerge870.in1435.in
  %1079 = load float, ptr %gep1421, align 4, !tbaa !9
  %1080 = fadd float %.lcssa14191423, %1079
  store float %1080, ptr %gep1421, align 4, !tbaa !9
  %.not871.not = icmp slt i64 %storemerge870.in1435, %139
  br i1 %.not871.not, label %1050, label %._crit_edge1432, !llvm.loop !58

._crit_edge1432:                                  ; preds = %._crit_edge1416, %._crit_edge1406
  %1081 = tail call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef nonnull %5, ptr noundef nonnull @c__1) #6
  %1082 = getelementptr float, ptr %5, i64 %1081
  %1083 = getelementptr i8, ptr %1082, i64 -4
  %1084 = load float, ptr %1083, align 4, !tbaa !9
  br label %.loopexit

1085:                                             ; preds = %135
  %1086 = tail call i64 @lsame_(ptr noundef nonnull %0, ptr noundef nonnull @.str.5) #6
  %.not822 = icmp eq i64 %1086, 0
  br i1 %.not822, label %1087, label %1089

1087:                                             ; preds = %1085
  %1088 = tail call i64 @lsame_(ptr noundef nonnull %0, ptr noundef nonnull @.str.6) #6
  %.not823 = icmp eq i64 %1088, 0
  br i1 %.not823, label %.loopexit, label %1089

1089:                                             ; preds = %1087, %1085
  %1090 = load i64, ptr %3, align 8, !tbaa !5
  %1091 = add nsw i64 %1090, 1
  %1092 = sdiv i64 %1091, 2
  store i64 %1092, ptr %10, align 8, !tbaa !5
  store float 0.000000e+00, ptr %12, align 4, !tbaa !9
  store float 1.000000e+00, ptr %11, align 4, !tbaa !9
  %.not824 = icmp eq i64 %16, 0
  br i1 %.not824, label %1234, label %1093

1093:                                             ; preds = %1089
  br i1 %.not, label %1094, label %1157

1094:                                             ; preds = %1093
  br i1 %.not817.not.not.not.not.not.not.not.not, label %1129, label %1095

1095:                                             ; preds = %1094
  %1096 = add nsw i64 %1092, -3
  store i64 %1096, ptr %7, align 8, !tbaa !5
  store i64 0, ptr %9, align 8, !tbaa !5
  %.not8611042 = icmp slt i64 %1090, 5
  br i1 %.not8611042, label %._crit_edge1046, label %.lr.ph1045

.lr.ph1045:                                       ; preds = %1095, %.lr.ph1045
  %storemerge8601043 = phi i64 [ %1106, %.lr.ph1045 ], [ 0, %1095 ]
  %1097 = load i64, ptr %10, align 8, !tbaa !5
  %reass.sub1595 = sub i64 %1097, %storemerge8601043
  %1098 = add i64 %reass.sub1595, -2
  store i64 %1098, ptr %8, align 8, !tbaa !5
  %1099 = mul nsw i64 %storemerge8601043, %.0772
  %1100 = getelementptr float, ptr %4, i64 %1097
  %1101 = getelementptr float, ptr %1100, i64 %storemerge8601043
  %1102 = getelementptr i8, ptr %1101, i64 4
  %1103 = getelementptr float, ptr %1102, i64 %1099
  %1104 = call i32 @slassq_(ptr noundef nonnull %8, ptr noundef %1103, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1105 = load i64, ptr %9, align 8, !tbaa !5
  %1106 = add nsw i64 %1105, 1
  store i64 %1106, ptr %9, align 8, !tbaa !5
  %1107 = load i64, ptr %7, align 8, !tbaa !5
  %.not861.not = icmp slt i64 %1105, %1107
  br i1 %.not861.not, label %.lr.ph1045, label %._crit_edge1046.loopexit, !llvm.loop !59

._crit_edge1046.loopexit:                         ; preds = %.lr.ph1045
  %.pre1718 = load i64, ptr %10, align 8, !tbaa !5
  br label %._crit_edge1046

._crit_edge1046:                                  ; preds = %._crit_edge1046.loopexit, %1095
  %1108 = phi i64 [ %.pre1718, %._crit_edge1046.loopexit ], [ %1092, %1095 ]
  %1109 = add nsw i64 %1108, -1
  store i64 %1109, ptr %7, align 8, !tbaa !5
  store i64 0, ptr %9, align 8, !tbaa !5
  %.not8631047 = icmp slt i64 %1108, 1
  br i1 %.not8631047, label %._crit_edge1051, label %.lr.ph1050

.lr.ph1050:                                       ; preds = %._crit_edge1046, %.lr.ph1050
  %storemerge8621048 = phi i64 [ %1117, %.lr.ph1050 ], [ 0, %._crit_edge1046 ]
  %1110 = load i64, ptr %10, align 8, !tbaa !5
  %1111 = add nsw i64 %storemerge8621048, -1
  %1112 = add i64 %1111, %1110
  store i64 %1112, ptr %8, align 8, !tbaa !5
  %1113 = mul nsw i64 %storemerge8621048, %.0772
  %1114 = getelementptr inbounds float, ptr %4, i64 %1113
  %1115 = call i32 @slassq_(ptr noundef nonnull %8, ptr noundef %1114, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1116 = load i64, ptr %9, align 8, !tbaa !5
  %1117 = add nsw i64 %1116, 1
  store i64 %1117, ptr %9, align 8, !tbaa !5
  %1118 = load i64, ptr %7, align 8, !tbaa !5
  %.not863.not = icmp slt i64 %1116, %1118
  br i1 %.not863.not, label %.lr.ph1050, label %._crit_edge1051.loopexit, !llvm.loop !60

._crit_edge1051.loopexit:                         ; preds = %.lr.ph1050
  %.pre1719 = load i64, ptr %10, align 8, !tbaa !5
  %.pre1737 = add nsw i64 %.pre1719, -1
  br label %._crit_edge1051

._crit_edge1051:                                  ; preds = %._crit_edge1051.loopexit, %._crit_edge1046
  %.pre-phi1738 = phi i64 [ %.pre1737, %._crit_edge1051.loopexit ], [ %1109, %._crit_edge1046 ]
  %1119 = phi i64 [ %.pre1719, %._crit_edge1051.loopexit ], [ %1108, %._crit_edge1046 ]
  %1120 = load float, ptr %11, align 4, !tbaa !9
  %1121 = fadd float %1120, %1120
  store float %1121, ptr %11, align 4, !tbaa !9
  store i64 %.pre-phi1738, ptr %7, align 8, !tbaa !5
  %1122 = add nsw i64 %.0772, 1
  store i64 %1122, ptr %8, align 8, !tbaa !5
  %1123 = getelementptr inbounds float, ptr %4, i64 %1119
  %1124 = call i32 @slassq_(ptr noundef nonnull %7, ptr noundef %1123, ptr noundef nonnull %8, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  store i64 %1122, ptr %7, align 8, !tbaa !5
  %1125 = load i64, ptr %10, align 8, !tbaa !5
  %1126 = getelementptr float, ptr %4, i64 %1125
  %1127 = getelementptr i8, ptr %1126, i64 -4
  %1128 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %1127, ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  br label %1366

1129:                                             ; preds = %1094
  %1130 = add nsw i64 %1092, -1
  store i64 %1130, ptr %7, align 8, !tbaa !5
  %invariant.gep1052 = getelementptr i8, ptr %4, i64 4
  store i64 0, ptr %9, align 8, !tbaa !5
  %.not8571054 = icmp slt i64 %1090, 1
  br i1 %.not8571054, label %._crit_edge1058, label %.lr.ph1057

.lr.ph1057:                                       ; preds = %1129, %.lr.ph1057
  %storemerge8561055 = phi i64 [ %1138, %.lr.ph1057 ], [ 0, %1129 ]
  %1131 = load i64, ptr %3, align 8, !tbaa !5
  %1132 = xor i64 %storemerge8561055, -1
  %1133 = add i64 %1131, %1132
  store i64 %1133, ptr %8, align 8, !tbaa !5
  %1134 = mul nsw i64 %storemerge8561055, %.0772
  %gep1053 = getelementptr float, ptr %invariant.gep1052, i64 %storemerge8561055
  %1135 = getelementptr float, ptr %gep1053, i64 %1134
  %1136 = call i32 @slassq_(ptr noundef nonnull %8, ptr noundef %1135, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1137 = load i64, ptr %9, align 8, !tbaa !5
  %1138 = add nsw i64 %1137, 1
  store i64 %1138, ptr %9, align 8, !tbaa !5
  %1139 = load i64, ptr %7, align 8, !tbaa !5
  %.not857.not = icmp slt i64 %1137, %1139
  br i1 %.not857.not, label %.lr.ph1057, label %._crit_edge1058.loopexit, !llvm.loop !61

._crit_edge1058.loopexit:                         ; preds = %.lr.ph1057
  %.pre1720 = load i64, ptr %10, align 8, !tbaa !5
  br label %._crit_edge1058

._crit_edge1058:                                  ; preds = %._crit_edge1058.loopexit, %1129
  %1140 = phi i64 [ %.pre1720, %._crit_edge1058.loopexit ], [ %1092, %1129 ]
  %1141 = add nsw i64 %1140, -2
  store i64 %1141, ptr %7, align 8, !tbaa !5
  store i64 0, ptr %9, align 8, !tbaa !5
  %.not8591059 = icmp slt i64 %1140, 2
  br i1 %.not8591059, label %._crit_edge1063, label %.lr.ph1062

.lr.ph1062:                                       ; preds = %._crit_edge1058, %.lr.ph1062
  %storemerge8581060 = phi i64 [ %1147, %.lr.ph1062 ], [ 0, %._crit_edge1058 ]
  %1142 = add nsw i64 %storemerge8581060, 1
  %1143 = mul nsw i64 %1142, %.0772
  %1144 = getelementptr inbounds float, ptr %4, i64 %1143
  %1145 = call i32 @slassq_(ptr noundef nonnull %9, ptr noundef %1144, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1146 = load i64, ptr %9, align 8, !tbaa !5
  %1147 = add nsw i64 %1146, 1
  store i64 %1147, ptr %9, align 8, !tbaa !5
  %1148 = load i64, ptr %7, align 8, !tbaa !5
  %.not859.not = icmp slt i64 %1146, %1148
  br i1 %.not859.not, label %.lr.ph1062, label %._crit_edge1063, !llvm.loop !62

._crit_edge1063:                                  ; preds = %.lr.ph1062, %._crit_edge1058
  %1149 = load float, ptr %11, align 4, !tbaa !9
  %1150 = fadd float %1149, %1149
  store float %1150, ptr %11, align 4, !tbaa !9
  %1151 = add nsw i64 %.0772, 1
  store i64 %1151, ptr %7, align 8, !tbaa !5
  %1152 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %4, ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1153 = load i64, ptr %10, align 8, !tbaa !5
  %1154 = add nsw i64 %1153, -1
  store i64 %1154, ptr %7, align 8, !tbaa !5
  store i64 %1151, ptr %8, align 8, !tbaa !5
  %1155 = getelementptr inbounds float, ptr %4, i64 %.0772
  %1156 = call i32 @slassq_(ptr noundef nonnull %7, ptr noundef %1155, ptr noundef nonnull %8, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  br label %1366

1157:                                             ; preds = %1093
  br i1 %.not817.not.not.not.not.not.not.not.not, label %1199, label %1158

1158:                                             ; preds = %1157
  %1159 = add nsw i64 %1092, -2
  store i64 %1159, ptr %7, align 8, !tbaa !5
  store i64 1, ptr %9, align 8, !tbaa !5
  %.not8511008 = icmp slt i64 %1090, 5
  br i1 %.not8511008, label %._crit_edge1012, label %.lr.ph1011

.lr.ph1011:                                       ; preds = %1158, %.lr.ph1011
  %storemerge8501009 = phi i64 [ %1166, %.lr.ph1011 ], [ 1, %1158 ]
  %1160 = load i64, ptr %10, align 8, !tbaa !5
  %1161 = add nsw i64 %1160, %storemerge8501009
  %1162 = mul nsw i64 %1161, %.0772
  %1163 = getelementptr inbounds float, ptr %4, i64 %1162
  %1164 = call i32 @slassq_(ptr noundef nonnull %9, ptr noundef %1163, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1165 = load i64, ptr %9, align 8, !tbaa !5
  %1166 = add nsw i64 %1165, 1
  store i64 %1166, ptr %9, align 8, !tbaa !5
  %1167 = load i64, ptr %7, align 8, !tbaa !5
  %.not851.not = icmp slt i64 %1165, %1167
  br i1 %.not851.not, label %.lr.ph1011, label %._crit_edge1012.loopexit, !llvm.loop !63

._crit_edge1012.loopexit:                         ; preds = %.lr.ph1011
  %.pre = load i64, ptr %10, align 8, !tbaa !5
  %.pre1739 = add nsw i64 %.pre, -2
  br label %._crit_edge1012

._crit_edge1012:                                  ; preds = %._crit_edge1012.loopexit, %1158
  %.pre-phi1740 = phi i64 [ %.pre1739, %._crit_edge1012.loopexit ], [ %1159, %1158 ]
  %1168 = phi i64 [ %.pre, %._crit_edge1012.loopexit ], [ %1092, %1158 ]
  store i64 %.pre-phi1740, ptr %7, align 8, !tbaa !5
  store i64 0, ptr %9, align 8, !tbaa !5
  %.not8531013 = icmp slt i64 %1168, 2
  br i1 %.not8531013, label %._crit_edge1024, label %.lr.ph1016

.lr.ph1016:                                       ; preds = %._crit_edge1012, %.lr.ph1016
  %storemerge8521014 = phi i64 [ %1173, %.lr.ph1016 ], [ 0, %._crit_edge1012 ]
  %1169 = mul nsw i64 %storemerge8521014, %.0772
  %1170 = getelementptr inbounds float, ptr %4, i64 %1169
  %1171 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %1170, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1172 = load i64, ptr %9, align 8, !tbaa !5
  %1173 = add nsw i64 %1172, 1
  store i64 %1173, ptr %9, align 8, !tbaa !5
  %1174 = load i64, ptr %7, align 8, !tbaa !5
  %.not853.not = icmp slt i64 %1172, %1174
  br i1 %.not853.not, label %.lr.ph1016, label %._crit_edge1017, !llvm.loop !64

._crit_edge1017:                                  ; preds = %.lr.ph1016
  %.pre1713 = load i64, ptr %10, align 8, !tbaa !5
  %.pre1741 = add nsw i64 %.pre1713, -2
  store i64 %.pre1741, ptr %7, align 8, !tbaa !5
  %invariant.gep1018 = getelementptr i8, ptr %4, i64 4
  store i64 0, ptr %9, align 8, !tbaa !5
  %.not8551020 = icmp slt i64 %.pre1713, 2
  br i1 %.not8551020, label %._crit_edge1024, label %.lr.ph1023

.lr.ph1023:                                       ; preds = %._crit_edge1017, %.lr.ph1023
  %storemerge8541021 = phi i64 [ %1184, %.lr.ph1023 ], [ 0, %._crit_edge1017 ]
  %1175 = load i64, ptr %10, align 8, !tbaa !5
  %1176 = xor i64 %storemerge8541021, -1
  %1177 = add i64 %1175, %1176
  store i64 %1177, ptr %8, align 8, !tbaa !5
  %1178 = add nsw i64 %storemerge8541021, -1
  %1179 = add i64 %1178, %1175
  %1180 = mul nsw i64 %1179, %.0772
  %gep1019 = getelementptr float, ptr %invariant.gep1018, i64 %storemerge8541021
  %1181 = getelementptr float, ptr %gep1019, i64 %1180
  %1182 = call i32 @slassq_(ptr noundef nonnull %8, ptr noundef %1181, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1183 = load i64, ptr %9, align 8, !tbaa !5
  %1184 = add nsw i64 %1183, 1
  store i64 %1184, ptr %9, align 8, !tbaa !5
  %1185 = load i64, ptr %7, align 8, !tbaa !5
  %.not855.not = icmp slt i64 %1183, %1185
  br i1 %.not855.not, label %.lr.ph1023, label %._crit_edge1024.loopexit, !llvm.loop !65

._crit_edge1024.loopexit:                         ; preds = %.lr.ph1023
  %.pre1714 = load i64, ptr %10, align 8, !tbaa !5
  br label %._crit_edge1024

._crit_edge1024:                                  ; preds = %._crit_edge1012, %._crit_edge1024.loopexit, %._crit_edge1017
  %1186 = phi i64 [ %.pre1714, %._crit_edge1024.loopexit ], [ %.pre1713, %._crit_edge1017 ], [ %1168, %._crit_edge1012 ]
  %1187 = load float, ptr %11, align 4, !tbaa !9
  %1188 = fadd float %1187, %1187
  store float %1188, ptr %11, align 4, !tbaa !9
  %1189 = add nsw i64 %1186, -1
  store i64 %1189, ptr %7, align 8, !tbaa !5
  %1190 = add nsw i64 %.0772, 1
  store i64 %1190, ptr %8, align 8, !tbaa !5
  %1191 = mul nsw i64 %1186, %.0772
  %1192 = getelementptr inbounds float, ptr %4, i64 %1191
  %1193 = call i32 @slassq_(ptr noundef nonnull %7, ptr noundef %1192, ptr noundef nonnull %8, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  store i64 %1190, ptr %7, align 8, !tbaa !5
  %1194 = load i64, ptr %10, align 8, !tbaa !5
  %1195 = add nsw i64 %1194, -1
  %1196 = mul nsw i64 %1195, %.0772
  %1197 = getelementptr inbounds float, ptr %4, i64 %1196
  %1198 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %1197, ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  br label %1366

1199:                                             ; preds = %1157
  %1200 = add nsw i64 %1092, -1
  store i64 %1200, ptr %7, align 8, !tbaa !5
  store i64 1, ptr %9, align 8, !tbaa !5
  %.not8451025 = icmp slt i64 %1090, 3
  br i1 %.not8451025, label %._crit_edge1029, label %.lr.ph1028

.lr.ph1028:                                       ; preds = %1199, %.lr.ph1028
  %storemerge8441026 = phi i64 [ %1205, %.lr.ph1028 ], [ 1, %1199 ]
  %1201 = mul nsw i64 %storemerge8441026, %.0772
  %1202 = getelementptr inbounds float, ptr %4, i64 %1201
  %1203 = call i32 @slassq_(ptr noundef nonnull %9, ptr noundef %1202, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1204 = load i64, ptr %9, align 8, !tbaa !5
  %1205 = add nsw i64 %1204, 1
  store i64 %1205, ptr %9, align 8, !tbaa !5
  %1206 = load i64, ptr %7, align 8, !tbaa !5
  %.not845.not = icmp slt i64 %1204, %1206
  br i1 %.not845.not, label %.lr.ph1028, label %._crit_edge1029.loopexit, !llvm.loop !66

._crit_edge1029.loopexit:                         ; preds = %.lr.ph1028
  %.pre1715 = load i64, ptr %3, align 8, !tbaa !5
  %.pre1716 = load i64, ptr %10, align 8, !tbaa !5
  br label %._crit_edge1029

._crit_edge1029:                                  ; preds = %._crit_edge1029.loopexit, %1199
  %1207 = phi i64 [ %.pre1716, %._crit_edge1029.loopexit ], [ %1092, %1199 ]
  %1208 = phi i64 [ %.pre1715, %._crit_edge1029.loopexit ], [ %1090, %1199 ]
  %1209 = add nsw i64 %1208, -1
  store i64 %1209, ptr %7, align 8, !tbaa !5
  store i64 %1207, ptr %9, align 8, !tbaa !5
  %.not8471030.not = icmp slt i64 %1207, %1208
  br i1 %.not8471030.not, label %.lr.ph1033, label %._crit_edge1034

.lr.ph1033:                                       ; preds = %._crit_edge1029, %.lr.ph1033
  %storemerge8461031 = phi i64 [ %1214, %.lr.ph1033 ], [ %1207, %._crit_edge1029 ]
  %1210 = mul nsw i64 %storemerge8461031, %.0772
  %1211 = getelementptr inbounds float, ptr %4, i64 %1210
  %1212 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %1211, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1213 = load i64, ptr %9, align 8, !tbaa !5
  %1214 = add nsw i64 %1213, 1
  store i64 %1214, ptr %9, align 8, !tbaa !5
  %1215 = load i64, ptr %7, align 8, !tbaa !5
  %.not847.not = icmp slt i64 %1213, %1215
  br i1 %.not847.not, label %.lr.ph1033, label %._crit_edge1034.loopexit, !llvm.loop !67

._crit_edge1034.loopexit:                         ; preds = %.lr.ph1033
  %.pre1717 = load i64, ptr %10, align 8, !tbaa !5
  br label %._crit_edge1034

._crit_edge1034:                                  ; preds = %._crit_edge1034.loopexit, %._crit_edge1029
  %1216 = phi i64 [ %.pre1717, %._crit_edge1034.loopexit ], [ %1207, %._crit_edge1029 ]
  %1217 = add nsw i64 %1216, -3
  store i64 %1217, ptr %7, align 8, !tbaa !5
  %invariant.gep1035 = getelementptr i8, ptr %4, i64 8
  store i64 0, ptr %9, align 8, !tbaa !5
  %.not8491037 = icmp slt i64 %1216, 3
  br i1 %.not8491037, label %._crit_edge1041, label %.lr.ph1040

.lr.ph1040:                                       ; preds = %._crit_edge1034, %.lr.ph1040
  %storemerge8481038 = phi i64 [ %1224, %.lr.ph1040 ], [ 0, %._crit_edge1034 ]
  %1218 = load i64, ptr %10, align 8, !tbaa !5
  %reass.sub1594 = sub i64 %1218, %storemerge8481038
  %1219 = add i64 %reass.sub1594, -2
  store i64 %1219, ptr %8, align 8, !tbaa !5
  %1220 = mul nsw i64 %storemerge8481038, %.0772
  %gep1036 = getelementptr float, ptr %invariant.gep1035, i64 %storemerge8481038
  %1221 = getelementptr float, ptr %gep1036, i64 %1220
  %1222 = call i32 @slassq_(ptr noundef nonnull %8, ptr noundef %1221, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1223 = load i64, ptr %9, align 8, !tbaa !5
  %1224 = add nsw i64 %1223, 1
  store i64 %1224, ptr %9, align 8, !tbaa !5
  %1225 = load i64, ptr %7, align 8, !tbaa !5
  %.not849.not = icmp slt i64 %1223, %1225
  br i1 %.not849.not, label %.lr.ph1040, label %._crit_edge1041, !llvm.loop !68

._crit_edge1041:                                  ; preds = %.lr.ph1040, %._crit_edge1034
  %1226 = load float, ptr %11, align 4, !tbaa !9
  %1227 = fadd float %1226, %1226
  store float %1227, ptr %11, align 4, !tbaa !9
  %1228 = add nsw i64 %.0772, 1
  store i64 %1228, ptr %7, align 8, !tbaa !5
  %1229 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %4, ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1230 = load i64, ptr %10, align 8, !tbaa !5
  %1231 = add nsw i64 %1230, -1
  store i64 %1231, ptr %7, align 8, !tbaa !5
  store i64 %1228, ptr %8, align 8, !tbaa !5
  %1232 = getelementptr inbounds i8, ptr %4, i64 4
  %1233 = call i32 @slassq_(ptr noundef nonnull %7, ptr noundef nonnull %1232, ptr noundef nonnull %8, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  br label %1366

1234:                                             ; preds = %1089
  br i1 %.not, label %1235, label %1294

1235:                                             ; preds = %1234
  br i1 %.not817.not.not.not.not.not.not.not.not, label %1270, label %1236

1236:                                             ; preds = %1235
  %1237 = add nsw i64 %1092, -2
  store i64 %1237, ptr %7, align 8, !tbaa !5
  store i64 0, ptr %9, align 8, !tbaa !5
  %.not8411100 = icmp slt i64 %1090, 3
  br i1 %.not8411100, label %._crit_edge1104, label %.lr.ph1103

.lr.ph1103:                                       ; preds = %1236, %.lr.ph1103
  %storemerge8401101 = phi i64 [ %1248, %.lr.ph1103 ], [ 0, %1236 ]
  %1238 = load i64, ptr %10, align 8, !tbaa !5
  %1239 = xor i64 %storemerge8401101, -1
  %1240 = add i64 %1238, %1239
  store i64 %1240, ptr %8, align 8, !tbaa !5
  %1241 = mul nsw i64 %storemerge8401101, %.0772
  %1242 = getelementptr float, ptr %4, i64 %1238
  %1243 = getelementptr float, ptr %1242, i64 %storemerge8401101
  %1244 = getelementptr i8, ptr %1243, i64 8
  %1245 = getelementptr float, ptr %1244, i64 %1241
  %1246 = call i32 @slassq_(ptr noundef nonnull %8, ptr noundef %1245, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1247 = load i64, ptr %9, align 8, !tbaa !5
  %1248 = add nsw i64 %1247, 1
  store i64 %1248, ptr %9, align 8, !tbaa !5
  %1249 = load i64, ptr %7, align 8, !tbaa !5
  %.not841.not = icmp slt i64 %1247, %1249
  br i1 %.not841.not, label %.lr.ph1103, label %._crit_edge1104.loopexit, !llvm.loop !69

._crit_edge1104.loopexit:                         ; preds = %.lr.ph1103
  %.pre1727 = load i64, ptr %10, align 8, !tbaa !5
  br label %._crit_edge1104

._crit_edge1104:                                  ; preds = %._crit_edge1104.loopexit, %1236
  %1250 = phi i64 [ %.pre1727, %._crit_edge1104.loopexit ], [ %1092, %1236 ]
  %1251 = add nsw i64 %1250, -1
  store i64 %1251, ptr %7, align 8, !tbaa !5
  store i64 0, ptr %9, align 8, !tbaa !5
  %.not8431105 = icmp slt i64 %1250, 1
  br i1 %.not8431105, label %._crit_edge1109, label %.lr.ph1108

.lr.ph1108:                                       ; preds = %._crit_edge1104, %.lr.ph1108
  %storemerge8421106 = phi i64 [ %1258, %.lr.ph1108 ], [ 0, %._crit_edge1104 ]
  %1252 = load i64, ptr %10, align 8, !tbaa !5
  %1253 = add nsw i64 %1252, %storemerge8421106
  store i64 %1253, ptr %8, align 8, !tbaa !5
  %1254 = mul nsw i64 %storemerge8421106, %.0772
  %1255 = getelementptr inbounds float, ptr %4, i64 %1254
  %1256 = call i32 @slassq_(ptr noundef nonnull %8, ptr noundef %1255, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1257 = load i64, ptr %9, align 8, !tbaa !5
  %1258 = add nsw i64 %1257, 1
  store i64 %1258, ptr %9, align 8, !tbaa !5
  %1259 = load i64, ptr %7, align 8, !tbaa !5
  %.not843.not = icmp slt i64 %1257, %1259
  br i1 %.not843.not, label %.lr.ph1108, label %._crit_edge1109.loopexit, !llvm.loop !70

._crit_edge1109.loopexit:                         ; preds = %.lr.ph1108
  %.pre1728 = load i64, ptr %10, align 8, !tbaa !5
  br label %._crit_edge1109

._crit_edge1109:                                  ; preds = %._crit_edge1109.loopexit, %._crit_edge1104
  %1260 = phi i64 [ %.pre1728, %._crit_edge1109.loopexit ], [ %1250, %._crit_edge1104 ]
  %1261 = load float, ptr %11, align 4, !tbaa !9
  %1262 = fadd float %1261, %1261
  store float %1262, ptr %11, align 4, !tbaa !9
  %1263 = add nsw i64 %.0772, 1
  store i64 %1263, ptr %7, align 8, !tbaa !5
  %1264 = getelementptr float, ptr %4, i64 %1260
  %1265 = getelementptr i8, ptr %1264, i64 4
  %1266 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %1265, ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  store i64 %1263, ptr %7, align 8, !tbaa !5
  %1267 = load i64, ptr %10, align 8, !tbaa !5
  %1268 = getelementptr inbounds float, ptr %4, i64 %1267
  %1269 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %1268, ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  br label %1366

1270:                                             ; preds = %1235
  %1271 = add nsw i64 %1092, -1
  store i64 %1271, ptr %7, align 8, !tbaa !5
  %invariant.gep1110 = getelementptr i8, ptr %4, i64 8
  store i64 0, ptr %9, align 8, !tbaa !5
  %.not8371112 = icmp slt i64 %1090, 1
  br i1 %.not8371112, label %._crit_edge1116, label %.lr.ph1115

.lr.ph1115:                                       ; preds = %1270, %.lr.ph1115
  %storemerge8361113 = phi i64 [ %1279, %.lr.ph1115 ], [ 0, %1270 ]
  %1272 = load i64, ptr %3, align 8, !tbaa !5
  %1273 = xor i64 %storemerge8361113, -1
  %1274 = add i64 %1272, %1273
  store i64 %1274, ptr %8, align 8, !tbaa !5
  %1275 = mul nsw i64 %storemerge8361113, %.0772
  %gep1111 = getelementptr float, ptr %invariant.gep1110, i64 %storemerge8361113
  %1276 = getelementptr float, ptr %gep1111, i64 %1275
  %1277 = call i32 @slassq_(ptr noundef nonnull %8, ptr noundef %1276, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1278 = load i64, ptr %9, align 8, !tbaa !5
  %1279 = add nsw i64 %1278, 1
  store i64 %1279, ptr %9, align 8, !tbaa !5
  %1280 = load i64, ptr %7, align 8, !tbaa !5
  %.not837.not = icmp slt i64 %1278, %1280
  br i1 %.not837.not, label %.lr.ph1115, label %._crit_edge1116.loopexit, !llvm.loop !71

._crit_edge1116.loopexit:                         ; preds = %.lr.ph1115
  %.pre1729 = load i64, ptr %10, align 8, !tbaa !5
  %.pre1734 = add nsw i64 %.pre1729, -1
  br label %._crit_edge1116

._crit_edge1116:                                  ; preds = %._crit_edge1116.loopexit, %1270
  %.pre-phi = phi i64 [ %.pre1734, %._crit_edge1116.loopexit ], [ %1271, %1270 ]
  %1281 = phi i64 [ %.pre1729, %._crit_edge1116.loopexit ], [ %1092, %1270 ]
  store i64 %.pre-phi, ptr %7, align 8, !tbaa !5
  store i64 1, ptr %9, align 8, !tbaa !5
  %.not8391117 = icmp slt i64 %1281, 2
  br i1 %.not8391117, label %._crit_edge1121, label %.lr.ph1120

.lr.ph1120:                                       ; preds = %._crit_edge1116, %.lr.ph1120
  %storemerge8381118 = phi i64 [ %1286, %.lr.ph1120 ], [ 1, %._crit_edge1116 ]
  %1282 = mul nsw i64 %storemerge8381118, %.0772
  %1283 = getelementptr inbounds float, ptr %4, i64 %1282
  %1284 = call i32 @slassq_(ptr noundef nonnull %9, ptr noundef %1283, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1285 = load i64, ptr %9, align 8, !tbaa !5
  %1286 = add nsw i64 %1285, 1
  store i64 %1286, ptr %9, align 8, !tbaa !5
  %1287 = load i64, ptr %7, align 8, !tbaa !5
  %.not839.not = icmp slt i64 %1285, %1287
  br i1 %.not839.not, label %.lr.ph1120, label %._crit_edge1121, !llvm.loop !72

._crit_edge1121:                                  ; preds = %.lr.ph1120, %._crit_edge1116
  %1288 = load float, ptr %11, align 4, !tbaa !9
  %1289 = fadd float %1288, %1288
  store float %1289, ptr %11, align 4, !tbaa !9
  %1290 = add nsw i64 %.0772, 1
  store i64 %1290, ptr %7, align 8, !tbaa !5
  %1291 = getelementptr inbounds i8, ptr %4, i64 4
  %1292 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef nonnull %1291, ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  store i64 %1290, ptr %7, align 8, !tbaa !5
  %1293 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %4, ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  br label %1366

1294:                                             ; preds = %1234
  %1295 = add nsw i64 %1092, -1
  store i64 %1295, ptr %7, align 8, !tbaa !5
  store i64 1, ptr %9, align 8, !tbaa !5
  %.not8251081 = icmp slt i64 %1090, 3
  br i1 %.not817.not.not.not.not.not.not.not.not, label %1336, label %1296

1296:                                             ; preds = %1294
  br i1 %.not8251081, label %._crit_edge1068, label %.lr.ph1067

.lr.ph1067:                                       ; preds = %1296, %.lr.ph1067
  %storemerge8301065 = phi i64 [ %1304, %.lr.ph1067 ], [ 1, %1296 ]
  %1297 = load i64, ptr %10, align 8, !tbaa !5
  %1298 = add i64 %storemerge8301065, 1
  %1299 = add i64 %1298, %1297
  %1300 = mul nsw i64 %1299, %.0772
  %1301 = getelementptr inbounds float, ptr %4, i64 %1300
  %1302 = call i32 @slassq_(ptr noundef nonnull %9, ptr noundef %1301, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1303 = load i64, ptr %9, align 8, !tbaa !5
  %1304 = add nsw i64 %1303, 1
  store i64 %1304, ptr %9, align 8, !tbaa !5
  %1305 = load i64, ptr %7, align 8, !tbaa !5
  %.not831.not = icmp slt i64 %1303, %1305
  br i1 %.not831.not, label %.lr.ph1067, label %._crit_edge1068.loopexit, !llvm.loop !73

._crit_edge1068.loopexit:                         ; preds = %.lr.ph1067
  %.pre1721 = load i64, ptr %10, align 8, !tbaa !5
  %.pre1735 = add nsw i64 %.pre1721, -1
  br label %._crit_edge1068

._crit_edge1068:                                  ; preds = %._crit_edge1068.loopexit, %1296
  %.pre-phi1736 = phi i64 [ %.pre1735, %._crit_edge1068.loopexit ], [ %1295, %1296 ]
  %1306 = phi i64 [ %.pre1721, %._crit_edge1068.loopexit ], [ %1092, %1296 ]
  store i64 %.pre-phi1736, ptr %7, align 8, !tbaa !5
  store i64 0, ptr %9, align 8, !tbaa !5
  %.not8331069 = icmp slt i64 %1306, 1
  br i1 %.not8331069, label %._crit_edge1080, label %.lr.ph1072

.lr.ph1072:                                       ; preds = %._crit_edge1068, %.lr.ph1072
  %storemerge8321070 = phi i64 [ %1311, %.lr.ph1072 ], [ 0, %._crit_edge1068 ]
  %1307 = mul nsw i64 %storemerge8321070, %.0772
  %1308 = getelementptr inbounds float, ptr %4, i64 %1307
  %1309 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %1308, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1310 = load i64, ptr %9, align 8, !tbaa !5
  %1311 = add nsw i64 %1310, 1
  store i64 %1311, ptr %9, align 8, !tbaa !5
  %1312 = load i64, ptr %7, align 8, !tbaa !5
  %.not833.not = icmp slt i64 %1310, %1312
  br i1 %.not833.not, label %.lr.ph1072, label %._crit_edge1073, !llvm.loop !74

._crit_edge1073:                                  ; preds = %.lr.ph1072
  %.pre1722 = load i64, ptr %10, align 8, !tbaa !5
  %1313 = add nsw i64 %.pre1722, -2
  store i64 %1313, ptr %7, align 8, !tbaa !5
  %invariant.gep1074 = getelementptr i8, ptr %4, i64 4
  store i64 0, ptr %9, align 8, !tbaa !5
  %.not8351076 = icmp slt i64 %.pre1722, 2
  br i1 %.not8351076, label %._crit_edge1080, label %.lr.ph1079

.lr.ph1079:                                       ; preds = %._crit_edge1073, %.lr.ph1079
  %storemerge8341077 = phi i64 [ %1322, %.lr.ph1079 ], [ 0, %._crit_edge1073 ]
  %1314 = load i64, ptr %10, align 8, !tbaa !5
  %1315 = xor i64 %storemerge8341077, -1
  %1316 = add i64 %1314, %1315
  store i64 %1316, ptr %8, align 8, !tbaa !5
  %1317 = add nsw i64 %1314, %storemerge8341077
  %1318 = mul nsw i64 %1317, %.0772
  %gep1075 = getelementptr float, ptr %invariant.gep1074, i64 %storemerge8341077
  %1319 = getelementptr float, ptr %gep1075, i64 %1318
  %1320 = call i32 @slassq_(ptr noundef nonnull %8, ptr noundef %1319, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1321 = load i64, ptr %9, align 8, !tbaa !5
  %1322 = add nsw i64 %1321, 1
  store i64 %1322, ptr %9, align 8, !tbaa !5
  %1323 = load i64, ptr %7, align 8, !tbaa !5
  %.not835.not = icmp slt i64 %1321, %1323
  br i1 %.not835.not, label %.lr.ph1079, label %._crit_edge1080.loopexit, !llvm.loop !75

._crit_edge1080.loopexit:                         ; preds = %.lr.ph1079
  %.pre1723 = load i64, ptr %10, align 8, !tbaa !5
  br label %._crit_edge1080

._crit_edge1080:                                  ; preds = %._crit_edge1068, %._crit_edge1080.loopexit, %._crit_edge1073
  %1324 = phi i64 [ %.pre1723, %._crit_edge1080.loopexit ], [ %.pre1722, %._crit_edge1073 ], [ %1306, %._crit_edge1068 ]
  %1325 = load float, ptr %11, align 4, !tbaa !9
  %1326 = fadd float %1325, %1325
  store float %1326, ptr %11, align 4, !tbaa !9
  %1327 = add nsw i64 %.0772, 1
  store i64 %1327, ptr %7, align 8, !tbaa !5
  %1328 = add nsw i64 %1324, 1
  %1329 = mul nsw i64 %1328, %.0772
  %1330 = getelementptr inbounds float, ptr %4, i64 %1329
  %1331 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %1330, ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  store i64 %1327, ptr %7, align 8, !tbaa !5
  %1332 = load i64, ptr %10, align 8, !tbaa !5
  %1333 = mul nsw i64 %1332, %.0772
  %1334 = getelementptr inbounds float, ptr %4, i64 %1333
  %1335 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %1334, ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  br label %1366

1336:                                             ; preds = %1294
  br i1 %.not8251081, label %._crit_edge1085, label %.lr.ph1084

.lr.ph1084:                                       ; preds = %1336, %.lr.ph1084
  %storemerge1082 = phi i64 [ %1342, %.lr.ph1084 ], [ 1, %1336 ]
  %1337 = add nsw i64 %storemerge1082, 1
  %1338 = mul nsw i64 %1337, %.0772
  %1339 = getelementptr inbounds float, ptr %4, i64 %1338
  %1340 = call i32 @slassq_(ptr noundef nonnull %9, ptr noundef %1339, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1341 = load i64, ptr %9, align 8, !tbaa !5
  %1342 = add nsw i64 %1341, 1
  store i64 %1342, ptr %9, align 8, !tbaa !5
  %1343 = load i64, ptr %7, align 8, !tbaa !5
  %.not825.not = icmp slt i64 %1341, %1343
  br i1 %.not825.not, label %.lr.ph1084, label %._crit_edge1085.loopexit, !llvm.loop !76

._crit_edge1085.loopexit:                         ; preds = %.lr.ph1084
  %.pre1724 = load i64, ptr %3, align 8, !tbaa !5
  %storemerge826.in1086.pre = load i64, ptr %10, align 8, !tbaa !5
  br label %._crit_edge1085

._crit_edge1085:                                  ; preds = %._crit_edge1085.loopexit, %1336
  %storemerge826.in1086 = phi i64 [ %storemerge826.in1086.pre, %._crit_edge1085.loopexit ], [ %1092, %1336 ]
  %1344 = phi i64 [ %.pre1724, %._crit_edge1085.loopexit ], [ %1090, %1336 ]
  store i64 %1344, ptr %7, align 8, !tbaa !5
  %storemerge8261087 = add nsw i64 %storemerge826.in1086, 1
  store i64 %storemerge8261087, ptr %9, align 8, !tbaa !5
  %.not827.not1088 = icmp slt i64 %storemerge826.in1086, %1344
  br i1 %.not827.not1088, label %.lr.ph1091, label %._crit_edge1092

.lr.ph1091:                                       ; preds = %._crit_edge1085, %.lr.ph1091
  %storemerge8261089 = phi i64 [ %storemerge826, %.lr.ph1091 ], [ %storemerge8261087, %._crit_edge1085 ]
  %1345 = mul nsw i64 %storemerge8261089, %.0772
  %1346 = getelementptr inbounds float, ptr %4, i64 %1345
  %1347 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %1346, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %storemerge826.in = load i64, ptr %9, align 8, !tbaa !5
  %storemerge826 = add nsw i64 %storemerge826.in, 1
  store i64 %storemerge826, ptr %9, align 8, !tbaa !5
  %1348 = load i64, ptr %7, align 8, !tbaa !5
  %.not827.not = icmp slt i64 %storemerge826.in, %1348
  br i1 %.not827.not, label %.lr.ph1091, label %._crit_edge1092.loopexit, !llvm.loop !77

._crit_edge1092.loopexit:                         ; preds = %.lr.ph1091
  %.pre1726 = load i64, ptr %10, align 8, !tbaa !5
  br label %._crit_edge1092

._crit_edge1092:                                  ; preds = %._crit_edge1092.loopexit, %._crit_edge1085
  %1349 = phi i64 [ %.pre1726, %._crit_edge1092.loopexit ], [ %storemerge826.in1086, %._crit_edge1085 ]
  %1350 = add nsw i64 %1349, -2
  store i64 %1350, ptr %7, align 8, !tbaa !5
  %invariant.gep1093 = getelementptr i8, ptr %4, i64 4
  store i64 0, ptr %9, align 8, !tbaa !5
  %.not8291095 = icmp slt i64 %1349, 2
  br i1 %.not8291095, label %._crit_edge1099, label %.lr.ph1098

.lr.ph1098:                                       ; preds = %._crit_edge1092, %.lr.ph1098
  %storemerge8281096 = phi i64 [ %1358, %.lr.ph1098 ], [ 0, %._crit_edge1092 ]
  %1351 = load i64, ptr %10, align 8, !tbaa !5
  %1352 = xor i64 %storemerge8281096, -1
  %1353 = add i64 %1351, %1352
  store i64 %1353, ptr %8, align 8, !tbaa !5
  %1354 = mul nsw i64 %storemerge8281096, %.0772
  %gep1094 = getelementptr float, ptr %invariant.gep1093, i64 %storemerge8281096
  %1355 = getelementptr float, ptr %gep1094, i64 %1354
  %1356 = call i32 @slassq_(ptr noundef nonnull %8, ptr noundef %1355, ptr noundef nonnull @c__1, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  %1357 = load i64, ptr %9, align 8, !tbaa !5
  %1358 = add nsw i64 %1357, 1
  store i64 %1358, ptr %9, align 8, !tbaa !5
  %1359 = load i64, ptr %7, align 8, !tbaa !5
  %.not829.not = icmp slt i64 %1357, %1359
  br i1 %.not829.not, label %.lr.ph1098, label %._crit_edge1099, !llvm.loop !78

._crit_edge1099:                                  ; preds = %.lr.ph1098, %._crit_edge1092
  %1360 = load float, ptr %11, align 4, !tbaa !9
  %1361 = fadd float %1360, %1360
  store float %1361, ptr %11, align 4, !tbaa !9
  %1362 = add nsw i64 %.0772, 1
  store i64 %1362, ptr %7, align 8, !tbaa !5
  %1363 = getelementptr inbounds float, ptr %4, i64 %.0772
  %1364 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %1363, ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  store i64 %1362, ptr %7, align 8, !tbaa !5
  %1365 = call i32 @slassq_(ptr noundef nonnull %10, ptr noundef %4, ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef nonnull %11) #6
  br label %1366

1366:                                             ; preds = %._crit_edge1121, %._crit_edge1109, %._crit_edge1099, %._crit_edge1080, %._crit_edge1063, %._crit_edge1051, %._crit_edge1041, %._crit_edge1024
  %1367 = load float, ptr %12, align 4, !tbaa !9
  %1368 = fpext float %1367 to double
  %1369 = load float, ptr %11, align 4, !tbaa !9
  %1370 = fpext float %1369 to double
  %1371 = call double @sqrt(double noundef %1370) #6
  %1372 = fmul double %1371, %1368
  %1373 = fptrunc double %1372 to float
  br label %.loopexit

.loopexit:                                        ; preds = %._crit_edge, %._crit_edge956, %._crit_edge975, %._crit_edge994, %56, %32, %106, %81, %._crit_edge1260, %._crit_edge1191, %._crit_edge1432, %._crit_edge1744, %._crit_edge1512, %._crit_edge1469, %.preheader.thread, %._crit_edge1519, %1366, %1087
  %.8 = phi float [ %216, %._crit_edge1469 ], [ %290, %._crit_edge1512 ], [ %361, %._crit_edge1519 ], [ %431, %.preheader.thread ], [ %572, %._crit_edge1191 ], [ %719, %._crit_edge1260 ], [ %903, %._crit_edge1744 ], [ %1084, %._crit_edge1432 ], [ %1373, %1366 ], [ undef, %1087 ], [ 0.000000e+00, %81 ], [ 0.000000e+00, %106 ], [ 0.000000e+00, %32 ], [ 0.000000e+00, %56 ], [ %.lcssa1903, %._crit_edge994 ], [ %.7.lcssa, %._crit_edge975 ], [ %.lcssa1907, %._crit_edge956 ], [ %.lcssa1909, %._crit_edge ]
  %1374 = fpext float %.8 to double
  br label %1375

1375:                                             ; preds = %6, %.loopexit
  %.0773 = phi double [ %1374, %.loopexit ], [ 0.000000e+00, %6 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  ret double %.0773
}

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !12}
!16 = distinct !{!16, !12}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = distinct !{!19, !12}
!20 = !{!7, !7, i64 0}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12}
!31 = distinct !{!31, !12}
!32 = distinct !{!32, !12}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = distinct !{!35, !12}
!36 = distinct !{!36, !12}
!37 = distinct !{!37, !12}
!38 = distinct !{!38, !12}
!39 = distinct !{!39, !12}
!40 = distinct !{!40, !12}
!41 = distinct !{!41, !12}
!42 = distinct !{!42, !12}
!43 = distinct !{!43, !12}
!44 = distinct !{!44, !12}
!45 = distinct !{!45, !12}
!46 = distinct !{!46, !12}
!47 = distinct !{!47, !12}
!48 = distinct !{!48, !12}
!49 = distinct !{!49, !12}
!50 = distinct !{!50, !12}
!51 = distinct !{!51, !12}
!52 = distinct !{!52, !12}
!53 = distinct !{!53, !12}
!54 = distinct !{!54, !12}
!55 = distinct !{!55, !12}
!56 = distinct !{!56, !12}
!57 = distinct !{!57, !12}
!58 = distinct !{!58, !12}
!59 = distinct !{!59, !12}
!60 = distinct !{!60, !12}
!61 = distinct !{!61, !12}
!62 = distinct !{!62, !12}
!63 = distinct !{!63, !12}
!64 = distinct !{!64, !12}
!65 = distinct !{!65, !12}
!66 = distinct !{!66, !12}
!67 = distinct !{!67, !12}
!68 = distinct !{!68, !12}
!69 = distinct !{!69, !12}
!70 = distinct !{!70, !12}
!71 = distinct !{!71, !12}
!72 = distinct !{!72, !12}
!73 = distinct !{!73, !12}
!74 = distinct !{!74, !12}
!75 = distinct !{!75, !12}
!76 = distinct !{!76, !12}
!77 = distinct !{!77, !12}
!78 = distinct !{!78, !12}


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass