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

; 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 @slatrs_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10) #0 {
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca float, align 4
  %37 = alloca i64, align 8
  %38 = alloca float, align 4
  %39 = alloca i64, align 8
  %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 float, align 4
  %46 = alloca float, align 4
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca float, align 4
  %50 = alloca i64, align 8
  %51 = alloca i64, align 8
  %52 = alloca float, align 4
  %53 = alloca i64, align 8
  %54 = alloca i32, align 4
  store ptr %0, ptr %13, align 8, !tbaa !5
  store ptr %1, ptr %14, align 8, !tbaa !5
  store ptr %2, ptr %15, align 8, !tbaa !5
  store ptr %3, ptr %16, align 8, !tbaa !5
  store ptr %4, ptr %17, align 8, !tbaa !5
  store ptr %5, ptr %18, align 8, !tbaa !5
  store ptr %6, ptr %19, align 8, !tbaa !5
  store ptr %7, ptr %20, align 8, !tbaa !5
  store ptr %8, ptr %21, align 8, !tbaa !5
  store ptr %9, ptr %22, align 8, !tbaa !5
  store ptr %10, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 4, 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 8, 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 4, ptr %45) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #4
  %55 = load ptr, ptr %19, align 8, !tbaa !5
  %56 = load i64, ptr %55, align 8, !tbaa !9
  store i64 %56, ptr %24, align 8, !tbaa !9
  %57 = load i64, ptr %24, align 8, !tbaa !9
  %58 = add nsw i64 1, %57
  store i64 %58, ptr %25, align 8, !tbaa !9
  %59 = load i64, ptr %25, align 8, !tbaa !9
  %60 = load ptr, ptr %18, align 8, !tbaa !5
  %61 = sub i64 0, %59
  %62 = getelementptr inbounds float, ptr %60, i64 %61
  store ptr %62, ptr %18, align 8, !tbaa !5
  %63 = load ptr, ptr %20, align 8, !tbaa !5
  %64 = getelementptr inbounds float, ptr %63, i32 -1
  store ptr %64, ptr %20, align 8, !tbaa !5
  %65 = load ptr, ptr %22, align 8, !tbaa !5
  %66 = getelementptr inbounds float, ptr %65, i32 -1
  store ptr %66, ptr %22, align 8, !tbaa !5
  %67 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 0, ptr %67, align 8, !tbaa !9
  %68 = load ptr, ptr %13, align 8, !tbaa !5
  %69 = call i64 @lsame_(ptr noundef %68, ptr noundef @.str)
  store i64 %69, ptr %48, align 8, !tbaa !9
  %70 = load ptr, ptr %14, align 8, !tbaa !5
  %71 = call i64 @lsame_(ptr noundef %70, ptr noundef @.str.1)
  store i64 %71, ptr %50, align 8, !tbaa !9
  %72 = load ptr, ptr %15, align 8, !tbaa !5
  %73 = call i64 @lsame_(ptr noundef %72, ptr noundef @.str.1)
  store i64 %73, ptr %53, align 8, !tbaa !9
  %74 = load i64, ptr %48, align 8, !tbaa !9
  %75 = icmp ne i64 %74, 0
  br i1 %75, label %82, label %76

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

80:                                               ; preds = %76
  %81 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 -1, ptr %81, align 8, !tbaa !9
  br label %140

82:                                               ; preds = %76, %11
  %83 = load i64, ptr %50, align 8, !tbaa !9
  %84 = icmp ne i64 %83, 0
  br i1 %84, label %95, label %85

85:                                               ; preds = %82
  %86 = load ptr, ptr %14, align 8, !tbaa !5
  %87 = call i64 @lsame_(ptr noundef %86, ptr noundef @.str.3)
  %88 = icmp ne i64 %87, 0
  br i1 %88, label %95, label %89

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

93:                                               ; preds = %89
  %94 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 -2, ptr %94, align 8, !tbaa !9
  br label %139

95:                                               ; preds = %89, %85, %82
  %96 = load i64, ptr %53, align 8, !tbaa !9
  %97 = icmp ne i64 %96, 0
  br i1 %97, label %104, label %98

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

102:                                              ; preds = %98
  %103 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 -3, ptr %103, align 8, !tbaa !9
  br label %138

104:                                              ; preds = %98, %95
  %105 = load ptr, ptr %16, align 8, !tbaa !5
  %106 = call i64 @lsame_(ptr noundef %105, ptr noundef @.str.5)
  %107 = icmp ne i64 %106, 0
  br i1 %107, label %114, label %108

108:                                              ; preds = %104
  %109 = load ptr, ptr %16, align 8, !tbaa !5
  %110 = call i64 @lsame_(ptr noundef %109, ptr noundef @.str.1)
  %111 = icmp ne i64 %110, 0
  br i1 %111, label %114, label %112

112:                                              ; preds = %108
  %113 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 -4, ptr %113, align 8, !tbaa !9
  br label %137

114:                                              ; preds = %108, %104
  %115 = load ptr, ptr %17, align 8, !tbaa !5
  %116 = load i64, ptr %115, align 8, !tbaa !9
  %117 = icmp slt i64 %116, 0
  br i1 %117, label %118, label %120

118:                                              ; preds = %114
  %119 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 -5, ptr %119, align 8, !tbaa !9
  br label %136

120:                                              ; preds = %114
  %121 = load ptr, ptr %19, align 8, !tbaa !5
  %122 = load i64, ptr %121, align 8, !tbaa !9
  %123 = load ptr, ptr %17, align 8, !tbaa !5
  %124 = load i64, ptr %123, align 8, !tbaa !9
  %125 = icmp sge i64 1, %124
  br i1 %125, label %126, label %127

126:                                              ; preds = %120
  br label %130

127:                                              ; preds = %120
  %128 = load ptr, ptr %17, align 8, !tbaa !5
  %129 = load i64, ptr %128, align 8, !tbaa !9
  br label %130

130:                                              ; preds = %127, %126
  %131 = phi i64 [ 1, %126 ], [ %129, %127 ]
  %132 = icmp slt i64 %122, %131
  br i1 %132, label %133, label %135

133:                                              ; preds = %130
  %134 = load ptr, ptr %23, align 8, !tbaa !5
  store i64 -7, ptr %134, align 8, !tbaa !9
  br label %135

135:                                              ; preds = %133, %130
  br label %136

136:                                              ; preds = %135, %118
  br label %137

137:                                              ; preds = %136, %112
  br label %138

138:                                              ; preds = %137, %102
  br label %139

139:                                              ; preds = %138, %93
  br label %140

140:                                              ; preds = %139, %80
  %141 = load ptr, ptr %23, align 8, !tbaa !5
  %142 = load i64, ptr %141, align 8, !tbaa !9
  %143 = icmp ne i64 %142, 0
  br i1 %143, label %144, label %149

144:                                              ; preds = %140
  %145 = load ptr, ptr %23, align 8, !tbaa !5
  %146 = load i64, ptr %145, align 8, !tbaa !9
  %147 = sub nsw i64 0, %146
  store i64 %147, ptr %26, align 8, !tbaa !9
  %148 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %26)
  store i32 0, ptr %12, align 4
  store i32 1, ptr %54, align 4
  br label %1480

149:                                              ; preds = %140
  %150 = load ptr, ptr %17, align 8, !tbaa !5
  %151 = load i64, ptr %150, align 8, !tbaa !9
  %152 = icmp eq i64 %151, 0
  br i1 %152, label %153, label %154

153:                                              ; preds = %149
  store i32 0, ptr %12, align 4
  store i32 1, ptr %54, align 4
  br label %1480

154:                                              ; preds = %149
  %155 = call double @slamch_(ptr noundef @.str.7)
  %156 = call double @slamch_(ptr noundef @.str.8)
  %157 = fdiv double %155, %156
  %158 = fptrunc double %157 to float
  store float %158, ptr %52, align 4, !tbaa !11
  %159 = load float, ptr %52, align 4, !tbaa !11
  %160 = fdiv float 1.000000e+00, %159
  store float %160, ptr %49, align 4, !tbaa !11
  %161 = load ptr, ptr %21, align 8, !tbaa !5
  store float 1.000000e+00, ptr %161, align 4, !tbaa !11
  %162 = load ptr, ptr %16, align 8, !tbaa !5
  %163 = call i64 @lsame_(ptr noundef %162, ptr noundef @.str.1)
  %164 = icmp ne i64 %163, 0
  br i1 %164, label %165, label %228

165:                                              ; preds = %154
  %166 = load i64, ptr %48, align 8, !tbaa !9
  %167 = icmp ne i64 %166, 0
  br i1 %167, label %168, label %193

168:                                              ; preds = %165
  %169 = load ptr, ptr %17, align 8, !tbaa !5
  %170 = load i64, ptr %169, align 8, !tbaa !9
  store i64 %170, ptr %26, align 8, !tbaa !9
  store i64 1, ptr %33, align 8, !tbaa !9
  br label %171

171:                                              ; preds = %189, %168
  %172 = load i64, ptr %33, align 8, !tbaa !9
  %173 = load i64, ptr %26, align 8, !tbaa !9
  %174 = icmp sle i64 %172, %173
  br i1 %174, label %175, label %192

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

189:                                              ; preds = %175
  %190 = load i64, ptr %33, align 8, !tbaa !9
  %191 = add nsw i64 %190, 1
  store i64 %191, ptr %33, align 8, !tbaa !9
  br label %171, !llvm.loop !13

192:                                              ; preds = %171
  br label %227

193:                                              ; preds = %165
  %194 = load ptr, ptr %17, align 8, !tbaa !5
  %195 = load i64, ptr %194, align 8, !tbaa !9
  %196 = sub nsw i64 %195, 1
  store i64 %196, ptr %26, align 8, !tbaa !9
  store i64 1, ptr %33, align 8, !tbaa !9
  br label %197

197:                                              ; preds = %219, %193
  %198 = load i64, ptr %33, align 8, !tbaa !9
  %199 = load i64, ptr %26, align 8, !tbaa !9
  %200 = icmp sle i64 %198, %199
  br i1 %200, label %201, label %222

201:                                              ; preds = %197
  %202 = load ptr, ptr %17, align 8, !tbaa !5
  %203 = load i64, ptr %202, align 8, !tbaa !9
  %204 = load i64, ptr %33, align 8, !tbaa !9
  %205 = sub nsw i64 %203, %204
  store i64 %205, ptr %27, align 8, !tbaa !9
  %206 = load ptr, ptr %18, align 8, !tbaa !5
  %207 = load i64, ptr %33, align 8, !tbaa !9
  %208 = add nsw i64 %207, 1
  %209 = load i64, ptr %33, align 8, !tbaa !9
  %210 = load i64, ptr %24, align 8, !tbaa !9
  %211 = mul nsw i64 %209, %210
  %212 = add nsw i64 %208, %211
  %213 = getelementptr inbounds float, ptr %206, i64 %212
  %214 = call double @f2c_sasum(ptr noundef %27, ptr noundef %213, ptr noundef @c__1)
  %215 = fptrunc double %214 to float
  %216 = load ptr, ptr %22, align 8, !tbaa !5
  %217 = load i64, ptr %33, align 8, !tbaa !9
  %218 = getelementptr inbounds float, ptr %216, i64 %217
  store float %215, ptr %218, align 4, !tbaa !11
  br label %219

219:                                              ; preds = %201
  %220 = load i64, ptr %33, align 8, !tbaa !9
  %221 = add nsw i64 %220, 1
  store i64 %221, ptr %33, align 8, !tbaa !9
  br label %197, !llvm.loop !15

222:                                              ; preds = %197
  %223 = load ptr, ptr %22, align 8, !tbaa !5
  %224 = load ptr, ptr %17, align 8, !tbaa !5
  %225 = load i64, ptr %224, align 8, !tbaa !9
  %226 = getelementptr inbounds float, ptr %223, i64 %225
  store float 0.000000e+00, ptr %226, align 4, !tbaa !11
  br label %227

227:                                              ; preds = %222, %192
  br label %228

228:                                              ; preds = %227, %154
  %229 = load ptr, ptr %17, align 8, !tbaa !5
  %230 = load ptr, ptr %22, align 8, !tbaa !5
  %231 = getelementptr inbounds float, ptr %230, i64 1
  %232 = call i64 @f2c_isamax(ptr noundef %229, ptr noundef %231, ptr noundef @c__1)
  store i64 %232, ptr %39, align 8, !tbaa !9
  %233 = load ptr, ptr %22, align 8, !tbaa !5
  %234 = load i64, ptr %39, align 8, !tbaa !9
  %235 = getelementptr inbounds float, ptr %233, i64 %234
  %236 = load float, ptr %235, align 4, !tbaa !11
  store float %236, ptr %40, align 4, !tbaa !11
  %237 = load float, ptr %40, align 4, !tbaa !11
  %238 = load float, ptr %49, align 4, !tbaa !11
  %239 = fcmp ole float %237, %238
  br i1 %239, label %240, label %241

240:                                              ; preds = %228
  store float 1.000000e+00, ptr %45, align 4, !tbaa !11
  br label %250

241:                                              ; preds = %228
  %242 = load float, ptr %52, align 4, !tbaa !11
  %243 = load float, ptr %40, align 4, !tbaa !11
  %244 = fmul float %242, %243
  %245 = fdiv float 1.000000e+00, %244
  store float %245, ptr %45, align 4, !tbaa !11
  %246 = load ptr, ptr %17, align 8, !tbaa !5
  %247 = load ptr, ptr %22, align 8, !tbaa !5
  %248 = getelementptr inbounds float, ptr %247, i64 1
  %249 = call i32 @f2c_sscal(ptr noundef %246, ptr noundef %45, ptr noundef %248, ptr noundef @c__1)
  br label %250

250:                                              ; preds = %241, %240
  %251 = load ptr, ptr %17, align 8, !tbaa !5
  %252 = load ptr, ptr %20, align 8, !tbaa !5
  %253 = getelementptr inbounds float, ptr %252, i64 1
  %254 = call i64 @f2c_isamax(ptr noundef %251, ptr noundef %253, ptr noundef @c__1)
  store i64 %254, ptr %33, align 8, !tbaa !9
  %255 = load ptr, ptr %20, align 8, !tbaa !5
  %256 = load i64, ptr %33, align 8, !tbaa !9
  %257 = getelementptr inbounds float, ptr %255, i64 %256
  %258 = load float, ptr %257, align 4, !tbaa !11
  store float %258, ptr %29, align 4, !tbaa !11
  %259 = load float, ptr %29, align 4, !tbaa !11
  %260 = fcmp oge float %259, 0.000000e+00
  br i1 %260, label %261, label %263

261:                                              ; preds = %250
  %262 = load float, ptr %29, align 4, !tbaa !11
  br label %266

263:                                              ; preds = %250
  %264 = load float, ptr %29, align 4, !tbaa !11
  %265 = fneg float %264
  br label %266

266:                                              ; preds = %263, %261
  %267 = phi float [ %262, %261 ], [ %265, %263 ]
  %268 = fpext float %267 to double
  %269 = fptrunc double %268 to float
  store float %269, ptr %42, align 4, !tbaa !11
  %270 = load float, ptr %42, align 4, !tbaa !11
  store float %270, ptr %38, align 4, !tbaa !11
  %271 = load i64, ptr %50, align 8, !tbaa !9
  %272 = icmp ne i64 %271, 0
  br i1 %272, label %273, label %462

273:                                              ; preds = %266
  %274 = load i64, ptr %48, align 8, !tbaa !9
  %275 = icmp ne i64 %274, 0
  br i1 %275, label %276, label %279

276:                                              ; preds = %273
  %277 = load ptr, ptr %17, align 8, !tbaa !5
  %278 = load i64, ptr %277, align 8, !tbaa !9
  store i64 %278, ptr %51, align 8, !tbaa !9
  store i64 1, ptr %47, align 8, !tbaa !9
  store i64 -1, ptr %37, align 8, !tbaa !9
  br label %282

279:                                              ; preds = %273
  store i64 1, ptr %51, align 8, !tbaa !9
  %280 = load ptr, ptr %17, align 8, !tbaa !5
  %281 = load i64, ptr %280, align 8, !tbaa !9
  store i64 %281, ptr %47, align 8, !tbaa !9
  store i64 1, ptr %37, align 8, !tbaa !9
  br label %282

282:                                              ; preds = %279, %276
  %283 = load float, ptr %45, align 4, !tbaa !11
  %284 = fcmp une float %283, 1.000000e+00
  br i1 %284, label %285, label %286

285:                                              ; preds = %282
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  br label %461

286:                                              ; preds = %282
  %287 = load i64, ptr %53, align 8, !tbaa !9
  %288 = icmp ne i64 %287, 0
  br i1 %288, label %289, label %398

289:                                              ; preds = %286
  %290 = load float, ptr %38, align 4, !tbaa !11
  %291 = load float, ptr %52, align 4, !tbaa !11
  %292 = fcmp oge float %290, %291
  br i1 %292, label %293, label %295

293:                                              ; preds = %289
  %294 = load float, ptr %38, align 4, !tbaa !11
  br label %297

295:                                              ; preds = %289
  %296 = load float, ptr %52, align 4, !tbaa !11
  br label %297

297:                                              ; preds = %295, %293
  %298 = phi float [ %294, %293 ], [ %296, %295 ]
  %299 = fpext float %298 to double
  %300 = fdiv double 1.000000e+00, %299
  %301 = fptrunc double %300 to float
  store float %301, ptr %43, align 4, !tbaa !11
  %302 = load float, ptr %43, align 4, !tbaa !11
  store float %302, ptr %38, align 4, !tbaa !11
  %303 = load i64, ptr %47, align 8, !tbaa !9
  store i64 %303, ptr %26, align 8, !tbaa !9
  %304 = load i64, ptr %37, align 8, !tbaa !9
  store i64 %304, ptr %27, align 8, !tbaa !9
  %305 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %305, ptr %33, align 8, !tbaa !9
  br label %306

306:                                              ; preds = %392, %297
  %307 = load i64, ptr %27, align 8, !tbaa !9
  %308 = icmp slt i64 %307, 0
  br i1 %308, label %309, label %314

309:                                              ; preds = %306
  %310 = load i64, ptr %33, align 8, !tbaa !9
  %311 = load i64, ptr %26, align 8, !tbaa !9
  %312 = icmp sge i64 %310, %311
  %313 = zext i1 %312 to i32
  br label %319

314:                                              ; preds = %306
  %315 = load i64, ptr %33, align 8, !tbaa !9
  %316 = load i64, ptr %26, align 8, !tbaa !9
  %317 = icmp sle i64 %315, %316
  %318 = zext i1 %317 to i32
  br label %319

319:                                              ; preds = %314, %309
  %320 = phi i32 [ %313, %309 ], [ %318, %314 ]
  %321 = icmp ne i32 %320, 0
  br i1 %321, label %322, label %396

322:                                              ; preds = %319
  %323 = load float, ptr %43, align 4, !tbaa !11
  %324 = load float, ptr %52, align 4, !tbaa !11
  %325 = fcmp ole float %323, %324
  br i1 %325, label %326, label %327

326:                                              ; preds = %322
  br label %461

327:                                              ; preds = %322
  %328 = load ptr, ptr %18, align 8, !tbaa !5
  %329 = load i64, ptr %33, align 8, !tbaa !9
  %330 = load i64, ptr %33, align 8, !tbaa !9
  %331 = load i64, ptr %24, align 8, !tbaa !9
  %332 = mul nsw i64 %330, %331
  %333 = add nsw i64 %329, %332
  %334 = getelementptr inbounds float, ptr %328, i64 %333
  %335 = load float, ptr %334, align 4, !tbaa !11
  store float %335, ptr %29, align 4, !tbaa !11
  %336 = load float, ptr %29, align 4, !tbaa !11
  %337 = fcmp oge float %336, 0.000000e+00
  br i1 %337, label %338, label %340

338:                                              ; preds = %327
  %339 = load float, ptr %29, align 4, !tbaa !11
  br label %343

340:                                              ; preds = %327
  %341 = load float, ptr %29, align 4, !tbaa !11
  %342 = fneg float %341
  br label %343

343:                                              ; preds = %340, %338
  %344 = phi float [ %339, %338 ], [ %342, %340 ]
  %345 = fpext float %344 to double
  %346 = fptrunc double %345 to float
  store float %346, ptr %36, align 4, !tbaa !11
  %347 = load float, ptr %38, align 4, !tbaa !11
  store float %347, ptr %29, align 4, !tbaa !11
  %348 = load float, ptr %36, align 4, !tbaa !11
  %349 = fcmp ole float 1.000000e+00, %348
  br i1 %349, label %350, label %351

350:                                              ; preds = %343
  br label %353

351:                                              ; preds = %343
  %352 = load float, ptr %36, align 4, !tbaa !11
  br label %353

353:                                              ; preds = %351, %350
  %354 = phi float [ 1.000000e+00, %350 ], [ %352, %351 ]
  %355 = fpext float %354 to double
  %356 = load float, ptr %43, align 4, !tbaa !11
  %357 = fpext float %356 to double
  %358 = fmul double %355, %357
  %359 = fptrunc double %358 to float
  store float %359, ptr %30, align 4, !tbaa !11
  %360 = load float, ptr %29, align 4, !tbaa !11
  %361 = load float, ptr %30, align 4, !tbaa !11
  %362 = fcmp ole float %360, %361
  br i1 %362, label %363, label %365

363:                                              ; preds = %353
  %364 = load float, ptr %29, align 4, !tbaa !11
  br label %367

365:                                              ; preds = %353
  %366 = load float, ptr %30, align 4, !tbaa !11
  br label %367

367:                                              ; preds = %365, %363
  %368 = phi float [ %364, %363 ], [ %366, %365 ]
  %369 = fpext float %368 to double
  %370 = fptrunc double %369 to float
  store float %370, ptr %38, align 4, !tbaa !11
  %371 = load float, ptr %36, align 4, !tbaa !11
  %372 = load ptr, ptr %22, align 8, !tbaa !5
  %373 = load i64, ptr %33, align 8, !tbaa !9
  %374 = getelementptr inbounds float, ptr %372, i64 %373
  %375 = load float, ptr %374, align 4, !tbaa !11
  %376 = fadd float %371, %375
  %377 = load float, ptr %52, align 4, !tbaa !11
  %378 = fcmp oge float %376, %377
  br i1 %378, label %379, label %390

379:                                              ; preds = %367
  %380 = load float, ptr %36, align 4, !tbaa !11
  %381 = load float, ptr %36, align 4, !tbaa !11
  %382 = load ptr, ptr %22, align 8, !tbaa !5
  %383 = load i64, ptr %33, align 8, !tbaa !9
  %384 = getelementptr inbounds float, ptr %382, i64 %383
  %385 = load float, ptr %384, align 4, !tbaa !11
  %386 = fadd float %381, %385
  %387 = fdiv float %380, %386
  %388 = load float, ptr %43, align 4, !tbaa !11
  %389 = fmul float %388, %387
  store float %389, ptr %43, align 4, !tbaa !11
  br label %391

390:                                              ; preds = %367
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  br label %391

391:                                              ; preds = %390, %379
  br label %392

392:                                              ; preds = %391
  %393 = load i64, ptr %27, align 8, !tbaa !9
  %394 = load i64, ptr %33, align 8, !tbaa !9
  %395 = add nsw i64 %394, %393
  store i64 %395, ptr %33, align 8, !tbaa !9
  br label %306, !llvm.loop !16

396:                                              ; preds = %319
  %397 = load float, ptr %38, align 4, !tbaa !11
  store float %397, ptr %43, align 4, !tbaa !11
  br label %460

398:                                              ; preds = %286
  store float 1.000000e+00, ptr %29, align 4, !tbaa !11
  %399 = load float, ptr %38, align 4, !tbaa !11
  %400 = load float, ptr %52, align 4, !tbaa !11
  %401 = fcmp oge float %399, %400
  br i1 %401, label %402, label %404

402:                                              ; preds = %398
  %403 = load float, ptr %38, align 4, !tbaa !11
  br label %406

404:                                              ; preds = %398
  %405 = load float, ptr %52, align 4, !tbaa !11
  br label %406

406:                                              ; preds = %404, %402
  %407 = phi float [ %403, %402 ], [ %405, %404 ]
  %408 = fpext float %407 to double
  %409 = fdiv double 1.000000e+00, %408
  %410 = fptrunc double %409 to float
  store float %410, ptr %30, align 4, !tbaa !11
  %411 = load float, ptr %29, align 4, !tbaa !11
  %412 = load float, ptr %30, align 4, !tbaa !11
  %413 = fcmp ole float %411, %412
  br i1 %413, label %414, label %416

414:                                              ; preds = %406
  %415 = load float, ptr %29, align 4, !tbaa !11
  br label %418

416:                                              ; preds = %406
  %417 = load float, ptr %30, align 4, !tbaa !11
  br label %418

418:                                              ; preds = %416, %414
  %419 = phi float [ %415, %414 ], [ %417, %416 ]
  %420 = fpext float %419 to double
  %421 = fptrunc double %420 to float
  store float %421, ptr %43, align 4, !tbaa !11
  %422 = load i64, ptr %47, align 8, !tbaa !9
  store i64 %422, ptr %27, align 8, !tbaa !9
  %423 = load i64, ptr %37, align 8, !tbaa !9
  store i64 %423, ptr %26, align 8, !tbaa !9
  %424 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %424, ptr %33, align 8, !tbaa !9
  br label %425

425:                                              ; preds = %455, %418
  %426 = load i64, ptr %26, align 8, !tbaa !9
  %427 = icmp slt i64 %426, 0
  br i1 %427, label %428, label %433

428:                                              ; preds = %425
  %429 = load i64, ptr %33, align 8, !tbaa !9
  %430 = load i64, ptr %27, align 8, !tbaa !9
  %431 = icmp sge i64 %429, %430
  %432 = zext i1 %431 to i32
  br label %438

433:                                              ; preds = %425
  %434 = load i64, ptr %33, align 8, !tbaa !9
  %435 = load i64, ptr %27, align 8, !tbaa !9
  %436 = icmp sle i64 %434, %435
  %437 = zext i1 %436 to i32
  br label %438

438:                                              ; preds = %433, %428
  %439 = phi i32 [ %432, %428 ], [ %437, %433 ]
  %440 = icmp ne i32 %439, 0
  br i1 %440, label %441, label %459

441:                                              ; preds = %438
  %442 = load float, ptr %43, align 4, !tbaa !11
  %443 = load float, ptr %52, align 4, !tbaa !11
  %444 = fcmp ole float %442, %443
  br i1 %444, label %445, label %446

445:                                              ; preds = %441
  br label %461

446:                                              ; preds = %441
  %447 = load ptr, ptr %22, align 8, !tbaa !5
  %448 = load i64, ptr %33, align 8, !tbaa !9
  %449 = getelementptr inbounds float, ptr %447, i64 %448
  %450 = load float, ptr %449, align 4, !tbaa !11
  %451 = fadd float %450, 1.000000e+00
  %452 = fdiv float 1.000000e+00, %451
  %453 = load float, ptr %43, align 4, !tbaa !11
  %454 = fmul float %453, %452
  store float %454, ptr %43, align 4, !tbaa !11
  br label %455

455:                                              ; preds = %446
  %456 = load i64, ptr %26, align 8, !tbaa !9
  %457 = load i64, ptr %33, align 8, !tbaa !9
  %458 = add nsw i64 %457, %456
  store i64 %458, ptr %33, align 8, !tbaa !9
  br label %425, !llvm.loop !17

459:                                              ; preds = %438
  br label %460

460:                                              ; preds = %459, %396
  br label %461

461:                                              ; preds = %460, %445, %326, %285
  br label %646

462:                                              ; preds = %266
  %463 = load i64, ptr %48, align 8, !tbaa !9
  %464 = icmp ne i64 %463, 0
  br i1 %464, label %465, label %468

465:                                              ; preds = %462
  store i64 1, ptr %51, align 8, !tbaa !9
  %466 = load ptr, ptr %17, align 8, !tbaa !5
  %467 = load i64, ptr %466, align 8, !tbaa !9
  store i64 %467, ptr %47, align 8, !tbaa !9
  store i64 1, ptr %37, align 8, !tbaa !9
  br label %471

468:                                              ; preds = %462
  %469 = load ptr, ptr %17, align 8, !tbaa !5
  %470 = load i64, ptr %469, align 8, !tbaa !9
  store i64 %470, ptr %51, align 8, !tbaa !9
  store i64 1, ptr %47, align 8, !tbaa !9
  store i64 -1, ptr %37, align 8, !tbaa !9
  br label %471

471:                                              ; preds = %468, %465
  %472 = load float, ptr %45, align 4, !tbaa !11
  %473 = fcmp une float %472, 1.000000e+00
  br i1 %473, label %474, label %475

474:                                              ; preds = %471
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  br label %645

475:                                              ; preds = %471
  %476 = load i64, ptr %53, align 8, !tbaa !9
  %477 = icmp ne i64 %476, 0
  br i1 %477, label %478, label %582

478:                                              ; preds = %475
  %479 = load float, ptr %38, align 4, !tbaa !11
  %480 = load float, ptr %52, align 4, !tbaa !11
  %481 = fcmp oge float %479, %480
  br i1 %481, label %482, label %484

482:                                              ; preds = %478
  %483 = load float, ptr %38, align 4, !tbaa !11
  br label %486

484:                                              ; preds = %478
  %485 = load float, ptr %52, align 4, !tbaa !11
  br label %486

486:                                              ; preds = %484, %482
  %487 = phi float [ %483, %482 ], [ %485, %484 ]
  %488 = fpext float %487 to double
  %489 = fdiv double 1.000000e+00, %488
  %490 = fptrunc double %489 to float
  store float %490, ptr %43, align 4, !tbaa !11
  %491 = load float, ptr %43, align 4, !tbaa !11
  store float %491, ptr %38, align 4, !tbaa !11
  %492 = load i64, ptr %47, align 8, !tbaa !9
  store i64 %492, ptr %26, align 8, !tbaa !9
  %493 = load i64, ptr %37, align 8, !tbaa !9
  store i64 %493, ptr %27, align 8, !tbaa !9
  %494 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %494, ptr %33, align 8, !tbaa !9
  br label %495

495:                                              ; preds = %566, %486
  %496 = load i64, ptr %27, align 8, !tbaa !9
  %497 = icmp slt i64 %496, 0
  br i1 %497, label %498, label %503

498:                                              ; preds = %495
  %499 = load i64, ptr %33, align 8, !tbaa !9
  %500 = load i64, ptr %26, align 8, !tbaa !9
  %501 = icmp sge i64 %499, %500
  %502 = zext i1 %501 to i32
  br label %508

503:                                              ; preds = %495
  %504 = load i64, ptr %33, align 8, !tbaa !9
  %505 = load i64, ptr %26, align 8, !tbaa !9
  %506 = icmp sle i64 %504, %505
  %507 = zext i1 %506 to i32
  br label %508

508:                                              ; preds = %503, %498
  %509 = phi i32 [ %502, %498 ], [ %507, %503 ]
  %510 = icmp ne i32 %509, 0
  br i1 %510, label %511, label %570

511:                                              ; preds = %508
  %512 = load float, ptr %43, align 4, !tbaa !11
  %513 = load float, ptr %52, align 4, !tbaa !11
  %514 = fcmp ole float %512, %513
  br i1 %514, label %515, label %516

515:                                              ; preds = %511
  br label %645

516:                                              ; preds = %511
  %517 = load ptr, ptr %22, align 8, !tbaa !5
  %518 = load i64, ptr %33, align 8, !tbaa !9
  %519 = getelementptr inbounds float, ptr %517, i64 %518
  %520 = load float, ptr %519, align 4, !tbaa !11
  %521 = fadd float %520, 1.000000e+00
  store float %521, ptr %34, align 4, !tbaa !11
  %522 = load float, ptr %43, align 4, !tbaa !11
  store float %522, ptr %29, align 4, !tbaa !11
  %523 = load float, ptr %38, align 4, !tbaa !11
  %524 = load float, ptr %34, align 4, !tbaa !11
  %525 = fdiv float %523, %524
  store float %525, ptr %30, align 4, !tbaa !11
  %526 = load float, ptr %29, align 4, !tbaa !11
  %527 = load float, ptr %30, align 4, !tbaa !11
  %528 = fcmp ole float %526, %527
  br i1 %528, label %529, label %531

529:                                              ; preds = %516
  %530 = load float, ptr %29, align 4, !tbaa !11
  br label %533

531:                                              ; preds = %516
  %532 = load float, ptr %30, align 4, !tbaa !11
  br label %533

533:                                              ; preds = %531, %529
  %534 = phi float [ %530, %529 ], [ %532, %531 ]
  %535 = fpext float %534 to double
  %536 = fptrunc double %535 to float
  store float %536, ptr %43, align 4, !tbaa !11
  %537 = load ptr, ptr %18, align 8, !tbaa !5
  %538 = load i64, ptr %33, align 8, !tbaa !9
  %539 = load i64, ptr %33, align 8, !tbaa !9
  %540 = load i64, ptr %24, align 8, !tbaa !9
  %541 = mul nsw i64 %539, %540
  %542 = add nsw i64 %538, %541
  %543 = getelementptr inbounds float, ptr %537, i64 %542
  %544 = load float, ptr %543, align 4, !tbaa !11
  store float %544, ptr %29, align 4, !tbaa !11
  %545 = load float, ptr %29, align 4, !tbaa !11
  %546 = fcmp oge float %545, 0.000000e+00
  br i1 %546, label %547, label %549

547:                                              ; preds = %533
  %548 = load float, ptr %29, align 4, !tbaa !11
  br label %552

549:                                              ; preds = %533
  %550 = load float, ptr %29, align 4, !tbaa !11
  %551 = fneg float %550
  br label %552

552:                                              ; preds = %549, %547
  %553 = phi float [ %548, %547 ], [ %551, %549 ]
  %554 = fpext float %553 to double
  %555 = fptrunc double %554 to float
  store float %555, ptr %36, align 4, !tbaa !11
  %556 = load float, ptr %34, align 4, !tbaa !11
  %557 = load float, ptr %36, align 4, !tbaa !11
  %558 = fcmp ogt float %556, %557
  br i1 %558, label %559, label %565

559:                                              ; preds = %552
  %560 = load float, ptr %36, align 4, !tbaa !11
  %561 = load float, ptr %34, align 4, !tbaa !11
  %562 = fdiv float %560, %561
  %563 = load float, ptr %38, align 4, !tbaa !11
  %564 = fmul float %563, %562
  store float %564, ptr %38, align 4, !tbaa !11
  br label %565

565:                                              ; preds = %559, %552
  br label %566

566:                                              ; preds = %565
  %567 = load i64, ptr %27, align 8, !tbaa !9
  %568 = load i64, ptr %33, align 8, !tbaa !9
  %569 = add nsw i64 %568, %567
  store i64 %569, ptr %33, align 8, !tbaa !9
  br label %495, !llvm.loop !18

570:                                              ; preds = %508
  %571 = load float, ptr %43, align 4, !tbaa !11
  %572 = load float, ptr %38, align 4, !tbaa !11
  %573 = fcmp ole float %571, %572
  br i1 %573, label %574, label %576

574:                                              ; preds = %570
  %575 = load float, ptr %43, align 4, !tbaa !11
  br label %578

576:                                              ; preds = %570
  %577 = load float, ptr %38, align 4, !tbaa !11
  br label %578

578:                                              ; preds = %576, %574
  %579 = phi float [ %575, %574 ], [ %577, %576 ]
  %580 = fpext float %579 to double
  %581 = fptrunc double %580 to float
  store float %581, ptr %43, align 4, !tbaa !11
  br label %644

582:                                              ; preds = %475
  store float 1.000000e+00, ptr %29, align 4, !tbaa !11
  %583 = load float, ptr %38, align 4, !tbaa !11
  %584 = load float, ptr %52, align 4, !tbaa !11
  %585 = fcmp oge float %583, %584
  br i1 %585, label %586, label %588

586:                                              ; preds = %582
  %587 = load float, ptr %38, align 4, !tbaa !11
  br label %590

588:                                              ; preds = %582
  %589 = load float, ptr %52, align 4, !tbaa !11
  br label %590

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

598:                                              ; preds = %590
  %599 = load float, ptr %29, align 4, !tbaa !11
  br label %602

600:                                              ; preds = %590
  %601 = load float, ptr %30, align 4, !tbaa !11
  br label %602

602:                                              ; preds = %600, %598
  %603 = phi float [ %599, %598 ], [ %601, %600 ]
  %604 = fpext float %603 to double
  %605 = fptrunc double %604 to float
  store float %605, ptr %43, align 4, !tbaa !11
  %606 = load i64, ptr %47, align 8, !tbaa !9
  store i64 %606, ptr %27, align 8, !tbaa !9
  %607 = load i64, ptr %37, align 8, !tbaa !9
  store i64 %607, ptr %26, align 8, !tbaa !9
  %608 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %608, ptr %33, align 8, !tbaa !9
  br label %609

609:                                              ; preds = %639, %602
  %610 = load i64, ptr %26, align 8, !tbaa !9
  %611 = icmp slt i64 %610, 0
  br i1 %611, label %612, label %617

612:                                              ; preds = %609
  %613 = load i64, ptr %33, align 8, !tbaa !9
  %614 = load i64, ptr %27, align 8, !tbaa !9
  %615 = icmp sge i64 %613, %614
  %616 = zext i1 %615 to i32
  br label %622

617:                                              ; preds = %609
  %618 = load i64, ptr %33, align 8, !tbaa !9
  %619 = load i64, ptr %27, align 8, !tbaa !9
  %620 = icmp sle i64 %618, %619
  %621 = zext i1 %620 to i32
  br label %622

622:                                              ; preds = %617, %612
  %623 = phi i32 [ %616, %612 ], [ %621, %617 ]
  %624 = icmp ne i32 %623, 0
  br i1 %624, label %625, label %643

625:                                              ; preds = %622
  %626 = load float, ptr %43, align 4, !tbaa !11
  %627 = load float, ptr %52, align 4, !tbaa !11
  %628 = fcmp ole float %626, %627
  br i1 %628, label %629, label %630

629:                                              ; preds = %625
  br label %645

630:                                              ; preds = %625
  %631 = load ptr, ptr %22, align 8, !tbaa !5
  %632 = load i64, ptr %33, align 8, !tbaa !9
  %633 = getelementptr inbounds float, ptr %631, i64 %632
  %634 = load float, ptr %633, align 4, !tbaa !11
  %635 = fadd float %634, 1.000000e+00
  store float %635, ptr %34, align 4, !tbaa !11
  %636 = load float, ptr %34, align 4, !tbaa !11
  %637 = load float, ptr %43, align 4, !tbaa !11
  %638 = fdiv float %637, %636
  store float %638, ptr %43, align 4, !tbaa !11
  br label %639

639:                                              ; preds = %630
  %640 = load i64, ptr %26, align 8, !tbaa !9
  %641 = load i64, ptr %33, align 8, !tbaa !9
  %642 = add nsw i64 %641, %640
  store i64 %642, ptr %33, align 8, !tbaa !9
  br label %609, !llvm.loop !19

643:                                              ; preds = %622
  br label %644

644:                                              ; preds = %643, %578
  br label %645

645:                                              ; preds = %644, %629, %515, %474
  br label %646

646:                                              ; preds = %645, %461
  %647 = load float, ptr %43, align 4, !tbaa !11
  %648 = load float, ptr %45, align 4, !tbaa !11
  %649 = fmul float %647, %648
  %650 = load float, ptr %52, align 4, !tbaa !11
  %651 = fcmp ogt float %649, %650
  br i1 %651, label %652, label %664

652:                                              ; preds = %646
  %653 = load ptr, ptr %13, align 8, !tbaa !5
  %654 = load ptr, ptr %14, align 8, !tbaa !5
  %655 = load ptr, ptr %15, align 8, !tbaa !5
  %656 = load ptr, ptr %17, align 8, !tbaa !5
  %657 = load ptr, ptr %18, align 8, !tbaa !5
  %658 = load i64, ptr %25, align 8, !tbaa !9
  %659 = getelementptr inbounds float, ptr %657, i64 %658
  %660 = load ptr, ptr %19, align 8, !tbaa !5
  %661 = load ptr, ptr %20, align 8, !tbaa !5
  %662 = getelementptr inbounds float, ptr %661, i64 1
  %663 = call i32 @f2c_strsv(ptr noundef %653, ptr noundef %654, ptr noundef %655, ptr noundef %656, ptr noundef %659, ptr noundef %660, ptr noundef %662, ptr noundef @c__1)
  br label %1469

664:                                              ; preds = %646
  %665 = load float, ptr %42, align 4, !tbaa !11
  %666 = load float, ptr %49, align 4, !tbaa !11
  %667 = fcmp ogt float %665, %666
  br i1 %667, label %668, label %679

668:                                              ; preds = %664
  %669 = load float, ptr %49, align 4, !tbaa !11
  %670 = load float, ptr %42, align 4, !tbaa !11
  %671 = fdiv float %669, %670
  %672 = load ptr, ptr %21, align 8, !tbaa !5
  store float %671, ptr %672, align 4, !tbaa !11
  %673 = load ptr, ptr %17, align 8, !tbaa !5
  %674 = load ptr, ptr %21, align 8, !tbaa !5
  %675 = load ptr, ptr %20, align 8, !tbaa !5
  %676 = getelementptr inbounds float, ptr %675, i64 1
  %677 = call i32 @f2c_sscal(ptr noundef %673, ptr noundef %674, ptr noundef %676, ptr noundef @c__1)
  %678 = load float, ptr %49, align 4, !tbaa !11
  store float %678, ptr %42, align 4, !tbaa !11
  br label %679

679:                                              ; preds = %668, %664
  %680 = load i64, ptr %50, align 8, !tbaa !9
  %681 = icmp ne i64 %680, 0
  br i1 %681, label %682, label %1037

682:                                              ; preds = %679
  %683 = load i64, ptr %47, align 8, !tbaa !9
  store i64 %683, ptr %26, align 8, !tbaa !9
  %684 = load i64, ptr %37, align 8, !tbaa !9
  store i64 %684, ptr %27, align 8, !tbaa !9
  %685 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %685, ptr %33, align 8, !tbaa !9
  br label %686

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

689:                                              ; preds = %686
  %690 = load i64, ptr %33, align 8, !tbaa !9
  %691 = load i64, ptr %26, 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 %33, align 8, !tbaa !9
  %696 = load i64, ptr %26, 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 %1036

702:                                              ; preds = %699
  %703 = load ptr, ptr %20, align 8, !tbaa !5
  %704 = load i64, ptr %33, 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 %29, align 4, !tbaa !11
  %707 = load float, ptr %29, 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 %29, align 4, !tbaa !11
  br label %714

711:                                              ; preds = %702
  %712 = load float, ptr %29, 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 %34, align 4, !tbaa !11
  %718 = load i64, ptr %53, align 8, !tbaa !9
  %719 = icmp ne i64 %718, 0
  br i1 %719, label %720, label %731

720:                                              ; preds = %714
  %721 = load ptr, ptr %18, align 8, !tbaa !5
  %722 = load i64, ptr %33, align 8, !tbaa !9
  %723 = load i64, ptr %33, align 8, !tbaa !9
  %724 = load i64, ptr %24, align 8, !tbaa !9
  %725 = mul nsw i64 %723, %724
  %726 = add nsw i64 %722, %725
  %727 = getelementptr inbounds float, ptr %721, i64 %726
  %728 = load float, ptr %727, align 4, !tbaa !11
  %729 = load float, ptr %45, align 4, !tbaa !11
  %730 = fmul float %728, %729
  store float %730, ptr %41, align 4, !tbaa !11
  br label %737

731:                                              ; preds = %714
  %732 = load float, ptr %45, align 4, !tbaa !11
  store float %732, ptr %41, align 4, !tbaa !11
  %733 = load float, ptr %45, align 4, !tbaa !11
  %734 = fcmp oeq float %733, 1.000000e+00
  br i1 %734, label %735, label %736

735:                                              ; preds = %731
  br label %880

736:                                              ; preds = %731
  br label %737

737:                                              ; preds = %736, %720
  %738 = load float, ptr %41, align 4, !tbaa !11
  %739 = fcmp oge float %738, 0.000000e+00
  br i1 %739, label %740, label %742

740:                                              ; preds = %737
  %741 = load float, ptr %41, align 4, !tbaa !11
  br label %745

742:                                              ; preds = %737
  %743 = load float, ptr %41, align 4, !tbaa !11
  %744 = fneg float %743
  br label %745

745:                                              ; preds = %742, %740
  %746 = phi float [ %741, %740 ], [ %744, %742 ]
  %747 = fpext float %746 to double
  %748 = fptrunc double %747 to float
  store float %748, ptr %36, align 4, !tbaa !11
  %749 = load float, ptr %36, align 4, !tbaa !11
  %750 = load float, ptr %52, align 4, !tbaa !11
  %751 = fcmp ogt float %749, %750
  br i1 %751, label %752, label %798

752:                                              ; preds = %745
  %753 = load float, ptr %36, align 4, !tbaa !11
  %754 = fcmp olt float %753, 1.000000e+00
  br i1 %754, label %755, label %776

755:                                              ; preds = %752
  %756 = load float, ptr %34, align 4, !tbaa !11
  %757 = load float, ptr %36, align 4, !tbaa !11
  %758 = load float, ptr %49, align 4, !tbaa !11
  %759 = fmul float %757, %758
  %760 = fcmp ogt float %756, %759
  br i1 %760, label %761, label %775

761:                                              ; preds = %755
  %762 = load float, ptr %34, align 4, !tbaa !11
  %763 = fdiv float 1.000000e+00, %762
  store float %763, ptr %35, align 4, !tbaa !11
  %764 = load ptr, ptr %17, align 8, !tbaa !5
  %765 = load ptr, ptr %20, align 8, !tbaa !5
  %766 = getelementptr inbounds float, ptr %765, i64 1
  %767 = call i32 @f2c_sscal(ptr noundef %764, ptr noundef %35, ptr noundef %766, ptr noundef @c__1)
  %768 = load float, ptr %35, align 4, !tbaa !11
  %769 = load ptr, ptr %21, align 8, !tbaa !5
  %770 = load float, ptr %769, align 4, !tbaa !11
  %771 = fmul float %770, %768
  store float %771, ptr %769, align 4, !tbaa !11
  %772 = load float, ptr %35, align 4, !tbaa !11
  %773 = load float, ptr %42, align 4, !tbaa !11
  %774 = fmul float %773, %772
  store float %774, ptr %42, align 4, !tbaa !11
  br label %775

775:                                              ; preds = %761, %755
  br label %776

776:                                              ; preds = %775, %752
  %777 = load float, ptr %41, align 4, !tbaa !11
  %778 = load ptr, ptr %20, align 8, !tbaa !5
  %779 = load i64, ptr %33, align 8, !tbaa !9
  %780 = getelementptr inbounds float, ptr %778, i64 %779
  %781 = load float, ptr %780, align 4, !tbaa !11
  %782 = fdiv float %781, %777
  store float %782, ptr %780, align 4, !tbaa !11
  %783 = load ptr, ptr %20, align 8, !tbaa !5
  %784 = load i64, ptr %33, align 8, !tbaa !9
  %785 = getelementptr inbounds float, ptr %783, i64 %784
  %786 = load float, ptr %785, align 4, !tbaa !11
  store float %786, ptr %29, align 4, !tbaa !11
  %787 = load float, ptr %29, align 4, !tbaa !11
  %788 = fcmp oge float %787, 0.000000e+00
  br i1 %788, label %789, label %791

789:                                              ; preds = %776
  %790 = load float, ptr %29, align 4, !tbaa !11
  br label %794

791:                                              ; preds = %776
  %792 = load float, ptr %29, align 4, !tbaa !11
  %793 = fneg float %792
  br label %794

794:                                              ; preds = %791, %789
  %795 = phi float [ %790, %789 ], [ %793, %791 ]
  %796 = fpext float %795 to double
  %797 = fptrunc double %796 to float
  store float %797, ptr %34, align 4, !tbaa !11
  br label %879

798:                                              ; preds = %745
  %799 = load float, ptr %36, align 4, !tbaa !11
  %800 = fcmp ogt float %799, 0.000000e+00
  br i1 %800, label %801, label %859

801:                                              ; preds = %798
  %802 = load float, ptr %34, align 4, !tbaa !11
  %803 = load float, ptr %36, align 4, !tbaa !11
  %804 = load float, ptr %49, align 4, !tbaa !11
  %805 = fmul float %803, %804
  %806 = fcmp ogt float %802, %805
  br i1 %806, label %807, label %837

807:                                              ; preds = %801
  %808 = load float, ptr %36, align 4, !tbaa !11
  %809 = load float, ptr %49, align 4, !tbaa !11
  %810 = fmul float %808, %809
  %811 = load float, ptr %34, align 4, !tbaa !11
  %812 = fdiv float %810, %811
  store float %812, ptr %35, align 4, !tbaa !11
  %813 = load ptr, ptr %22, align 8, !tbaa !5
  %814 = load i64, ptr %33, align 8, !tbaa !9
  %815 = getelementptr inbounds float, ptr %813, i64 %814
  %816 = load float, ptr %815, align 4, !tbaa !11
  %817 = fcmp ogt float %816, 1.000000e+00
  br i1 %817, label %818, label %825

818:                                              ; preds = %807
  %819 = load ptr, ptr %22, align 8, !tbaa !5
  %820 = load i64, ptr %33, align 8, !tbaa !9
  %821 = getelementptr inbounds float, ptr %819, i64 %820
  %822 = load float, ptr %821, align 4, !tbaa !11
  %823 = load float, ptr %35, align 4, !tbaa !11
  %824 = fdiv float %823, %822
  store float %824, ptr %35, align 4, !tbaa !11
  br label %825

825:                                              ; preds = %818, %807
  %826 = load ptr, ptr %17, align 8, !tbaa !5
  %827 = load ptr, ptr %20, align 8, !tbaa !5
  %828 = getelementptr inbounds float, ptr %827, i64 1
  %829 = call i32 @f2c_sscal(ptr noundef %826, ptr noundef %35, ptr noundef %828, ptr noundef @c__1)
  %830 = load float, ptr %35, align 4, !tbaa !11
  %831 = load ptr, ptr %21, align 8, !tbaa !5
  %832 = load float, ptr %831, align 4, !tbaa !11
  %833 = fmul float %832, %830
  store float %833, ptr %831, align 4, !tbaa !11
  %834 = load float, ptr %35, align 4, !tbaa !11
  %835 = load float, ptr %42, align 4, !tbaa !11
  %836 = fmul float %835, %834
  store float %836, ptr %42, align 4, !tbaa !11
  br label %837

837:                                              ; preds = %825, %801
  %838 = load float, ptr %41, align 4, !tbaa !11
  %839 = load ptr, ptr %20, align 8, !tbaa !5
  %840 = load i64, ptr %33, align 8, !tbaa !9
  %841 = getelementptr inbounds float, ptr %839, i64 %840
  %842 = load float, ptr %841, align 4, !tbaa !11
  %843 = fdiv float %842, %838
  store float %843, ptr %841, align 4, !tbaa !11
  %844 = load ptr, ptr %20, align 8, !tbaa !5
  %845 = load i64, ptr %33, align 8, !tbaa !9
  %846 = getelementptr inbounds float, ptr %844, i64 %845
  %847 = load float, ptr %846, align 4, !tbaa !11
  store float %847, ptr %29, align 4, !tbaa !11
  %848 = load float, ptr %29, align 4, !tbaa !11
  %849 = fcmp oge float %848, 0.000000e+00
  br i1 %849, label %850, label %852

850:                                              ; preds = %837
  %851 = load float, ptr %29, align 4, !tbaa !11
  br label %855

852:                                              ; preds = %837
  %853 = load float, ptr %29, align 4, !tbaa !11
  %854 = fneg float %853
  br label %855

855:                                              ; preds = %852, %850
  %856 = phi float [ %851, %850 ], [ %854, %852 ]
  %857 = fpext float %856 to double
  %858 = fptrunc double %857 to float
  store float %858, ptr %34, align 4, !tbaa !11
  br label %878

859:                                              ; preds = %798
  %860 = load ptr, ptr %17, align 8, !tbaa !5
  %861 = load i64, ptr %860, align 8, !tbaa !9
  store i64 %861, ptr %28, align 8, !tbaa !9
  store i64 1, ptr %32, align 8, !tbaa !9
  br label %862

862:                                              ; preds = %870, %859
  %863 = load i64, ptr %32, align 8, !tbaa !9
  %864 = load i64, ptr %28, align 8, !tbaa !9
  %865 = icmp sle i64 %863, %864
  br i1 %865, label %866, label %873

866:                                              ; preds = %862
  %867 = load ptr, ptr %20, align 8, !tbaa !5
  %868 = load i64, ptr %32, align 8, !tbaa !9
  %869 = getelementptr inbounds float, ptr %867, i64 %868
  store float 0.000000e+00, ptr %869, align 4, !tbaa !11
  br label %870

870:                                              ; preds = %866
  %871 = load i64, ptr %32, align 8, !tbaa !9
  %872 = add nsw i64 %871, 1
  store i64 %872, ptr %32, align 8, !tbaa !9
  br label %862, !llvm.loop !20

873:                                              ; preds = %862
  %874 = load ptr, ptr %20, align 8, !tbaa !5
  %875 = load i64, ptr %33, align 8, !tbaa !9
  %876 = getelementptr inbounds float, ptr %874, i64 %875
  store float 1.000000e+00, ptr %876, align 4, !tbaa !11
  store float 1.000000e+00, ptr %34, align 4, !tbaa !11
  %877 = load ptr, ptr %21, align 8, !tbaa !5
  store float 0.000000e+00, ptr %877, align 4, !tbaa !11
  store float 0.000000e+00, ptr %42, align 4, !tbaa !11
  br label %878

878:                                              ; preds = %873, %855
  br label %879

879:                                              ; preds = %878, %794
  br label %880

880:                                              ; preds = %879, %735
  %881 = load float, ptr %34, align 4, !tbaa !11
  %882 = fcmp ogt float %881, 1.000000e+00
  br i1 %882, label %883, label %908

883:                                              ; preds = %880
  %884 = load float, ptr %34, align 4, !tbaa !11
  %885 = fdiv float 1.000000e+00, %884
  store float %885, ptr %35, align 4, !tbaa !11
  %886 = load ptr, ptr %22, align 8, !tbaa !5
  %887 = load i64, ptr %33, align 8, !tbaa !9
  %888 = getelementptr inbounds float, ptr %886, i64 %887
  %889 = load float, ptr %888, align 4, !tbaa !11
  %890 = load float, ptr %49, align 4, !tbaa !11
  %891 = load float, ptr %42, align 4, !tbaa !11
  %892 = fsub float %890, %891
  %893 = load float, ptr %35, align 4, !tbaa !11
  %894 = fmul float %892, %893
  %895 = fcmp ogt float %889, %894
  br i1 %895, label %896, label %907

896:                                              ; preds = %883
  %897 = load float, ptr %35, align 4, !tbaa !11
  %898 = fmul float %897, 5.000000e-01
  store float %898, ptr %35, align 4, !tbaa !11
  %899 = load ptr, ptr %17, align 8, !tbaa !5
  %900 = load ptr, ptr %20, align 8, !tbaa !5
  %901 = getelementptr inbounds float, ptr %900, i64 1
  %902 = call i32 @f2c_sscal(ptr noundef %899, ptr noundef %35, ptr noundef %901, ptr noundef @c__1)
  %903 = load float, ptr %35, align 4, !tbaa !11
  %904 = load ptr, ptr %21, align 8, !tbaa !5
  %905 = load float, ptr %904, align 4, !tbaa !11
  %906 = fmul float %905, %903
  store float %906, ptr %904, align 4, !tbaa !11
  br label %907

907:                                              ; preds = %896, %883
  br label %928

908:                                              ; preds = %880
  %909 = load float, ptr %34, align 4, !tbaa !11
  %910 = load ptr, ptr %22, align 8, !tbaa !5
  %911 = load i64, ptr %33, align 8, !tbaa !9
  %912 = getelementptr inbounds float, ptr %910, i64 %911
  %913 = load float, ptr %912, align 4, !tbaa !11
  %914 = fmul float %909, %913
  %915 = load float, ptr %49, align 4, !tbaa !11
  %916 = load float, ptr %42, align 4, !tbaa !11
  %917 = fsub float %915, %916
  %918 = fcmp ogt float %914, %917
  br i1 %918, label %919, label %927

919:                                              ; preds = %908
  %920 = load ptr, ptr %17, align 8, !tbaa !5
  %921 = load ptr, ptr %20, align 8, !tbaa !5
  %922 = getelementptr inbounds float, ptr %921, i64 1
  %923 = call i32 @f2c_sscal(ptr noundef %920, ptr noundef @c_b36, ptr noundef %922, ptr noundef @c__1)
  %924 = load ptr, ptr %21, align 8, !tbaa !5
  %925 = load float, ptr %924, align 4, !tbaa !11
  %926 = fmul float %925, 5.000000e-01
  store float %926, ptr %924, align 4, !tbaa !11
  br label %927

927:                                              ; preds = %919, %908
  br label %928

928:                                              ; preds = %927, %907
  %929 = load i64, ptr %48, align 8, !tbaa !9
  %930 = icmp ne i64 %929, 0
  br i1 %930, label %931, label %974

931:                                              ; preds = %928
  %932 = load i64, ptr %33, align 8, !tbaa !9
  %933 = icmp sgt i64 %932, 1
  br i1 %933, label %934, label %973

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

964:                                              ; preds = %934
  %965 = load float, ptr %29, align 4, !tbaa !11
  br label %969

966:                                              ; preds = %934
  %967 = load float, ptr %29, align 4, !tbaa !11
  %968 = fneg float %967
  br label %969

969:                                              ; preds = %966, %964
  %970 = phi float [ %965, %964 ], [ %968, %966 ]
  %971 = fpext float %970 to double
  %972 = fptrunc double %971 to float
  store float %972, ptr %42, align 4, !tbaa !11
  br label %973

973:                                              ; preds = %969, %931
  br label %1031

974:                                              ; preds = %928
  %975 = load i64, ptr %33, align 8, !tbaa !9
  %976 = load ptr, ptr %17, align 8, !tbaa !5
  %977 = load i64, ptr %976, align 8, !tbaa !9
  %978 = icmp slt i64 %975, %977
  br i1 %978, label %979, label %1030

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

1021:                                             ; preds = %979
  %1022 = load float, ptr %29, align 4, !tbaa !11
  br label %1026

1023:                                             ; preds = %979
  %1024 = load float, ptr %29, align 4, !tbaa !11
  %1025 = fneg float %1024
  br label %1026

1026:                                             ; preds = %1023, %1021
  %1027 = phi float [ %1022, %1021 ], [ %1025, %1023 ]
  %1028 = fpext float %1027 to double
  %1029 = fptrunc double %1028 to float
  store float %1029, ptr %42, align 4, !tbaa !11
  br label %1030

1030:                                             ; preds = %1026, %974
  br label %1031

1031:                                             ; preds = %1030, %973
  br label %1032

1032:                                             ; preds = %1031
  %1033 = load i64, ptr %27, align 8, !tbaa !9
  %1034 = load i64, ptr %33, align 8, !tbaa !9
  %1035 = add nsw i64 %1034, %1033
  store i64 %1035, ptr %33, align 8, !tbaa !9
  br label %686, !llvm.loop !21

1036:                                             ; preds = %699
  br label %1464

1037:                                             ; preds = %679
  %1038 = load i64, ptr %47, align 8, !tbaa !9
  store i64 %1038, ptr %27, align 8, !tbaa !9
  %1039 = load i64, ptr %37, align 8, !tbaa !9
  store i64 %1039, ptr %26, align 8, !tbaa !9
  %1040 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %1040, ptr %33, align 8, !tbaa !9
  br label %1041

1041:                                             ; preds = %1459, %1037
  %1042 = load i64, ptr %26, align 8, !tbaa !9
  %1043 = icmp slt i64 %1042, 0
  br i1 %1043, label %1044, label %1049

1044:                                             ; preds = %1041
  %1045 = load i64, ptr %33, align 8, !tbaa !9
  %1046 = load i64, ptr %27, align 8, !tbaa !9
  %1047 = icmp sge i64 %1045, %1046
  %1048 = zext i1 %1047 to i32
  br label %1054

1049:                                             ; preds = %1041
  %1050 = load i64, ptr %33, align 8, !tbaa !9
  %1051 = load i64, ptr %27, align 8, !tbaa !9
  %1052 = icmp sle i64 %1050, %1051
  %1053 = zext i1 %1052 to i32
  br label %1054

1054:                                             ; preds = %1049, %1044
  %1055 = phi i32 [ %1048, %1044 ], [ %1053, %1049 ]
  %1056 = icmp ne i32 %1055, 0
  br i1 %1056, label %1057, label %1463

1057:                                             ; preds = %1054
  %1058 = load ptr, ptr %20, align 8, !tbaa !5
  %1059 = load i64, ptr %33, align 8, !tbaa !9
  %1060 = getelementptr inbounds float, ptr %1058, i64 %1059
  %1061 = load float, ptr %1060, align 4, !tbaa !11
  store float %1061, ptr %29, align 4, !tbaa !11
  %1062 = load float, ptr %29, align 4, !tbaa !11
  %1063 = fcmp oge float %1062, 0.000000e+00
  br i1 %1063, label %1064, label %1066

1064:                                             ; preds = %1057
  %1065 = load float, ptr %29, align 4, !tbaa !11
  br label %1069

1066:                                             ; preds = %1057
  %1067 = load float, ptr %29, align 4, !tbaa !11
  %1068 = fneg float %1067
  br label %1069

1069:                                             ; preds = %1066, %1064
  %1070 = phi float [ %1065, %1064 ], [ %1068, %1066 ]
  %1071 = fpext float %1070 to double
  %1072 = fptrunc double %1071 to float
  store float %1072, ptr %34, align 4, !tbaa !11
  %1073 = load float, ptr %45, align 4, !tbaa !11
  store float %1073, ptr %46, align 4, !tbaa !11
  %1074 = load float, ptr %42, align 4, !tbaa !11
  %1075 = fcmp oge float %1074, 1.000000e+00
  br i1 %1075, label %1076, label %1078

1076:                                             ; preds = %1069
  %1077 = load float, ptr %42, align 4, !tbaa !11
  br label %1079

1078:                                             ; preds = %1069
  br label %1079

1079:                                             ; preds = %1078, %1076
  %1080 = phi float [ %1077, %1076 ], [ 1.000000e+00, %1078 ]
  %1081 = fpext float %1080 to double
  %1082 = fdiv double 1.000000e+00, %1081
  %1083 = fptrunc double %1082 to float
  store float %1083, ptr %35, align 4, !tbaa !11
  %1084 = load ptr, ptr %22, align 8, !tbaa !5
  %1085 = load i64, ptr %33, align 8, !tbaa !9
  %1086 = getelementptr inbounds float, ptr %1084, i64 %1085
  %1087 = load float, ptr %1086, align 4, !tbaa !11
  %1088 = load float, ptr %49, align 4, !tbaa !11
  %1089 = load float, ptr %34, align 4, !tbaa !11
  %1090 = fsub float %1088, %1089
  %1091 = load float, ptr %35, align 4, !tbaa !11
  %1092 = fmul float %1090, %1091
  %1093 = fcmp ogt float %1087, %1092
  br i1 %1093, label %1094, label %1160

1094:                                             ; preds = %1079
  %1095 = load float, ptr %35, align 4, !tbaa !11
  %1096 = fmul float %1095, 5.000000e-01
  store float %1096, ptr %35, align 4, !tbaa !11
  %1097 = load i64, ptr %53, align 8, !tbaa !9
  %1098 = icmp ne i64 %1097, 0
  br i1 %1098, label %1099, label %1110

1099:                                             ; preds = %1094
  %1100 = load ptr, ptr %18, align 8, !tbaa !5
  %1101 = load i64, ptr %33, align 8, !tbaa !9
  %1102 = load i64, ptr %33, align 8, !tbaa !9
  %1103 = load i64, ptr %24, align 8, !tbaa !9
  %1104 = mul nsw i64 %1102, %1103
  %1105 = add nsw i64 %1101, %1104
  %1106 = getelementptr inbounds float, ptr %1100, i64 %1105
  %1107 = load float, ptr %1106, align 4, !tbaa !11
  %1108 = load float, ptr %45, align 4, !tbaa !11
  %1109 = fmul float %1107, %1108
  store float %1109, ptr %41, align 4, !tbaa !11
  br label %1112

1110:                                             ; preds = %1094
  %1111 = load float, ptr %45, align 4, !tbaa !11
  store float %1111, ptr %41, align 4, !tbaa !11
  br label %1112

1112:                                             ; preds = %1110, %1099
  %1113 = load float, ptr %41, align 4, !tbaa !11
  %1114 = fcmp oge float %1113, 0.000000e+00
  br i1 %1114, label %1115, label %1117

1115:                                             ; preds = %1112
  %1116 = load float, ptr %41, align 4, !tbaa !11
  br label %1120

1117:                                             ; preds = %1112
  %1118 = load float, ptr %41, align 4, !tbaa !11
  %1119 = fneg float %1118
  br label %1120

1120:                                             ; preds = %1117, %1115
  %1121 = phi float [ %1116, %1115 ], [ %1119, %1117 ]
  %1122 = fpext float %1121 to double
  %1123 = fptrunc double %1122 to float
  store float %1123, ptr %36, align 4, !tbaa !11
  %1124 = load float, ptr %36, align 4, !tbaa !11
  %1125 = fcmp ogt float %1124, 1.000000e+00
  br i1 %1125, label %1126, label %1144

1126:                                             ; preds = %1120
  store float 1.000000e+00, ptr %29, align 4, !tbaa !11
  %1127 = load float, ptr %35, align 4, !tbaa !11
  %1128 = load float, ptr %36, align 4, !tbaa !11
  %1129 = fmul float %1127, %1128
  store float %1129, ptr %30, align 4, !tbaa !11
  %1130 = load float, ptr %29, align 4, !tbaa !11
  %1131 = load float, ptr %30, align 4, !tbaa !11
  %1132 = fcmp ole float %1130, %1131
  br i1 %1132, label %1133, label %1135

1133:                                             ; preds = %1126
  %1134 = load float, ptr %29, align 4, !tbaa !11
  br label %1137

1135:                                             ; preds = %1126
  %1136 = load float, ptr %30, align 4, !tbaa !11
  br label %1137

1137:                                             ; preds = %1135, %1133
  %1138 = phi float [ %1134, %1133 ], [ %1136, %1135 ]
  %1139 = fpext float %1138 to double
  %1140 = fptrunc double %1139 to float
  store float %1140, ptr %35, align 4, !tbaa !11
  %1141 = load float, ptr %41, align 4, !tbaa !11
  %1142 = load float, ptr %46, align 4, !tbaa !11
  %1143 = fdiv float %1142, %1141
  store float %1143, ptr %46, align 4, !tbaa !11
  br label %1144

1144:                                             ; preds = %1137, %1120
  %1145 = load float, ptr %35, align 4, !tbaa !11
  %1146 = fcmp olt float %1145, 1.000000e+00
  br i1 %1146, label %1147, label %1159

1147:                                             ; preds = %1144
  %1148 = load ptr, ptr %17, align 8, !tbaa !5
  %1149 = load ptr, ptr %20, align 8, !tbaa !5
  %1150 = getelementptr inbounds float, ptr %1149, i64 1
  %1151 = call i32 @f2c_sscal(ptr noundef %1148, ptr noundef %35, ptr noundef %1150, ptr noundef @c__1)
  %1152 = load float, ptr %35, align 4, !tbaa !11
  %1153 = load ptr, ptr %21, align 8, !tbaa !5
  %1154 = load float, ptr %1153, align 4, !tbaa !11
  %1155 = fmul float %1154, %1152
  store float %1155, ptr %1153, align 4, !tbaa !11
  %1156 = load float, ptr %35, align 4, !tbaa !11
  %1157 = load float, ptr %42, align 4, !tbaa !11
  %1158 = fmul float %1157, %1156
  store float %1158, ptr %42, align 4, !tbaa !11
  br label %1159

1159:                                             ; preds = %1147, %1144
  br label %1160

1160:                                             ; preds = %1159, %1079
  store float 0.000000e+00, ptr %44, align 4, !tbaa !11
  %1161 = load float, ptr %46, align 4, !tbaa !11
  %1162 = fcmp oeq float %1161, 1.000000e+00
  br i1 %1162, label %1163, label %1205

1163:                                             ; preds = %1160
  %1164 = load i64, ptr %48, align 8, !tbaa !9
  %1165 = icmp ne i64 %1164, 0
  br i1 %1165, label %1166, label %1179

1166:                                             ; preds = %1163
  %1167 = load i64, ptr %33, align 8, !tbaa !9
  %1168 = sub nsw i64 %1167, 1
  store i64 %1168, ptr %28, align 8, !tbaa !9
  %1169 = load ptr, ptr %18, align 8, !tbaa !5
  %1170 = load i64, ptr %33, align 8, !tbaa !9
  %1171 = load i64, ptr %24, align 8, !tbaa !9
  %1172 = mul nsw i64 %1170, %1171
  %1173 = add nsw i64 %1172, 1
  %1174 = getelementptr inbounds float, ptr %1169, i64 %1173
  %1175 = load ptr, ptr %20, align 8, !tbaa !5
  %1176 = getelementptr inbounds float, ptr %1175, i64 1
  %1177 = call double @f2c_sdot(ptr noundef %28, ptr noundef %1174, ptr noundef @c__1, ptr noundef %1176, ptr noundef @c__1)
  %1178 = fptrunc double %1177 to float
  store float %1178, ptr %44, align 4, !tbaa !11
  br label %1204

1179:                                             ; preds = %1163
  %1180 = load i64, ptr %33, align 8, !tbaa !9
  %1181 = load ptr, ptr %17, align 8, !tbaa !5
  %1182 = load i64, ptr %1181, align 8, !tbaa !9
  %1183 = icmp slt i64 %1180, %1182
  br i1 %1183, label %1184, label %1203

1184:                                             ; preds = %1179
  %1185 = load ptr, ptr %17, align 8, !tbaa !5
  %1186 = load i64, ptr %1185, align 8, !tbaa !9
  %1187 = load i64, ptr %33, align 8, !tbaa !9
  %1188 = sub nsw i64 %1186, %1187
  store i64 %1188, ptr %28, align 8, !tbaa !9
  %1189 = load ptr, ptr %18, align 8, !tbaa !5
  %1190 = load i64, ptr %33, align 8, !tbaa !9
  %1191 = add nsw i64 %1190, 1
  %1192 = load i64, ptr %33, align 8, !tbaa !9
  %1193 = load i64, ptr %24, align 8, !tbaa !9
  %1194 = mul nsw i64 %1192, %1193
  %1195 = add nsw i64 %1191, %1194
  %1196 = getelementptr inbounds float, ptr %1189, i64 %1195
  %1197 = load ptr, ptr %20, align 8, !tbaa !5
  %1198 = load i64, ptr %33, align 8, !tbaa !9
  %1199 = add nsw i64 %1198, 1
  %1200 = getelementptr inbounds float, ptr %1197, i64 %1199
  %1201 = call double @f2c_sdot(ptr noundef %28, ptr noundef %1196, ptr noundef @c__1, ptr noundef %1200, ptr noundef @c__1)
  %1202 = fptrunc double %1201 to float
  store float %1202, ptr %44, align 4, !tbaa !11
  br label %1203

1203:                                             ; preds = %1184, %1179
  br label %1204

1204:                                             ; preds = %1203, %1166
  br label %1273

1205:                                             ; preds = %1160
  %1206 = load i64, ptr %48, align 8, !tbaa !9
  %1207 = icmp ne i64 %1206, 0
  br i1 %1207, label %1208, label %1236

1208:                                             ; preds = %1205
  %1209 = load i64, ptr %33, align 8, !tbaa !9
  %1210 = sub nsw i64 %1209, 1
  store i64 %1210, ptr %28, align 8, !tbaa !9
  store i64 1, ptr %32, align 8, !tbaa !9
  br label %1211

1211:                                             ; preds = %1232, %1208
  %1212 = load i64, ptr %32, align 8, !tbaa !9
  %1213 = load i64, ptr %28, align 8, !tbaa !9
  %1214 = icmp sle i64 %1212, %1213
  br i1 %1214, label %1215, label %1235

1215:                                             ; preds = %1211
  %1216 = load ptr, ptr %18, align 8, !tbaa !5
  %1217 = load i64, ptr %32, align 8, !tbaa !9
  %1218 = load i64, ptr %33, align 8, !tbaa !9
  %1219 = load i64, ptr %24, align 8, !tbaa !9
  %1220 = mul nsw i64 %1218, %1219
  %1221 = add nsw i64 %1217, %1220
  %1222 = getelementptr inbounds float, ptr %1216, i64 %1221
  %1223 = load float, ptr %1222, align 4, !tbaa !11
  %1224 = load float, ptr %46, align 4, !tbaa !11
  %1225 = fmul float %1223, %1224
  %1226 = load ptr, ptr %20, align 8, !tbaa !5
  %1227 = load i64, ptr %32, align 8, !tbaa !9
  %1228 = getelementptr inbounds float, ptr %1226, i64 %1227
  %1229 = load float, ptr %1228, align 4, !tbaa !11
  %1230 = load float, ptr %44, align 4, !tbaa !11
  %1231 = call float @llvm.fmuladd.f32(float %1225, float %1229, float %1230)
  store float %1231, ptr %44, align 4, !tbaa !11
  br label %1232

1232:                                             ; preds = %1215
  %1233 = load i64, ptr %32, align 8, !tbaa !9
  %1234 = add nsw i64 %1233, 1
  store i64 %1234, ptr %32, align 8, !tbaa !9
  br label %1211, !llvm.loop !22

1235:                                             ; preds = %1211
  br label %1272

1236:                                             ; preds = %1205
  %1237 = load i64, ptr %33, align 8, !tbaa !9
  %1238 = load ptr, ptr %17, align 8, !tbaa !5
  %1239 = load i64, ptr %1238, align 8, !tbaa !9
  %1240 = icmp slt i64 %1237, %1239
  br i1 %1240, label %1241, label %1271

1241:                                             ; preds = %1236
  %1242 = load ptr, ptr %17, align 8, !tbaa !5
  %1243 = load i64, ptr %1242, align 8, !tbaa !9
  store i64 %1243, ptr %28, align 8, !tbaa !9
  %1244 = load i64, ptr %33, align 8, !tbaa !9
  %1245 = add nsw i64 %1244, 1
  store i64 %1245, ptr %32, align 8, !tbaa !9
  br label %1246

1246:                                             ; preds = %1267, %1241
  %1247 = load i64, ptr %32, align 8, !tbaa !9
  %1248 = load i64, ptr %28, align 8, !tbaa !9
  %1249 = icmp sle i64 %1247, %1248
  br i1 %1249, label %1250, label %1270

1250:                                             ; preds = %1246
  %1251 = load ptr, ptr %18, align 8, !tbaa !5
  %1252 = load i64, ptr %32, align 8, !tbaa !9
  %1253 = load i64, ptr %33, align 8, !tbaa !9
  %1254 = load i64, ptr %24, align 8, !tbaa !9
  %1255 = mul nsw i64 %1253, %1254
  %1256 = add nsw i64 %1252, %1255
  %1257 = getelementptr inbounds float, ptr %1251, i64 %1256
  %1258 = load float, ptr %1257, align 4, !tbaa !11
  %1259 = load float, ptr %46, align 4, !tbaa !11
  %1260 = fmul float %1258, %1259
  %1261 = load ptr, ptr %20, align 8, !tbaa !5
  %1262 = load i64, ptr %32, align 8, !tbaa !9
  %1263 = getelementptr inbounds float, ptr %1261, i64 %1262
  %1264 = load float, ptr %1263, align 4, !tbaa !11
  %1265 = load float, ptr %44, align 4, !tbaa !11
  %1266 = call float @llvm.fmuladd.f32(float %1260, float %1264, float %1265)
  store float %1266, ptr %44, align 4, !tbaa !11
  br label %1267

1267:                                             ; preds = %1250
  %1268 = load i64, ptr %32, align 8, !tbaa !9
  %1269 = add nsw i64 %1268, 1
  store i64 %1269, ptr %32, align 8, !tbaa !9
  br label %1246, !llvm.loop !23

1270:                                             ; preds = %1246
  br label %1271

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

1272:                                             ; preds = %1271, %1235
  br label %1273

1273:                                             ; preds = %1272, %1204
  %1274 = load float, ptr %46, align 4, !tbaa !11
  %1275 = load float, ptr %45, align 4, !tbaa !11
  %1276 = fcmp oeq float %1274, %1275
  br i1 %1276, label %1277, label %1419

1277:                                             ; preds = %1273
  %1278 = load float, ptr %44, align 4, !tbaa !11
  %1279 = load ptr, ptr %20, align 8, !tbaa !5
  %1280 = load i64, ptr %33, align 8, !tbaa !9
  %1281 = getelementptr inbounds float, ptr %1279, i64 %1280
  %1282 = load float, ptr %1281, align 4, !tbaa !11
  %1283 = fsub float %1282, %1278
  store float %1283, ptr %1281, align 4, !tbaa !11
  %1284 = load ptr, ptr %20, align 8, !tbaa !5
  %1285 = load i64, ptr %33, align 8, !tbaa !9
  %1286 = getelementptr inbounds float, ptr %1284, i64 %1285
  %1287 = load float, ptr %1286, align 4, !tbaa !11
  store float %1287, ptr %29, align 4, !tbaa !11
  %1288 = load float, ptr %29, align 4, !tbaa !11
  %1289 = fcmp oge float %1288, 0.000000e+00
  br i1 %1289, label %1290, label %1292

1290:                                             ; preds = %1277
  %1291 = load float, ptr %29, align 4, !tbaa !11
  br label %1295

1292:                                             ; preds = %1277
  %1293 = load float, ptr %29, align 4, !tbaa !11
  %1294 = fneg float %1293
  br label %1295

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

1301:                                             ; preds = %1295
  %1302 = load ptr, ptr %18, align 8, !tbaa !5
  %1303 = load i64, ptr %33, align 8, !tbaa !9
  %1304 = load i64, ptr %33, align 8, !tbaa !9
  %1305 = load i64, ptr %24, align 8, !tbaa !9
  %1306 = mul nsw i64 %1304, %1305
  %1307 = add nsw i64 %1303, %1306
  %1308 = getelementptr inbounds float, ptr %1302, i64 %1307
  %1309 = load float, ptr %1308, align 4, !tbaa !11
  %1310 = load float, ptr %45, align 4, !tbaa !11
  %1311 = fmul float %1309, %1310
  store float %1311, ptr %41, align 4, !tbaa !11
  br label %1318

1312:                                             ; preds = %1295
  %1313 = load float, ptr %45, align 4, !tbaa !11
  store float %1313, ptr %41, align 4, !tbaa !11
  %1314 = load float, ptr %45, align 4, !tbaa !11
  %1315 = fcmp oeq float %1314, 1.000000e+00
  br i1 %1315, label %1316, label %1317

1316:                                             ; preds = %1312
  br label %1418

1317:                                             ; preds = %1312
  br label %1318

1318:                                             ; preds = %1317, %1301
  %1319 = load float, ptr %41, align 4, !tbaa !11
  %1320 = fcmp oge float %1319, 0.000000e+00
  br i1 %1320, label %1321, label %1323

1321:                                             ; preds = %1318
  %1322 = load float, ptr %41, align 4, !tbaa !11
  br label %1326

1323:                                             ; preds = %1318
  %1324 = load float, ptr %41, align 4, !tbaa !11
  %1325 = fneg float %1324
  br label %1326

1326:                                             ; preds = %1323, %1321
  %1327 = phi float [ %1322, %1321 ], [ %1325, %1323 ]
  %1328 = fpext float %1327 to double
  %1329 = fptrunc double %1328 to float
  store float %1329, ptr %36, align 4, !tbaa !11
  %1330 = load float, ptr %36, align 4, !tbaa !11
  %1331 = load float, ptr %52, align 4, !tbaa !11
  %1332 = fcmp ogt float %1330, %1331
  br i1 %1332, label %1333, label %1364

1333:                                             ; preds = %1326
  %1334 = load float, ptr %36, align 4, !tbaa !11
  %1335 = fcmp olt float %1334, 1.000000e+00
  br i1 %1335, label %1336, label %1357

1336:                                             ; preds = %1333
  %1337 = load float, ptr %34, align 4, !tbaa !11
  %1338 = load float, ptr %36, align 4, !tbaa !11
  %1339 = load float, ptr %49, align 4, !tbaa !11
  %1340 = fmul float %1338, %1339
  %1341 = fcmp ogt float %1337, %1340
  br i1 %1341, label %1342, label %1356

1342:                                             ; preds = %1336
  %1343 = load float, ptr %34, align 4, !tbaa !11
  %1344 = fdiv float 1.000000e+00, %1343
  store float %1344, ptr %35, align 4, !tbaa !11
  %1345 = load ptr, ptr %17, align 8, !tbaa !5
  %1346 = load ptr, ptr %20, align 8, !tbaa !5
  %1347 = getelementptr inbounds float, ptr %1346, i64 1
  %1348 = call i32 @f2c_sscal(ptr noundef %1345, ptr noundef %35, ptr noundef %1347, ptr noundef @c__1)
  %1349 = load float, ptr %35, align 4, !tbaa !11
  %1350 = load ptr, ptr %21, align 8, !tbaa !5
  %1351 = load float, ptr %1350, align 4, !tbaa !11
  %1352 = fmul float %1351, %1349
  store float %1352, ptr %1350, align 4, !tbaa !11
  %1353 = load float, ptr %35, align 4, !tbaa !11
  %1354 = load float, ptr %42, align 4, !tbaa !11
  %1355 = fmul float %1354, %1353
  store float %1355, ptr %42, align 4, !tbaa !11
  br label %1356

1356:                                             ; preds = %1342, %1336
  br label %1357

1357:                                             ; preds = %1356, %1333
  %1358 = load float, ptr %41, align 4, !tbaa !11
  %1359 = load ptr, ptr %20, align 8, !tbaa !5
  %1360 = load i64, ptr %33, align 8, !tbaa !9
  %1361 = getelementptr inbounds float, ptr %1359, i64 %1360
  %1362 = load float, ptr %1361, align 4, !tbaa !11
  %1363 = fdiv float %1362, %1358
  store float %1363, ptr %1361, align 4, !tbaa !11
  br label %1417

1364:                                             ; preds = %1326
  %1365 = load float, ptr %36, align 4, !tbaa !11
  %1366 = fcmp ogt float %1365, 0.000000e+00
  br i1 %1366, label %1367, label %1397

1367:                                             ; preds = %1364
  %1368 = load float, ptr %34, align 4, !tbaa !11
  %1369 = load float, ptr %36, align 4, !tbaa !11
  %1370 = load float, ptr %49, align 4, !tbaa !11
  %1371 = fmul float %1369, %1370
  %1372 = fcmp ogt float %1368, %1371
  br i1 %1372, label %1373, label %1390

1373:                                             ; preds = %1367
  %1374 = load float, ptr %36, align 4, !tbaa !11
  %1375 = load float, ptr %49, align 4, !tbaa !11
  %1376 = fmul float %1374, %1375
  %1377 = load float, ptr %34, align 4, !tbaa !11
  %1378 = fdiv float %1376, %1377
  store float %1378, ptr %35, align 4, !tbaa !11
  %1379 = load ptr, ptr %17, align 8, !tbaa !5
  %1380 = load ptr, ptr %20, align 8, !tbaa !5
  %1381 = getelementptr inbounds float, ptr %1380, i64 1
  %1382 = call i32 @f2c_sscal(ptr noundef %1379, ptr noundef %35, ptr noundef %1381, ptr noundef @c__1)
  %1383 = load float, ptr %35, align 4, !tbaa !11
  %1384 = load ptr, ptr %21, align 8, !tbaa !5
  %1385 = load float, ptr %1384, align 4, !tbaa !11
  %1386 = fmul float %1385, %1383
  store float %1386, ptr %1384, align 4, !tbaa !11
  %1387 = load float, ptr %35, align 4, !tbaa !11
  %1388 = load float, ptr %42, align 4, !tbaa !11
  %1389 = fmul float %1388, %1387
  store float %1389, ptr %42, align 4, !tbaa !11
  br label %1390

1390:                                             ; preds = %1373, %1367
  %1391 = load float, ptr %41, align 4, !tbaa !11
  %1392 = load ptr, ptr %20, align 8, !tbaa !5
  %1393 = load i64, ptr %33, align 8, !tbaa !9
  %1394 = getelementptr inbounds float, ptr %1392, i64 %1393
  %1395 = load float, ptr %1394, align 4, !tbaa !11
  %1396 = fdiv float %1395, %1391
  store float %1396, ptr %1394, align 4, !tbaa !11
  br label %1416

1397:                                             ; preds = %1364
  %1398 = load ptr, ptr %17, align 8, !tbaa !5
  %1399 = load i64, ptr %1398, align 8, !tbaa !9
  store i64 %1399, ptr %28, align 8, !tbaa !9
  store i64 1, ptr %32, align 8, !tbaa !9
  br label %1400

1400:                                             ; preds = %1408, %1397
  %1401 = load i64, ptr %32, align 8, !tbaa !9
  %1402 = load i64, ptr %28, align 8, !tbaa !9
  %1403 = icmp sle i64 %1401, %1402
  br i1 %1403, label %1404, label %1411

1404:                                             ; preds = %1400
  %1405 = load ptr, ptr %20, align 8, !tbaa !5
  %1406 = load i64, ptr %32, align 8, !tbaa !9
  %1407 = getelementptr inbounds float, ptr %1405, i64 %1406
  store float 0.000000e+00, ptr %1407, align 4, !tbaa !11
  br label %1408

1408:                                             ; preds = %1404
  %1409 = load i64, ptr %32, align 8, !tbaa !9
  %1410 = add nsw i64 %1409, 1
  store i64 %1410, ptr %32, align 8, !tbaa !9
  br label %1400, !llvm.loop !24

1411:                                             ; preds = %1400
  %1412 = load ptr, ptr %20, align 8, !tbaa !5
  %1413 = load i64, ptr %33, align 8, !tbaa !9
  %1414 = getelementptr inbounds float, ptr %1412, i64 %1413
  store float 1.000000e+00, ptr %1414, align 4, !tbaa !11
  %1415 = load ptr, ptr %21, align 8, !tbaa !5
  store float 0.000000e+00, ptr %1415, align 4, !tbaa !11
  store float 0.000000e+00, ptr %42, align 4, !tbaa !11
  br label %1416

1416:                                             ; preds = %1411, %1390
  br label %1417

1417:                                             ; preds = %1416, %1357
  br label %1418

1418:                                             ; preds = %1417, %1316
  br label %1431

1419:                                             ; preds = %1273
  %1420 = load ptr, ptr %20, align 8, !tbaa !5
  %1421 = load i64, ptr %33, align 8, !tbaa !9
  %1422 = getelementptr inbounds float, ptr %1420, i64 %1421
  %1423 = load float, ptr %1422, align 4, !tbaa !11
  %1424 = load float, ptr %41, align 4, !tbaa !11
  %1425 = fdiv float %1423, %1424
  %1426 = load float, ptr %44, align 4, !tbaa !11
  %1427 = fsub float %1425, %1426
  %1428 = load ptr, ptr %20, align 8, !tbaa !5
  %1429 = load i64, ptr %33, align 8, !tbaa !9
  %1430 = getelementptr inbounds float, ptr %1428, i64 %1429
  store float %1427, ptr %1430, align 4, !tbaa !11
  br label %1431

1431:                                             ; preds = %1419, %1418
  %1432 = load float, ptr %42, align 4, !tbaa !11
  store float %1432, ptr %30, align 4, !tbaa !11
  %1433 = load ptr, ptr %20, align 8, !tbaa !5
  %1434 = load i64, ptr %33, align 8, !tbaa !9
  %1435 = getelementptr inbounds float, ptr %1433, i64 %1434
  %1436 = load float, ptr %1435, align 4, !tbaa !11
  store float %1436, ptr %29, align 4, !tbaa !11
  %1437 = load float, ptr %29, align 4, !tbaa !11
  %1438 = fcmp oge float %1437, 0.000000e+00
  br i1 %1438, label %1439, label %1441

1439:                                             ; preds = %1431
  %1440 = load float, ptr %29, align 4, !tbaa !11
  br label %1444

1441:                                             ; preds = %1431
  %1442 = load float, ptr %29, align 4, !tbaa !11
  %1443 = fneg float %1442
  br label %1444

1444:                                             ; preds = %1441, %1439
  %1445 = phi float [ %1440, %1439 ], [ %1443, %1441 ]
  %1446 = fpext float %1445 to double
  %1447 = fptrunc double %1446 to float
  store float %1447, ptr %31, align 4, !tbaa !11
  %1448 = load float, ptr %30, align 4, !tbaa !11
  %1449 = load float, ptr %31, align 4, !tbaa !11
  %1450 = fcmp oge float %1448, %1449
  br i1 %1450, label %1451, label %1453

1451:                                             ; preds = %1444
  %1452 = load float, ptr %30, align 4, !tbaa !11
  br label %1455

1453:                                             ; preds = %1444
  %1454 = load float, ptr %31, align 4, !tbaa !11
  br label %1455

1455:                                             ; preds = %1453, %1451
  %1456 = phi float [ %1452, %1451 ], [ %1454, %1453 ]
  %1457 = fpext float %1456 to double
  %1458 = fptrunc double %1457 to float
  store float %1458, ptr %42, align 4, !tbaa !11
  br label %1459

1459:                                             ; preds = %1455
  %1460 = load i64, ptr %26, align 8, !tbaa !9
  %1461 = load i64, ptr %33, align 8, !tbaa !9
  %1462 = add nsw i64 %1461, %1460
  store i64 %1462, ptr %33, align 8, !tbaa !9
  br label %1041, !llvm.loop !25

1463:                                             ; preds = %1054
  br label %1464

1464:                                             ; preds = %1463, %1036
  %1465 = load float, ptr %45, align 4, !tbaa !11
  %1466 = load ptr, ptr %21, align 8, !tbaa !5
  %1467 = load float, ptr %1466, align 4, !tbaa !11
  %1468 = fdiv float %1467, %1465
  store float %1468, ptr %1466, align 4, !tbaa !11
  br label %1469

1469:                                             ; preds = %1464, %652
  %1470 = load float, ptr %45, align 4, !tbaa !11
  %1471 = fcmp une float %1470, 1.000000e+00
  br i1 %1471, label %1472, label %1479

1472:                                             ; preds = %1469
  %1473 = load float, ptr %45, align 4, !tbaa !11
  %1474 = fdiv float 1.000000e+00, %1473
  store float %1474, ptr %29, align 4, !tbaa !11
  %1475 = load ptr, ptr %17, align 8, !tbaa !5
  %1476 = load ptr, ptr %22, align 8, !tbaa !5
  %1477 = getelementptr inbounds float, ptr %1476, i64 1
  %1478 = call i32 @f2c_sscal(ptr noundef %1475, ptr noundef %29, ptr noundef %1477, ptr noundef @c__1)
  br label %1479

1479:                                             ; preds = %1472, %1469
  store i32 0, ptr %12, align 4
  store i32 1, ptr %54, align 4
  br label %1480

1480:                                             ; preds = %1479, %153, %144
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 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 8, 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 4, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  %1481 = load i32, ptr %12, align 4
  ret i32 %1481
}

; 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_strsv(ptr noundef, 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 @slatrs_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr nocapture noundef %10) local_unnamed_addr #0 {
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca float, align 4
  %16 = alloca float, align 4
  %17 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #6
  %18 = load i64, ptr %6, align 8, !tbaa !5
  %19 = xor i64 %18, -1
  %20 = getelementptr inbounds float, ptr %5, i64 %19
  %21 = getelementptr inbounds i8, ptr %7, i64 -4
  %22 = getelementptr inbounds i8, ptr %9, i64 -4
  store i64 0, ptr %10, align 8, !tbaa !5
  %23 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %24 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #6
  %25 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str.1) #6
  %.not.not.not = icmp eq i64 %23, 0
  br i1 %.not.not.not, label %26, label %28

26:                                               ; preds = %11
  %27 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  %.not525 = icmp eq i64 %27, 0
  br i1 %.not525, label %.thread.sink.split, label %28

28:                                               ; preds = %26, %11
  %.not526 = icmp eq i64 %24, 0
  br i1 %.not526, label %29, label %33

29:                                               ; preds = %28
  %30 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %.not527 = icmp eq i64 %30, 0
  br i1 %.not527, label %31, label %33

31:                                               ; preds = %29
  %32 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #6
  %.not528 = icmp eq i64 %32, 0
  br i1 %.not528, label %.thread.sink.split, label %33

33:                                               ; preds = %31, %29, %28
  %.not529 = icmp eq i64 %25, 0
  br i1 %.not529, label %34, label %36

34:                                               ; preds = %33
  %35 = tail call i64 @lsame_(ptr noundef %2, ptr noundef nonnull @.str) #6
  %.not530 = icmp eq i64 %35, 0
  br i1 %.not530, label %.thread.sink.split, label %36

36:                                               ; preds = %34, %33
  %37 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.5) #6
  %.not531 = icmp eq i64 %37, 0
  br i1 %.not531, label %38, label %40

38:                                               ; preds = %36
  %39 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #6
  %.not532 = icmp eq i64 %39, 0
  br i1 %.not532, label %.thread.sink.split, label %40

40:                                               ; preds = %38, %36
  %41 = load i64, ptr %4, align 8, !tbaa !5
  %42 = icmp slt i64 %41, 0
  br i1 %42, label %.thread.sink.split, label %43

43:                                               ; preds = %40
  %44 = load i64, ptr %6, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %41, i64 1)
  %45 = icmp slt i64 %44, %spec.select
  br i1 %45, label %.thread.sink.split, label %46

46:                                               ; preds = %43
  %.pr = load i64, ptr %10, align 8, !tbaa !5
  %.not533 = icmp eq i64 %.pr, 0
  br i1 %.not533, label %50, label %.thread

.thread.sink.split:                               ; preds = %43, %40, %38, %34, %31, %26
  %.sink = phi i64 [ -1, %26 ], [ -2, %31 ], [ -3, %34 ], [ -4, %38 ], [ -5, %40 ], [ -7, %43 ]
  store i64 %.sink, ptr %10, align 8, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %46
  %47 = phi i64 [ %.pr, %46 ], [ %.sink, %.thread.sink.split ]
  %48 = sub nsw i64 0, %47
  store i64 %48, ptr %12, align 8, !tbaa !5
  %49 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %12) #6
  br label %507

50:                                               ; preds = %46
  %51 = icmp eq i64 %41, 0
  br i1 %51, label %507, label %52

52:                                               ; preds = %50
  %53 = tail call double @slamch_(ptr noundef nonnull @.str.7) #6
  %54 = tail call double @slamch_(ptr noundef nonnull @.str.8) #6
  %55 = fdiv double %53, %54
  %56 = fptrunc double %55 to float
  %57 = fdiv float 1.000000e+00, %56
  store float 1.000000e+00, ptr %8, align 4, !tbaa !9
  %58 = tail call i64 @lsame_(ptr noundef %3, ptr noundef nonnull @.str.1) #6
  %.not534 = icmp eq i64 %58, 0
  br i1 %.not534, label %.loopexit574, label %59

59:                                               ; preds = %52
  %60 = load i64, ptr %4, align 8, !tbaa !5
  br i1 %.not.not.not, label %68, label %61

61:                                               ; preds = %59
  store i64 %60, ptr %12, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %20, i64 4
  %.not536577 = icmp slt i64 %60, 1
  br i1 %.not536577, label %.loopexit574, label %.lr.ph

.lr.ph:                                           ; preds = %61, %.lr.ph
  %.0481578 = phi i64 [ %67, %.lr.ph ], [ 1, %61 ]
  %62 = add nsw i64 %.0481578, -1
  store i64 %62, ptr %13, align 8, !tbaa !5
  %63 = mul nsw i64 %.0481578, %18
  %gep = getelementptr float, ptr %invariant.gep, i64 %63
  %64 = call double @f2c_sasum(ptr noundef nonnull %13, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %65 = fptrunc double %64 to float
  %66 = getelementptr inbounds float, ptr %22, i64 %.0481578
  store float %65, ptr %66, align 4, !tbaa !9
  %67 = add nuw nsw i64 %.0481578, 1
  %.not536.not = icmp slt i64 %.0481578, %60
  br i1 %.not536.not, label %.lr.ph, label %.loopexit574, !llvm.loop !11

68:                                               ; preds = %59
  %69 = add nsw i64 %60, -1
  store i64 %69, ptr %12, align 8, !tbaa !5
  %.not535579 = icmp slt i64 %60, 2
  br i1 %.not535579, label %._crit_edge, label %.lr.ph581

.lr.ph581:                                        ; preds = %68, %.lr.ph581
  %.1482580 = phi i64 [ %72, %.lr.ph581 ], [ 1, %68 ]
  %70 = load i64, ptr %4, align 8, !tbaa !5
  %71 = sub nsw i64 %70, %.1482580
  store i64 %71, ptr %13, align 8, !tbaa !5
  %72 = add nuw nsw i64 %.1482580, 1
  %73 = mul nsw i64 %.1482580, %18
  %74 = getelementptr float, ptr %20, i64 %72
  %75 = getelementptr float, ptr %74, i64 %73
  %76 = call double @f2c_sasum(ptr noundef nonnull %13, ptr noundef %75, ptr noundef nonnull @c__1) #6
  %77 = fptrunc double %76 to float
  %78 = getelementptr inbounds float, ptr %22, i64 %.1482580
  store float %77, ptr %78, align 4, !tbaa !9
  %.not535.not = icmp slt i64 %.1482580, %69
  br i1 %.not535.not, label %.lr.ph581, label %._crit_edge.loopexit, !llvm.loop !13

._crit_edge.loopexit:                             ; preds = %.lr.ph581
  %.pre = load i64, ptr %4, align 8, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %68
  %79 = phi i64 [ %.pre, %._crit_edge.loopexit ], [ %60, %68 ]
  %80 = getelementptr inbounds float, ptr %22, i64 %79
  store float 0.000000e+00, ptr %80, align 4, !tbaa !9
  br label %.loopexit574

.loopexit574:                                     ; preds = %.lr.ph, %61, %._crit_edge, %52
  %81 = call i64 @f2c_isamax(ptr noundef nonnull %4, ptr noundef %9, ptr noundef nonnull @c__1) #6
  %82 = getelementptr inbounds float, ptr %22, i64 %81
  %83 = load float, ptr %82, align 4, !tbaa !9
  %84 = fcmp ugt float %83, %57
  br i1 %84, label %86, label %85

85:                                               ; preds = %.loopexit574
  store float 1.000000e+00, ptr %17, align 4, !tbaa !9
  br label %90

86:                                               ; preds = %.loopexit574
  %87 = fmul float %83, %56
  %88 = fdiv float 1.000000e+00, %87
  store float %88, ptr %17, align 4, !tbaa !9
  %89 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %17, ptr noundef nonnull %9, ptr noundef nonnull @c__1) #6
  br label %90

90:                                               ; preds = %86, %85
  %91 = call i64 @f2c_isamax(ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull @c__1) #6
  %92 = getelementptr inbounds float, ptr %21, i64 %91
  %93 = load float, ptr %92, align 4, !tbaa !9
  store float %93, ptr %15, align 4, !tbaa !9
  %94 = fcmp oge float %93, 0.000000e+00
  %95 = fneg float %93
  %96 = select i1 %94, float %93, float %95
  %97 = load i64, ptr %4, align 8, !tbaa !5
  %98 = load float, ptr %17, align 4, !tbaa !9
  %99 = fcmp une float %98, 1.000000e+00
  br i1 %.not526, label %150, label %100

100:                                              ; preds = %90
  %. = select i1 %.not.not.not, i64 1, i64 -1
  %.681 = select i1 %.not.not.not, i64 %97, i64 1
  %.682 = select i1 %.not.not.not, i64 1, i64 %97
  br i1 %99, label %.loopexit570, label %101

101:                                              ; preds = %100
  br i1 %.not529, label %132, label %102

102:                                              ; preds = %101
  %103 = fcmp oge float %96, %56
  %104 = select i1 %103, float %96, float %56
  %105 = fdiv float 1.000000e+00, %104
  store i64 %., ptr %13, align 8, !tbaa !5
  %106 = icmp sge i64 %.682, %.681
  %107 = icmp sle i64 %.682, %.681
  %.in542582 = select i1 %.not.not.not, i1 %107, i1 %106
  br i1 %.in542582, label %.lr.ph587, label %.loopexit570

.lr.ph587:                                        ; preds = %102
  %108 = add i64 %18, 1
  br label %109

109:                                              ; preds = %.lr.ph587, %111
  %.0462585 = phi float [ %105, %.lr.ph587 ], [ %.1463, %111 ]
  %.2483584 = phi i64 [ %.682, %.lr.ph587 ], [ %129, %111 ]
  %.0489583 = phi float [ %105, %.lr.ph587 ], [ %122, %111 ]
  %110 = fcmp ugt float %.0462585, %56
  br i1 %110, label %111, label %.loopexit570

111:                                              ; preds = %109
  %112 = mul i64 %.2483584, %108
  %113 = getelementptr inbounds float, ptr %20, i64 %112
  %114 = load float, ptr %113, align 4, !tbaa !9
  %115 = fcmp oge float %114, 0.000000e+00
  %116 = fneg float %114
  %117 = select i1 %115, float %114, float %116
  store float %.0489583, ptr %15, align 4, !tbaa !9
  %118 = fcmp oge float %117, 1.000000e+00
  %119 = select i1 %118, float 1.000000e+00, float %117
  %120 = fmul float %.0462585, %119
  %121 = fcmp ole float %.0489583, %120
  %122 = select i1 %121, float %.0489583, float %120
  %123 = getelementptr inbounds float, ptr %22, i64 %.2483584
  %124 = load float, ptr %123, align 4, !tbaa !9
  %125 = fadd float %117, %124
  %126 = fcmp ult float %125, %56
  %127 = fdiv float %117, %125
  %128 = fmul float %.0462585, %127
  %.1463 = select i1 %126, float 0.000000e+00, float %128
  %129 = add nsw i64 %.2483584, %.
  %130 = icmp sge i64 %129, %.681
  %131 = icmp sle i64 %129, %.681
  %.in542 = select i1 %.not.not.not, i1 %131, i1 %130
  br i1 %.in542, label %109, label %.loopexit570, !llvm.loop !14

132:                                              ; preds = %101
  store float 1.000000e+00, ptr %15, align 4, !tbaa !9
  %133 = fcmp oge float %96, %56
  %134 = select i1 %133, float %96, float %56
  %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 %.681, ptr %13, align 8, !tbaa !5
  %138 = icmp sge i64 %.682, %.681
  %139 = icmp sle i64 %.682, %.681
  %.in541590 = select i1 %.not.not.not, i1 %139, i1 %138
  %140 = fcmp ugt float %137, %56
  %or.cond591 = select i1 %.in541590, i1 %140, i1 false
  br i1 %or.cond591, label %.lr.ph595, label %.loopexit570

.lr.ph595:                                        ; preds = %132, %.lr.ph595
  %.2464593 = phi float [ %145, %.lr.ph595 ], [ %137, %132 ]
  %.3484592 = phi i64 [ %146, %.lr.ph595 ], [ %.682, %132 ]
  %141 = getelementptr inbounds float, ptr %22, i64 %.3484592
  %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 %.2464593, %144
  %146 = add nsw i64 %.3484592, %.
  %147 = icmp sge i64 %146, %.681
  %148 = icmp sle i64 %146, %.681
  %.in541 = select i1 %.not.not.not, i1 %148, i1 %147
  %149 = fcmp ugt float %145, %56
  %or.cond = select i1 %.in541, i1 %149, i1 false
  br i1 %or.cond, label %.lr.ph595, label %.loopexit570, !llvm.loop !15

150:                                              ; preds = %90
  %.683 = select i1 %.not.not.not, i64 -1, i64 1
  %.684 = select i1 %.not.not.not, i64 1, i64 %97
  %.685 = select i1 %.not.not.not, i64 %97, i64 1
  br i1 %99, label %.loopexit570, label %151

151:                                              ; preds = %150
  br i1 %.not529, label %182, label %152

152:                                              ; preds = %151
  %153 = fcmp oge float %96, %56
  %154 = select i1 %153, float %96, float %56
  %155 = fdiv float 1.000000e+00, %154
  store i64 %.684, ptr %12, align 8, !tbaa !5
  store i64 %.683, ptr %13, align 8, !tbaa !5
  %156 = icmp sge i64 %.685, %.684
  %157 = icmp sle i64 %.685, %.684
  %.in539597 = select i1 %.not.not.not, i1 %156, i1 %157
  br i1 %.in539597, label %.lr.ph602, label %._crit_edge603

.lr.ph602:                                        ; preds = %152
  %158 = add i64 %18, 1
  br label %159

159:                                              ; preds = %.lr.ph602, %161
  %.3600 = phi float [ %155, %.lr.ph602 ], [ %167, %161 ]
  %.4485599 = phi i64 [ %.685, %.lr.ph602 ], [ %177, %161 ]
  %.1490598 = phi float [ %155, %.lr.ph602 ], [ %.2491, %161 ]
  %160 = fcmp ugt float %.3600, %56
  br i1 %160, label %161, label %.loopexit570

161:                                              ; preds = %159
  %162 = getelementptr inbounds float, ptr %22, i64 %.4485599
  %163 = load float, ptr %162, align 4, !tbaa !9
  %164 = fadd float %163, 1.000000e+00
  %165 = fdiv float %.1490598, %164
  %166 = fcmp ole float %.3600, %165
  %167 = select i1 %166, float %.3600, float %165
  %168 = mul i64 %.4485599, %158
  %169 = getelementptr inbounds float, ptr %20, i64 %168
  %170 = load float, ptr %169, align 4, !tbaa !9
  store float %170, ptr %15, 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 %164, %173
  %175 = fdiv float %173, %164
  %176 = fmul float %.1490598, %175
  %.2491 = select i1 %174, float %176, float %.1490598
  %177 = add nsw i64 %.4485599, %.683
  %178 = icmp sge i64 %177, %.684
  %179 = icmp sle i64 %177, %.684
  %.in539 = select i1 %.not.not.not, i1 %178, i1 %179
  br i1 %.in539, label %159, label %._crit_edge603, !llvm.loop !16

._crit_edge603:                                   ; preds = %161, %152
  %.1490.lcssa = phi float [ %155, %152 ], [ %.2491, %161 ]
  %.3.lcssa = phi float [ %155, %152 ], [ %167, %161 ]
  %180 = fcmp ole float %.3.lcssa, %.1490.lcssa
  %181 = select i1 %180, float %.3.lcssa, float %.1490.lcssa
  br label %.loopexit570

182:                                              ; preds = %151
  store float 1.000000e+00, ptr %15, align 4, !tbaa !9
  %183 = fcmp oge float %96, %56
  %184 = select i1 %183, float %96, float %56
  %185 = fdiv float 1.000000e+00, %184
  %186 = fcmp oge float %185, 1.000000e+00
  %187 = select i1 %186, float 1.000000e+00, float %185
  store i64 %.684, ptr %13, align 8, !tbaa !5
  %188 = icmp sge i64 %.685, %.684
  %189 = icmp sle i64 %.685, %.684
  %.in606 = select i1 %.not.not.not, i1 %188, i1 %189
  %190 = fcmp ugt float %187, %56
  %or.cond552607 = select i1 %.in606, i1 %190, i1 false
  br i1 %or.cond552607, label %.lr.ph611, label %.loopexit570

.lr.ph611:                                        ; preds = %182, %.lr.ph611
  %.4609 = phi float [ %194, %.lr.ph611 ], [ %187, %182 ]
  %.5486608 = phi i64 [ %195, %.lr.ph611 ], [ %.685, %182 ]
  %191 = getelementptr inbounds float, ptr %22, i64 %.5486608
  %192 = load float, ptr %191, align 4, !tbaa !9
  %193 = fadd float %192, 1.000000e+00
  %194 = fdiv float %.4609, %193
  %195 = add nsw i64 %.5486608, %.683
  %196 = icmp sge i64 %195, %.684
  %197 = icmp sle i64 %195, %.684
  %.in = select i1 %.not.not.not, i1 %196, i1 %197
  %198 = fcmp ugt float %194, %56
  %or.cond552 = select i1 %.in, i1 %198, i1 false
  br i1 %or.cond552, label %.lr.ph611, label %.loopexit570, !llvm.loop !17

.loopexit570:                                     ; preds = %109, %111, %.lr.ph595, %159, %.lr.ph611, %102, %132, %182, %150, %100, %._crit_edge603
  %199 = phi float [ 1.000000e+00, %._crit_edge603 ], [ %98, %100 ], [ %98, %150 ], [ 1.000000e+00, %182 ], [ 1.000000e+00, %132 ], [ 1.000000e+00, %102 ], [ 1.000000e+00, %.lr.ph611 ], [ 1.000000e+00, %159 ], [ 1.000000e+00, %.lr.ph595 ], [ 1.000000e+00, %111 ], [ 1.000000e+00, %109 ]
  %200 = phi i64 [ %.683, %._crit_edge603 ], [ %., %100 ], [ %.683, %150 ], [ %.683, %182 ], [ %., %132 ], [ %., %102 ], [ %.683, %.lr.ph611 ], [ %.683, %159 ], [ %., %.lr.ph595 ], [ %., %111 ], [ %., %109 ]
  %.5 = phi float [ %181, %._crit_edge603 ], [ 0.000000e+00, %100 ], [ 0.000000e+00, %150 ], [ %187, %182 ], [ %137, %132 ], [ %105, %102 ], [ %194, %.lr.ph611 ], [ %.3600, %159 ], [ %145, %.lr.ph595 ], [ %.0462585, %109 ], [ %122, %111 ]
  %201 = phi i64 [ %.684, %._crit_edge603 ], [ %.681, %100 ], [ %.684, %150 ], [ %.684, %182 ], [ %.681, %132 ], [ %.681, %102 ], [ %.684, %.lr.ph611 ], [ %.684, %159 ], [ %.681, %.lr.ph595 ], [ %.681, %111 ], [ %.681, %109 ]
  %.2 = phi i64 [ %.685, %._crit_edge603 ], [ %.682, %100 ], [ %.685, %150 ], [ %.685, %182 ], [ %.682, %132 ], [ %.682, %102 ], [ %.685, %.lr.ph611 ], [ %.685, %159 ], [ %.682, %.lr.ph595 ], [ %.682, %111 ], [ %.682, %109 ]
  %202 = fmul float %.5, %199
  %203 = fcmp ogt float %202, %56
  br i1 %203, label %204, label %206

204:                                              ; preds = %.loopexit570
  %205 = call i32 @f2c_strsv(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull %6, ptr noundef %7, ptr noundef nonnull @c__1) #6
  %.pr566 = load float, ptr %17, align 4, !tbaa !9
  br label %501

206:                                              ; preds = %.loopexit570
  %207 = fcmp ogt float %96, %57
  br i1 %207, label %208, label %211

208:                                              ; preds = %206
  %209 = fdiv float %57, %96
  store float %209, ptr %8, align 4, !tbaa !9
  %210 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %8, ptr noundef %7, ptr noundef nonnull @c__1) #6
  br label %211

211:                                              ; preds = %208, %206
  %.0465 = phi float [ %57, %208 ], [ %96, %206 ]
  %invariant.gep643 = getelementptr i8, ptr %20, i64 4
  %212 = icmp slt i64 %200, 0
  %213 = icmp sge i64 %.2, %201
  %214 = icmp sle i64 %.2, %201
  %.in543647 = select i1 %212, i1 %213, i1 %214
  br i1 %.not526, label %350, label %215

215:                                              ; preds = %211
  store i64 %200, ptr %13, align 8, !tbaa !5
  br i1 %.in543647, label %.lr.ph625, label %.loopexit568

.lr.ph625:                                        ; preds = %215
  %216 = add i64 %18, 1
  br label %217

217:                                              ; preds = %.lr.ph625, %344
  %.1466623 = phi float [ %.0465, %.lr.ph625 ], [ %.5470, %344 ]
  %.6487622 = phi i64 [ %.2, %.lr.ph625 ], [ %346, %344 ]
  %218 = getelementptr inbounds float, ptr %21, i64 %.6487622
  %219 = load float, ptr %218, align 4, !tbaa !9
  store float %219, ptr %15, align 4, !tbaa !9
  %220 = fcmp oge float %219, 0.000000e+00
  %221 = fneg float %219
  %222 = select i1 %220, float %219, float %221
  br i1 %.not529, label %229, label %223

223:                                              ; preds = %217
  %224 = mul i64 %.6487622, %216
  %225 = getelementptr inbounds float, ptr %20, i64 %224
  %226 = load float, ptr %225, align 4, !tbaa !9
  %227 = load float, ptr %17, align 4, !tbaa !9
  %228 = fmul float %226, %227
  br label %232

229:                                              ; preds = %217
  %230 = load float, ptr %17, align 4, !tbaa !9
  %231 = fcmp oeq float %230, 1.000000e+00
  br i1 %231, label %281, label %232

232:                                              ; preds = %229, %223
  %.0471 = phi float [ %228, %223 ], [ %230, %229 ]
  %233 = fcmp oge float %.0471, 0.000000e+00
  %234 = fneg float %.0471
  %235 = select i1 %233, float %.0471, float %234
  %236 = fcmp ogt float %235, %56
  br i1 %236, label %237, label %254

237:                                              ; preds = %232
  %238 = fcmp olt float %235, 1.000000e+00
  %239 = fmul float %57, %235
  %240 = fcmp ogt float %222, %239
  %or.cond554 = select i1 %238, i1 %240, i1 false
  br i1 %or.cond554, label %241, label %248

241:                                              ; preds = %237
  %242 = fdiv float 1.000000e+00, %222
  store float %242, ptr %16, align 4, !tbaa !9
  %243 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #6
  %244 = load float, ptr %16, align 4, !tbaa !9
  %245 = load float, ptr %8, align 4, !tbaa !9
  %246 = fmul float %244, %245
  store float %246, ptr %8, align 4, !tbaa !9
  %247 = fmul float %.1466623, %244
  %.pre667 = load float, ptr %218, align 4, !tbaa !9
  br label %248

248:                                              ; preds = %241, %237
  %249 = phi float [ %.pre667, %241 ], [ %219, %237 ]
  %.2467 = phi float [ %247, %241 ], [ %.1466623, %237 ]
  %250 = fdiv float %249, %.0471
  store float %250, ptr %218, align 4, !tbaa !9
  store float %250, ptr %15, align 4, !tbaa !9
  %251 = fcmp oge float %250, 0.000000e+00
  %252 = fneg float %250
  %253 = select i1 %251, float %250, float %252
  br label %281

254:                                              ; preds = %232
  %255 = fcmp ogt float %235, 0.000000e+00
  br i1 %255, label %256, label %278

256:                                              ; preds = %254
  %257 = fmul float %57, %235
  %258 = fcmp ogt float %222, %257
  br i1 %258, label %259, label %272

259:                                              ; preds = %256
  %260 = fdiv float %257, %222
  store float %260, ptr %16, align 4, !tbaa !9
  %261 = getelementptr inbounds float, ptr %22, i64 %.6487622
  %262 = load float, ptr %261, align 4, !tbaa !9
  %263 = fcmp ogt float %262, 1.000000e+00
  br i1 %263, label %264, label %266

264:                                              ; preds = %259
  %265 = fdiv float %260, %262
  store float %265, ptr %16, align 4, !tbaa !9
  br label %266

266:                                              ; preds = %264, %259
  %267 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #6
  %268 = load float, ptr %16, align 4, !tbaa !9
  %269 = load float, ptr %8, align 4, !tbaa !9
  %270 = fmul float %268, %269
  store float %270, ptr %8, align 4, !tbaa !9
  %271 = fmul float %.1466623, %268
  %.pre666 = load float, ptr %218, align 4, !tbaa !9
  br label %272

272:                                              ; preds = %266, %256
  %273 = phi float [ %.pre666, %266 ], [ %219, %256 ]
  %.3468 = phi float [ %271, %266 ], [ %.1466623, %256 ]
  %274 = fdiv float %273, %.0471
  store float %274, ptr %218, align 4, !tbaa !9
  store float %274, ptr %15, align 4, !tbaa !9
  %275 = fcmp oge float %274, 0.000000e+00
  %276 = fneg float %274
  %277 = select i1 %275, float %274, float %276
  br label %281

278:                                              ; preds = %254
  %279 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %279, ptr %14, align 8, !tbaa !5
  %.not551613 = icmp slt i64 %279, 1
  br i1 %.not551613, label %.thread558, label %.lr.ph616.preheader

.lr.ph616.preheader:                              ; preds = %278
  %280 = shl nuw i64 %279, 2
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %7, i8 0, i64 %280, i1 false), !tbaa !9
  br label %.thread558

.thread558:                                       ; preds = %.lr.ph616.preheader, %278
  store float 1.000000e+00, ptr %218, align 4, !tbaa !9
  store float 0.000000e+00, ptr %8, align 4, !tbaa !9
  br label %296

281:                                              ; preds = %248, %272, %229
  %.0495 = phi float [ %253, %248 ], [ %277, %272 ], [ %222, %229 ]
  %.4469 = phi float [ %.2467, %248 ], [ %.3468, %272 ], [ %.1466623, %229 ]
  %282 = fcmp ogt float %.0495, 1.000000e+00
  br i1 %282, label %283, label %296

283:                                              ; preds = %281
  %284 = fdiv float 1.000000e+00, %.0495
  store float %284, ptr %16, align 4, !tbaa !9
  %285 = getelementptr inbounds float, ptr %22, i64 %.6487622
  %286 = load float, ptr %285, align 4, !tbaa !9
  %287 = fsub float %57, %.4469
  %288 = fmul float %284, %287
  %289 = fcmp ogt float %286, %288
  br i1 %289, label %290, label %306

290:                                              ; preds = %283
  %291 = fmul float %284, 5.000000e-01
  store float %291, ptr %16, align 4, !tbaa !9
  %292 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #6
  %293 = load float, ptr %16, align 4, !tbaa !9
  %294 = load float, ptr %8, align 4, !tbaa !9
  %295 = fmul float %293, %294
  br label %.sink.split

296:                                              ; preds = %.thread558, %281
  %.4469563 = phi float [ 0.000000e+00, %.thread558 ], [ %.4469, %281 ]
  %.0495561 = phi float [ 1.000000e+00, %.thread558 ], [ %.0495, %281 ]
  %297 = getelementptr inbounds float, ptr %22, i64 %.6487622
  %298 = load float, ptr %297, align 4, !tbaa !9
  %299 = fmul float %.0495561, %298
  %300 = fsub float %57, %.4469563
  %301 = fcmp ogt float %299, %300
  br i1 %301, label %302, label %306

302:                                              ; preds = %296
  %303 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull @c_b36, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #6
  %304 = load float, ptr %8, align 4, !tbaa !9
  %305 = fmul float %304, 5.000000e-01
  br label %.sink.split

.sink.split:                                      ; preds = %290, %302
  %.sink686 = phi float [ %305, %302 ], [ %295, %290 ]
  %.4469562.ph = phi float [ %.4469563, %302 ], [ %.4469, %290 ]
  store float %.sink686, ptr %8, align 4, !tbaa !9
  br label %306

306:                                              ; preds = %.sink.split, %296, %283
  %.4469562 = phi float [ %.4469563, %296 ], [ %.4469, %283 ], [ %.4469562.ph, %.sink.split ]
  br i1 %.not.not.not, label %323, label %307

307:                                              ; preds = %306
  %308 = icmp sgt i64 %.6487622, 1
  br i1 %308, label %309, label %344

309:                                              ; preds = %307
  %310 = add nsw i64 %.6487622, -1
  store i64 %310, ptr %14, align 8, !tbaa !5
  %311 = load float, ptr %218, align 4, !tbaa !9
  %312 = fneg float %311
  %313 = load float, ptr %17, align 4, !tbaa !9
  %314 = fmul float %313, %312
  store float %314, ptr %15, align 4, !tbaa !9
  %315 = mul nsw i64 %.6487622, %18
  %gep618 = getelementptr float, ptr %invariant.gep643, i64 %315
  %316 = call i32 @f2c_saxpy(ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef %gep618, ptr noundef nonnull @c__1, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #6
  store i64 %310, ptr %14, align 8, !tbaa !5
  %317 = call i64 @f2c_isamax(ptr noundef nonnull %14, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #6
  %318 = getelementptr inbounds float, ptr %21, i64 %317
  %319 = load float, ptr %318, align 4, !tbaa !9
  store float %319, ptr %15, align 4, !tbaa !9
  %320 = fcmp oge float %319, 0.000000e+00
  %321 = fneg float %319
  %322 = select i1 %320, float %319, float %321
  br label %344

323:                                              ; preds = %306
  %324 = load i64, ptr %4, align 8, !tbaa !5
  %325 = icmp slt i64 %.6487622, %324
  br i1 %325, label %326, label %344

326:                                              ; preds = %323
  %327 = sub nsw i64 %324, %.6487622
  store i64 %327, ptr %14, align 8, !tbaa !5
  %328 = load float, ptr %218, align 4, !tbaa !9
  %329 = fneg float %328
  %330 = load float, ptr %17, align 4, !tbaa !9
  %331 = fmul float %330, %329
  store float %331, ptr %15, align 4, !tbaa !9
  %332 = mul nsw i64 %.6487622, %18
  %gep620 = getelementptr float, ptr %invariant.gep643, i64 %.6487622
  %333 = getelementptr float, ptr %gep620, i64 %332
  %334 = getelementptr float, ptr %7, i64 %.6487622
  %335 = call i32 @f2c_saxpy(ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef %333, ptr noundef nonnull @c__1, ptr noundef %334, ptr noundef nonnull @c__1) #6
  %336 = load i64, ptr %4, align 8, !tbaa !5
  %337 = sub nsw i64 %336, %.6487622
  store i64 %337, ptr %14, align 8, !tbaa !5
  %338 = call i64 @f2c_isamax(ptr noundef nonnull %14, ptr noundef %334, ptr noundef nonnull @c__1) #6
  %339 = getelementptr float, ptr %218, i64 %338
  %340 = load float, ptr %339, align 4, !tbaa !9
  store float %340, ptr %15, align 4, !tbaa !9
  %341 = fcmp oge float %340, 0.000000e+00
  %342 = fneg float %340
  %343 = select i1 %341, float %340, float %342
  br label %344

344:                                              ; preds = %309, %307, %326, %323
  %.5470 = phi float [ %322, %309 ], [ %.4469562, %307 ], [ %343, %326 ], [ %.4469562, %323 ]
  %345 = load i64, ptr %13, align 8, !tbaa !5
  %346 = add nsw i64 %345, %.6487622
  %347 = icmp slt i64 %345, 0
  %348 = icmp sge i64 %346, %201
  %349 = icmp sle i64 %346, %201
  %.in549 = select i1 %347, i1 %348, i1 %349
  br i1 %.in549, label %217, label %.loopexit568, !llvm.loop !18

350:                                              ; preds = %211
  store i64 %201, ptr %13, align 8, !tbaa !5
  br i1 %.in543647, label %.lr.ph654, label %.loopexit568

.lr.ph654:                                        ; preds = %350
  %351 = add i64 %18, 1
  br label %352

352:                                              ; preds = %.lr.ph654, %487
  %.6652 = phi float [ %.0465, %.lr.ph654 ], [ %493, %487 ]
  %.1472651 = phi float [ undef, %.lr.ph654 ], [ %.5476, %487 ]
  %.7488648 = phi i64 [ %.2, %.lr.ph654 ], [ %494, %487 ]
  %353 = getelementptr inbounds float, ptr %21, i64 %.7488648
  %354 = load float, ptr %353, align 4, !tbaa !9
  store float %354, ptr %15, align 4, !tbaa !9
  %355 = fcmp oge float %354, 0.000000e+00
  %356 = fneg float %354
  %357 = select i1 %355, float %354, float %356
  %358 = load float, ptr %17, align 4, !tbaa !9
  %359 = fcmp oge float %.6652, 1.000000e+00
  %360 = select i1 %359, float %.6652, float 1.000000e+00
  %361 = fdiv float 1.000000e+00, %360
  store float %361, ptr %16, align 4, !tbaa !9
  %362 = getelementptr inbounds float, ptr %22, i64 %.7488648
  %363 = load float, ptr %362, align 4, !tbaa !9
  %364 = fsub float %57, %357
  %365 = fmul float %361, %364
  %366 = fcmp ogt float %363, %365
  br i1 %366, label %367, label %392

367:                                              ; preds = %352
  %368 = fmul float %361, 5.000000e-01
  store float %368, ptr %16, align 4, !tbaa !9
  br i1 %.not529, label %374, label %369

369:                                              ; preds = %367
  %370 = mul i64 %.7488648, %351
  %371 = getelementptr inbounds float, ptr %20, i64 %370
  %372 = load float, ptr %371, align 4, !tbaa !9
  %373 = fmul float %358, %372
  br label %374

374:                                              ; preds = %367, %369
  %.2473 = phi float [ %373, %369 ], [ %358, %367 ]
  %375 = fcmp oge float %.2473, 0.000000e+00
  %376 = fneg float %.2473
  %377 = select i1 %375, float %.2473, float %376
  %378 = fcmp ogt float %377, 1.000000e+00
  br i1 %378, label %379, label %thread-pre-split564

379:                                              ; preds = %374
  store float 1.000000e+00, ptr %15, align 4, !tbaa !9
  %380 = fmul float %368, %377
  %381 = fcmp oge float %380, 1.000000e+00
  %382 = select i1 %381, float 1.000000e+00, float %380
  store float %382, ptr %16, align 4, !tbaa !9
  %383 = fdiv float %358, %.2473
  br label %thread-pre-split564

thread-pre-split564:                              ; preds = %374, %379
  %384 = phi float [ %382, %379 ], [ %368, %374 ]
  %.0457 = phi float [ %383, %379 ], [ %358, %374 ]
  %385 = fcmp olt float %384, 1.000000e+00
  br i1 %385, label %386, label %392

386:                                              ; preds = %thread-pre-split564
  %387 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #6
  %388 = load float, ptr %16, align 4, !tbaa !9
  %389 = load float, ptr %8, align 4, !tbaa !9
  %390 = fmul float %388, %389
  store float %390, ptr %8, align 4, !tbaa !9
  %391 = fmul float %.6652, %388
  br label %392

392:                                              ; preds = %thread-pre-split564, %386, %352
  %.3474 = phi float [ %.2473, %386 ], [ %.2473, %thread-pre-split564 ], [ %.1472651, %352 ]
  %.7 = phi float [ %391, %386 ], [ %.6652, %thread-pre-split564 ], [ %.6652, %352 ]
  %.1458 = phi float [ %.0457, %386 ], [ %.0457, %thread-pre-split564 ], [ %358, %352 ]
  %393 = fcmp oeq float %.1458, 1.000000e+00
  br i1 %393, label %394, label %410

394:                                              ; preds = %392
  br i1 %.not.not.not, label %400, label %395

395:                                              ; preds = %394
  %396 = add nsw i64 %.7488648, -1
  store i64 %396, ptr %14, align 8, !tbaa !5
  %397 = mul nsw i64 %.7488648, %18
  %gep644 = getelementptr float, ptr %invariant.gep643, i64 %397
  %398 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %gep644, ptr noundef nonnull @c__1, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #6
  %399 = fptrunc double %398 to float
  br label %.loopexit

400:                                              ; preds = %394
  %401 = load i64, ptr %4, align 8, !tbaa !5
  %402 = icmp slt i64 %.7488648, %401
  br i1 %402, label %403, label %.loopexit

403:                                              ; preds = %400
  %404 = sub nsw i64 %401, %.7488648
  store i64 %404, ptr %14, align 8, !tbaa !5
  %405 = mul nsw i64 %.7488648, %18
  %gep646 = getelementptr float, ptr %invariant.gep643, i64 %.7488648
  %406 = getelementptr float, ptr %gep646, i64 %405
  %407 = getelementptr float, ptr %7, i64 %.7488648
  %408 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %406, ptr noundef nonnull @c__1, ptr noundef %407, ptr noundef nonnull @c__1) #6
  %409 = fptrunc double %408 to float
  br label %.loopexit

410:                                              ; preds = %392
  br i1 %.not.not.not, label %421, label %411

411:                                              ; preds = %410
  %412 = add nsw i64 %.7488648, -1
  store i64 %412, ptr %14, align 8, !tbaa !5
  %.not546.not626 = icmp sgt i64 %.7488648, 1
  br i1 %.not546.not626, label %.lr.ph630, label %.loopexit

.lr.ph630:                                        ; preds = %411
  %413 = mul nsw i64 %.7488648, %18
  %invariant.gep632 = getelementptr float, ptr %20, i64 %413
  br label %414

414:                                              ; preds = %.lr.ph630, %414
  %.0459628 = phi float [ 0.000000e+00, %.lr.ph630 ], [ %419, %414 ]
  %.1478627 = phi i64 [ 1, %.lr.ph630 ], [ %420, %414 ]
  %gep633 = getelementptr float, ptr %invariant.gep632, i64 %.1478627
  %415 = load float, ptr %gep633, align 4, !tbaa !9
  %416 = fmul float %.1458, %415
  %417 = getelementptr inbounds float, ptr %21, i64 %.1478627
  %418 = load float, ptr %417, align 4, !tbaa !9
  %419 = call float @llvm.fmuladd.f32(float %416, float %418, float %.0459628)
  %420 = add nuw nsw i64 %.1478627, 1
  %exitcond.not = icmp eq i64 %420, %.7488648
  br i1 %exitcond.not, label %.loopexit, label %414, !llvm.loop !19

421:                                              ; preds = %410
  %422 = load i64, ptr %4, align 8, !tbaa !5
  %423 = icmp slt i64 %.7488648, %422
  br i1 %423, label %424, label %.loopexit

424:                                              ; preds = %421
  store i64 %422, ptr %14, align 8, !tbaa !5
  %425 = mul nsw i64 %.7488648, %18
  %invariant.gep636 = getelementptr float, ptr %20, i64 %425
  br label %426

426:                                              ; preds = %424, %426
  %.1460635 = phi float [ 0.000000e+00, %424 ], [ %431, %426 ]
  %.2479.in634 = phi i64 [ %.7488648, %424 ], [ %.2479, %426 ]
  %.2479 = add nsw i64 %.2479.in634, 1
  %gep637 = getelementptr float, ptr %invariant.gep636, i64 %.2479
  %427 = load float, ptr %gep637, align 4, !tbaa !9
  %428 = fmul float %.1458, %427
  %429 = getelementptr float, ptr %7, i64 %.2479.in634
  %430 = load float, ptr %429, align 4, !tbaa !9
  %431 = call float @llvm.fmuladd.f32(float %428, float %430, float %.1460635)
  %exitcond665.not = icmp eq i64 %.2479, %422
  br i1 %exitcond665.not, label %.loopexit, label %426, !llvm.loop !20

.loopexit:                                        ; preds = %414, %426, %411, %421, %395, %403, %400
  %.2461 = phi float [ %399, %395 ], [ %409, %403 ], [ 0.000000e+00, %400 ], [ 0.000000e+00, %421 ], [ 0.000000e+00, %411 ], [ %431, %426 ], [ %419, %414 ]
  %432 = load float, ptr %17, align 4, !tbaa !9
  %433 = fcmp oeq float %.1458, %432
  %434 = load float, ptr %353, align 4, !tbaa !9
  br i1 %433, label %435, label %484

435:                                              ; preds = %.loopexit
  %436 = fsub float %434, %.2461
  store float %436, ptr %353, align 4, !tbaa !9
  store float %436, ptr %15, align 4, !tbaa !9
  %437 = fcmp oge float %436, 0.000000e+00
  %438 = fneg float %436
  %439 = select i1 %437, float %436, float %438
  br i1 %.not529, label %445, label %440

440:                                              ; preds = %435
  %441 = mul i64 %.7488648, %351
  %442 = getelementptr inbounds float, ptr %20, i64 %441
  %443 = load float, ptr %442, align 4, !tbaa !9
  %444 = fmul float %432, %443
  br label %447

445:                                              ; preds = %435
  %446 = fcmp oeq float %432, 1.000000e+00
  br i1 %446, label %487, label %447

447:                                              ; preds = %445, %440
  %.4475 = phi float [ %444, %440 ], [ %432, %445 ]
  %448 = fcmp oge float %.4475, 0.000000e+00
  %449 = fneg float %.4475
  %450 = select i1 %448, float %.4475, float %449
  %451 = fcmp ogt float %450, %56
  br i1 %451, label %452, label %466

452:                                              ; preds = %447
  %453 = fcmp olt float %450, 1.000000e+00
  %454 = fmul float %57, %450
  %455 = fcmp ogt float %439, %454
  %or.cond556 = select i1 %453, i1 %455, i1 false
  br i1 %or.cond556, label %456, label %463

456:                                              ; preds = %452
  %457 = fdiv float 1.000000e+00, %439
  store float %457, ptr %16, align 4, !tbaa !9
  %458 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #6
  %459 = load float, ptr %16, align 4, !tbaa !9
  %460 = load float, ptr %8, align 4, !tbaa !9
  %461 = fmul float %459, %460
  store float %461, ptr %8, align 4, !tbaa !9
  %462 = fmul float %.7, %459
  %.pre669 = load float, ptr %353, align 4, !tbaa !9
  br label %463

463:                                              ; preds = %456, %452
  %464 = phi float [ %.pre669, %456 ], [ %436, %452 ]
  %.8 = phi float [ %462, %456 ], [ %.7, %452 ]
  %465 = fdiv float %464, %.4475
  store float %465, ptr %353, align 4, !tbaa !9
  br label %487

466:                                              ; preds = %447
  %467 = fcmp ogt float %450, 0.000000e+00
  br i1 %467, label %468, label %481

468:                                              ; preds = %466
  %469 = fmul float %57, %450
  %470 = fcmp ogt float %439, %469
  br i1 %470, label %471, label %478

471:                                              ; preds = %468
  %472 = fdiv float %469, %439
  store float %472, ptr %16, align 4, !tbaa !9
  %473 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %16, ptr noundef nonnull %7, ptr noundef nonnull @c__1) #6
  %474 = load float, ptr %16, align 4, !tbaa !9
  %475 = load float, ptr %8, align 4, !tbaa !9
  %476 = fmul float %474, %475
  store float %476, ptr %8, align 4, !tbaa !9
  %477 = fmul float %.7, %474
  %.pre668 = load float, ptr %353, align 4, !tbaa !9
  br label %478

478:                                              ; preds = %471, %468
  %479 = phi float [ %.pre668, %471 ], [ %436, %468 ]
  %.9 = phi float [ %477, %471 ], [ %.7, %468 ]
  %480 = fdiv float %479, %.4475
  store float %480, ptr %353, align 4, !tbaa !9
  br label %487

481:                                              ; preds = %466
  %482 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %482, ptr %14, align 8, !tbaa !5
  %.not548638 = icmp slt i64 %482, 1
  br i1 %.not548638, label %._crit_edge642, label %.lr.ph641.preheader

.lr.ph641.preheader:                              ; preds = %481
  %483 = shl nuw i64 %482, 2
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %7, i8 0, i64 %483, i1 false), !tbaa !9
  br label %._crit_edge642

._crit_edge642:                                   ; preds = %.lr.ph641.preheader, %481
  store float 1.000000e+00, ptr %353, align 4, !tbaa !9
  store float 0.000000e+00, ptr %8, align 4, !tbaa !9
  %.pre670 = load float, ptr %353, align 4, !tbaa !9
  br label %487

484:                                              ; preds = %.loopexit
  %485 = fdiv float %434, %.3474
  %486 = fsub float %485, %.2461
  store float %486, ptr %353, align 4, !tbaa !9
  br label %487

487:                                              ; preds = %445, %478, %._crit_edge642, %463, %484
  %488 = phi float [ %465, %463 ], [ %480, %478 ], [ %.pre670, %._crit_edge642 ], [ %436, %445 ], [ %486, %484 ]
  %.5476 = phi float [ %.4475, %463 ], [ %.4475, %478 ], [ %.4475, %._crit_edge642 ], [ 1.000000e+00, %445 ], [ %.3474, %484 ]
  %.10 = phi float [ %.8, %463 ], [ %.9, %478 ], [ 0.000000e+00, %._crit_edge642 ], [ %.7, %445 ], [ %.7, %484 ]
  store float %488, ptr %15, align 4, !tbaa !9
  %489 = fcmp oge float %488, 0.000000e+00
  %490 = fneg float %488
  %491 = select i1 %489, float %488, float %490
  %492 = fcmp oge float %.10, %491
  %493 = select i1 %492, float %.10, float %491
  %494 = add nsw i64 %200, %.7488648
  %495 = load i64, ptr %13, align 8
  %496 = icmp sge i64 %494, %495
  %497 = icmp sle i64 %494, %495
  %.in543 = select i1 %212, i1 %496, i1 %497
  br i1 %.in543, label %352, label %.loopexit568, !llvm.loop !21

.loopexit568:                                     ; preds = %344, %487, %215, %350
  %498 = load float, ptr %17, align 4, !tbaa !9
  %499 = load float, ptr %8, align 4, !tbaa !9
  %500 = fdiv float %499, %498
  store float %500, ptr %8, align 4, !tbaa !9
  br label %501

501:                                              ; preds = %.loopexit568, %204
  %502 = phi float [ %498, %.loopexit568 ], [ %.pr566, %204 ]
  %503 = fcmp une float %502, 1.000000e+00
  br i1 %503, label %504, label %507

504:                                              ; preds = %501
  %505 = fdiv float 1.000000e+00, %502
  store float %505, ptr %15, align 4, !tbaa !9
  %506 = call i32 @f2c_sscal(ptr noundef nonnull %4, ptr noundef nonnull %15, ptr noundef %9, ptr noundef nonnull @c__1) #6
  br label %507

507:                                              ; preds = %501, %504, %50, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  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_strsv(ptr noundef, 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 nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umax.i64(i64, i64) #4

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

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

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

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