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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @slatps_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9) #0 {
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %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 float, align 4
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca float, align 4
  %37 = alloca i64, align 8
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca float, align 4
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca float, align 4
  %48 = alloca i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca float, align 4
  %51 = alloca i64, align 8
  %52 = alloca i32, align 4
  store ptr %0, ptr %12, align 8, !tbaa !5
  store ptr %1, ptr %13, align 8, !tbaa !5
  store ptr %2, ptr %14, align 8, !tbaa !5
  store ptr %3, ptr %15, align 8, !tbaa !5
  store ptr %4, ptr %16, align 8, !tbaa !5
  store ptr %5, ptr %17, align 8, !tbaa !5
  store ptr %6, ptr %18, align 8, !tbaa !5
  store ptr %7, ptr %19, align 8, !tbaa !5
  store ptr %8, ptr %20, align 8, !tbaa !5
  store ptr %9, ptr %21, align 8, !tbaa !5
  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 8, ptr %24) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #4
  call void @llvm.lifetime.start.p0(i64 4, 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
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #4
  %53 = load ptr, ptr %20, align 8, !tbaa !5
  %54 = getelementptr inbounds float, ptr %53, i32 -1
  store ptr %54, ptr %20, align 8, !tbaa !5
  %55 = load ptr, ptr %18, align 8, !tbaa !5
  %56 = getelementptr inbounds float, ptr %55, i32 -1
  store ptr %56, ptr %18, align 8, !tbaa !5
  %57 = load ptr, ptr %17, align 8, !tbaa !5
  %58 = getelementptr inbounds float, ptr %57, i32 -1
  store ptr %58, ptr %17, align 8, !tbaa !5
  %59 = load ptr, ptr %21, align 8, !tbaa !5
  store i64 0, ptr %59, align 8, !tbaa !9
  %60 = load ptr, ptr %12, align 8, !tbaa !5
  %61 = call i64 @lsame_(ptr noundef %60, ptr noundef @.str)
  store i64 %61, ptr %46, align 8, !tbaa !9
  %62 = load ptr, ptr %13, align 8, !tbaa !5
  %63 = call i64 @lsame_(ptr noundef %62, ptr noundef @.str.1)
  store i64 %63, ptr %48, align 8, !tbaa !9
  %64 = load ptr, ptr %14, align 8, !tbaa !5
  %65 = call i64 @lsame_(ptr noundef %64, ptr noundef @.str.1)
  store i64 %65, ptr %51, align 8, !tbaa !9
  %66 = load i64, ptr %46, align 8, !tbaa !9
  %67 = icmp ne i64 %66, 0
  br i1 %67, label %74, label %68

68:                                               ; preds = %10
  %69 = load ptr, ptr %12, align 8, !tbaa !5
  %70 = call i64 @lsame_(ptr noundef %69, ptr noundef @.str.2)
  %71 = icmp ne i64 %70, 0
  br i1 %71, label %74, label %72

72:                                               ; preds = %68
  %73 = load ptr, ptr %21, align 8, !tbaa !5
  store i64 -1, ptr %73, align 8, !tbaa !9
  br label %116

74:                                               ; preds = %68, %10
  %75 = load i64, ptr %48, align 8, !tbaa !9
  %76 = icmp ne i64 %75, 0
  br i1 %76, label %87, label %77

77:                                               ; preds = %74
  %78 = load ptr, ptr %13, align 8, !tbaa !5
  %79 = call i64 @lsame_(ptr noundef %78, ptr noundef @.str.3)
  %80 = icmp ne i64 %79, 0
  br i1 %80, label %87, label %81

81:                                               ; preds = %77
  %82 = load ptr, ptr %13, align 8, !tbaa !5
  %83 = call i64 @lsame_(ptr noundef %82, ptr noundef @.str.4)
  %84 = icmp ne i64 %83, 0
  br i1 %84, label %87, label %85

85:                                               ; preds = %81
  %86 = load ptr, ptr %21, align 8, !tbaa !5
  store i64 -2, ptr %86, align 8, !tbaa !9
  br label %115

87:                                               ; preds = %81, %77, %74
  %88 = load i64, ptr %51, align 8, !tbaa !9
  %89 = icmp ne i64 %88, 0
  br i1 %89, label %96, label %90

90:                                               ; preds = %87
  %91 = load ptr, ptr %14, align 8, !tbaa !5
  %92 = call i64 @lsame_(ptr noundef %91, ptr noundef @.str)
  %93 = icmp ne i64 %92, 0
  br i1 %93, label %96, label %94

94:                                               ; preds = %90
  %95 = load ptr, ptr %21, align 8, !tbaa !5
  store i64 -3, ptr %95, align 8, !tbaa !9
  br label %114

96:                                               ; preds = %90, %87
  %97 = load ptr, ptr %15, align 8, !tbaa !5
  %98 = call i64 @lsame_(ptr noundef %97, ptr noundef @.str.5)
  %99 = icmp ne i64 %98, 0
  br i1 %99, label %106, label %100

100:                                              ; preds = %96
  %101 = load ptr, ptr %15, align 8, !tbaa !5
  %102 = call i64 @lsame_(ptr noundef %101, ptr noundef @.str.1)
  %103 = icmp ne i64 %102, 0
  br i1 %103, label %106, label %104

104:                                              ; preds = %100
  %105 = load ptr, ptr %21, align 8, !tbaa !5
  store i64 -4, ptr %105, align 8, !tbaa !9
  br label %113

106:                                              ; preds = %100, %96
  %107 = load ptr, ptr %16, align 8, !tbaa !5
  %108 = load i64, ptr %107, align 8, !tbaa !9
  %109 = icmp slt i64 %108, 0
  br i1 %109, label %110, label %112

110:                                              ; preds = %106
  %111 = load ptr, ptr %21, align 8, !tbaa !5
  store i64 -5, ptr %111, align 8, !tbaa !9
  br label %112

112:                                              ; preds = %110, %106
  br label %113

113:                                              ; preds = %112, %104
  br label %114

114:                                              ; preds = %113, %94
  br label %115

115:                                              ; preds = %114, %85
  br label %116

116:                                              ; preds = %115, %72
  %117 = load ptr, ptr %21, align 8, !tbaa !5
  %118 = load i64, ptr %117, align 8, !tbaa !9
  %119 = icmp ne i64 %118, 0
  br i1 %119, label %120, label %125

120:                                              ; preds = %116
  %121 = load ptr, ptr %21, align 8, !tbaa !5
  %122 = load i64, ptr %121, align 8, !tbaa !9
  %123 = sub nsw i64 0, %122
  store i64 %123, ptr %22, align 8, !tbaa !9
  %124 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %22)
  store i32 0, ptr %11, align 4
  store i32 1, ptr %52, align 4
  br label %1482

125:                                              ; preds = %116
  %126 = load ptr, ptr %16, align 8, !tbaa !5
  %127 = load i64, ptr %126, align 8, !tbaa !9
  %128 = icmp eq i64 %127, 0
  br i1 %128, label %129, label %130

129:                                              ; preds = %125
  store i32 0, ptr %11, align 4
  store i32 1, ptr %52, align 4
  br label %1482

130:                                              ; preds = %125
  %131 = call double @slamch_(ptr noundef @.str.7)
  %132 = call double @slamch_(ptr noundef @.str.8)
  %133 = fdiv double %131, %132
  %134 = fptrunc double %133 to float
  store float %134, ptr %50, align 4, !tbaa !11
  %135 = load float, ptr %50, align 4, !tbaa !11
  %136 = fdiv float 1.000000e+00, %135
  store float %136, ptr %47, align 4, !tbaa !11
  %137 = load ptr, ptr %19, align 8, !tbaa !5
  store float 1.000000e+00, ptr %137, align 4, !tbaa !11
  %138 = load ptr, ptr %15, align 8, !tbaa !5
  %139 = call i64 @lsame_(ptr noundef %138, ptr noundef @.str.1)
  %140 = icmp ne i64 %139, 0
  br i1 %140, label %141, label %207

141:                                              ; preds = %130
  %142 = load i64, ptr %46, align 8, !tbaa !9
  %143 = icmp ne i64 %142, 0
  br i1 %143, label %144, label %169

144:                                              ; preds = %141
  store i64 1, ptr %30, align 8, !tbaa !9
  %145 = load ptr, ptr %16, align 8, !tbaa !5
  %146 = load i64, ptr %145, align 8, !tbaa !9
  store i64 %146, ptr %22, align 8, !tbaa !9
  store i64 1, ptr %29, align 8, !tbaa !9
  br label %147

147:                                              ; preds = %165, %144
  %148 = load i64, ptr %29, align 8, !tbaa !9
  %149 = load i64, ptr %22, align 8, !tbaa !9
  %150 = icmp sle i64 %148, %149
  br i1 %150, label %151, label %168

151:                                              ; preds = %147
  %152 = load i64, ptr %29, align 8, !tbaa !9
  %153 = sub nsw i64 %152, 1
  store i64 %153, ptr %23, align 8, !tbaa !9
  %154 = load ptr, ptr %17, align 8, !tbaa !5
  %155 = load i64, ptr %30, align 8, !tbaa !9
  %156 = getelementptr inbounds float, ptr %154, i64 %155
  %157 = call double @f2c_sasum(ptr noundef %23, ptr noundef %156, ptr noundef @c__1)
  %158 = fptrunc double %157 to float
  %159 = load ptr, ptr %20, align 8, !tbaa !5
  %160 = load i64, ptr %29, align 8, !tbaa !9
  %161 = getelementptr inbounds float, ptr %159, i64 %160
  store float %158, ptr %161, align 4, !tbaa !11
  %162 = load i64, ptr %29, align 8, !tbaa !9
  %163 = load i64, ptr %30, align 8, !tbaa !9
  %164 = add nsw i64 %163, %162
  store i64 %164, ptr %30, align 8, !tbaa !9
  br label %165

165:                                              ; preds = %151
  %166 = load i64, ptr %29, align 8, !tbaa !9
  %167 = add nsw i64 %166, 1
  store i64 %167, ptr %29, align 8, !tbaa !9
  br label %147, !llvm.loop !13

168:                                              ; preds = %147
  br label %206

169:                                              ; preds = %141
  store i64 1, ptr %30, align 8, !tbaa !9
  %170 = load ptr, ptr %16, align 8, !tbaa !5
  %171 = load i64, ptr %170, align 8, !tbaa !9
  %172 = sub nsw i64 %171, 1
  store i64 %172, ptr %22, align 8, !tbaa !9
  store i64 1, ptr %29, align 8, !tbaa !9
  br label %173

173:                                              ; preds = %198, %169
  %174 = load i64, ptr %29, align 8, !tbaa !9
  %175 = load i64, ptr %22, align 8, !tbaa !9
  %176 = icmp sle i64 %174, %175
  br i1 %176, label %177, label %201

177:                                              ; preds = %173
  %178 = load ptr, ptr %16, align 8, !tbaa !5
  %179 = load i64, ptr %178, align 8, !tbaa !9
  %180 = load i64, ptr %29, align 8, !tbaa !9
  %181 = sub nsw i64 %179, %180
  store i64 %181, ptr %23, align 8, !tbaa !9
  %182 = load ptr, ptr %17, align 8, !tbaa !5
  %183 = load i64, ptr %30, align 8, !tbaa !9
  %184 = add nsw i64 %183, 1
  %185 = getelementptr inbounds float, ptr %182, i64 %184
  %186 = call double @f2c_sasum(ptr noundef %23, ptr noundef %185, ptr noundef @c__1)
  %187 = fptrunc double %186 to float
  %188 = load ptr, ptr %20, align 8, !tbaa !5
  %189 = load i64, ptr %29, align 8, !tbaa !9
  %190 = getelementptr inbounds float, ptr %188, i64 %189
  store float %187, ptr %190, align 4, !tbaa !11
  %191 = load i64, ptr %30, align 8, !tbaa !9
  %192 = load ptr, ptr %16, align 8, !tbaa !5
  %193 = load i64, ptr %192, align 8, !tbaa !9
  %194 = add nsw i64 %191, %193
  %195 = load i64, ptr %29, align 8, !tbaa !9
  %196 = sub nsw i64 %194, %195
  %197 = add nsw i64 %196, 1
  store i64 %197, ptr %30, align 8, !tbaa !9
  br label %198

198:                                              ; preds = %177
  %199 = load i64, ptr %29, align 8, !tbaa !9
  %200 = add nsw i64 %199, 1
  store i64 %200, ptr %29, align 8, !tbaa !9
  br label %173, !llvm.loop !15

201:                                              ; preds = %173
  %202 = load ptr, ptr %20, align 8, !tbaa !5
  %203 = load ptr, ptr %16, align 8, !tbaa !5
  %204 = load i64, ptr %203, align 8, !tbaa !9
  %205 = getelementptr inbounds float, ptr %202, i64 %204
  store float 0.000000e+00, ptr %205, align 4, !tbaa !11
  br label %206

206:                                              ; preds = %201, %168
  br label %207

207:                                              ; preds = %206, %130
  %208 = load ptr, ptr %16, align 8, !tbaa !5
  %209 = load ptr, ptr %20, align 8, !tbaa !5
  %210 = getelementptr inbounds float, ptr %209, i64 1
  %211 = call i64 @f2c_isamax(ptr noundef %208, ptr noundef %210, ptr noundef @c__1)
  store i64 %211, ptr %37, align 8, !tbaa !9
  %212 = load ptr, ptr %20, align 8, !tbaa !5
  %213 = load i64, ptr %37, align 8, !tbaa !9
  %214 = getelementptr inbounds float, ptr %212, i64 %213
  %215 = load float, ptr %214, align 4, !tbaa !11
  store float %215, ptr %38, align 4, !tbaa !11
  %216 = load float, ptr %38, align 4, !tbaa !11
  %217 = load float, ptr %47, align 4, !tbaa !11
  %218 = fcmp ole float %216, %217
  br i1 %218, label %219, label %220

219:                                              ; preds = %207
  store float 1.000000e+00, ptr %43, align 4, !tbaa !11
  br label %229

220:                                              ; preds = %207
  %221 = load float, ptr %50, align 4, !tbaa !11
  %222 = load float, ptr %38, align 4, !tbaa !11
  %223 = fmul float %221, %222
  %224 = fdiv float 1.000000e+00, %223
  store float %224, ptr %43, align 4, !tbaa !11
  %225 = load ptr, ptr %16, align 8, !tbaa !5
  %226 = load ptr, ptr %20, align 8, !tbaa !5
  %227 = getelementptr inbounds float, ptr %226, i64 1
  %228 = call i32 @f2c_sscal(ptr noundef %225, ptr noundef %43, ptr noundef %227, ptr noundef @c__1)
  br label %229

229:                                              ; preds = %220, %219
  %230 = load ptr, ptr %16, align 8, !tbaa !5
  %231 = load ptr, ptr %18, align 8, !tbaa !5
  %232 = getelementptr inbounds float, ptr %231, i64 1
  %233 = call i64 @f2c_isamax(ptr noundef %230, ptr noundef %232, ptr noundef @c__1)
  store i64 %233, ptr %29, align 8, !tbaa !9
  %234 = load ptr, ptr %18, align 8, !tbaa !5
  %235 = load i64, ptr %29, align 8, !tbaa !9
  %236 = getelementptr inbounds float, ptr %234, i64 %235
  %237 = load float, ptr %236, align 4, !tbaa !11
  store float %237, ptr %25, align 4, !tbaa !11
  %238 = load float, ptr %25, align 4, !tbaa !11
  %239 = fcmp oge float %238, 0.000000e+00
  br i1 %239, label %240, label %242

240:                                              ; preds = %229
  %241 = load float, ptr %25, align 4, !tbaa !11
  br label %245

242:                                              ; preds = %229
  %243 = load float, ptr %25, align 4, !tbaa !11
  %244 = fneg float %243
  br label %245

245:                                              ; preds = %242, %240
  %246 = phi float [ %241, %240 ], [ %244, %242 ]
  %247 = fpext float %246 to double
  %248 = fptrunc double %247 to float
  store float %248, ptr %40, align 4, !tbaa !11
  %249 = load float, ptr %40, align 4, !tbaa !11
  store float %249, ptr %36, align 4, !tbaa !11
  %250 = load i64, ptr %48, align 8, !tbaa !9
  %251 = icmp ne i64 %250, 0
  br i1 %251, label %252, label %451

252:                                              ; preds = %245
  %253 = load i64, ptr %46, align 8, !tbaa !9
  %254 = icmp ne i64 %253, 0
  br i1 %254, label %255, label %258

255:                                              ; preds = %252
  %256 = load ptr, ptr %16, align 8, !tbaa !5
  %257 = load i64, ptr %256, align 8, !tbaa !9
  store i64 %257, ptr %49, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  store i64 -1, ptr %34, align 8, !tbaa !9
  br label %261

258:                                              ; preds = %252
  store i64 1, ptr %49, align 8, !tbaa !9
  %259 = load ptr, ptr %16, align 8, !tbaa !5
  %260 = load i64, ptr %259, align 8, !tbaa !9
  store i64 %260, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %34, align 8, !tbaa !9
  br label %261

261:                                              ; preds = %258, %255
  %262 = load float, ptr %43, align 4, !tbaa !11
  %263 = fcmp une float %262, 1.000000e+00
  br i1 %263, label %264, label %265

264:                                              ; preds = %261
  store float 0.000000e+00, ptr %41, align 4, !tbaa !11
  br label %450

265:                                              ; preds = %261
  %266 = load i64, ptr %51, align 8, !tbaa !9
  %267 = icmp ne i64 %266, 0
  br i1 %267, label %268, label %387

268:                                              ; preds = %265
  %269 = load float, ptr %36, align 4, !tbaa !11
  %270 = load float, ptr %50, align 4, !tbaa !11
  %271 = fcmp oge float %269, %270
  br i1 %271, label %272, label %274

272:                                              ; preds = %268
  %273 = load float, ptr %36, align 4, !tbaa !11
  br label %276

274:                                              ; preds = %268
  %275 = load float, ptr %50, align 4, !tbaa !11
  br label %276

276:                                              ; preds = %274, %272
  %277 = phi float [ %273, %272 ], [ %275, %274 ]
  %278 = fpext float %277 to double
  %279 = fdiv double 1.000000e+00, %278
  %280 = fptrunc double %279 to float
  store float %280, ptr %41, align 4, !tbaa !11
  %281 = load float, ptr %41, align 4, !tbaa !11
  store float %281, ptr %36, align 4, !tbaa !11
  %282 = load i64, ptr %49, align 8, !tbaa !9
  %283 = load i64, ptr %49, align 8, !tbaa !9
  %284 = add nsw i64 %283, 1
  %285 = mul nsw i64 %282, %284
  %286 = sdiv i64 %285, 2
  store i64 %286, ptr %30, align 8, !tbaa !9
  %287 = load ptr, ptr %16, align 8, !tbaa !5
  %288 = load i64, ptr %287, align 8, !tbaa !9
  store i64 %288, ptr %35, align 8, !tbaa !9
  %289 = load i64, ptr %45, align 8, !tbaa !9
  store i64 %289, ptr %22, align 8, !tbaa !9
  %290 = load i64, ptr %34, align 8, !tbaa !9
  store i64 %290, ptr %23, align 8, !tbaa !9
  %291 = load i64, ptr %49, align 8, !tbaa !9
  store i64 %291, ptr %29, align 8, !tbaa !9
  br label %292

292:                                              ; preds = %381, %276
  %293 = load i64, ptr %23, align 8, !tbaa !9
  %294 = icmp slt i64 %293, 0
  br i1 %294, label %295, label %300

295:                                              ; preds = %292
  %296 = load i64, ptr %29, align 8, !tbaa !9
  %297 = load i64, ptr %22, align 8, !tbaa !9
  %298 = icmp sge i64 %296, %297
  %299 = zext i1 %298 to i32
  br label %305

300:                                              ; preds = %292
  %301 = load i64, ptr %29, align 8, !tbaa !9
  %302 = load i64, ptr %22, align 8, !tbaa !9
  %303 = icmp sle i64 %301, %302
  %304 = zext i1 %303 to i32
  br label %305

305:                                              ; preds = %300, %295
  %306 = phi i32 [ %299, %295 ], [ %304, %300 ]
  %307 = icmp ne i32 %306, 0
  br i1 %307, label %308, label %385

308:                                              ; preds = %305
  %309 = load float, ptr %41, align 4, !tbaa !11
  %310 = load float, ptr %50, align 4, !tbaa !11
  %311 = fcmp ole float %309, %310
  br i1 %311, label %312, label %313

312:                                              ; preds = %308
  br label %450

313:                                              ; preds = %308
  %314 = load ptr, ptr %17, align 8, !tbaa !5
  %315 = load i64, ptr %30, align 8, !tbaa !9
  %316 = getelementptr inbounds float, ptr %314, i64 %315
  %317 = load float, ptr %316, align 4, !tbaa !11
  store float %317, ptr %25, align 4, !tbaa !11
  %318 = load float, ptr %25, align 4, !tbaa !11
  %319 = fcmp oge float %318, 0.000000e+00
  br i1 %319, label %320, label %322

320:                                              ; preds = %313
  %321 = load float, ptr %25, align 4, !tbaa !11
  br label %325

322:                                              ; preds = %313
  %323 = load float, ptr %25, align 4, !tbaa !11
  %324 = fneg float %323
  br label %325

325:                                              ; preds = %322, %320
  %326 = phi float [ %321, %320 ], [ %324, %322 ]
  %327 = fpext float %326 to double
  %328 = fptrunc double %327 to float
  store float %328, ptr %33, align 4, !tbaa !11
  %329 = load float, ptr %36, align 4, !tbaa !11
  store float %329, ptr %25, align 4, !tbaa !11
  %330 = load float, ptr %33, align 4, !tbaa !11
  %331 = fcmp ole float 1.000000e+00, %330
  br i1 %331, label %332, label %333

332:                                              ; preds = %325
  br label %335

333:                                              ; preds = %325
  %334 = load float, ptr %33, align 4, !tbaa !11
  br label %335

335:                                              ; preds = %333, %332
  %336 = phi float [ 1.000000e+00, %332 ], [ %334, %333 ]
  %337 = fpext float %336 to double
  %338 = load float, ptr %41, align 4, !tbaa !11
  %339 = fpext float %338 to double
  %340 = fmul double %337, %339
  %341 = fptrunc double %340 to float
  store float %341, ptr %26, align 4, !tbaa !11
  %342 = load float, ptr %25, align 4, !tbaa !11
  %343 = load float, ptr %26, align 4, !tbaa !11
  %344 = fcmp ole float %342, %343
  br i1 %344, label %345, label %347

345:                                              ; preds = %335
  %346 = load float, ptr %25, align 4, !tbaa !11
  br label %349

347:                                              ; preds = %335
  %348 = load float, ptr %26, align 4, !tbaa !11
  br label %349

349:                                              ; preds = %347, %345
  %350 = phi float [ %346, %345 ], [ %348, %347 ]
  %351 = fpext float %350 to double
  %352 = fptrunc double %351 to float
  store float %352, ptr %36, align 4, !tbaa !11
  %353 = load float, ptr %33, align 4, !tbaa !11
  %354 = load ptr, ptr %20, align 8, !tbaa !5
  %355 = load i64, ptr %29, align 8, !tbaa !9
  %356 = getelementptr inbounds float, ptr %354, i64 %355
  %357 = load float, ptr %356, align 4, !tbaa !11
  %358 = fadd float %353, %357
  %359 = load float, ptr %50, align 4, !tbaa !11
  %360 = fcmp oge float %358, %359
  br i1 %360, label %361, label %372

361:                                              ; preds = %349
  %362 = load float, ptr %33, align 4, !tbaa !11
  %363 = load float, ptr %33, align 4, !tbaa !11
  %364 = load ptr, ptr %20, align 8, !tbaa !5
  %365 = load i64, ptr %29, align 8, !tbaa !9
  %366 = getelementptr inbounds float, ptr %364, i64 %365
  %367 = load float, ptr %366, align 4, !tbaa !11
  %368 = fadd float %363, %367
  %369 = fdiv float %362, %368
  %370 = load float, ptr %41, align 4, !tbaa !11
  %371 = fmul float %370, %369
  store float %371, ptr %41, align 4, !tbaa !11
  br label %373

372:                                              ; preds = %349
  store float 0.000000e+00, ptr %41, align 4, !tbaa !11
  br label %373

373:                                              ; preds = %372, %361
  %374 = load i64, ptr %34, align 8, !tbaa !9
  %375 = load i64, ptr %35, align 8, !tbaa !9
  %376 = mul nsw i64 %374, %375
  %377 = load i64, ptr %30, align 8, !tbaa !9
  %378 = add nsw i64 %377, %376
  store i64 %378, ptr %30, align 8, !tbaa !9
  %379 = load i64, ptr %35, align 8, !tbaa !9
  %380 = add nsw i64 %379, -1
  store i64 %380, ptr %35, align 8, !tbaa !9
  br label %381

381:                                              ; preds = %373
  %382 = load i64, ptr %23, align 8, !tbaa !9
  %383 = load i64, ptr %29, align 8, !tbaa !9
  %384 = add nsw i64 %383, %382
  store i64 %384, ptr %29, align 8, !tbaa !9
  br label %292, !llvm.loop !16

385:                                              ; preds = %305
  %386 = load float, ptr %36, align 4, !tbaa !11
  store float %386, ptr %41, align 4, !tbaa !11
  br label %449

387:                                              ; preds = %265
  store float 1.000000e+00, ptr %25, align 4, !tbaa !11
  %388 = load float, ptr %36, align 4, !tbaa !11
  %389 = load float, ptr %50, align 4, !tbaa !11
  %390 = fcmp oge float %388, %389
  br i1 %390, label %391, label %393

391:                                              ; preds = %387
  %392 = load float, ptr %36, align 4, !tbaa !11
  br label %395

393:                                              ; preds = %387
  %394 = load float, ptr %50, align 4, !tbaa !11
  br label %395

395:                                              ; preds = %393, %391
  %396 = phi float [ %392, %391 ], [ %394, %393 ]
  %397 = fpext float %396 to double
  %398 = fdiv double 1.000000e+00, %397
  %399 = fptrunc double %398 to float
  store float %399, ptr %26, align 4, !tbaa !11
  %400 = load float, ptr %25, align 4, !tbaa !11
  %401 = load float, ptr %26, align 4, !tbaa !11
  %402 = fcmp ole float %400, %401
  br i1 %402, label %403, label %405

403:                                              ; preds = %395
  %404 = load float, ptr %25, align 4, !tbaa !11
  br label %407

405:                                              ; preds = %395
  %406 = load float, ptr %26, align 4, !tbaa !11
  br label %407

407:                                              ; preds = %405, %403
  %408 = phi float [ %404, %403 ], [ %406, %405 ]
  %409 = fpext float %408 to double
  %410 = fptrunc double %409 to float
  store float %410, ptr %41, align 4, !tbaa !11
  %411 = load i64, ptr %45, align 8, !tbaa !9
  store i64 %411, ptr %23, align 8, !tbaa !9
  %412 = load i64, ptr %34, align 8, !tbaa !9
  store i64 %412, ptr %22, align 8, !tbaa !9
  %413 = load i64, ptr %49, align 8, !tbaa !9
  store i64 %413, ptr %29, align 8, !tbaa !9
  br label %414

414:                                              ; preds = %444, %407
  %415 = load i64, ptr %22, align 8, !tbaa !9
  %416 = icmp slt i64 %415, 0
  br i1 %416, label %417, label %422

417:                                              ; preds = %414
  %418 = load i64, ptr %29, align 8, !tbaa !9
  %419 = load i64, ptr %23, align 8, !tbaa !9
  %420 = icmp sge i64 %418, %419
  %421 = zext i1 %420 to i32
  br label %427

422:                                              ; preds = %414
  %423 = load i64, ptr %29, align 8, !tbaa !9
  %424 = load i64, ptr %23, align 8, !tbaa !9
  %425 = icmp sle i64 %423, %424
  %426 = zext i1 %425 to i32
  br label %427

427:                                              ; preds = %422, %417
  %428 = phi i32 [ %421, %417 ], [ %426, %422 ]
  %429 = icmp ne i32 %428, 0
  br i1 %429, label %430, label %448

430:                                              ; preds = %427
  %431 = load float, ptr %41, align 4, !tbaa !11
  %432 = load float, ptr %50, align 4, !tbaa !11
  %433 = fcmp ole float %431, %432
  br i1 %433, label %434, label %435

434:                                              ; preds = %430
  br label %450

435:                                              ; preds = %430
  %436 = load ptr, ptr %20, align 8, !tbaa !5
  %437 = load i64, ptr %29, align 8, !tbaa !9
  %438 = getelementptr inbounds float, ptr %436, i64 %437
  %439 = load float, ptr %438, align 4, !tbaa !11
  %440 = fadd float %439, 1.000000e+00
  %441 = fdiv float 1.000000e+00, %440
  %442 = load float, ptr %41, align 4, !tbaa !11
  %443 = fmul float %442, %441
  store float %443, ptr %41, align 4, !tbaa !11
  br label %444

444:                                              ; preds = %435
  %445 = load i64, ptr %22, align 8, !tbaa !9
  %446 = load i64, ptr %29, align 8, !tbaa !9
  %447 = add nsw i64 %446, %445
  store i64 %447, ptr %29, align 8, !tbaa !9
  br label %414, !llvm.loop !17

448:                                              ; preds = %427
  br label %449

449:                                              ; preds = %448, %385
  br label %450

450:                                              ; preds = %449, %434, %312, %264
  br label %643

451:                                              ; preds = %245
  %452 = load i64, ptr %46, align 8, !tbaa !9
  %453 = icmp ne i64 %452, 0
  br i1 %453, label %454, label %457

454:                                              ; preds = %451
  store i64 1, ptr %49, align 8, !tbaa !9
  %455 = load ptr, ptr %16, align 8, !tbaa !5
  %456 = load i64, ptr %455, align 8, !tbaa !9
  store i64 %456, ptr %45, align 8, !tbaa !9
  store i64 1, ptr %34, align 8, !tbaa !9
  br label %460

457:                                              ; preds = %451
  %458 = load ptr, ptr %16, align 8, !tbaa !5
  %459 = load i64, ptr %458, align 8, !tbaa !9
  store i64 %459, ptr %49, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  store i64 -1, ptr %34, align 8, !tbaa !9
  br label %460

460:                                              ; preds = %457, %454
  %461 = load float, ptr %43, align 4, !tbaa !11
  %462 = fcmp une float %461, 1.000000e+00
  br i1 %462, label %463, label %464

463:                                              ; preds = %460
  store float 0.000000e+00, ptr %41, align 4, !tbaa !11
  br label %642

464:                                              ; preds = %460
  %465 = load i64, ptr %51, align 8, !tbaa !9
  %466 = icmp ne i64 %465, 0
  br i1 %466, label %467, label %579

467:                                              ; preds = %464
  %468 = load float, ptr %36, align 4, !tbaa !11
  %469 = load float, ptr %50, align 4, !tbaa !11
  %470 = fcmp oge float %468, %469
  br i1 %470, label %471, label %473

471:                                              ; preds = %467
  %472 = load float, ptr %36, align 4, !tbaa !11
  br label %475

473:                                              ; preds = %467
  %474 = load float, ptr %50, align 4, !tbaa !11
  br label %475

475:                                              ; preds = %473, %471
  %476 = phi float [ %472, %471 ], [ %474, %473 ]
  %477 = fpext float %476 to double
  %478 = fdiv double 1.000000e+00, %477
  %479 = fptrunc double %478 to float
  store float %479, ptr %41, align 4, !tbaa !11
  %480 = load float, ptr %41, align 4, !tbaa !11
  store float %480, ptr %36, align 4, !tbaa !11
  %481 = load i64, ptr %49, align 8, !tbaa !9
  %482 = load i64, ptr %49, align 8, !tbaa !9
  %483 = add nsw i64 %482, 1
  %484 = mul nsw i64 %481, %483
  %485 = sdiv i64 %484, 2
  store i64 %485, ptr %30, align 8, !tbaa !9
  store i64 1, ptr %35, align 8, !tbaa !9
  %486 = load i64, ptr %45, align 8, !tbaa !9
  store i64 %486, ptr %22, align 8, !tbaa !9
  %487 = load i64, ptr %34, align 8, !tbaa !9
  store i64 %487, ptr %23, align 8, !tbaa !9
  %488 = load i64, ptr %49, align 8, !tbaa !9
  store i64 %488, ptr %29, align 8, !tbaa !9
  br label %489

489:                                              ; preds = %563, %475
  %490 = load i64, ptr %23, align 8, !tbaa !9
  %491 = icmp slt i64 %490, 0
  br i1 %491, label %492, label %497

492:                                              ; preds = %489
  %493 = load i64, ptr %29, align 8, !tbaa !9
  %494 = load i64, ptr %22, align 8, !tbaa !9
  %495 = icmp sge i64 %493, %494
  %496 = zext i1 %495 to i32
  br label %502

497:                                              ; preds = %489
  %498 = load i64, ptr %29, align 8, !tbaa !9
  %499 = load i64, ptr %22, align 8, !tbaa !9
  %500 = icmp sle i64 %498, %499
  %501 = zext i1 %500 to i32
  br label %502

502:                                              ; preds = %497, %492
  %503 = phi i32 [ %496, %492 ], [ %501, %497 ]
  %504 = icmp ne i32 %503, 0
  br i1 %504, label %505, label %567

505:                                              ; preds = %502
  %506 = load float, ptr %41, align 4, !tbaa !11
  %507 = load float, ptr %50, align 4, !tbaa !11
  %508 = fcmp ole float %506, %507
  br i1 %508, label %509, label %510

509:                                              ; preds = %505
  br label %642

510:                                              ; preds = %505
  %511 = load ptr, ptr %20, align 8, !tbaa !5
  %512 = load i64, ptr %29, align 8, !tbaa !9
  %513 = getelementptr inbounds float, ptr %511, i64 %512
  %514 = load float, ptr %513, align 4, !tbaa !11
  %515 = fadd float %514, 1.000000e+00
  store float %515, ptr %31, align 4, !tbaa !11
  %516 = load float, ptr %41, align 4, !tbaa !11
  store float %516, ptr %25, align 4, !tbaa !11
  %517 = load float, ptr %36, align 4, !tbaa !11
  %518 = load float, ptr %31, align 4, !tbaa !11
  %519 = fdiv float %517, %518
  store float %519, ptr %26, align 4, !tbaa !11
  %520 = load float, ptr %25, align 4, !tbaa !11
  %521 = load float, ptr %26, align 4, !tbaa !11
  %522 = fcmp ole float %520, %521
  br i1 %522, label %523, label %525

523:                                              ; preds = %510
  %524 = load float, ptr %25, align 4, !tbaa !11
  br label %527

525:                                              ; preds = %510
  %526 = load float, ptr %26, align 4, !tbaa !11
  br label %527

527:                                              ; preds = %525, %523
  %528 = phi float [ %524, %523 ], [ %526, %525 ]
  %529 = fpext float %528 to double
  %530 = fptrunc double %529 to float
  store float %530, ptr %41, align 4, !tbaa !11
  %531 = load ptr, ptr %17, align 8, !tbaa !5
  %532 = load i64, ptr %30, align 8, !tbaa !9
  %533 = getelementptr inbounds float, ptr %531, i64 %532
  %534 = load float, ptr %533, align 4, !tbaa !11
  store float %534, ptr %25, align 4, !tbaa !11
  %535 = load float, ptr %25, align 4, !tbaa !11
  %536 = fcmp oge float %535, 0.000000e+00
  br i1 %536, label %537, label %539

537:                                              ; preds = %527
  %538 = load float, ptr %25, align 4, !tbaa !11
  br label %542

539:                                              ; preds = %527
  %540 = load float, ptr %25, align 4, !tbaa !11
  %541 = fneg float %540
  br label %542

542:                                              ; preds = %539, %537
  %543 = phi float [ %538, %537 ], [ %541, %539 ]
  %544 = fpext float %543 to double
  %545 = fptrunc double %544 to float
  store float %545, ptr %33, align 4, !tbaa !11
  %546 = load float, ptr %31, align 4, !tbaa !11
  %547 = load float, ptr %33, align 4, !tbaa !11
  %548 = fcmp ogt float %546, %547
  br i1 %548, label %549, label %555

549:                                              ; preds = %542
  %550 = load float, ptr %33, align 4, !tbaa !11
  %551 = load float, ptr %31, align 4, !tbaa !11
  %552 = fdiv float %550, %551
  %553 = load float, ptr %36, align 4, !tbaa !11
  %554 = fmul float %553, %552
  store float %554, ptr %36, align 4, !tbaa !11
  br label %555

555:                                              ; preds = %549, %542
  %556 = load i64, ptr %35, align 8, !tbaa !9
  %557 = add nsw i64 %556, 1
  store i64 %557, ptr %35, align 8, !tbaa !9
  %558 = load i64, ptr %34, align 8, !tbaa !9
  %559 = load i64, ptr %35, align 8, !tbaa !9
  %560 = mul nsw i64 %558, %559
  %561 = load i64, ptr %30, align 8, !tbaa !9
  %562 = add nsw i64 %561, %560
  store i64 %562, ptr %30, align 8, !tbaa !9
  br label %563

563:                                              ; preds = %555
  %564 = load i64, ptr %23, align 8, !tbaa !9
  %565 = load i64, ptr %29, align 8, !tbaa !9
  %566 = add nsw i64 %565, %564
  store i64 %566, ptr %29, align 8, !tbaa !9
  br label %489, !llvm.loop !18

567:                                              ; preds = %502
  %568 = load float, ptr %41, align 4, !tbaa !11
  %569 = load float, ptr %36, align 4, !tbaa !11
  %570 = fcmp ole float %568, %569
  br i1 %570, label %571, label %573

571:                                              ; preds = %567
  %572 = load float, ptr %41, align 4, !tbaa !11
  br label %575

573:                                              ; preds = %567
  %574 = load float, ptr %36, align 4, !tbaa !11
  br label %575

575:                                              ; preds = %573, %571
  %576 = phi float [ %572, %571 ], [ %574, %573 ]
  %577 = fpext float %576 to double
  %578 = fptrunc double %577 to float
  store float %578, ptr %41, align 4, !tbaa !11
  br label %641

579:                                              ; preds = %464
  store float 1.000000e+00, ptr %25, align 4, !tbaa !11
  %580 = load float, ptr %36, align 4, !tbaa !11
  %581 = load float, ptr %50, align 4, !tbaa !11
  %582 = fcmp oge float %580, %581
  br i1 %582, label %583, label %585

583:                                              ; preds = %579
  %584 = load float, ptr %36, align 4, !tbaa !11
  br label %587

585:                                              ; preds = %579
  %586 = load float, ptr %50, align 4, !tbaa !11
  br label %587

587:                                              ; preds = %585, %583
  %588 = phi float [ %584, %583 ], [ %586, %585 ]
  %589 = fpext float %588 to double
  %590 = fdiv double 1.000000e+00, %589
  %591 = fptrunc double %590 to float
  store float %591, ptr %26, align 4, !tbaa !11
  %592 = load float, ptr %25, align 4, !tbaa !11
  %593 = load float, ptr %26, align 4, !tbaa !11
  %594 = fcmp ole float %592, %593
  br i1 %594, label %595, label %597

595:                                              ; preds = %587
  %596 = load float, ptr %25, align 4, !tbaa !11
  br label %599

597:                                              ; preds = %587
  %598 = load float, ptr %26, align 4, !tbaa !11
  br label %599

599:                                              ; preds = %597, %595
  %600 = phi float [ %596, %595 ], [ %598, %597 ]
  %601 = fpext float %600 to double
  %602 = fptrunc double %601 to float
  store float %602, ptr %41, align 4, !tbaa !11
  %603 = load i64, ptr %45, align 8, !tbaa !9
  store i64 %603, ptr %23, align 8, !tbaa !9
  %604 = load i64, ptr %34, align 8, !tbaa !9
  store i64 %604, ptr %22, align 8, !tbaa !9
  %605 = load i64, ptr %49, align 8, !tbaa !9
  store i64 %605, ptr %29, align 8, !tbaa !9
  br label %606

606:                                              ; preds = %636, %599
  %607 = load i64, ptr %22, align 8, !tbaa !9
  %608 = icmp slt i64 %607, 0
  br i1 %608, label %609, label %614

609:                                              ; preds = %606
  %610 = load i64, ptr %29, align 8, !tbaa !9
  %611 = load i64, ptr %23, align 8, !tbaa !9
  %612 = icmp sge i64 %610, %611
  %613 = zext i1 %612 to i32
  br label %619

614:                                              ; preds = %606
  %615 = load i64, ptr %29, align 8, !tbaa !9
  %616 = load i64, ptr %23, align 8, !tbaa !9
  %617 = icmp sle i64 %615, %616
  %618 = zext i1 %617 to i32
  br label %619

619:                                              ; preds = %614, %609
  %620 = phi i32 [ %613, %609 ], [ %618, %614 ]
  %621 = icmp ne i32 %620, 0
  br i1 %621, label %622, label %640

622:                                              ; preds = %619
  %623 = load float, ptr %41, align 4, !tbaa !11
  %624 = load float, ptr %50, align 4, !tbaa !11
  %625 = fcmp ole float %623, %624
  br i1 %625, label %626, label %627

626:                                              ; preds = %622
  br label %642

627:                                              ; preds = %622
  %628 = load ptr, ptr %20, align 8, !tbaa !5
  %629 = load i64, ptr %29, align 8, !tbaa !9
  %630 = getelementptr inbounds float, ptr %628, i64 %629
  %631 = load float, ptr %630, align 4, !tbaa !11
  %632 = fadd float %631, 1.000000e+00
  store float %632, ptr %31, align 4, !tbaa !11
  %633 = load float, ptr %31, align 4, !tbaa !11
  %634 = load float, ptr %41, align 4, !tbaa !11
  %635 = fdiv float %634, %633
  store float %635, ptr %41, align 4, !tbaa !11
  br label %636

636:                                              ; preds = %627
  %637 = load i64, ptr %22, align 8, !tbaa !9
  %638 = load i64, ptr %29, align 8, !tbaa !9
  %639 = add nsw i64 %638, %637
  store i64 %639, ptr %29, align 8, !tbaa !9
  br label %606, !llvm.loop !19

640:                                              ; preds = %619
  br label %641

641:                                              ; preds = %640, %575
  br label %642

642:                                              ; preds = %641, %626, %509, %463
  br label %643

643:                                              ; preds = %642, %450
  %644 = load float, ptr %41, align 4, !tbaa !11
  %645 = load float, ptr %43, align 4, !tbaa !11
  %646 = fmul float %644, %645
  %647 = load float, ptr %50, align 4, !tbaa !11
  %648 = fcmp ogt float %646, %647
  br i1 %648, label %649, label %659

649:                                              ; preds = %643
  %650 = load ptr, ptr %12, align 8, !tbaa !5
  %651 = load ptr, ptr %13, align 8, !tbaa !5
  %652 = load ptr, ptr %14, align 8, !tbaa !5
  %653 = load ptr, ptr %16, align 8, !tbaa !5
  %654 = load ptr, ptr %17, align 8, !tbaa !5
  %655 = getelementptr inbounds float, ptr %654, i64 1
  %656 = load ptr, ptr %18, align 8, !tbaa !5
  %657 = getelementptr inbounds float, ptr %656, i64 1
  %658 = call i32 @f2c_stpsv(ptr noundef %650, ptr noundef %651, ptr noundef %652, ptr noundef %653, ptr noundef %655, ptr noundef %657, ptr noundef @c__1)
  br label %1471

659:                                              ; preds = %643
  %660 = load float, ptr %40, align 4, !tbaa !11
  %661 = load float, ptr %47, align 4, !tbaa !11
  %662 = fcmp ogt float %660, %661
  br i1 %662, label %663, label %674

663:                                              ; preds = %659
  %664 = load float, ptr %47, align 4, !tbaa !11
  %665 = load float, ptr %40, align 4, !tbaa !11
  %666 = fdiv float %664, %665
  %667 = load ptr, ptr %19, align 8, !tbaa !5
  store float %666, ptr %667, align 4, !tbaa !11
  %668 = load ptr, ptr %16, align 8, !tbaa !5
  %669 = load ptr, ptr %19, align 8, !tbaa !5
  %670 = load ptr, ptr %18, align 8, !tbaa !5
  %671 = getelementptr inbounds float, ptr %670, i64 1
  %672 = call i32 @f2c_sscal(ptr noundef %668, ptr noundef %669, ptr noundef %671, ptr noundef @c__1)
  %673 = load float, ptr %47, align 4, !tbaa !11
  store float %673, ptr %40, align 4, !tbaa !11
  br label %674

674:                                              ; preds = %663, %659
  %675 = load i64, ptr %48, align 8, !tbaa !9
  %676 = icmp ne i64 %675, 0
  br i1 %676, label %677, label %1039

677:                                              ; preds = %674
  %678 = load i64, ptr %49, align 8, !tbaa !9
  %679 = load i64, ptr %49, align 8, !tbaa !9
  %680 = add nsw i64 %679, 1
  %681 = mul nsw i64 %678, %680
  %682 = sdiv i64 %681, 2
  store i64 %682, ptr %30, align 8, !tbaa !9
  %683 = load i64, ptr %45, align 8, !tbaa !9
  store i64 %683, ptr %22, align 8, !tbaa !9
  %684 = load i64, ptr %34, align 8, !tbaa !9
  store i64 %684, ptr %23, align 8, !tbaa !9
  %685 = load i64, ptr %49, align 8, !tbaa !9
  store i64 %685, ptr %29, align 8, !tbaa !9
  br label %686

686:                                              ; preds = %1034, %677
  %687 = load i64, ptr %23, align 8, !tbaa !9
  %688 = icmp slt i64 %687, 0
  br i1 %688, label %689, label %694

689:                                              ; preds = %686
  %690 = load i64, ptr %29, align 8, !tbaa !9
  %691 = load i64, ptr %22, align 8, !tbaa !9
  %692 = icmp sge i64 %690, %691
  %693 = zext i1 %692 to i32
  br label %699

694:                                              ; preds = %686
  %695 = load i64, ptr %29, align 8, !tbaa !9
  %696 = load i64, ptr %22, align 8, !tbaa !9
  %697 = icmp sle i64 %695, %696
  %698 = zext i1 %697 to i32
  br label %699

699:                                              ; preds = %694, %689
  %700 = phi i32 [ %693, %689 ], [ %698, %694 ]
  %701 = icmp ne i32 %700, 0
  br i1 %701, label %702, label %1038

702:                                              ; preds = %699
  %703 = load ptr, ptr %18, align 8, !tbaa !5
  %704 = load i64, ptr %29, align 8, !tbaa !9
  %705 = getelementptr inbounds float, ptr %703, i64 %704
  %706 = load float, ptr %705, align 4, !tbaa !11
  store float %706, ptr %25, align 4, !tbaa !11
  %707 = load float, ptr %25, align 4, !tbaa !11
  %708 = fcmp oge float %707, 0.000000e+00
  br i1 %708, label %709, label %711

709:                                              ; preds = %702
  %710 = load float, ptr %25, align 4, !tbaa !11
  br label %714

711:                                              ; preds = %702
  %712 = load float, ptr %25, align 4, !tbaa !11
  %713 = fneg float %712
  br label %714

714:                                              ; preds = %711, %709
  %715 = phi float [ %710, %709 ], [ %713, %711 ]
  %716 = fpext float %715 to double
  %717 = fptrunc double %716 to float
  store float %717, ptr %31, align 4, !tbaa !11
  %718 = load i64, ptr %51, align 8, !tbaa !9
  %719 = icmp ne i64 %718, 0
  br i1 %719, label %720, label %727

720:                                              ; preds = %714
  %721 = load ptr, ptr %17, align 8, !tbaa !5
  %722 = load i64, ptr %30, align 8, !tbaa !9
  %723 = getelementptr inbounds float, ptr %721, i64 %722
  %724 = load float, ptr %723, align 4, !tbaa !11
  %725 = load float, ptr %43, align 4, !tbaa !11
  %726 = fmul float %724, %725
  store float %726, ptr %39, align 4, !tbaa !11
  br label %733

727:                                              ; preds = %714
  %728 = load float, ptr %43, align 4, !tbaa !11
  store float %728, ptr %39, align 4, !tbaa !11
  %729 = load float, ptr %43, align 4, !tbaa !11
  %730 = fcmp oeq float %729, 1.000000e+00
  br i1 %730, label %731, label %732

731:                                              ; preds = %727
  br label %876

732:                                              ; preds = %727
  br label %733

733:                                              ; preds = %732, %720
  %734 = load float, ptr %39, align 4, !tbaa !11
  %735 = fcmp oge float %734, 0.000000e+00
  br i1 %735, label %736, label %738

736:                                              ; preds = %733
  %737 = load float, ptr %39, align 4, !tbaa !11
  br label %741

738:                                              ; preds = %733
  %739 = load float, ptr %39, align 4, !tbaa !11
  %740 = fneg float %739
  br label %741

741:                                              ; preds = %738, %736
  %742 = phi float [ %737, %736 ], [ %740, %738 ]
  %743 = fpext float %742 to double
  %744 = fptrunc double %743 to float
  store float %744, ptr %33, align 4, !tbaa !11
  %745 = load float, ptr %33, align 4, !tbaa !11
  %746 = load float, ptr %50, align 4, !tbaa !11
  %747 = fcmp ogt float %745, %746
  br i1 %747, label %748, label %794

748:                                              ; preds = %741
  %749 = load float, ptr %33, align 4, !tbaa !11
  %750 = fcmp olt float %749, 1.000000e+00
  br i1 %750, label %751, label %772

751:                                              ; preds = %748
  %752 = load float, ptr %31, align 4, !tbaa !11
  %753 = load float, ptr %33, align 4, !tbaa !11
  %754 = load float, ptr %47, align 4, !tbaa !11
  %755 = fmul float %753, %754
  %756 = fcmp ogt float %752, %755
  br i1 %756, label %757, label %771

757:                                              ; preds = %751
  %758 = load float, ptr %31, align 4, !tbaa !11
  %759 = fdiv float 1.000000e+00, %758
  store float %759, ptr %32, align 4, !tbaa !11
  %760 = load ptr, ptr %16, align 8, !tbaa !5
  %761 = load ptr, ptr %18, align 8, !tbaa !5
  %762 = getelementptr inbounds float, ptr %761, i64 1
  %763 = call i32 @f2c_sscal(ptr noundef %760, ptr noundef %32, ptr noundef %762, ptr noundef @c__1)
  %764 = load float, ptr %32, align 4, !tbaa !11
  %765 = load ptr, ptr %19, align 8, !tbaa !5
  %766 = load float, ptr %765, align 4, !tbaa !11
  %767 = fmul float %766, %764
  store float %767, ptr %765, align 4, !tbaa !11
  %768 = load float, ptr %32, align 4, !tbaa !11
  %769 = load float, ptr %40, align 4, !tbaa !11
  %770 = fmul float %769, %768
  store float %770, ptr %40, align 4, !tbaa !11
  br label %771

771:                                              ; preds = %757, %751
  br label %772

772:                                              ; preds = %771, %748
  %773 = load float, ptr %39, align 4, !tbaa !11
  %774 = load ptr, ptr %18, align 8, !tbaa !5
  %775 = load i64, ptr %29, align 8, !tbaa !9
  %776 = getelementptr inbounds float, ptr %774, i64 %775
  %777 = load float, ptr %776, align 4, !tbaa !11
  %778 = fdiv float %777, %773
  store float %778, ptr %776, align 4, !tbaa !11
  %779 = load ptr, ptr %18, align 8, !tbaa !5
  %780 = load i64, ptr %29, align 8, !tbaa !9
  %781 = getelementptr inbounds float, ptr %779, i64 %780
  %782 = load float, ptr %781, align 4, !tbaa !11
  store float %782, ptr %25, align 4, !tbaa !11
  %783 = load float, ptr %25, align 4, !tbaa !11
  %784 = fcmp oge float %783, 0.000000e+00
  br i1 %784, label %785, label %787

785:                                              ; preds = %772
  %786 = load float, ptr %25, align 4, !tbaa !11
  br label %790

787:                                              ; preds = %772
  %788 = load float, ptr %25, align 4, !tbaa !11
  %789 = fneg float %788
  br label %790

790:                                              ; preds = %787, %785
  %791 = phi float [ %786, %785 ], [ %789, %787 ]
  %792 = fpext float %791 to double
  %793 = fptrunc double %792 to float
  store float %793, ptr %31, align 4, !tbaa !11
  br label %875

794:                                              ; preds = %741
  %795 = load float, ptr %33, align 4, !tbaa !11
  %796 = fcmp ogt float %795, 0.000000e+00
  br i1 %796, label %797, label %855

797:                                              ; preds = %794
  %798 = load float, ptr %31, align 4, !tbaa !11
  %799 = load float, ptr %33, align 4, !tbaa !11
  %800 = load float, ptr %47, align 4, !tbaa !11
  %801 = fmul float %799, %800
  %802 = fcmp ogt float %798, %801
  br i1 %802, label %803, label %833

803:                                              ; preds = %797
  %804 = load float, ptr %33, align 4, !tbaa !11
  %805 = load float, ptr %47, align 4, !tbaa !11
  %806 = fmul float %804, %805
  %807 = load float, ptr %31, align 4, !tbaa !11
  %808 = fdiv float %806, %807
  store float %808, ptr %32, align 4, !tbaa !11
  %809 = load ptr, ptr %20, align 8, !tbaa !5
  %810 = load i64, ptr %29, align 8, !tbaa !9
  %811 = getelementptr inbounds float, ptr %809, i64 %810
  %812 = load float, ptr %811, align 4, !tbaa !11
  %813 = fcmp ogt float %812, 1.000000e+00
  br i1 %813, label %814, label %821

814:                                              ; preds = %803
  %815 = load ptr, ptr %20, align 8, !tbaa !5
  %816 = load i64, ptr %29, align 8, !tbaa !9
  %817 = getelementptr inbounds float, ptr %815, i64 %816
  %818 = load float, ptr %817, align 4, !tbaa !11
  %819 = load float, ptr %32, align 4, !tbaa !11
  %820 = fdiv float %819, %818
  store float %820, ptr %32, align 4, !tbaa !11
  br label %821

821:                                              ; preds = %814, %803
  %822 = load ptr, ptr %16, align 8, !tbaa !5
  %823 = load ptr, ptr %18, align 8, !tbaa !5
  %824 = getelementptr inbounds float, ptr %823, i64 1
  %825 = call i32 @f2c_sscal(ptr noundef %822, ptr noundef %32, ptr noundef %824, ptr noundef @c__1)
  %826 = load float, ptr %32, align 4, !tbaa !11
  %827 = load ptr, ptr %19, align 8, !tbaa !5
  %828 = load float, ptr %827, align 4, !tbaa !11
  %829 = fmul float %828, %826
  store float %829, ptr %827, align 4, !tbaa !11
  %830 = load float, ptr %32, align 4, !tbaa !11
  %831 = load float, ptr %40, align 4, !tbaa !11
  %832 = fmul float %831, %830
  store float %832, ptr %40, align 4, !tbaa !11
  br label %833

833:                                              ; preds = %821, %797
  %834 = load float, ptr %39, align 4, !tbaa !11
  %835 = load ptr, ptr %18, align 8, !tbaa !5
  %836 = load i64, ptr %29, align 8, !tbaa !9
  %837 = getelementptr inbounds float, ptr %835, i64 %836
  %838 = load float, ptr %837, align 4, !tbaa !11
  %839 = fdiv float %838, %834
  store float %839, ptr %837, align 4, !tbaa !11
  %840 = load ptr, ptr %18, align 8, !tbaa !5
  %841 = load i64, ptr %29, align 8, !tbaa !9
  %842 = getelementptr inbounds float, ptr %840, i64 %841
  %843 = load float, ptr %842, align 4, !tbaa !11
  store float %843, ptr %25, align 4, !tbaa !11
  %844 = load float, ptr %25, align 4, !tbaa !11
  %845 = fcmp oge float %844, 0.000000e+00
  br i1 %845, label %846, label %848

846:                                              ; preds = %833
  %847 = load float, ptr %25, align 4, !tbaa !11
  br label %851

848:                                              ; preds = %833
  %849 = load float, ptr %25, align 4, !tbaa !11
  %850 = fneg float %849
  br label %851

851:                                              ; preds = %848, %846
  %852 = phi float [ %847, %846 ], [ %850, %848 ]
  %853 = fpext float %852 to double
  %854 = fptrunc double %853 to float
  store float %854, ptr %31, align 4, !tbaa !11
  br label %874

855:                                              ; preds = %794
  %856 = load ptr, ptr %16, align 8, !tbaa !5
  %857 = load i64, ptr %856, align 8, !tbaa !9
  store i64 %857, ptr %24, align 8, !tbaa !9
  store i64 1, ptr %28, align 8, !tbaa !9
  br label %858

858:                                              ; preds = %866, %855
  %859 = load i64, ptr %28, align 8, !tbaa !9
  %860 = load i64, ptr %24, align 8, !tbaa !9
  %861 = icmp sle i64 %859, %860
  br i1 %861, label %862, label %869

862:                                              ; preds = %858
  %863 = load ptr, ptr %18, align 8, !tbaa !5
  %864 = load i64, ptr %28, align 8, !tbaa !9
  %865 = getelementptr inbounds float, ptr %863, i64 %864
  store float 0.000000e+00, ptr %865, align 4, !tbaa !11
  br label %866

866:                                              ; preds = %862
  %867 = load i64, ptr %28, align 8, !tbaa !9
  %868 = add nsw i64 %867, 1
  store i64 %868, ptr %28, align 8, !tbaa !9
  br label %858, !llvm.loop !20

869:                                              ; preds = %858
  %870 = load ptr, ptr %18, align 8, !tbaa !5
  %871 = load i64, ptr %29, align 8, !tbaa !9
  %872 = getelementptr inbounds float, ptr %870, i64 %871
  store float 1.000000e+00, ptr %872, align 4, !tbaa !11
  store float 1.000000e+00, ptr %31, align 4, !tbaa !11
  %873 = load ptr, ptr %19, align 8, !tbaa !5
  store float 0.000000e+00, ptr %873, align 4, !tbaa !11
  store float 0.000000e+00, ptr %40, align 4, !tbaa !11
  br label %874

874:                                              ; preds = %869, %851
  br label %875

875:                                              ; preds = %874, %790
  br label %876

876:                                              ; preds = %875, %731
  %877 = load float, ptr %31, align 4, !tbaa !11
  %878 = fcmp ogt float %877, 1.000000e+00
  br i1 %878, label %879, label %904

879:                                              ; preds = %876
  %880 = load float, ptr %31, align 4, !tbaa !11
  %881 = fdiv float 1.000000e+00, %880
  store float %881, ptr %32, align 4, !tbaa !11
  %882 = load ptr, ptr %20, align 8, !tbaa !5
  %883 = load i64, ptr %29, align 8, !tbaa !9
  %884 = getelementptr inbounds float, ptr %882, i64 %883
  %885 = load float, ptr %884, align 4, !tbaa !11
  %886 = load float, ptr %47, align 4, !tbaa !11
  %887 = load float, ptr %40, align 4, !tbaa !11
  %888 = fsub float %886, %887
  %889 = load float, ptr %32, align 4, !tbaa !11
  %890 = fmul float %888, %889
  %891 = fcmp ogt float %885, %890
  br i1 %891, label %892, label %903

892:                                              ; preds = %879
  %893 = load float, ptr %32, align 4, !tbaa !11
  %894 = fmul float %893, 5.000000e-01
  store float %894, ptr %32, align 4, !tbaa !11
  %895 = load ptr, ptr %16, align 8, !tbaa !5
  %896 = load ptr, ptr %18, align 8, !tbaa !5
  %897 = getelementptr inbounds float, ptr %896, i64 1
  %898 = call i32 @f2c_sscal(ptr noundef %895, ptr noundef %32, ptr noundef %897, ptr noundef @c__1)
  %899 = load float, ptr %32, align 4, !tbaa !11
  %900 = load ptr, ptr %19, align 8, !tbaa !5
  %901 = load float, ptr %900, align 4, !tbaa !11
  %902 = fmul float %901, %899
  store float %902, ptr %900, align 4, !tbaa !11
  br label %903

903:                                              ; preds = %892, %879
  br label %924

904:                                              ; preds = %876
  %905 = load float, ptr %31, align 4, !tbaa !11
  %906 = load ptr, ptr %20, align 8, !tbaa !5
  %907 = load i64, ptr %29, align 8, !tbaa !9
  %908 = getelementptr inbounds float, ptr %906, i64 %907
  %909 = load float, ptr %908, align 4, !tbaa !11
  %910 = fmul float %905, %909
  %911 = load float, ptr %47, align 4, !tbaa !11
  %912 = load float, ptr %40, align 4, !tbaa !11
  %913 = fsub float %911, %912
  %914 = fcmp ogt float %910, %913
  br i1 %914, label %915, label %923

915:                                              ; preds = %904
  %916 = load ptr, ptr %16, align 8, !tbaa !5
  %917 = load ptr, ptr %18, align 8, !tbaa !5
  %918 = getelementptr inbounds float, ptr %917, i64 1
  %919 = call i32 @f2c_sscal(ptr noundef %916, ptr noundef @c_b36, ptr noundef %918, ptr noundef @c__1)
  %920 = load ptr, ptr %19, align 8, !tbaa !5
  %921 = load float, ptr %920, align 4, !tbaa !11
  %922 = fmul float %921, 5.000000e-01
  store float %922, ptr %920, align 4, !tbaa !11
  br label %923

923:                                              ; preds = %915, %904
  br label %924

924:                                              ; preds = %923, %903
  %925 = load i64, ptr %46, align 8, !tbaa !9
  %926 = icmp ne i64 %925, 0
  br i1 %926, label %927, label %973

927:                                              ; preds = %924
  %928 = load i64, ptr %29, align 8, !tbaa !9
  %929 = icmp sgt i64 %928, 1
  br i1 %929, label %930, label %969

930:                                              ; preds = %927
  %931 = load i64, ptr %29, align 8, !tbaa !9
  %932 = sub nsw i64 %931, 1
  store i64 %932, ptr %24, align 8, !tbaa !9
  %933 = load ptr, ptr %18, align 8, !tbaa !5
  %934 = load i64, ptr %29, align 8, !tbaa !9
  %935 = getelementptr inbounds float, ptr %933, i64 %934
  %936 = load float, ptr %935, align 4, !tbaa !11
  %937 = fneg float %936
  %938 = load float, ptr %43, align 4, !tbaa !11
  %939 = fmul float %937, %938
  store float %939, ptr %25, align 4, !tbaa !11
  %940 = load ptr, ptr %17, align 8, !tbaa !5
  %941 = load i64, ptr %30, align 8, !tbaa !9
  %942 = load i64, ptr %29, align 8, !tbaa !9
  %943 = sub nsw i64 %941, %942
  %944 = add nsw i64 %943, 1
  %945 = getelementptr inbounds float, ptr %940, i64 %944
  %946 = load ptr, ptr %18, align 8, !tbaa !5
  %947 = getelementptr inbounds float, ptr %946, i64 1
  %948 = call i32 @f2c_saxpy(ptr noundef %24, ptr noundef %25, ptr noundef %945, ptr noundef @c__1, ptr noundef %947, ptr noundef @c__1)
  %949 = load i64, ptr %29, align 8, !tbaa !9
  %950 = sub nsw i64 %949, 1
  store i64 %950, ptr %24, align 8, !tbaa !9
  %951 = load ptr, ptr %18, align 8, !tbaa !5
  %952 = getelementptr inbounds float, ptr %951, i64 1
  %953 = call i64 @f2c_isamax(ptr noundef %24, ptr noundef %952, ptr noundef @c__1)
  store i64 %953, ptr %28, align 8, !tbaa !9
  %954 = load ptr, ptr %18, align 8, !tbaa !5
  %955 = load i64, ptr %28, align 8, !tbaa !9
  %956 = getelementptr inbounds float, ptr %954, i64 %955
  %957 = load float, ptr %956, align 4, !tbaa !11
  store float %957, ptr %25, align 4, !tbaa !11
  %958 = load float, ptr %25, align 4, !tbaa !11
  %959 = fcmp oge float %958, 0.000000e+00
  br i1 %959, label %960, label %962

960:                                              ; preds = %930
  %961 = load float, ptr %25, align 4, !tbaa !11
  br label %965

962:                                              ; preds = %930
  %963 = load float, ptr %25, align 4, !tbaa !11
  %964 = fneg float %963
  br label %965

965:                                              ; preds = %962, %960
  %966 = phi float [ %961, %960 ], [ %964, %962 ]
  %967 = fpext float %966 to double
  %968 = fptrunc double %967 to float
  store float %968, ptr %40, align 4, !tbaa !11
  br label %969

969:                                              ; preds = %965, %927
  %970 = load i64, ptr %29, align 8, !tbaa !9
  %971 = load i64, ptr %30, align 8, !tbaa !9
  %972 = sub nsw i64 %971, %970
  store i64 %972, ptr %30, align 8, !tbaa !9
  br label %1033

973:                                              ; preds = %924
  %974 = load i64, ptr %29, align 8, !tbaa !9
  %975 = load ptr, ptr %16, align 8, !tbaa !5
  %976 = load i64, ptr %975, align 8, !tbaa !9
  %977 = icmp slt i64 %974, %976
  br i1 %977, label %978, label %1025

978:                                              ; preds = %973
  %979 = load ptr, ptr %16, align 8, !tbaa !5
  %980 = load i64, ptr %979, align 8, !tbaa !9
  %981 = load i64, ptr %29, align 8, !tbaa !9
  %982 = sub nsw i64 %980, %981
  store i64 %982, ptr %24, align 8, !tbaa !9
  %983 = load ptr, ptr %18, align 8, !tbaa !5
  %984 = load i64, ptr %29, align 8, !tbaa !9
  %985 = getelementptr inbounds float, ptr %983, i64 %984
  %986 = load float, ptr %985, align 4, !tbaa !11
  %987 = fneg float %986
  %988 = load float, ptr %43, align 4, !tbaa !11
  %989 = fmul float %987, %988
  store float %989, ptr %25, align 4, !tbaa !11
  %990 = load ptr, ptr %17, align 8, !tbaa !5
  %991 = load i64, ptr %30, align 8, !tbaa !9
  %992 = add nsw i64 %991, 1
  %993 = getelementptr inbounds float, ptr %990, i64 %992
  %994 = load ptr, ptr %18, align 8, !tbaa !5
  %995 = load i64, ptr %29, align 8, !tbaa !9
  %996 = add nsw i64 %995, 1
  %997 = getelementptr inbounds float, ptr %994, i64 %996
  %998 = call i32 @f2c_saxpy(ptr noundef %24, ptr noundef %25, ptr noundef %993, ptr noundef @c__1, ptr noundef %997, ptr noundef @c__1)
  %999 = load ptr, ptr %16, align 8, !tbaa !5
  %1000 = load i64, ptr %999, align 8, !tbaa !9
  %1001 = load i64, ptr %29, align 8, !tbaa !9
  %1002 = sub nsw i64 %1000, %1001
  store i64 %1002, ptr %24, align 8, !tbaa !9
  %1003 = load i64, ptr %29, align 8, !tbaa !9
  %1004 = load ptr, ptr %18, align 8, !tbaa !5
  %1005 = load i64, ptr %29, align 8, !tbaa !9
  %1006 = add nsw i64 %1005, 1
  %1007 = getelementptr inbounds float, ptr %1004, i64 %1006
  %1008 = call i64 @f2c_isamax(ptr noundef %24, ptr noundef %1007, ptr noundef @c__1)
  %1009 = add nsw i64 %1003, %1008
  store i64 %1009, ptr %28, align 8, !tbaa !9
  %1010 = load ptr, ptr %18, align 8, !tbaa !5
  %1011 = load i64, ptr %28, align 8, !tbaa !9
  %1012 = getelementptr inbounds float, ptr %1010, i64 %1011
  %1013 = load float, ptr %1012, align 4, !tbaa !11
  store float %1013, ptr %25, align 4, !tbaa !11
  %1014 = load float, ptr %25, align 4, !tbaa !11
  %1015 = fcmp oge float %1014, 0.000000e+00
  br i1 %1015, label %1016, label %1018

1016:                                             ; preds = %978
  %1017 = load float, ptr %25, align 4, !tbaa !11
  br label %1021

1018:                                             ; preds = %978
  %1019 = load float, ptr %25, align 4, !tbaa !11
  %1020 = fneg float %1019
  br label %1021

1021:                                             ; preds = %1018, %1016
  %1022 = phi float [ %1017, %1016 ], [ %1020, %1018 ]
  %1023 = fpext float %1022 to double
  %1024 = fptrunc double %1023 to float
  store float %1024, ptr %40, align 4, !tbaa !11
  br label %1025

1025:                                             ; preds = %1021, %973
  %1026 = load i64, ptr %30, align 8, !tbaa !9
  %1027 = load ptr, ptr %16, align 8, !tbaa !5
  %1028 = load i64, ptr %1027, align 8, !tbaa !9
  %1029 = add nsw i64 %1026, %1028
  %1030 = load i64, ptr %29, align 8, !tbaa !9
  %1031 = sub nsw i64 %1029, %1030
  %1032 = add nsw i64 %1031, 1
  store i64 %1032, ptr %30, align 8, !tbaa !9
  br label %1033

1033:                                             ; preds = %1025, %969
  br label %1034

1034:                                             ; preds = %1033
  %1035 = load i64, ptr %23, align 8, !tbaa !9
  %1036 = load i64, ptr %29, align 8, !tbaa !9
  %1037 = add nsw i64 %1036, %1035
  store i64 %1037, ptr %29, align 8, !tbaa !9
  br label %686, !llvm.loop !21

1038:                                             ; preds = %699
  br label %1466

1039:                                             ; preds = %674
  %1040 = load i64, ptr %49, align 8, !tbaa !9
  %1041 = load i64, ptr %49, align 8, !tbaa !9
  %1042 = add nsw i64 %1041, 1
  %1043 = mul nsw i64 %1040, %1042
  %1044 = sdiv i64 %1043, 2
  store i64 %1044, ptr %30, align 8, !tbaa !9
  store i64 1, ptr %35, align 8, !tbaa !9
  %1045 = load i64, ptr %45, align 8, !tbaa !9
  store i64 %1045, ptr %23, align 8, !tbaa !9
  %1046 = load i64, ptr %34, align 8, !tbaa !9
  store i64 %1046, ptr %22, align 8, !tbaa !9
  %1047 = load i64, ptr %49, align 8, !tbaa !9
  store i64 %1047, ptr %29, align 8, !tbaa !9
  br label %1048

1048:                                             ; preds = %1461, %1039
  %1049 = load i64, ptr %22, align 8, !tbaa !9
  %1050 = icmp slt i64 %1049, 0
  br i1 %1050, label %1051, label %1056

1051:                                             ; preds = %1048
  %1052 = load i64, ptr %29, align 8, !tbaa !9
  %1053 = load i64, ptr %23, align 8, !tbaa !9
  %1054 = icmp sge i64 %1052, %1053
  %1055 = zext i1 %1054 to i32
  br label %1061

1056:                                             ; preds = %1048
  %1057 = load i64, ptr %29, align 8, !tbaa !9
  %1058 = load i64, ptr %23, align 8, !tbaa !9
  %1059 = icmp sle i64 %1057, %1058
  %1060 = zext i1 %1059 to i32
  br label %1061

1061:                                             ; preds = %1056, %1051
  %1062 = phi i32 [ %1055, %1051 ], [ %1060, %1056 ]
  %1063 = icmp ne i32 %1062, 0
  br i1 %1063, label %1064, label %1465

1064:                                             ; preds = %1061
  %1065 = load ptr, ptr %18, align 8, !tbaa !5
  %1066 = load i64, ptr %29, align 8, !tbaa !9
  %1067 = getelementptr inbounds float, ptr %1065, i64 %1066
  %1068 = load float, ptr %1067, align 4, !tbaa !11
  store float %1068, ptr %25, align 4, !tbaa !11
  %1069 = load float, ptr %25, align 4, !tbaa !11
  %1070 = fcmp oge float %1069, 0.000000e+00
  br i1 %1070, label %1071, label %1073

1071:                                             ; preds = %1064
  %1072 = load float, ptr %25, align 4, !tbaa !11
  br label %1076

1073:                                             ; preds = %1064
  %1074 = load float, ptr %25, align 4, !tbaa !11
  %1075 = fneg float %1074
  br label %1076

1076:                                             ; preds = %1073, %1071
  %1077 = phi float [ %1072, %1071 ], [ %1075, %1073 ]
  %1078 = fpext float %1077 to double
  %1079 = fptrunc double %1078 to float
  store float %1079, ptr %31, align 4, !tbaa !11
  %1080 = load float, ptr %43, align 4, !tbaa !11
  store float %1080, ptr %44, align 4, !tbaa !11
  %1081 = load float, ptr %40, align 4, !tbaa !11
  %1082 = fcmp oge float %1081, 1.000000e+00
  br i1 %1082, label %1083, label %1085

1083:                                             ; preds = %1076
  %1084 = load float, ptr %40, align 4, !tbaa !11
  br label %1086

1085:                                             ; preds = %1076
  br label %1086

1086:                                             ; preds = %1085, %1083
  %1087 = phi float [ %1084, %1083 ], [ 1.000000e+00, %1085 ]
  %1088 = fpext float %1087 to double
  %1089 = fdiv double 1.000000e+00, %1088
  %1090 = fptrunc double %1089 to float
  store float %1090, ptr %32, align 4, !tbaa !11
  %1091 = load ptr, ptr %20, align 8, !tbaa !5
  %1092 = load i64, ptr %29, align 8, !tbaa !9
  %1093 = getelementptr inbounds float, ptr %1091, i64 %1092
  %1094 = load float, ptr %1093, align 4, !tbaa !11
  %1095 = load float, ptr %47, align 4, !tbaa !11
  %1096 = load float, ptr %31, align 4, !tbaa !11
  %1097 = fsub float %1095, %1096
  %1098 = load float, ptr %32, align 4, !tbaa !11
  %1099 = fmul float %1097, %1098
  %1100 = fcmp ogt float %1094, %1099
  br i1 %1100, label %1101, label %1163

1101:                                             ; preds = %1086
  %1102 = load float, ptr %32, align 4, !tbaa !11
  %1103 = fmul float %1102, 5.000000e-01
  store float %1103, ptr %32, align 4, !tbaa !11
  %1104 = load i64, ptr %51, align 8, !tbaa !9
  %1105 = icmp ne i64 %1104, 0
  br i1 %1105, label %1106, label %1113

1106:                                             ; preds = %1101
  %1107 = load ptr, ptr %17, align 8, !tbaa !5
  %1108 = load i64, ptr %30, align 8, !tbaa !9
  %1109 = getelementptr inbounds float, ptr %1107, i64 %1108
  %1110 = load float, ptr %1109, align 4, !tbaa !11
  %1111 = load float, ptr %43, align 4, !tbaa !11
  %1112 = fmul float %1110, %1111
  store float %1112, ptr %39, align 4, !tbaa !11
  br label %1115

1113:                                             ; preds = %1101
  %1114 = load float, ptr %43, align 4, !tbaa !11
  store float %1114, ptr %39, align 4, !tbaa !11
  br label %1115

1115:                                             ; preds = %1113, %1106
  %1116 = load float, ptr %39, align 4, !tbaa !11
  %1117 = fcmp oge float %1116, 0.000000e+00
  br i1 %1117, label %1118, label %1120

1118:                                             ; preds = %1115
  %1119 = load float, ptr %39, align 4, !tbaa !11
  br label %1123

1120:                                             ; preds = %1115
  %1121 = load float, ptr %39, align 4, !tbaa !11
  %1122 = fneg float %1121
  br label %1123

1123:                                             ; preds = %1120, %1118
  %1124 = phi float [ %1119, %1118 ], [ %1122, %1120 ]
  %1125 = fpext float %1124 to double
  %1126 = fptrunc double %1125 to float
  store float %1126, ptr %33, align 4, !tbaa !11
  %1127 = load float, ptr %33, align 4, !tbaa !11
  %1128 = fcmp ogt float %1127, 1.000000e+00
  br i1 %1128, label %1129, label %1147

1129:                                             ; preds = %1123
  store float 1.000000e+00, ptr %25, align 4, !tbaa !11
  %1130 = load float, ptr %32, align 4, !tbaa !11
  %1131 = load float, ptr %33, align 4, !tbaa !11
  %1132 = fmul float %1130, %1131
  store float %1132, ptr %26, align 4, !tbaa !11
  %1133 = load float, ptr %25, align 4, !tbaa !11
  %1134 = load float, ptr %26, align 4, !tbaa !11
  %1135 = fcmp ole float %1133, %1134
  br i1 %1135, label %1136, label %1138

1136:                                             ; preds = %1129
  %1137 = load float, ptr %25, align 4, !tbaa !11
  br label %1140

1138:                                             ; preds = %1129
  %1139 = load float, ptr %26, align 4, !tbaa !11
  br label %1140

1140:                                             ; preds = %1138, %1136
  %1141 = phi float [ %1137, %1136 ], [ %1139, %1138 ]
  %1142 = fpext float %1141 to double
  %1143 = fptrunc double %1142 to float
  store float %1143, ptr %32, align 4, !tbaa !11
  %1144 = load float, ptr %39, align 4, !tbaa !11
  %1145 = load float, ptr %44, align 4, !tbaa !11
  %1146 = fdiv float %1145, %1144
  store float %1146, ptr %44, align 4, !tbaa !11
  br label %1147

1147:                                             ; preds = %1140, %1123
  %1148 = load float, ptr %32, align 4, !tbaa !11
  %1149 = fcmp olt float %1148, 1.000000e+00
  br i1 %1149, label %1150, label %1162

1150:                                             ; preds = %1147
  %1151 = load ptr, ptr %16, align 8, !tbaa !5
  %1152 = load ptr, ptr %18, align 8, !tbaa !5
  %1153 = getelementptr inbounds float, ptr %1152, i64 1
  %1154 = call i32 @f2c_sscal(ptr noundef %1151, ptr noundef %32, ptr noundef %1153, ptr noundef @c__1)
  %1155 = load float, ptr %32, align 4, !tbaa !11
  %1156 = load ptr, ptr %19, align 8, !tbaa !5
  %1157 = load float, ptr %1156, align 4, !tbaa !11
  %1158 = fmul float %1157, %1155
  store float %1158, ptr %1156, align 4, !tbaa !11
  %1159 = load float, ptr %32, align 4, !tbaa !11
  %1160 = load float, ptr %40, align 4, !tbaa !11
  %1161 = fmul float %1160, %1159
  store float %1161, ptr %40, align 4, !tbaa !11
  br label %1162

1162:                                             ; preds = %1150, %1147
  br label %1163

1163:                                             ; preds = %1162, %1086
  store float 0.000000e+00, ptr %42, align 4, !tbaa !11
  %1164 = load float, ptr %44, align 4, !tbaa !11
  %1165 = fcmp oeq float %1164, 1.000000e+00
  br i1 %1165, label %1166, label %1204

1166:                                             ; preds = %1163
  %1167 = load i64, ptr %46, align 8, !tbaa !9
  %1168 = icmp ne i64 %1167, 0
  br i1 %1168, label %1169, label %1182

1169:                                             ; preds = %1166
  %1170 = load i64, ptr %29, align 8, !tbaa !9
  %1171 = sub nsw i64 %1170, 1
  store i64 %1171, ptr %24, align 8, !tbaa !9
  %1172 = load ptr, ptr %17, align 8, !tbaa !5
  %1173 = load i64, ptr %30, align 8, !tbaa !9
  %1174 = load i64, ptr %29, align 8, !tbaa !9
  %1175 = sub nsw i64 %1173, %1174
  %1176 = add nsw i64 %1175, 1
  %1177 = getelementptr inbounds float, ptr %1172, i64 %1176
  %1178 = load ptr, ptr %18, align 8, !tbaa !5
  %1179 = getelementptr inbounds float, ptr %1178, i64 1
  %1180 = call double @f2c_sdot(ptr noundef %24, ptr noundef %1177, ptr noundef @c__1, ptr noundef %1179, ptr noundef @c__1)
  %1181 = fptrunc double %1180 to float
  store float %1181, ptr %42, align 4, !tbaa !11
  br label %1203

1182:                                             ; preds = %1166
  %1183 = load i64, ptr %29, align 8, !tbaa !9
  %1184 = load ptr, ptr %16, align 8, !tbaa !5
  %1185 = load i64, ptr %1184, align 8, !tbaa !9
  %1186 = icmp slt i64 %1183, %1185
  br i1 %1186, label %1187, label %1202

1187:                                             ; preds = %1182
  %1188 = load ptr, ptr %16, align 8, !tbaa !5
  %1189 = load i64, ptr %1188, align 8, !tbaa !9
  %1190 = load i64, ptr %29, align 8, !tbaa !9
  %1191 = sub nsw i64 %1189, %1190
  store i64 %1191, ptr %24, align 8, !tbaa !9
  %1192 = load ptr, ptr %17, align 8, !tbaa !5
  %1193 = load i64, ptr %30, align 8, !tbaa !9
  %1194 = add nsw i64 %1193, 1
  %1195 = getelementptr inbounds float, ptr %1192, i64 %1194
  %1196 = load ptr, ptr %18, align 8, !tbaa !5
  %1197 = load i64, ptr %29, align 8, !tbaa !9
  %1198 = add nsw i64 %1197, 1
  %1199 = getelementptr inbounds float, ptr %1196, i64 %1198
  %1200 = call double @f2c_sdot(ptr noundef %24, ptr noundef %1195, ptr noundef @c__1, ptr noundef %1199, ptr noundef @c__1)
  %1201 = fptrunc double %1200 to float
  store float %1201, ptr %42, align 4, !tbaa !11
  br label %1202

1202:                                             ; preds = %1187, %1182
  br label %1203

1203:                                             ; preds = %1202, %1169
  br label %1272

1204:                                             ; preds = %1163
  %1205 = load i64, ptr %46, align 8, !tbaa !9
  %1206 = icmp ne i64 %1205, 0
  br i1 %1206, label %1207, label %1235

1207:                                             ; preds = %1204
  %1208 = load i64, ptr %29, align 8, !tbaa !9
  %1209 = sub nsw i64 %1208, 1
  store i64 %1209, ptr %24, align 8, !tbaa !9
  store i64 1, ptr %28, align 8, !tbaa !9
  br label %1210

1210:                                             ; preds = %1231, %1207
  %1211 = load i64, ptr %28, align 8, !tbaa !9
  %1212 = load i64, ptr %24, align 8, !tbaa !9
  %1213 = icmp sle i64 %1211, %1212
  br i1 %1213, label %1214, label %1234

1214:                                             ; preds = %1210
  %1215 = load ptr, ptr %17, align 8, !tbaa !5
  %1216 = load i64, ptr %30, align 8, !tbaa !9
  %1217 = load i64, ptr %29, align 8, !tbaa !9
  %1218 = sub nsw i64 %1216, %1217
  %1219 = load i64, ptr %28, align 8, !tbaa !9
  %1220 = add nsw i64 %1218, %1219
  %1221 = getelementptr inbounds float, ptr %1215, i64 %1220
  %1222 = load float, ptr %1221, align 4, !tbaa !11
  %1223 = load float, ptr %44, align 4, !tbaa !11
  %1224 = fmul float %1222, %1223
  %1225 = load ptr, ptr %18, align 8, !tbaa !5
  %1226 = load i64, ptr %28, align 8, !tbaa !9
  %1227 = getelementptr inbounds float, ptr %1225, i64 %1226
  %1228 = load float, ptr %1227, align 4, !tbaa !11
  %1229 = load float, ptr %42, align 4, !tbaa !11
  %1230 = call float @llvm.fmuladd.f32(float %1224, float %1228, float %1229)
  store float %1230, ptr %42, align 4, !tbaa !11
  br label %1231

1231:                                             ; preds = %1214
  %1232 = load i64, ptr %28, align 8, !tbaa !9
  %1233 = add nsw i64 %1232, 1
  store i64 %1233, ptr %28, align 8, !tbaa !9
  br label %1210, !llvm.loop !22

1234:                                             ; preds = %1210
  br label %1271

1235:                                             ; preds = %1204
  %1236 = load i64, ptr %29, align 8, !tbaa !9
  %1237 = load ptr, ptr %16, align 8, !tbaa !5
  %1238 = load i64, ptr %1237, align 8, !tbaa !9
  %1239 = icmp slt i64 %1236, %1238
  br i1 %1239, label %1240, label %1270

1240:                                             ; preds = %1235
  %1241 = load ptr, ptr %16, align 8, !tbaa !5
  %1242 = load i64, ptr %1241, align 8, !tbaa !9
  %1243 = load i64, ptr %29, align 8, !tbaa !9
  %1244 = sub nsw i64 %1242, %1243
  store i64 %1244, ptr %24, align 8, !tbaa !9
  store i64 1, ptr %28, align 8, !tbaa !9
  br label %1245

1245:                                             ; preds = %1266, %1240
  %1246 = load i64, ptr %28, align 8, !tbaa !9
  %1247 = load i64, ptr %24, align 8, !tbaa !9
  %1248 = icmp sle i64 %1246, %1247
  br i1 %1248, label %1249, label %1269

1249:                                             ; preds = %1245
  %1250 = load ptr, ptr %17, align 8, !tbaa !5
  %1251 = load i64, ptr %30, align 8, !tbaa !9
  %1252 = load i64, ptr %28, align 8, !tbaa !9
  %1253 = add nsw i64 %1251, %1252
  %1254 = getelementptr inbounds float, ptr %1250, i64 %1253
  %1255 = load float, ptr %1254, align 4, !tbaa !11
  %1256 = load float, ptr %44, align 4, !tbaa !11
  %1257 = fmul float %1255, %1256
  %1258 = load ptr, ptr %18, align 8, !tbaa !5
  %1259 = load i64, ptr %29, align 8, !tbaa !9
  %1260 = load i64, ptr %28, align 8, !tbaa !9
  %1261 = add nsw i64 %1259, %1260
  %1262 = getelementptr inbounds float, ptr %1258, i64 %1261
  %1263 = load float, ptr %1262, align 4, !tbaa !11
  %1264 = load float, ptr %42, align 4, !tbaa !11
  %1265 = call float @llvm.fmuladd.f32(float %1257, float %1263, float %1264)
  store float %1265, ptr %42, align 4, !tbaa !11
  br label %1266

1266:                                             ; preds = %1249
  %1267 = load i64, ptr %28, align 8, !tbaa !9
  %1268 = add nsw i64 %1267, 1
  store i64 %1268, ptr %28, align 8, !tbaa !9
  br label %1245, !llvm.loop !23

1269:                                             ; preds = %1245
  br label %1270

1270:                                             ; preds = %1269, %1235
  br label %1271

1271:                                             ; preds = %1270, %1234
  br label %1272

1272:                                             ; preds = %1271, %1203
  %1273 = load float, ptr %44, align 4, !tbaa !11
  %1274 = load float, ptr %43, align 4, !tbaa !11
  %1275 = fcmp oeq float %1273, %1274
  br i1 %1275, label %1276, label %1414

1276:                                             ; preds = %1272
  %1277 = load float, ptr %42, align 4, !tbaa !11
  %1278 = load ptr, ptr %18, align 8, !tbaa !5
  %1279 = load i64, ptr %29, align 8, !tbaa !9
  %1280 = getelementptr inbounds float, ptr %1278, i64 %1279
  %1281 = load float, ptr %1280, align 4, !tbaa !11
  %1282 = fsub float %1281, %1277
  store float %1282, ptr %1280, align 4, !tbaa !11
  %1283 = load ptr, ptr %18, align 8, !tbaa !5
  %1284 = load i64, ptr %29, align 8, !tbaa !9
  %1285 = getelementptr inbounds float, ptr %1283, i64 %1284
  %1286 = load float, ptr %1285, align 4, !tbaa !11
  store float %1286, ptr %25, align 4, !tbaa !11
  %1287 = load float, ptr %25, align 4, !tbaa !11
  %1288 = fcmp oge float %1287, 0.000000e+00
  br i1 %1288, label %1289, label %1291

1289:                                             ; preds = %1276
  %1290 = load float, ptr %25, align 4, !tbaa !11
  br label %1294

1291:                                             ; preds = %1276
  %1292 = load float, ptr %25, align 4, !tbaa !11
  %1293 = fneg float %1292
  br label %1294

1294:                                             ; preds = %1291, %1289
  %1295 = phi float [ %1290, %1289 ], [ %1293, %1291 ]
  %1296 = fpext float %1295 to double
  %1297 = fptrunc double %1296 to float
  store float %1297, ptr %31, align 4, !tbaa !11
  %1298 = load i64, ptr %51, align 8, !tbaa !9
  %1299 = icmp ne i64 %1298, 0
  br i1 %1299, label %1300, label %1307

1300:                                             ; preds = %1294
  %1301 = load ptr, ptr %17, align 8, !tbaa !5
  %1302 = load i64, ptr %30, align 8, !tbaa !9
  %1303 = getelementptr inbounds float, ptr %1301, i64 %1302
  %1304 = load float, ptr %1303, align 4, !tbaa !11
  %1305 = load float, ptr %43, align 4, !tbaa !11
  %1306 = fmul float %1304, %1305
  store float %1306, ptr %39, align 4, !tbaa !11
  br label %1313

1307:                                             ; preds = %1294
  %1308 = load float, ptr %43, align 4, !tbaa !11
  store float %1308, ptr %39, align 4, !tbaa !11
  %1309 = load float, ptr %43, align 4, !tbaa !11
  %1310 = fcmp oeq float %1309, 1.000000e+00
  br i1 %1310, label %1311, label %1312

1311:                                             ; preds = %1307
  br label %1413

1312:                                             ; preds = %1307
  br label %1313

1313:                                             ; preds = %1312, %1300
  %1314 = load float, ptr %39, align 4, !tbaa !11
  %1315 = fcmp oge float %1314, 0.000000e+00
  br i1 %1315, label %1316, label %1318

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

1318:                                             ; preds = %1313
  %1319 = load float, ptr %39, 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 %33, align 4, !tbaa !11
  %1325 = load float, ptr %33, align 4, !tbaa !11
  %1326 = load float, ptr %50, align 4, !tbaa !11
  %1327 = fcmp ogt float %1325, %1326
  br i1 %1327, label %1328, label %1359

1328:                                             ; preds = %1321
  %1329 = load float, ptr %33, align 4, !tbaa !11
  %1330 = fcmp olt float %1329, 1.000000e+00
  br i1 %1330, label %1331, label %1352

1331:                                             ; preds = %1328
  %1332 = load float, ptr %31, align 4, !tbaa !11
  %1333 = load float, ptr %33, align 4, !tbaa !11
  %1334 = load float, ptr %47, align 4, !tbaa !11
  %1335 = fmul float %1333, %1334
  %1336 = fcmp ogt float %1332, %1335
  br i1 %1336, label %1337, label %1351

1337:                                             ; preds = %1331
  %1338 = load float, ptr %31, align 4, !tbaa !11
  %1339 = fdiv float 1.000000e+00, %1338
  store float %1339, ptr %32, align 4, !tbaa !11
  %1340 = load ptr, ptr %16, align 8, !tbaa !5
  %1341 = load ptr, ptr %18, align 8, !tbaa !5
  %1342 = getelementptr inbounds float, ptr %1341, i64 1
  %1343 = call i32 @f2c_sscal(ptr noundef %1340, ptr noundef %32, ptr noundef %1342, ptr noundef @c__1)
  %1344 = load float, ptr %32, align 4, !tbaa !11
  %1345 = load ptr, ptr %19, align 8, !tbaa !5
  %1346 = load float, ptr %1345, align 4, !tbaa !11
  %1347 = fmul float %1346, %1344
  store float %1347, ptr %1345, align 4, !tbaa !11
  %1348 = load float, ptr %32, align 4, !tbaa !11
  %1349 = load float, ptr %40, align 4, !tbaa !11
  %1350 = fmul float %1349, %1348
  store float %1350, ptr %40, align 4, !tbaa !11
  br label %1351

1351:                                             ; preds = %1337, %1331
  br label %1352

1352:                                             ; preds = %1351, %1328
  %1353 = load float, ptr %39, align 4, !tbaa !11
  %1354 = load ptr, ptr %18, align 8, !tbaa !5
  %1355 = load i64, ptr %29, align 8, !tbaa !9
  %1356 = getelementptr inbounds float, ptr %1354, i64 %1355
  %1357 = load float, ptr %1356, align 4, !tbaa !11
  %1358 = fdiv float %1357, %1353
  store float %1358, ptr %1356, align 4, !tbaa !11
  br label %1412

1359:                                             ; preds = %1321
  %1360 = load float, ptr %33, align 4, !tbaa !11
  %1361 = fcmp ogt float %1360, 0.000000e+00
  br i1 %1361, label %1362, label %1392

1362:                                             ; preds = %1359
  %1363 = load float, ptr %31, align 4, !tbaa !11
  %1364 = load float, ptr %33, align 4, !tbaa !11
  %1365 = load float, ptr %47, align 4, !tbaa !11
  %1366 = fmul float %1364, %1365
  %1367 = fcmp ogt float %1363, %1366
  br i1 %1367, label %1368, label %1385

1368:                                             ; preds = %1362
  %1369 = load float, ptr %33, align 4, !tbaa !11
  %1370 = load float, ptr %47, align 4, !tbaa !11
  %1371 = fmul float %1369, %1370
  %1372 = load float, ptr %31, align 4, !tbaa !11
  %1373 = fdiv float %1371, %1372
  store float %1373, ptr %32, align 4, !tbaa !11
  %1374 = load ptr, ptr %16, align 8, !tbaa !5
  %1375 = load ptr, ptr %18, align 8, !tbaa !5
  %1376 = getelementptr inbounds float, ptr %1375, i64 1
  %1377 = call i32 @f2c_sscal(ptr noundef %1374, ptr noundef %32, ptr noundef %1376, ptr noundef @c__1)
  %1378 = load float, ptr %32, align 4, !tbaa !11
  %1379 = load ptr, ptr %19, align 8, !tbaa !5
  %1380 = load float, ptr %1379, align 4, !tbaa !11
  %1381 = fmul float %1380, %1378
  store float %1381, ptr %1379, align 4, !tbaa !11
  %1382 = load float, ptr %32, align 4, !tbaa !11
  %1383 = load float, ptr %40, align 4, !tbaa !11
  %1384 = fmul float %1383, %1382
  store float %1384, ptr %40, align 4, !tbaa !11
  br label %1385

1385:                                             ; preds = %1368, %1362
  %1386 = load float, ptr %39, align 4, !tbaa !11
  %1387 = load ptr, ptr %18, align 8, !tbaa !5
  %1388 = load i64, ptr %29, align 8, !tbaa !9
  %1389 = getelementptr inbounds float, ptr %1387, i64 %1388
  %1390 = load float, ptr %1389, align 4, !tbaa !11
  %1391 = fdiv float %1390, %1386
  store float %1391, ptr %1389, align 4, !tbaa !11
  br label %1411

1392:                                             ; preds = %1359
  %1393 = load ptr, ptr %16, align 8, !tbaa !5
  %1394 = load i64, ptr %1393, align 8, !tbaa !9
  store i64 %1394, ptr %24, align 8, !tbaa !9
  store i64 1, ptr %28, align 8, !tbaa !9
  br label %1395

1395:                                             ; preds = %1403, %1392
  %1396 = load i64, ptr %28, align 8, !tbaa !9
  %1397 = load i64, ptr %24, align 8, !tbaa !9
  %1398 = icmp sle i64 %1396, %1397
  br i1 %1398, label %1399, label %1406

1399:                                             ; preds = %1395
  %1400 = load ptr, ptr %18, align 8, !tbaa !5
  %1401 = load i64, ptr %28, align 8, !tbaa !9
  %1402 = getelementptr inbounds float, ptr %1400, i64 %1401
  store float 0.000000e+00, ptr %1402, align 4, !tbaa !11
  br label %1403

1403:                                             ; preds = %1399
  %1404 = load i64, ptr %28, align 8, !tbaa !9
  %1405 = add nsw i64 %1404, 1
  store i64 %1405, ptr %28, align 8, !tbaa !9
  br label %1395, !llvm.loop !24

1406:                                             ; preds = %1395
  %1407 = load ptr, ptr %18, align 8, !tbaa !5
  %1408 = load i64, ptr %29, align 8, !tbaa !9
  %1409 = getelementptr inbounds float, ptr %1407, i64 %1408
  store float 1.000000e+00, ptr %1409, align 4, !tbaa !11
  %1410 = load ptr, ptr %19, align 8, !tbaa !5
  store float 0.000000e+00, ptr %1410, align 4, !tbaa !11
  store float 0.000000e+00, ptr %40, align 4, !tbaa !11
  br label %1411

1411:                                             ; preds = %1406, %1385
  br label %1412

1412:                                             ; preds = %1411, %1352
  br label %1413

1413:                                             ; preds = %1412, %1311
  br label %1426

1414:                                             ; preds = %1272
  %1415 = load ptr, ptr %18, align 8, !tbaa !5
  %1416 = load i64, ptr %29, align 8, !tbaa !9
  %1417 = getelementptr inbounds float, ptr %1415, i64 %1416
  %1418 = load float, ptr %1417, align 4, !tbaa !11
  %1419 = load float, ptr %39, align 4, !tbaa !11
  %1420 = fdiv float %1418, %1419
  %1421 = load float, ptr %42, align 4, !tbaa !11
  %1422 = fsub float %1420, %1421
  %1423 = load ptr, ptr %18, align 8, !tbaa !5
  %1424 = load i64, ptr %29, align 8, !tbaa !9
  %1425 = getelementptr inbounds float, ptr %1423, i64 %1424
  store float %1422, ptr %1425, align 4, !tbaa !11
  br label %1426

1426:                                             ; preds = %1414, %1413
  %1427 = load float, ptr %40, align 4, !tbaa !11
  store float %1427, ptr %26, align 4, !tbaa !11
  %1428 = load ptr, ptr %18, align 8, !tbaa !5
  %1429 = load i64, ptr %29, align 8, !tbaa !9
  %1430 = getelementptr inbounds float, ptr %1428, i64 %1429
  %1431 = load float, ptr %1430, align 4, !tbaa !11
  store float %1431, ptr %25, align 4, !tbaa !11
  %1432 = load float, ptr %25, align 4, !tbaa !11
  %1433 = fcmp oge float %1432, 0.000000e+00
  br i1 %1433, label %1434, label %1436

1434:                                             ; preds = %1426
  %1435 = load float, ptr %25, align 4, !tbaa !11
  br label %1439

1436:                                             ; preds = %1426
  %1437 = load float, ptr %25, align 4, !tbaa !11
  %1438 = fneg float %1437
  br label %1439

1439:                                             ; preds = %1436, %1434
  %1440 = phi float [ %1435, %1434 ], [ %1438, %1436 ]
  %1441 = fpext float %1440 to double
  %1442 = fptrunc double %1441 to float
  store float %1442, ptr %27, align 4, !tbaa !11
  %1443 = load float, ptr %26, align 4, !tbaa !11
  %1444 = load float, ptr %27, align 4, !tbaa !11
  %1445 = fcmp oge float %1443, %1444
  br i1 %1445, label %1446, label %1448

1446:                                             ; preds = %1439
  %1447 = load float, ptr %26, align 4, !tbaa !11
  br label %1450

1448:                                             ; preds = %1439
  %1449 = load float, ptr %27, align 4, !tbaa !11
  br label %1450

1450:                                             ; preds = %1448, %1446
  %1451 = phi float [ %1447, %1446 ], [ %1449, %1448 ]
  %1452 = fpext float %1451 to double
  %1453 = fptrunc double %1452 to float
  store float %1453, ptr %40, align 4, !tbaa !11
  %1454 = load i64, ptr %35, align 8, !tbaa !9
  %1455 = add nsw i64 %1454, 1
  store i64 %1455, ptr %35, align 8, !tbaa !9
  %1456 = load i64, ptr %34, align 8, !tbaa !9
  %1457 = load i64, ptr %35, align 8, !tbaa !9
  %1458 = mul nsw i64 %1456, %1457
  %1459 = load i64, ptr %30, align 8, !tbaa !9
  %1460 = add nsw i64 %1459, %1458
  store i64 %1460, ptr %30, align 8, !tbaa !9
  br label %1461

1461:                                             ; preds = %1450
  %1462 = load i64, ptr %22, align 8, !tbaa !9
  %1463 = load i64, ptr %29, align 8, !tbaa !9
  %1464 = add nsw i64 %1463, %1462
  store i64 %1464, ptr %29, align 8, !tbaa !9
  br label %1048, !llvm.loop !25

1465:                                             ; preds = %1061
  br label %1466

1466:                                             ; preds = %1465, %1038
  %1467 = load float, ptr %43, align 4, !tbaa !11
  %1468 = load ptr, ptr %19, align 8, !tbaa !5
  %1469 = load float, ptr %1468, align 4, !tbaa !11
  %1470 = fdiv float %1469, %1467
  store float %1470, ptr %1468, align 4, !tbaa !11
  br label %1471

1471:                                             ; preds = %1466, %649
  %1472 = load float, ptr %43, align 4, !tbaa !11
  %1473 = fcmp une float %1472, 1.000000e+00
  br i1 %1473, label %1474, label %1481

1474:                                             ; preds = %1471
  %1475 = load float, ptr %43, align 4, !tbaa !11
  %1476 = fdiv float 1.000000e+00, %1475
  store float %1476, ptr %25, align 4, !tbaa !11
  %1477 = load ptr, ptr %16, align 8, !tbaa !5
  %1478 = load ptr, ptr %20, align 8, !tbaa !5
  %1479 = getelementptr inbounds float, ptr %1478, i64 1
  %1480 = call i32 @f2c_sscal(ptr noundef %1477, ptr noundef %25, ptr noundef %1479, ptr noundef @c__1)
  br label %1481

1481:                                             ; preds = %1474, %1471
  store i32 0, ptr %11, align 4
  store i32 1, ptr %52, align 4
  br label %1482

1482:                                             ; preds = %1481, %129, %120
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 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 4, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 8, 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
  %1483 = load i32, ptr %11, align 4
  ret i32 %1483
}

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = distinct !{!20, !14}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}
!23 = distinct !{!23, !14}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !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
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [10 x i8], align 1
@c__1 = external hidden global i64, align 8
@c_b36 = external hidden global float, align 4

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @slatps_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr nocapture noundef %9) local_unnamed_addr #0 {
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca float, align 4
  %15 = alloca float, align 4
  %16 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #5
  %17 = getelementptr inbounds i8, ptr %8, i64 -4
  %18 = getelementptr inbounds i8, ptr %6, i64 -4
  %19 = getelementptr inbounds i8, ptr %5, i64 -4
  store i64 0, ptr %9, align 8, !tbaa !5
  %20 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #5
  %21 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #5
  %22 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #5
  %.not.not.not = icmp eq i64 %20, 0
  br i1 %.not.not.not, label %23, label %25

23:                                               ; preds = %10
  %24 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #5
  %.not539 = icmp eq i64 %24, 0
  br i1 %.not539, label %.thread.sink.split, label %25

25:                                               ; preds = %23, %10
  %.not540 = icmp eq i64 %21, 0
  br i1 %.not540, label %26, label %30

26:                                               ; preds = %25
  %27 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #5
  %.not541 = icmp eq i64 %27, 0
  br i1 %.not541, label %28, label %30

28:                                               ; preds = %26
  %29 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #5
  %.not542 = icmp eq i64 %29, 0
  br i1 %.not542, label %.thread.sink.split, label %30

30:                                               ; preds = %28, %26, %25
  %.not543 = icmp eq i64 %22, 0
  br i1 %.not543, label %31, label %33

31:                                               ; preds = %30
  %32 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #5
  %.not544 = icmp eq i64 %32, 0
  br i1 %.not544, label %.thread.sink.split, label %33

33:                                               ; preds = %31, %30
  %34 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.5) #5
  %.not545 = icmp eq i64 %34, 0
  br i1 %.not545, label %35, label %37

35:                                               ; preds = %33
  %36 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #5
  %.not546 = icmp eq i64 %36, 0
  br i1 %.not546, label %.thread.sink.split, label %37

37:                                               ; preds = %35, %33
  %38 = load i64, ptr %4, align 8, !tbaa !5
  %39 = icmp slt i64 %38, 0
  br i1 %39, label %.thread.sink.split, label %40

40:                                               ; preds = %37
  %.pr = load i64, ptr %9, align 8, !tbaa !5
  %.not547 = icmp eq i64 %.pr, 0
  br i1 %.not547, label %44, label %.thread

.thread.sink.split:                               ; preds = %37, %35, %31, %28, %23
  %.sink = phi i64 [ -1, %23 ], [ -2, %28 ], [ -3, %31 ], [ -4, %35 ], [ -5, %37 ]
  store i64 %.sink, ptr %9, align 8, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %40
  %41 = phi i64 [ %.pr, %40 ], [ %.sink, %.thread.sink.split ]
  %42 = sub nsw i64 0, %41
  store i64 %42, ptr %11, align 8, !tbaa !5
  %43 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %11) #5
  br label %556

44:                                               ; preds = %40
  %45 = icmp eq i64 %38, 0
  br i1 %45, label %556, label %46

46:                                               ; preds = %44
  %47 = tail call double @slamch_(ptr noundef nonnull @.str.7) #5
  %48 = tail call double @slamch_(ptr noundef nonnull @.str.8) #5
  %49 = fdiv double %47, %48
  %50 = fptrunc double %49 to float
  %51 = fdiv float 1.000000e+00, %50
  store float 1.000000e+00, ptr %7, align 4, !tbaa !9
  %52 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #5
  %.not548 = icmp eq i64 %52, 0
  br i1 %.not548, label %.loopexit588, label %53

53:                                               ; preds = %46
  %54 = load i64, ptr %4, align 8, !tbaa !5
  br i1 %.not.not.not, label %63, label %55

55:                                               ; preds = %53
  store i64 %54, ptr %11, align 8, !tbaa !5
  %.not550591 = icmp slt i64 %54, 1
  br i1 %.not550591, label %.loopexit588, label %.lr.ph

.lr.ph:                                           ; preds = %55, %.lr.ph
  %.0486593 = phi i64 [ %62, %.lr.ph ], [ 1, %55 ]
  %.0504592 = phi i64 [ %61, %.lr.ph ], [ 1, %55 ]
  %56 = add nsw i64 %.0486593, -1
  store i64 %56, ptr %12, align 8, !tbaa !5
  %57 = getelementptr inbounds float, ptr %19, i64 %.0504592
  %58 = call double @f2c_sasum(ptr noundef nonnull %12, ptr noundef nonnull %57, ptr noundef nonnull @c__1) #5
  %59 = fptrunc double %58 to float
  %60 = getelementptr inbounds float, ptr %17, i64 %.0486593
  store float %59, ptr %60, align 4, !tbaa !9
  %61 = add nuw nsw i64 %.0486593, %.0504592
  %62 = add nuw nsw i64 %.0486593, 1
  %.not550.not = icmp slt i64 %.0486593, %54
  br i1 %.not550.not, label %.lr.ph, label %.loopexit588, !llvm.loop !11

63:                                               ; preds = %53
  %64 = add nsw i64 %54, -1
  store i64 %64, ptr %11, align 8, !tbaa !5
  %.not549594 = icmp slt i64 %54, 2
  br i1 %.not549594, label %._crit_edge, label %.lr.ph597

.lr.ph597:                                        ; preds = %63, %.lr.ph597
  %65 = phi i64 [ %71, %.lr.ph597 ], [ %54, %63 ]
  %.1487596 = phi i64 [ %75, %.lr.ph597 ], [ 1, %63 ]
  %.1505595 = phi i64 [ %74, %.lr.ph597 ], [ 1, %63 ]
  %66 = sub nsw i64 %65, %.1487596
  store i64 %66, ptr %12, align 8, !tbaa !5
  %67 = getelementptr float, ptr %5, i64 %.1505595
  %68 = call double @f2c_sasum(ptr noundef nonnull %12, ptr noundef %67, ptr noundef nonnull @c__1) #5
  %69 = fptrunc double %68 to float
  %70 = getelementptr inbounds float, ptr %17, i64 %.1487596
  store float %69, ptr %70, align 4, !tbaa !9
  %71 = load i64, ptr %4, align 8, !tbaa !5
  %72 = add i64 %.1505595, 1
  %73 = sub i64 %72, %.1487596
  %74 = add i64 %73, %71
  %75 = add nuw nsw i64 %.1487596, 1
  %.not549.not = icmp slt i64 %.1487596, %64
  br i1 %.not549.not, label %.lr.ph597, label %._crit_edge, !llvm.loop !13

._crit_edge:                                      ; preds = %.lr.ph597, %63
  %76 = phi i64 [ %54, %63 ], [ %71, %.lr.ph597 ]
  %77 = getelementptr inbounds float, ptr %17, i64 %76
  store float 0.000000e+00, ptr %77, align 4, !tbaa !9
  br label %.loopexit588

.loopexit588:                                     ; preds = %.lr.ph, %55, %._crit_edge, %46
  %78 = call i64 @f2c_isamax(ptr noundef nonnull %4, ptr noundef %8, ptr noundef nonnull @c__1) #5
  %79 = getelementptr inbounds float, ptr %17, i64 %78
  %80 = load float, ptr %79, align 4, !tbaa !9
  %81 = fcmp ugt float %80, %51
  br i1 %81, label %83, label %82

82:                                               ; preds = %.loopexit588
  store float 1.000000e+00, ptr %16, align 4, !tbaa !9
  br label %87

83:                                               ; preds = %.loopexit588
  %84 = fmul float %80, %50
  %85 = fdiv float 1.000000e+00, %84
  store float %85, ptr %16, align 4, !tbaa !9
  %86 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef nonnull %8, ptr noundef nonnull @c__1) #5
  br label %87

87:                                               ; preds = %83, %82
  %88 = call i64 @f2c_isamax(ptr noundef nonnull %4, ptr noundef %6, ptr noundef nonnull @c__1) #5
  %89 = getelementptr inbounds float, ptr %18, i64 %88
  %90 = load float, ptr %89, align 4, !tbaa !9
  store float %90, ptr %14, align 4, !tbaa !9
  %91 = fcmp oge float %90, 0.000000e+00
  %92 = fneg float %90
  %93 = select i1 %91, float %90, float %92
  %94 = load i64, ptr %4, align 8, !tbaa !5
  %95 = load float, ptr %16, align 4, !tbaa !9
  %96 = fcmp une float %95, 1.000000e+00
  br i1 %.not540, label %150, label %97

97:                                               ; preds = %87
  %. = select i1 %.not.not.not, i64 1, i64 -1
  %.700 = select i1 %.not.not.not, i64 %94, i64 1
  %.701 = select i1 %.not.not.not, i64 1, i64 %94
  br i1 %96, label %.loopexit584, label %98

98:                                               ; preds = %97
  br i1 %.not543, label %132, label %99

99:                                               ; preds = %98
  %100 = fcmp oge float %93, %50
  %101 = select i1 %100, float %93, float %50
  %102 = fdiv float 1.000000e+00, %101
  store i64 %., ptr %12, align 8, !tbaa !5
  %103 = icmp sge i64 %.701, %.700
  %104 = icmp sle i64 %.701, %.700
  %.in556598 = select i1 %.not.not.not, i1 %104, i1 %103
  br i1 %.in556598, label %.lr.ph605.preheader, label %.loopexit584

.lr.ph605.preheader:                              ; preds = %99
  %105 = add nsw i64 %.701, 1
  %106 = mul nsw i64 %105, %.701
  %107 = sdiv i64 %106, 2
  br label %.lr.ph605

.lr.ph605:                                        ; preds = %.lr.ph605.preheader, %109
  %.0467603 = phi float [ %.1468, %109 ], [ %102, %.lr.ph605.preheader ]
  %.2488602 = phi i64 [ %129, %109 ], [ %.701, %.lr.ph605.preheader ]
  %.0494601 = phi float [ %119, %109 ], [ %102, %.lr.ph605.preheader ]
  %.0497600 = phi i64 [ %128, %109 ], [ %94, %.lr.ph605.preheader ]
  %.2506599 = phi i64 [ %127, %109 ], [ %107, %.lr.ph605.preheader ]
  %108 = fcmp ugt float %.0467603, %50
  br i1 %108, label %109, label %.loopexit584

109:                                              ; preds = %.lr.ph605
  %110 = getelementptr inbounds float, ptr %19, i64 %.2506599
  %111 = load float, ptr %110, align 4, !tbaa !9
  %112 = fcmp oge float %111, 0.000000e+00
  %113 = fneg float %111
  %114 = select i1 %112, float %111, float %113
  store float %.0494601, ptr %14, align 4, !tbaa !9
  %115 = fcmp oge float %114, 1.000000e+00
  %116 = select i1 %115, float 1.000000e+00, float %114
  %117 = fmul float %.0467603, %116
  %118 = fcmp ole float %.0494601, %117
  %119 = select i1 %118, float %.0494601, float %117
  %120 = getelementptr inbounds float, ptr %17, i64 %.2488602
  %121 = load float, ptr %120, align 4, !tbaa !9
  %122 = fadd float %114, %121
  %123 = fcmp ult float %122, %50
  %124 = fdiv float %114, %122
  %125 = fmul float %.0467603, %124
  %.1468 = select i1 %123, float 0.000000e+00, float %125
  %126 = mul nsw i64 %.0497600, %.
  %127 = add nsw i64 %126, %.2506599
  %128 = add nsw i64 %.0497600, -1
  %129 = add nsw i64 %.2488602, %.
  %130 = icmp sge i64 %129, %.700
  %131 = icmp sle i64 %129, %.700
  %.in556 = select i1 %.not.not.not, i1 %131, i1 %130
  br i1 %.in556, label %.lr.ph605, label %.loopexit584, !llvm.loop !14

132:                                              ; preds = %98
  store float 1.000000e+00, ptr %14, align 4, !tbaa !9
  %133 = fcmp oge float %93, %50
  %134 = select i1 %133, float %93, float %50
  %135 = fdiv float 1.000000e+00, %134
  %136 = fcmp oge float %135, 1.000000e+00
  %137 = select i1 %136, float 1.000000e+00, float %135
  store i64 %.700, ptr %12, align 8, !tbaa !5
  %138 = icmp sge i64 %.701, %.700
  %139 = icmp sle i64 %.701, %.700
  %.in555608 = select i1 %.not.not.not, i1 %139, i1 %138
  %140 = fcmp ugt float %137, %50
  %or.cond609 = select i1 %.in555608, i1 %140, i1 false
  br i1 %or.cond609, label %.lr.ph613, label %.loopexit584

.lr.ph613:                                        ; preds = %132, %.lr.ph613
  %.2469611 = phi float [ %145, %.lr.ph613 ], [ %137, %132 ]
  %.3489610 = phi i64 [ %146, %.lr.ph613 ], [ %.701, %132 ]
  %141 = getelementptr inbounds float, ptr %17, i64 %.3489610
  %142 = load float, ptr %141, align 4, !tbaa !9
  %143 = fadd float %142, 1.000000e+00
  %144 = fdiv float 1.000000e+00, %143
  %145 = fmul float %.2469611, %144
  %146 = add nsw i64 %.3489610, %.
  %147 = icmp sge i64 %146, %.700
  %148 = icmp sle i64 %146, %.700
  %.in555 = select i1 %.not.not.not, i1 %148, i1 %147
  %149 = fcmp ugt float %145, %50
  %or.cond = select i1 %.in555, i1 %149, i1 false
  br i1 %or.cond, label %.lr.ph613, label %.loopexit584, !llvm.loop !15

150:                                              ; preds = %87
  %.702 = select i1 %.not.not.not, i64 -1, i64 1
  %.703 = select i1 %.not.not.not, i64 1, i64 %94
  %.704 = select i1 %.not.not.not, i64 %94, i64 1
  br i1 %96, label %.loopexit584, label %151

151:                                              ; preds = %150
  br i1 %.not543, label %185, label %152

152:                                              ; preds = %151
  %153 = fcmp oge float %93, %50
  %154 = select i1 %153, float %93, float %50
  %155 = fdiv float 1.000000e+00, %154
  store i64 %.703, ptr %11, align 8, !tbaa !5
  store i64 %.702, ptr %12, align 8, !tbaa !5
  %156 = icmp sge i64 %.704, %.703
  %157 = icmp sle i64 %.704, %.703
  %.in553615 = select i1 %.not.not.not, i1 %156, i1 %157
  br i1 %.in553615, label %.lr.ph622.preheader, label %._crit_edge623

.lr.ph622.preheader:                              ; preds = %152
  %158 = add nsw i64 %.704, 1
  %159 = mul nsw i64 %158, %.704
  %160 = sdiv i64 %159, 2
  br label %.lr.ph622

.lr.ph622:                                        ; preds = %.lr.ph622.preheader, %162
  %.3620 = phi float [ %168, %162 ], [ %155, %.lr.ph622.preheader ]
  %.4490619 = phi i64 [ %180, %162 ], [ %.704, %.lr.ph622.preheader ]
  %.1495618 = phi float [ %.2496, %162 ], [ %155, %.lr.ph622.preheader ]
  %.1498617 = phi i64 [ %177, %162 ], [ 1, %.lr.ph622.preheader ]
  %.3507616 = phi i64 [ %179, %162 ], [ %160, %.lr.ph622.preheader ]
  %161 = fcmp ugt float %.3620, %50
  br i1 %161, label %162, label %.loopexit584

162:                                              ; preds = %.lr.ph622
  %163 = getelementptr inbounds float, ptr %17, i64 %.4490619
  %164 = load float, ptr %163, align 4, !tbaa !9
  %165 = fadd float %164, 1.000000e+00
  %166 = fdiv float %.1495618, %165
  %167 = fcmp ole float %.3620, %166
  %168 = select i1 %167, float %.3620, float %166
  %169 = getelementptr inbounds float, ptr %19, i64 %.3507616
  %170 = load float, ptr %169, align 4, !tbaa !9
  store float %170, ptr %14, align 4, !tbaa !9
  %171 = fcmp oge float %170, 0.000000e+00
  %172 = fneg float %170
  %173 = select i1 %171, float %170, float %172
  %174 = fcmp ogt float %165, %173
  %175 = fdiv float %173, %165
  %176 = fmul float %.1495618, %175
  %.2496 = select i1 %174, float %176, float %.1495618
  %177 = add nuw nsw i64 %.1498617, 1
  %178 = mul nsw i64 %177, %.702
  %179 = add nsw i64 %178, %.3507616
  %180 = add nsw i64 %.4490619, %.702
  %181 = icmp sge i64 %180, %.703
  %182 = icmp sle i64 %180, %.703
  %.in553 = select i1 %.not.not.not, i1 %181, i1 %182
  br i1 %.in553, label %.lr.ph622, label %._crit_edge623, !llvm.loop !16

._crit_edge623:                                   ; preds = %162, %152
  %.1495.lcssa = phi float [ %155, %152 ], [ %.2496, %162 ]
  %.3.lcssa = phi float [ %155, %152 ], [ %168, %162 ]
  %183 = fcmp ole float %.3.lcssa, %.1495.lcssa
  %184 = select i1 %183, float %.3.lcssa, float %.1495.lcssa
  br label %.loopexit584

185:                                              ; preds = %151
  store float 1.000000e+00, ptr %14, align 4, !tbaa !9
  %186 = fcmp oge float %93, %50
  %187 = select i1 %186, float %93, float %50
  %188 = fdiv float 1.000000e+00, %187
  %189 = fcmp oge float %188, 1.000000e+00
  %190 = select i1 %189, float 1.000000e+00, float %188
  store i64 %.703, ptr %12, align 8, !tbaa !5
  %191 = icmp sge i64 %.704, %.703
  %192 = icmp sle i64 %.704, %.703
  %.in626 = select i1 %.not.not.not, i1 %191, i1 %192
  %193 = fcmp ugt float %190, %50
  %or.cond566627 = select i1 %.in626, i1 %193, i1 false
  br i1 %or.cond566627, label %.lr.ph631, label %.loopexit584

.lr.ph631:                                        ; preds = %185, %.lr.ph631
  %.4629 = phi float [ %197, %.lr.ph631 ], [ %190, %185 ]
  %.5491628 = phi i64 [ %198, %.lr.ph631 ], [ %.704, %185 ]
  %194 = getelementptr inbounds float, ptr %17, i64 %.5491628
  %195 = load float, ptr %194, align 4, !tbaa !9
  %196 = fadd float %195, 1.000000e+00
  %197 = fdiv float %.4629, %196
  %198 = add nsw i64 %.5491628, %.702
  %199 = icmp sge i64 %198, %.703
  %200 = icmp sle i64 %198, %.703
  %.in = select i1 %.not.not.not, i1 %199, i1 %200
  %201 = fcmp ugt float %197, %50
  %or.cond566 = select i1 %.in, i1 %201, i1 false
  br i1 %or.cond566, label %.lr.ph631, label %.loopexit584, !llvm.loop !17

.loopexit584:                                     ; preds = %.lr.ph605, %109, %.lr.ph613, %.lr.ph622, %.lr.ph631, %99, %132, %185, %150, %97, %._crit_edge623
  %202 = phi float [ 1.000000e+00, %._crit_edge623 ], [ %95, %97 ], [ %95, %150 ], [ 1.000000e+00, %185 ], [ 1.000000e+00, %132 ], [ 1.000000e+00, %99 ], [ 1.000000e+00, %.lr.ph631 ], [ 1.000000e+00, %.lr.ph622 ], [ 1.000000e+00, %.lr.ph613 ], [ 1.000000e+00, %109 ], [ 1.000000e+00, %.lr.ph605 ]
  %203 = phi i64 [ %.702, %._crit_edge623 ], [ %., %97 ], [ %.702, %150 ], [ %.702, %185 ], [ %., %132 ], [ %., %99 ], [ %.702, %.lr.ph631 ], [ %.702, %.lr.ph622 ], [ %., %.lr.ph613 ], [ %., %109 ], [ %., %.lr.ph605 ]
  %.5 = phi float [ %184, %._crit_edge623 ], [ 0.000000e+00, %97 ], [ 0.000000e+00, %150 ], [ %190, %185 ], [ %137, %132 ], [ %102, %99 ], [ %197, %.lr.ph631 ], [ %.3620, %.lr.ph622 ], [ %145, %.lr.ph613 ], [ %.0467603, %.lr.ph605 ], [ %119, %109 ]
  %204 = phi i64 [ %.703, %._crit_edge623 ], [ %.700, %97 ], [ %.703, %150 ], [ %.703, %185 ], [ %.700, %132 ], [ %.700, %99 ], [ %.703, %.lr.ph631 ], [ %.703, %.lr.ph622 ], [ %.700, %.lr.ph613 ], [ %.700, %109 ], [ %.700, %.lr.ph605 ]
  %.2 = phi i64 [ %.704, %._crit_edge623 ], [ %.701, %97 ], [ %.704, %150 ], [ %.704, %185 ], [ %.701, %132 ], [ %.701, %99 ], [ %.704, %.lr.ph631 ], [ %.704, %.lr.ph622 ], [ %.701, %.lr.ph613 ], [ %.701, %109 ], [ %.701, %.lr.ph605 ]
  %205 = fmul float %.5, %202
  %206 = fcmp ogt float %205, %50
  br i1 %206, label %207, label %209

207:                                              ; preds = %.loopexit584
  %208 = call i32 @f2c_stpsv(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %4, ptr noundef %5, ptr noundef %6, ptr noundef nonnull @c__1) #5
  %.pr580 = load float, ptr %16, align 4, !tbaa !9
  br label %550

209:                                              ; preds = %.loopexit584
  %210 = fcmp ogt float %93, %51
  br i1 %210, label %211, label %214

211:                                              ; preds = %209
  %212 = fdiv float %51, %93
  store float %212, ptr %7, align 4, !tbaa !9
  %213 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %7, ptr noundef %6, ptr noundef nonnull @c__1) #5
  br label %214

214:                                              ; preds = %211, %209
  %.0470 = phi float [ %51, %211 ], [ %93, %209 ]
  %215 = icmp slt i64 %203, 0
  %216 = icmp sge i64 %.2, %204
  %217 = icmp sle i64 %.2, %204
  %.in557661 = select i1 %215, i1 %216, i1 %217
  br i1 %.not540, label %359, label %218

218:                                              ; preds = %214
  store i64 %203, ptr %12, align 8, !tbaa !5
  br i1 %.in557661, label %.lr.ph643, label %.loopexit582

.lr.ph643:                                        ; preds = %218
  %219 = add nsw i64 %.2, 1
  %220 = mul nsw i64 %219, %.2
  %221 = sdiv i64 %220, 2
  br label %222

222:                                              ; preds = %.lr.ph643, %353
  %.1471641 = phi float [ %.0470, %.lr.ph643 ], [ %.7, %353 ]
  %.6492639 = phi i64 [ %.2, %.lr.ph643 ], [ %355, %353 ]
  %.4508638 = phi i64 [ %221, %.lr.ph643 ], [ %.5509, %353 ]
  %223 = getelementptr inbounds float, ptr %18, i64 %.6492639
  %224 = load float, ptr %223, align 4, !tbaa !9
  store float %224, ptr %14, align 4, !tbaa !9
  %225 = fcmp oge float %224, 0.000000e+00
  %226 = fneg float %224
  %227 = select i1 %225, float %224, float %226
  br i1 %.not543, label %233, label %228

228:                                              ; preds = %222
  %229 = getelementptr inbounds float, ptr %19, i64 %.4508638
  %230 = load float, ptr %229, align 4, !tbaa !9
  %231 = load float, ptr %16, align 4, !tbaa !9
  %232 = fmul float %230, %231
  br label %236

233:                                              ; preds = %222
  %234 = load float, ptr %16, align 4, !tbaa !9
  %235 = fcmp oeq float %234, 1.000000e+00
  br i1 %235, label %285, label %236

236:                                              ; preds = %233, %228
  %.0476 = phi float [ %232, %228 ], [ %234, %233 ]
  %237 = fcmp oge float %.0476, 0.000000e+00
  %238 = fneg float %.0476
  %239 = select i1 %237, float %.0476, float %238
  %240 = fcmp ogt float %239, %50
  br i1 %240, label %241, label %258

241:                                              ; preds = %236
  %242 = fcmp olt float %239, 1.000000e+00
  %243 = fmul float %51, %239
  %244 = fcmp ogt float %227, %243
  %or.cond568 = select i1 %242, i1 %244, i1 false
  br i1 %or.cond568, label %245, label %252

245:                                              ; preds = %241
  %246 = fdiv float 1.000000e+00, %227
  store float %246, ptr %15, align 4, !tbaa !9
  %247 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #5
  %248 = load float, ptr %15, align 4, !tbaa !9
  %249 = load float, ptr %7, align 4, !tbaa !9
  %250 = fmul float %248, %249
  store float %250, ptr %7, align 4, !tbaa !9
  %251 = fmul float %.1471641, %248
  %.pre682 = load float, ptr %223, align 4, !tbaa !9
  br label %252

252:                                              ; preds = %245, %241
  %253 = phi float [ %.pre682, %245 ], [ %224, %241 ]
  %.2472 = phi float [ %251, %245 ], [ %.1471641, %241 ]
  %254 = fdiv float %253, %.0476
  store float %254, ptr %223, align 4, !tbaa !9
  store float %254, ptr %14, align 4, !tbaa !9
  %255 = fcmp oge float %254, 0.000000e+00
  %256 = fneg float %254
  %257 = select i1 %255, float %254, float %256
  br label %285

258:                                              ; preds = %236
  %259 = fcmp ogt float %239, 0.000000e+00
  br i1 %259, label %260, label %282

260:                                              ; preds = %258
  %261 = fmul float %51, %239
  %262 = fcmp ogt float %227, %261
  br i1 %262, label %263, label %276

263:                                              ; preds = %260
  %264 = fdiv float %261, %227
  store float %264, ptr %15, align 4, !tbaa !9
  %265 = getelementptr inbounds float, ptr %17, i64 %.6492639
  %266 = load float, ptr %265, align 4, !tbaa !9
  %267 = fcmp ogt float %266, 1.000000e+00
  br i1 %267, label %268, label %270

268:                                              ; preds = %263
  %269 = fdiv float %264, %266
  store float %269, ptr %15, align 4, !tbaa !9
  br label %270

270:                                              ; preds = %268, %263
  %271 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #5
  %272 = load float, ptr %15, align 4, !tbaa !9
  %273 = load float, ptr %7, align 4, !tbaa !9
  %274 = fmul float %272, %273
  store float %274, ptr %7, align 4, !tbaa !9
  %275 = fmul float %.1471641, %272
  %.pre = load float, ptr %223, align 4, !tbaa !9
  br label %276

276:                                              ; preds = %270, %260
  %277 = phi float [ %.pre, %270 ], [ %224, %260 ]
  %.3473 = phi float [ %275, %270 ], [ %.1471641, %260 ]
  %278 = fdiv float %277, %.0476
  store float %278, ptr %223, align 4, !tbaa !9
  store float %278, ptr %14, align 4, !tbaa !9
  %279 = fcmp oge float %278, 0.000000e+00
  %280 = fneg float %278
  %281 = select i1 %279, float %278, float %280
  br label %285

282:                                              ; preds = %258
  %283 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %283, ptr %13, align 8, !tbaa !5
  %.not565633 = icmp slt i64 %283, 1
  br i1 %.not565633, label %.thread572, label %.lr.ph636.preheader

.lr.ph636.preheader:                              ; preds = %282
  %284 = shl nuw i64 %283, 2
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %6, i8 0, i64 %284, i1 false), !tbaa !9
  br label %.thread572

.thread572:                                       ; preds = %.lr.ph636.preheader, %282
  store float 1.000000e+00, ptr %223, align 4, !tbaa !9
  store float 0.000000e+00, ptr %7, align 4, !tbaa !9
  br label %300

285:                                              ; preds = %252, %276, %233
  %.0503 = phi float [ %257, %252 ], [ %281, %276 ], [ %227, %233 ]
  %.4474 = phi float [ %.2472, %252 ], [ %.3473, %276 ], [ %.1471641, %233 ]
  %286 = fcmp ogt float %.0503, 1.000000e+00
  br i1 %286, label %287, label %300

287:                                              ; preds = %285
  %288 = fdiv float 1.000000e+00, %.0503
  store float %288, ptr %15, align 4, !tbaa !9
  %289 = getelementptr inbounds float, ptr %17, i64 %.6492639
  %290 = load float, ptr %289, align 4, !tbaa !9
  %291 = fsub float %51, %.4474
  %292 = fmul float %288, %291
  %293 = fcmp ogt float %290, %292
  br i1 %293, label %294, label %310

294:                                              ; preds = %287
  %295 = fmul float %288, 5.000000e-01
  store float %295, ptr %15, align 4, !tbaa !9
  %296 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #5
  %297 = load float, ptr %15, align 4, !tbaa !9
  %298 = load float, ptr %7, align 4, !tbaa !9
  %299 = fmul float %297, %298
  br label %.sink.split

300:                                              ; preds = %.thread572, %285
  %.4474577 = phi float [ 0.000000e+00, %.thread572 ], [ %.4474, %285 ]
  %.0503575 = phi float [ 1.000000e+00, %.thread572 ], [ %.0503, %285 ]
  %301 = getelementptr inbounds float, ptr %17, i64 %.6492639
  %302 = load float, ptr %301, align 4, !tbaa !9
  %303 = fmul float %.0503575, %302
  %304 = fsub float %51, %.4474577
  %305 = fcmp ogt float %303, %304
  br i1 %305, label %306, label %310

306:                                              ; preds = %300
  %307 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull @c_b36, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #5
  %308 = load float, ptr %7, align 4, !tbaa !9
  %309 = fmul float %308, 5.000000e-01
  br label %.sink.split

.sink.split:                                      ; preds = %294, %306
  %.sink705 = phi float [ %309, %306 ], [ %299, %294 ]
  %.4474576.ph = phi float [ %.4474577, %306 ], [ %.4474, %294 ]
  store float %.sink705, ptr %7, align 4, !tbaa !9
  br label %310

310:                                              ; preds = %.sink.split, %300, %287
  %.4474576 = phi float [ %.4474577, %300 ], [ %.4474, %287 ], [ %.4474576.ph, %.sink.split ]
  br i1 %.not.not.not, label %328, label %311

311:                                              ; preds = %310
  %312 = icmp sgt i64 %.6492639, 1
  br i1 %312, label %313, label %._crit_edge687

._crit_edge687:                                   ; preds = %311
  %.pre688 = sub nsw i64 %.4508638, %.6492639
  br label %353

313:                                              ; preds = %311
  %314 = add nsw i64 %.6492639, -1
  store i64 %314, ptr %13, align 8, !tbaa !5
  %315 = load float, ptr %223, align 4, !tbaa !9
  %316 = fneg float %315
  %317 = load float, ptr %16, align 4, !tbaa !9
  %318 = fmul float %317, %316
  store float %318, ptr %14, align 4, !tbaa !9
  %319 = sub nsw i64 %.4508638, %.6492639
  %320 = getelementptr float, ptr %5, i64 %319
  %321 = call i32 @f2c_saxpy(ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef %320, ptr noundef nonnull @c__1, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #5
  store i64 %314, ptr %13, align 8, !tbaa !5
  %322 = call i64 @f2c_isamax(ptr noundef nonnull %13, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #5
  %323 = getelementptr inbounds float, ptr %18, i64 %322
  %324 = load float, ptr %323, align 4, !tbaa !9
  store float %324, ptr %14, align 4, !tbaa !9
  %325 = fcmp oge float %324, 0.000000e+00
  %326 = fneg float %324
  %327 = select i1 %325, float %324, float %326
  br label %353

328:                                              ; preds = %310
  %329 = load i64, ptr %4, align 8, !tbaa !5
  %330 = icmp slt i64 %.6492639, %329
  br i1 %330, label %331, label %348

331:                                              ; preds = %328
  %332 = sub nsw i64 %329, %.6492639
  store i64 %332, ptr %13, align 8, !tbaa !5
  %333 = load float, ptr %223, align 4, !tbaa !9
  %334 = fneg float %333
  %335 = load float, ptr %16, align 4, !tbaa !9
  %336 = fmul float %335, %334
  store float %336, ptr %14, align 4, !tbaa !9
  %337 = getelementptr float, ptr %5, i64 %.4508638
  %338 = getelementptr float, ptr %6, i64 %.6492639
  %339 = call i32 @f2c_saxpy(ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef %337, ptr noundef nonnull @c__1, ptr noundef %338, ptr noundef nonnull @c__1) #5
  %340 = load i64, ptr %4, align 8, !tbaa !5
  %341 = sub nsw i64 %340, %.6492639
  store i64 %341, ptr %13, align 8, !tbaa !5
  %342 = call i64 @f2c_isamax(ptr noundef nonnull %13, ptr noundef %338, ptr noundef nonnull @c__1) #5
  %343 = getelementptr float, ptr %223, i64 %342
  %344 = load float, ptr %343, align 4, !tbaa !9
  store float %344, ptr %14, align 4, !tbaa !9
  %345 = fcmp oge float %344, 0.000000e+00
  %346 = fneg float %344
  %347 = select i1 %345, float %344, float %346
  %.pre683 = load i64, ptr %4, align 8, !tbaa !5
  br label %348

348:                                              ; preds = %331, %328
  %349 = phi i64 [ %.pre683, %331 ], [ %329, %328 ]
  %.6 = phi float [ %347, %331 ], [ %.4474576, %328 ]
  %350 = add i64 %.4508638, 1
  %351 = sub i64 %350, %.6492639
  %352 = add i64 %351, %349
  br label %353

353:                                              ; preds = %313, %._crit_edge687, %348
  %.5509 = phi i64 [ %352, %348 ], [ %.pre688, %._crit_edge687 ], [ %319, %313 ]
  %.7 = phi float [ %.6, %348 ], [ %.4474576, %._crit_edge687 ], [ %327, %313 ]
  %354 = load i64, ptr %12, align 8, !tbaa !5
  %355 = add nsw i64 %354, %.6492639
  %356 = icmp slt i64 %354, 0
  %357 = icmp sge i64 %355, %204
  %358 = icmp sle i64 %355, %204
  %.in563 = select i1 %356, i1 %357, i1 %358
  br i1 %.in563, label %222, label %.loopexit582, !llvm.loop !18

359:                                              ; preds = %214
  store i64 %204, ptr %12, align 8, !tbaa !5
  br i1 %.in557661, label %.lr.ph670, label %.loopexit582

.lr.ph670:                                        ; preds = %359
  %360 = add nsw i64 %.2, 1
  %361 = mul nsw i64 %360, %.2
  %362 = sdiv i64 %361, 2
  br label %363

363:                                              ; preds = %.lr.ph670, %533
  %indvar = phi i64 [ 0, %.lr.ph670 ], [ %indvar.next, %533 ]
  %.8668 = phi float [ %.0470, %.lr.ph670 ], [ %539, %533 ]
  %.1477667 = phi float [ undef, %.lr.ph670 ], [ %.5481, %533 ]
  %.7493665 = phi i64 [ %.2, %.lr.ph670 ], [ %543, %533 ]
  %.2499664 = phi i64 [ 1, %.lr.ph670 ], [ %540, %533 ]
  %.6510662 = phi i64 [ %362, %.lr.ph670 ], [ %542, %533 ]
  %364 = mul i64 %203, %indvar
  %365 = getelementptr inbounds float, ptr %18, i64 %.7493665
  %366 = load float, ptr %365, align 4, !tbaa !9
  store float %366, ptr %14, align 4, !tbaa !9
  %367 = fcmp oge float %366, 0.000000e+00
  %368 = fneg float %366
  %369 = select i1 %367, float %366, float %368
  %370 = load float, ptr %16, align 4, !tbaa !9
  %371 = fcmp oge float %.8668, 1.000000e+00
  %372 = select i1 %371, float %.8668, float 1.000000e+00
  %373 = fdiv float 1.000000e+00, %372
  store float %373, ptr %15, align 4, !tbaa !9
  %374 = getelementptr inbounds float, ptr %17, i64 %.7493665
  %375 = load float, ptr %374, align 4, !tbaa !9
  %376 = fsub float %51, %369
  %377 = fmul float %373, %376
  %378 = fcmp ogt float %375, %377
  br i1 %378, label %379, label %403

379:                                              ; preds = %363
  %380 = fmul float %373, 5.000000e-01
  store float %380, ptr %15, align 4, !tbaa !9
  br i1 %.not543, label %385, label %381

381:                                              ; preds = %379
  %382 = getelementptr inbounds float, ptr %19, i64 %.6510662
  %383 = load float, ptr %382, align 4, !tbaa !9
  %384 = fmul float %370, %383
  br label %385

385:                                              ; preds = %379, %381
  %.2478 = phi float [ %384, %381 ], [ %370, %379 ]
  %386 = fcmp oge float %.2478, 0.000000e+00
  %387 = fneg float %.2478
  %388 = select i1 %386, float %.2478, float %387
  %389 = fcmp ogt float %388, 1.000000e+00
  br i1 %389, label %390, label %thread-pre-split578

390:                                              ; preds = %385
  store float 1.000000e+00, ptr %14, align 4, !tbaa !9
  %391 = fmul float %380, %388
  %392 = fcmp oge float %391, 1.000000e+00
  %393 = select i1 %392, float 1.000000e+00, float %391
  store float %393, ptr %15, align 4, !tbaa !9
  %394 = fdiv float %370, %.2478
  br label %thread-pre-split578

thread-pre-split578:                              ; preds = %385, %390
  %395 = phi float [ %393, %390 ], [ %380, %385 ]
  %.0462 = phi float [ %394, %390 ], [ %370, %385 ]
  %396 = fcmp olt float %395, 1.000000e+00
  br i1 %396, label %397, label %403

397:                                              ; preds = %thread-pre-split578
  %398 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #5
  %399 = load float, ptr %15, align 4, !tbaa !9
  %400 = load float, ptr %7, align 4, !tbaa !9
  %401 = fmul float %399, %400
  store float %401, ptr %7, align 4, !tbaa !9
  %402 = fmul float %.8668, %399
  br label %403

403:                                              ; preds = %thread-pre-split578, %397, %363
  %.3479 = phi float [ %.2478, %397 ], [ %.2478, %thread-pre-split578 ], [ %.1477667, %363 ]
  %.9 = phi float [ %402, %397 ], [ %.8668, %thread-pre-split578 ], [ %.8668, %363 ]
  %.1463 = phi float [ %.0462, %397 ], [ %.0462, %thread-pre-split578 ], [ %370, %363 ]
  %404 = fcmp oeq float %.1463, 1.000000e+00
  br i1 %404, label %405, label %421

405:                                              ; preds = %403
  br i1 %.not.not.not, label %412, label %406

406:                                              ; preds = %405
  %407 = add nsw i64 %.7493665, -1
  store i64 %407, ptr %13, align 8, !tbaa !5
  %408 = sub nsw i64 %.6510662, %.7493665
  %409 = getelementptr float, ptr %5, i64 %408
  %410 = call double @f2c_sdot(ptr noundef nonnull %13, ptr noundef %409, ptr noundef nonnull @c__1, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #5
  %411 = fptrunc double %410 to float
  br label %.loopexit

412:                                              ; preds = %405
  %413 = load i64, ptr %4, align 8, !tbaa !5
  %414 = icmp slt i64 %.7493665, %413
  br i1 %414, label %415, label %.loopexit

415:                                              ; preds = %412
  %416 = sub nsw i64 %413, %.7493665
  store i64 %416, ptr %13, align 8, !tbaa !5
  %417 = getelementptr float, ptr %5, i64 %.6510662
  %418 = getelementptr float, ptr %6, i64 %.7493665
  %419 = call double @f2c_sdot(ptr noundef nonnull %13, ptr noundef %417, ptr noundef nonnull @c__1, ptr noundef %418, ptr noundef nonnull @c__1) #5
  %420 = fptrunc double %419 to float
  br label %.loopexit

421:                                              ; preds = %403
  br i1 %.not.not.not, label %434, label %422

422:                                              ; preds = %421
  %423 = add nsw i64 %.7493665, -1
  store i64 %423, ptr %13, align 8, !tbaa !5
  %.not560.not644 = icmp sgt i64 %.7493665, 1
  br i1 %.not560.not644, label %.lr.ph648, label %.loopexit

.lr.ph648:                                        ; preds = %422
  %424 = sub nsw i64 %.6510662, %.7493665
  %425 = getelementptr float, ptr %19, i64 %424
  br label %426

426:                                              ; preds = %.lr.ph648, %426
  %.0464646 = phi float [ 0.000000e+00, %.lr.ph648 ], [ %432, %426 ]
  %.1483645 = phi i64 [ 1, %.lr.ph648 ], [ %433, %426 ]
  %427 = getelementptr float, ptr %425, i64 %.1483645
  %428 = load float, ptr %427, align 4, !tbaa !9
  %429 = fmul float %.1463, %428
  %430 = getelementptr inbounds float, ptr %18, i64 %.1483645
  %431 = load float, ptr %430, align 4, !tbaa !9
  %432 = call float @llvm.fmuladd.f32(float %429, float %431, float %.0464646)
  %433 = add nuw nsw i64 %.1483645, 1
  %exitcond.not = icmp eq i64 %433, %.7493665
  br i1 %exitcond.not, label %.loopexit, label %426, !llvm.loop !19

434:                                              ; preds = %421
  %435 = load i64, ptr %4, align 8, !tbaa !5
  %436 = icmp slt i64 %.7493665, %435
  br i1 %436, label %437, label %.loopexit

437:                                              ; preds = %434
  %438 = sub nsw i64 %435, %.7493665
  store i64 %438, ptr %13, align 8, !tbaa !5
  %.not559650 = icmp slt i64 %438, 1
  br i1 %.not559650, label %.loopexit, label %.lr.ph654

.lr.ph654:                                        ; preds = %437
  %439 = getelementptr float, ptr %19, i64 %.6510662
  %xtraiter = and i64 %438, 3
  %440 = add i64 %.2, %364
  %441 = sub i64 %440, %435
  %442 = icmp ugt i64 %441, -4
  br i1 %442, label %.loopexit.loopexit.unr-lcssa, label %.lr.ph654.new

.lr.ph654.new:                                    ; preds = %.lr.ph654
  %unroll_iter = and i64 %438, 9223372036854775804
  br label %443

443:                                              ; preds = %443, %.lr.ph654.new
  %.1465652 = phi float [ 0.000000e+00, %.lr.ph654.new ], [ %470, %443 ]
  %.2484651 = phi i64 [ 1, %.lr.ph654.new ], [ %471, %443 ]
  %niter = phi i64 [ 0, %.lr.ph654.new ], [ %niter.next.3, %443 ]
  %444 = getelementptr float, ptr %439, i64 %.2484651
  %445 = load float, ptr %444, align 4, !tbaa !9
  %446 = fmul float %.1463, %445
  %447 = getelementptr float, ptr %365, i64 %.2484651
  %448 = load float, ptr %447, align 4, !tbaa !9
  %449 = call float @llvm.fmuladd.f32(float %446, float %448, float %.1465652)
  %450 = add nuw nsw i64 %.2484651, 1
  %451 = getelementptr float, ptr %439, i64 %450
  %452 = load float, ptr %451, align 4, !tbaa !9
  %453 = fmul float %.1463, %452
  %454 = getelementptr float, ptr %365, i64 %450
  %455 = load float, ptr %454, align 4, !tbaa !9
  %456 = call float @llvm.fmuladd.f32(float %453, float %455, float %449)
  %457 = add nuw nsw i64 %.2484651, 2
  %458 = getelementptr float, ptr %439, i64 %457
  %459 = load float, ptr %458, align 4, !tbaa !9
  %460 = fmul float %.1463, %459
  %461 = getelementptr float, ptr %365, i64 %457
  %462 = load float, ptr %461, align 4, !tbaa !9
  %463 = call float @llvm.fmuladd.f32(float %460, float %462, float %456)
  %464 = add nuw i64 %.2484651, 3
  %465 = getelementptr float, ptr %439, i64 %464
  %466 = load float, ptr %465, align 4, !tbaa !9
  %467 = fmul float %.1463, %466
  %468 = getelementptr float, ptr %365, i64 %464
  %469 = load float, ptr %468, align 4, !tbaa !9
  %470 = call float @llvm.fmuladd.f32(float %467, float %469, float %463)
  %471 = add nuw i64 %.2484651, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %.loopexit.loopexit.unr-lcssa, label %443, !llvm.loop !20

.loopexit.loopexit.unr-lcssa:                     ; preds = %443, %.lr.ph654
  %.lcssa718.ph = phi float [ poison, %.lr.ph654 ], [ %470, %443 ]
  %.1465652.unr = phi float [ 0.000000e+00, %.lr.ph654 ], [ %470, %443 ]
  %.2484651.unr = phi i64 [ 1, %.lr.ph654 ], [ %471, %443 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.loopexit, label %.epil.preheader

.epil.preheader:                                  ; preds = %.loopexit.loopexit.unr-lcssa, %.epil.preheader
  %.1465652.epil = phi float [ %477, %.epil.preheader ], [ %.1465652.unr, %.loopexit.loopexit.unr-lcssa ]
  %.2484651.epil = phi i64 [ %478, %.epil.preheader ], [ %.2484651.unr, %.loopexit.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.epil.preheader ], [ 0, %.loopexit.loopexit.unr-lcssa ]
  %472 = getelementptr float, ptr %439, i64 %.2484651.epil
  %473 = load float, ptr %472, align 4, !tbaa !9
  %474 = fmul float %.1463, %473
  %475 = getelementptr float, ptr %365, i64 %.2484651.epil
  %476 = load float, ptr %475, align 4, !tbaa !9
  %477 = call float @llvm.fmuladd.f32(float %474, float %476, float %.1465652.epil)
  %478 = add nuw i64 %.2484651.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %.loopexit, label %.epil.preheader, !llvm.loop !21

.loopexit:                                        ; preds = %426, %.loopexit.loopexit.unr-lcssa, %.epil.preheader, %422, %437, %434, %406, %415, %412
  %.2466 = phi float [ %411, %406 ], [ %420, %415 ], [ 0.000000e+00, %412 ], [ 0.000000e+00, %434 ], [ 0.000000e+00, %437 ], [ 0.000000e+00, %422 ], [ %.lcssa718.ph, %.loopexit.loopexit.unr-lcssa ], [ %477, %.epil.preheader ], [ %432, %426 ]
  %479 = load float, ptr %16, align 4, !tbaa !9
  %480 = fcmp oeq float %.1463, %479
  %481 = load float, ptr %365, align 4, !tbaa !9
  br i1 %480, label %482, label %530

482:                                              ; preds = %.loopexit
  %483 = fsub float %481, %.2466
  store float %483, ptr %365, align 4, !tbaa !9
  store float %483, ptr %14, align 4, !tbaa !9
  %484 = fcmp oge float %483, 0.000000e+00
  %485 = fneg float %483
  %486 = select i1 %484, float %483, float %485
  br i1 %.not543, label %491, label %487

487:                                              ; preds = %482
  %488 = getelementptr inbounds float, ptr %19, i64 %.6510662
  %489 = load float, ptr %488, align 4, !tbaa !9
  %490 = fmul float %479, %489
  br label %493

491:                                              ; preds = %482
  %492 = fcmp oeq float %479, 1.000000e+00
  br i1 %492, label %533, label %493

493:                                              ; preds = %491, %487
  %.4480 = phi float [ %490, %487 ], [ %479, %491 ]
  %494 = fcmp oge float %.4480, 0.000000e+00
  %495 = fneg float %.4480
  %496 = select i1 %494, float %.4480, float %495
  %497 = fcmp ogt float %496, %50
  br i1 %497, label %498, label %512

498:                                              ; preds = %493
  %499 = fcmp olt float %496, 1.000000e+00
  %500 = fmul float %51, %496
  %501 = fcmp ogt float %486, %500
  %or.cond570 = select i1 %499, i1 %501, i1 false
  br i1 %or.cond570, label %502, label %509

502:                                              ; preds = %498
  %503 = fdiv float 1.000000e+00, %486
  store float %503, ptr %15, align 4, !tbaa !9
  %504 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #5
  %505 = load float, ptr %15, align 4, !tbaa !9
  %506 = load float, ptr %7, align 4, !tbaa !9
  %507 = fmul float %505, %506
  store float %507, ptr %7, align 4, !tbaa !9
  %508 = fmul float %.9, %505
  %.pre685 = load float, ptr %365, align 4, !tbaa !9
  br label %509

509:                                              ; preds = %502, %498
  %510 = phi float [ %.pre685, %502 ], [ %483, %498 ]
  %.10 = phi float [ %508, %502 ], [ %.9, %498 ]
  %511 = fdiv float %510, %.4480
  store float %511, ptr %365, align 4, !tbaa !9
  br label %533

512:                                              ; preds = %493
  %513 = fcmp ogt float %496, 0.000000e+00
  br i1 %513, label %514, label %527

514:                                              ; preds = %512
  %515 = fmul float %51, %496
  %516 = fcmp ogt float %486, %515
  br i1 %516, label %517, label %524

517:                                              ; preds = %514
  %518 = fdiv float %515, %486
  store float %518, ptr %15, align 4, !tbaa !9
  %519 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef nonnull %6, ptr noundef nonnull @c__1) #5
  %520 = load float, ptr %15, align 4, !tbaa !9
  %521 = load float, ptr %7, align 4, !tbaa !9
  %522 = fmul float %520, %521
  store float %522, ptr %7, align 4, !tbaa !9
  %523 = fmul float %.9, %520
  %.pre684 = load float, ptr %365, align 4, !tbaa !9
  br label %524

524:                                              ; preds = %517, %514
  %525 = phi float [ %.pre684, %517 ], [ %483, %514 ]
  %.11 = phi float [ %523, %517 ], [ %.9, %514 ]
  %526 = fdiv float %525, %.4480
  store float %526, ptr %365, align 4, !tbaa !9
  br label %533

527:                                              ; preds = %512
  %528 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %528, ptr %13, align 8, !tbaa !5
  %.not562656 = icmp slt i64 %528, 1
  br i1 %.not562656, label %._crit_edge660, label %.lr.ph659.preheader

.lr.ph659.preheader:                              ; preds = %527
  %529 = shl nuw i64 %528, 2
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %6, i8 0, i64 %529, i1 false), !tbaa !9
  br label %._crit_edge660

._crit_edge660:                                   ; preds = %.lr.ph659.preheader, %527
  store float 1.000000e+00, ptr %365, align 4, !tbaa !9
  store float 0.000000e+00, ptr %7, align 4, !tbaa !9
  %.pre686 = load float, ptr %365, align 4, !tbaa !9
  br label %533

530:                                              ; preds = %.loopexit
  %531 = fdiv float %481, %.3479
  %532 = fsub float %531, %.2466
  store float %532, ptr %365, align 4, !tbaa !9
  br label %533

533:                                              ; preds = %491, %524, %._crit_edge660, %509, %530
  %534 = phi float [ %511, %509 ], [ %526, %524 ], [ %.pre686, %._crit_edge660 ], [ %483, %491 ], [ %532, %530 ]
  %.5481 = phi float [ %.4480, %509 ], [ %.4480, %524 ], [ %.4480, %._crit_edge660 ], [ 1.000000e+00, %491 ], [ %.3479, %530 ]
  %.12 = phi float [ %.10, %509 ], [ %.11, %524 ], [ 0.000000e+00, %._crit_edge660 ], [ %.9, %491 ], [ %.9, %530 ]
  store float %534, ptr %14, align 4, !tbaa !9
  %535 = fcmp oge float %534, 0.000000e+00
  %536 = fneg float %534
  %537 = select i1 %535, float %534, float %536
  %538 = fcmp oge float %.12, %537
  %539 = select i1 %538, float %.12, float %537
  %540 = add nuw nsw i64 %.2499664, 1
  %541 = mul nsw i64 %540, %203
  %542 = add nsw i64 %541, %.6510662
  %543 = add nsw i64 %203, %.7493665
  %544 = load i64, ptr %12, align 8
  %545 = icmp sge i64 %543, %544
  %546 = icmp sle i64 %543, %544
  %.in557 = select i1 %215, i1 %545, i1 %546
  %indvar.next = add i64 %indvar, 1
  br i1 %.in557, label %363, label %.loopexit582, !llvm.loop !23

.loopexit582:                                     ; preds = %353, %533, %218, %359
  %547 = load float, ptr %16, align 4, !tbaa !9
  %548 = load float, ptr %7, align 4, !tbaa !9
  %549 = fdiv float %548, %547
  store float %549, ptr %7, align 4, !tbaa !9
  br label %550

550:                                              ; preds = %.loopexit582, %207
  %551 = phi float [ %547, %.loopexit582 ], [ %.pr580, %207 ]
  %552 = fcmp une float %551, 1.000000e+00
  br i1 %552, label %553, label %556

553:                                              ; preds = %550
  %554 = fdiv float 1.000000e+00, %551
  store float %554, ptr %14, align 4, !tbaa !9
  %555 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %14, ptr noundef %8, ptr noundef nonnull @c__1) #5
  br label %556

556:                                              ; preds = %550, %553, %44, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  ret i32 0
}

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

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

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

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


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