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

; 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 [7 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 [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c_false = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@c_b26 = external hidden global float, align 4
@c_b30 = external hidden global float, align 4
@c_true = external hidden global i64, align 8

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

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

103:                                              ; preds = %99
  %104 = load ptr, ptr %15, align 8, !tbaa !5
  %105 = call i64 @lsame_(ptr noundef %104, ptr noundef @.str.2)
  %106 = icmp ne i64 %105, 0
  br i1 %106, label %109, label %107

107:                                              ; preds = %103
  %108 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -1, ptr %108, align 8, !tbaa !9
  br label %196

109:                                              ; preds = %103, %99, %13
  %110 = load i64, ptr %65, align 8, !tbaa !9
  %111 = icmp ne i64 %110, 0
  br i1 %111, label %122, label %112

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

116:                                              ; preds = %112
  %117 = load ptr, ptr %16, align 8, !tbaa !5
  %118 = call i64 @lsame_(ptr noundef %117, ptr noundef @.str.2)
  %119 = icmp ne i64 %118, 0
  br i1 %119, label %122, label %120

120:                                              ; preds = %116
  %121 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -2, ptr %121, align 8, !tbaa !9
  br label %195

122:                                              ; preds = %116, %112, %109
  %123 = load ptr, ptr %17, align 8, !tbaa !5
  %124 = load i64, ptr %123, align 8, !tbaa !9
  %125 = icmp ne i64 %124, 1
  br i1 %125, label %126, label %132

126:                                              ; preds = %122
  %127 = load ptr, ptr %17, align 8, !tbaa !5
  %128 = load i64, ptr %127, align 8, !tbaa !9
  %129 = icmp ne i64 %128, -1
  br i1 %129, label %130, label %132

130:                                              ; preds = %126
  %131 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -3, ptr %131, align 8, !tbaa !9
  br label %194

132:                                              ; preds = %126, %122
  %133 = load ptr, ptr %18, align 8, !tbaa !5
  %134 = load i64, ptr %133, align 8, !tbaa !9
  %135 = icmp slt i64 %134, 0
  br i1 %135, label %136, label %138

136:                                              ; preds = %132
  %137 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -4, ptr %137, align 8, !tbaa !9
  br label %193

138:                                              ; preds = %132
  %139 = load ptr, ptr %19, align 8, !tbaa !5
  %140 = load i64, ptr %139, align 8, !tbaa !9
  %141 = icmp slt i64 %140, 0
  br i1 %141, label %142, label %144

142:                                              ; preds = %138
  %143 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -5, ptr %143, align 8, !tbaa !9
  br label %192

144:                                              ; preds = %138
  %145 = load ptr, ptr %21, align 8, !tbaa !5
  %146 = load i64, ptr %145, align 8, !tbaa !9
  %147 = load ptr, ptr %18, align 8, !tbaa !5
  %148 = load i64, ptr %147, align 8, !tbaa !9
  %149 = icmp sge i64 1, %148
  br i1 %149, label %150, label %151

150:                                              ; preds = %144
  br label %154

151:                                              ; preds = %144
  %152 = load ptr, ptr %18, align 8, !tbaa !5
  %153 = load i64, ptr %152, align 8, !tbaa !9
  br label %154

154:                                              ; preds = %151, %150
  %155 = phi i64 [ 1, %150 ], [ %153, %151 ]
  %156 = icmp slt i64 %146, %155
  br i1 %156, label %157, label %159

157:                                              ; preds = %154
  %158 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -7, ptr %158, align 8, !tbaa !9
  br label %191

159:                                              ; preds = %154
  %160 = load ptr, ptr %23, align 8, !tbaa !5
  %161 = load i64, ptr %160, align 8, !tbaa !9
  %162 = load ptr, ptr %19, align 8, !tbaa !5
  %163 = load i64, ptr %162, align 8, !tbaa !9
  %164 = icmp sge i64 1, %163
  br i1 %164, label %165, label %166

165:                                              ; preds = %159
  br label %169

166:                                              ; preds = %159
  %167 = load ptr, ptr %19, align 8, !tbaa !5
  %168 = load i64, ptr %167, align 8, !tbaa !9
  br label %169

169:                                              ; preds = %166, %165
  %170 = phi i64 [ 1, %165 ], [ %168, %166 ]
  %171 = icmp slt i64 %161, %170
  br i1 %171, label %172, label %174

172:                                              ; preds = %169
  %173 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -9, ptr %173, align 8, !tbaa !9
  br label %190

174:                                              ; preds = %169
  %175 = load ptr, ptr %25, align 8, !tbaa !5
  %176 = load i64, ptr %175, align 8, !tbaa !9
  %177 = load ptr, ptr %18, align 8, !tbaa !5
  %178 = load i64, ptr %177, align 8, !tbaa !9
  %179 = icmp sge i64 1, %178
  br i1 %179, label %180, label %181

180:                                              ; preds = %174
  br label %184

181:                                              ; preds = %174
  %182 = load ptr, ptr %18, align 8, !tbaa !5
  %183 = load i64, ptr %182, align 8, !tbaa !9
  br label %184

184:                                              ; preds = %181, %180
  %185 = phi i64 [ 1, %180 ], [ %183, %181 ]
  %186 = icmp slt i64 %176, %185
  br i1 %186, label %187, label %189

187:                                              ; preds = %184
  %188 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 -11, ptr %188, align 8, !tbaa !9
  br label %189

189:                                              ; preds = %187, %184
  br label %190

190:                                              ; preds = %189, %172
  br label %191

191:                                              ; preds = %190, %157
  br label %192

192:                                              ; preds = %191, %142
  br label %193

193:                                              ; preds = %192, %136
  br label %194

194:                                              ; preds = %193, %130
  br label %195

195:                                              ; preds = %194, %120
  br label %196

196:                                              ; preds = %195, %107
  %197 = load ptr, ptr %27, align 8, !tbaa !5
  %198 = load i64, ptr %197, align 8, !tbaa !9
  %199 = icmp ne i64 %198, 0
  br i1 %199, label %200, label %205

200:                                              ; preds = %196
  %201 = load ptr, ptr %27, align 8, !tbaa !5
  %202 = load i64, ptr %201, align 8, !tbaa !9
  %203 = sub nsw i64 0, %202
  store i64 %203, ptr %34, align 8, !tbaa !9
  %204 = call i32 @xerbla_(ptr noundef @.str.3, ptr noundef %34)
  store i32 0, ptr %14, align 4
  store i32 1, ptr %67, align 4
  br label %4952

205:                                              ; preds = %196
  %206 = load ptr, ptr %26, align 8, !tbaa !5
  store float 1.000000e+00, ptr %206, align 4, !tbaa !11
  %207 = load ptr, ptr %18, align 8, !tbaa !5
  %208 = load i64, ptr %207, align 8, !tbaa !9
  %209 = icmp eq i64 %208, 0
  br i1 %209, label %214, label %210

210:                                              ; preds = %205
  %211 = load ptr, ptr %19, align 8, !tbaa !5
  %212 = load i64, ptr %211, align 8, !tbaa !9
  %213 = icmp eq i64 %212, 0
  br i1 %213, label %214, label %215

214:                                              ; preds = %210, %205
  store i32 0, ptr %14, align 4
  store i32 1, ptr %67, align 4
  br label %4952

215:                                              ; preds = %210
  %216 = call double @slamch_(ptr noundef @.str.4)
  %217 = fptrunc double %216 to float
  store float %217, ptr %53, align 4, !tbaa !11
  %218 = call double @slamch_(ptr noundef @.str.5)
  %219 = fptrunc double %218 to float
  store float %219, ptr %66, align 4, !tbaa !11
  %220 = load float, ptr %66, align 4, !tbaa !11
  %221 = fdiv float 1.000000e+00, %220
  store float %221, ptr %63, align 4, !tbaa !11
  %222 = call i32 @slabad_(ptr noundef %66, ptr noundef %63)
  %223 = load float, ptr %66, align 4, !tbaa !11
  %224 = load ptr, ptr %18, align 8, !tbaa !5
  %225 = load i64, ptr %224, align 8, !tbaa !9
  %226 = load ptr, ptr %19, align 8, !tbaa !5
  %227 = load i64, ptr %226, align 8, !tbaa !9
  %228 = mul nsw i64 %225, %227
  %229 = sitofp i64 %228 to float
  %230 = fmul float %223, %229
  %231 = load float, ptr %53, align 4, !tbaa !11
  %232 = fdiv float %230, %231
  store float %232, ptr %66, align 4, !tbaa !11
  %233 = load float, ptr %66, align 4, !tbaa !11
  %234 = fdiv float 1.000000e+00, %233
  store float %234, ptr %63, align 4, !tbaa !11
  %235 = load float, ptr %66, align 4, !tbaa !11
  store float %235, ptr %38, align 4, !tbaa !11
  %236 = load float, ptr %53, align 4, !tbaa !11
  %237 = fpext float %236 to double
  %238 = load ptr, ptr %18, align 8, !tbaa !5
  %239 = load ptr, ptr %18, align 8, !tbaa !5
  %240 = load ptr, ptr %20, align 8, !tbaa !5
  %241 = load i64, ptr %29, align 8, !tbaa !9
  %242 = getelementptr inbounds float, ptr %240, i64 %241
  %243 = load ptr, ptr %21, align 8, !tbaa !5
  %244 = getelementptr inbounds [1 x float], ptr %52, i64 0, i64 0
  %245 = call double @slange_(ptr noundef @.str.6, ptr noundef %238, ptr noundef %239, ptr noundef %242, ptr noundef %243, ptr noundef %244)
  %246 = fmul double %237, %245
  %247 = fptrunc double %246 to float
  store float %247, ptr %39, align 4, !tbaa !11
  %248 = load float, ptr %38, align 4, !tbaa !11
  %249 = load float, ptr %39, align 4, !tbaa !11
  %250 = fcmp oge float %248, %249
  br i1 %250, label %251, label %253

251:                                              ; preds = %215
  %252 = load float, ptr %38, align 4, !tbaa !11
  br label %255

253:                                              ; preds = %215
  %254 = load float, ptr %39, align 4, !tbaa !11
  br label %255

255:                                              ; preds = %253, %251
  %256 = phi float [ %252, %251 ], [ %254, %253 ]
  store float %256, ptr %38, align 4, !tbaa !11
  %257 = load float, ptr %53, align 4, !tbaa !11
  %258 = fpext float %257 to double
  %259 = load ptr, ptr %19, align 8, !tbaa !5
  %260 = load ptr, ptr %19, align 8, !tbaa !5
  %261 = load ptr, ptr %22, align 8, !tbaa !5
  %262 = load i64, ptr %31, align 8, !tbaa !9
  %263 = getelementptr inbounds float, ptr %261, i64 %262
  %264 = load ptr, ptr %23, align 8, !tbaa !5
  %265 = getelementptr inbounds [1 x float], ptr %52, i64 0, i64 0
  %266 = call double @slange_(ptr noundef @.str.6, ptr noundef %259, ptr noundef %260, ptr noundef %263, ptr noundef %264, ptr noundef %265)
  %267 = fmul double %258, %266
  %268 = fptrunc double %267 to float
  store float %268, ptr %39, align 4, !tbaa !11
  %269 = load float, ptr %38, align 4, !tbaa !11
  %270 = load float, ptr %39, align 4, !tbaa !11
  %271 = fcmp oge float %269, %270
  br i1 %271, label %272, label %274

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

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

276:                                              ; preds = %274, %272
  %277 = phi float [ %273, %272 ], [ %275, %274 ]
  %278 = fpext float %277 to double
  %279 = fptrunc double %278 to float
  store float %279, ptr %56, align 4, !tbaa !11
  %280 = load ptr, ptr %17, align 8, !tbaa !5
  %281 = load i64, ptr %280, align 8, !tbaa !9
  %282 = sitofp i64 %281 to float
  store float %282, ptr %54, align 4, !tbaa !11
  %283 = load i64, ptr %64, align 8, !tbaa !9
  %284 = icmp ne i64 %283, 0
  br i1 %284, label %285, label %1444

285:                                              ; preds = %276
  %286 = load i64, ptr %65, align 8, !tbaa !9
  %287 = icmp ne i64 %286, 0
  br i1 %287, label %288, label %1444

288:                                              ; preds = %285
  store i64 1, ptr %60, align 8, !tbaa !9
  %289 = load ptr, ptr %19, align 8, !tbaa !5
  %290 = load i64, ptr %289, align 8, !tbaa !9
  store i64 %290, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %42, align 8, !tbaa !9
  br label %291

291:                                              ; preds = %1440, %288
  %292 = load i64, ptr %42, align 8, !tbaa !9
  %293 = load i64, ptr %34, align 8, !tbaa !9
  %294 = icmp sle i64 %292, %293
  br i1 %294, label %295, label %1443

295:                                              ; preds = %291
  %296 = load i64, ptr %42, align 8, !tbaa !9
  %297 = load i64, ptr %60, align 8, !tbaa !9
  %298 = icmp slt i64 %296, %297
  br i1 %298, label %299, label %300

299:                                              ; preds = %295
  br label %1439

300:                                              ; preds = %295
  %301 = load i64, ptr %42, align 8, !tbaa !9
  %302 = load ptr, ptr %19, align 8, !tbaa !5
  %303 = load i64, ptr %302, align 8, !tbaa !9
  %304 = icmp eq i64 %301, %303
  br i1 %304, label %305, label %308

305:                                              ; preds = %300
  %306 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %306, ptr %46, align 8, !tbaa !9
  %307 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %307, ptr %47, align 8, !tbaa !9
  br label %331

308:                                              ; preds = %300
  %309 = load ptr, ptr %22, align 8, !tbaa !5
  %310 = load i64, ptr %42, align 8, !tbaa !9
  %311 = add nsw i64 %310, 1
  %312 = load i64, ptr %42, align 8, !tbaa !9
  %313 = load i64, ptr %30, align 8, !tbaa !9
  %314 = mul nsw i64 %312, %313
  %315 = add nsw i64 %311, %314
  %316 = getelementptr inbounds float, ptr %309, i64 %315
  %317 = load float, ptr %316, align 4, !tbaa !11
  %318 = fcmp une float %317, 0.000000e+00
  br i1 %318, label %319, label %325

319:                                              ; preds = %308
  %320 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %320, ptr %46, align 8, !tbaa !9
  %321 = load i64, ptr %42, align 8, !tbaa !9
  %322 = add nsw i64 %321, 1
  store i64 %322, ptr %47, align 8, !tbaa !9
  %323 = load i64, ptr %42, align 8, !tbaa !9
  %324 = add nsw i64 %323, 2
  store i64 %324, ptr %60, align 8, !tbaa !9
  br label %330

325:                                              ; preds = %308
  %326 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %326, ptr %46, align 8, !tbaa !9
  %327 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %327, ptr %47, align 8, !tbaa !9
  %328 = load i64, ptr %42, align 8, !tbaa !9
  %329 = add nsw i64 %328, 1
  store i64 %329, ptr %60, align 8, !tbaa !9
  br label %330

330:                                              ; preds = %325, %319
  br label %331

331:                                              ; preds = %330, %305
  %332 = load ptr, ptr %18, align 8, !tbaa !5
  %333 = load i64, ptr %332, align 8, !tbaa !9
  store i64 %333, ptr %59, align 8, !tbaa !9
  %334 = load ptr, ptr %18, align 8, !tbaa !5
  %335 = load i64, ptr %334, align 8, !tbaa !9
  store i64 %335, ptr %41, align 8, !tbaa !9
  br label %336

336:                                              ; preds = %1435, %331
  %337 = load i64, ptr %41, align 8, !tbaa !9
  %338 = icmp sge i64 %337, 1
  br i1 %338, label %339, label %1438

339:                                              ; preds = %336
  %340 = load i64, ptr %41, align 8, !tbaa !9
  %341 = load i64, ptr %59, align 8, !tbaa !9
  %342 = icmp sgt i64 %340, %341
  br i1 %342, label %343, label %344

343:                                              ; preds = %339
  br label %1434

344:                                              ; preds = %339
  %345 = load i64, ptr %41, align 8, !tbaa !9
  %346 = icmp eq i64 %345, 1
  br i1 %346, label %347, label %350

347:                                              ; preds = %344
  %348 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %348, ptr %44, align 8, !tbaa !9
  %349 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %349, ptr %45, align 8, !tbaa !9
  br label %373

350:                                              ; preds = %344
  %351 = load ptr, ptr %20, align 8, !tbaa !5
  %352 = load i64, ptr %41, align 8, !tbaa !9
  %353 = load i64, ptr %41, align 8, !tbaa !9
  %354 = sub nsw i64 %353, 1
  %355 = load i64, ptr %28, align 8, !tbaa !9
  %356 = mul nsw i64 %354, %355
  %357 = add nsw i64 %352, %356
  %358 = getelementptr inbounds float, ptr %351, i64 %357
  %359 = load float, ptr %358, align 4, !tbaa !11
  %360 = fcmp une float %359, 0.000000e+00
  br i1 %360, label %361, label %367

361:                                              ; preds = %350
  %362 = load i64, ptr %41, align 8, !tbaa !9
  %363 = sub nsw i64 %362, 1
  store i64 %363, ptr %44, align 8, !tbaa !9
  %364 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %364, ptr %45, align 8, !tbaa !9
  %365 = load i64, ptr %41, align 8, !tbaa !9
  %366 = sub nsw i64 %365, 2
  store i64 %366, ptr %59, align 8, !tbaa !9
  br label %372

367:                                              ; preds = %350
  %368 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %368, ptr %44, align 8, !tbaa !9
  %369 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %369, ptr %45, align 8, !tbaa !9
  %370 = load i64, ptr %41, align 8, !tbaa !9
  %371 = sub nsw i64 %370, 1
  store i64 %371, ptr %59, align 8, !tbaa !9
  br label %372

372:                                              ; preds = %367, %361
  br label %373

373:                                              ; preds = %372, %347
  %374 = load i64, ptr %46, align 8, !tbaa !9
  %375 = load i64, ptr %47, align 8, !tbaa !9
  %376 = icmp eq i64 %374, %375
  br i1 %376, label %377, label %567

377:                                              ; preds = %373
  %378 = load i64, ptr %44, align 8, !tbaa !9
  %379 = load i64, ptr %45, align 8, !tbaa !9
  %380 = icmp eq i64 %378, %379
  br i1 %380, label %381, label %567

381:                                              ; preds = %377
  %382 = load ptr, ptr %18, align 8, !tbaa !5
  %383 = load i64, ptr %382, align 8, !tbaa !9
  %384 = load i64, ptr %44, align 8, !tbaa !9
  %385 = sub nsw i64 %383, %384
  store i64 %385, ptr %35, align 8, !tbaa !9
  %386 = load i64, ptr %44, align 8, !tbaa !9
  %387 = add nsw i64 %386, 1
  store i64 %387, ptr %36, align 8, !tbaa !9
  %388 = load i64, ptr %44, align 8, !tbaa !9
  %389 = add nsw i64 %388, 1
  store i64 %389, ptr %37, align 8, !tbaa !9
  %390 = load ptr, ptr %20, align 8, !tbaa !5
  %391 = load i64, ptr %44, align 8, !tbaa !9
  %392 = load i64, ptr %36, align 8, !tbaa !9
  %393 = load ptr, ptr %18, align 8, !tbaa !5
  %394 = load i64, ptr %393, align 8, !tbaa !9
  %395 = icmp sle i64 %392, %394
  br i1 %395, label %396, label %398

396:                                              ; preds = %381
  %397 = load i64, ptr %36, align 8, !tbaa !9
  br label %401

398:                                              ; preds = %381
  %399 = load ptr, ptr %18, align 8, !tbaa !5
  %400 = load i64, ptr %399, align 8, !tbaa !9
  br label %401

401:                                              ; preds = %398, %396
  %402 = phi i64 [ %397, %396 ], [ %400, %398 ]
  %403 = load i64, ptr %28, align 8, !tbaa !9
  %404 = mul nsw i64 %402, %403
  %405 = add nsw i64 %391, %404
  %406 = getelementptr inbounds float, ptr %390, i64 %405
  %407 = load ptr, ptr %21, align 8, !tbaa !5
  %408 = load ptr, ptr %24, align 8, !tbaa !5
  %409 = load i64, ptr %37, align 8, !tbaa !9
  %410 = load ptr, ptr %18, align 8, !tbaa !5
  %411 = load i64, ptr %410, align 8, !tbaa !9
  %412 = icmp sle i64 %409, %411
  br i1 %412, label %413, label %415

413:                                              ; preds = %401
  %414 = load i64, ptr %37, align 8, !tbaa !9
  br label %418

415:                                              ; preds = %401
  %416 = load ptr, ptr %18, align 8, !tbaa !5
  %417 = load i64, ptr %416, align 8, !tbaa !9
  br label %418

418:                                              ; preds = %415, %413
  %419 = phi i64 [ %414, %413 ], [ %417, %415 ]
  %420 = load i64, ptr %46, align 8, !tbaa !9
  %421 = load i64, ptr %32, align 8, !tbaa !9
  %422 = mul nsw i64 %420, %421
  %423 = add nsw i64 %419, %422
  %424 = getelementptr inbounds float, ptr %408, i64 %423
  %425 = call double @f2c_sdot(ptr noundef %35, ptr noundef %406, ptr noundef %407, ptr noundef %424, ptr noundef @c__1)
  %426 = fptrunc double %425 to float
  store float %426, ptr %57, align 4, !tbaa !11
  %427 = load i64, ptr %46, align 8, !tbaa !9
  %428 = sub nsw i64 %427, 1
  store i64 %428, ptr %35, align 8, !tbaa !9
  %429 = load ptr, ptr %24, align 8, !tbaa !5
  %430 = load i64, ptr %44, align 8, !tbaa !9
  %431 = load i64, ptr %32, align 8, !tbaa !9
  %432 = add nsw i64 %430, %431
  %433 = getelementptr inbounds float, ptr %429, i64 %432
  %434 = load ptr, ptr %25, align 8, !tbaa !5
  %435 = load ptr, ptr %22, align 8, !tbaa !5
  %436 = load i64, ptr %46, align 8, !tbaa !9
  %437 = load i64, ptr %30, align 8, !tbaa !9
  %438 = mul nsw i64 %436, %437
  %439 = add nsw i64 %438, 1
  %440 = getelementptr inbounds float, ptr %435, i64 %439
  %441 = call double @f2c_sdot(ptr noundef %35, ptr noundef %433, ptr noundef %434, ptr noundef %440, ptr noundef @c__1)
  %442 = fptrunc double %441 to float
  store float %442, ptr %58, align 4, !tbaa !11
  %443 = load ptr, ptr %24, align 8, !tbaa !5
  %444 = load i64, ptr %44, align 8, !tbaa !9
  %445 = load i64, ptr %46, align 8, !tbaa !9
  %446 = load i64, ptr %32, align 8, !tbaa !9
  %447 = mul nsw i64 %445, %446
  %448 = add nsw i64 %444, %447
  %449 = getelementptr inbounds float, ptr %443, i64 %448
  %450 = load float, ptr %449, align 4, !tbaa !11
  %451 = load float, ptr %57, align 4, !tbaa !11
  %452 = load float, ptr %54, align 4, !tbaa !11
  %453 = load float, ptr %58, align 4, !tbaa !11
  %454 = call float @llvm.fmuladd.f32(float %452, float %453, float %451)
  %455 = fsub float %450, %454
  %456 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %455, ptr %456, align 16, !tbaa !11
  store float 1.000000e+00, ptr %62, align 4, !tbaa !11
  %457 = load ptr, ptr %20, align 8, !tbaa !5
  %458 = load i64, ptr %44, align 8, !tbaa !9
  %459 = load i64, ptr %44, align 8, !tbaa !9
  %460 = load i64, ptr %28, align 8, !tbaa !9
  %461 = mul nsw i64 %459, %460
  %462 = add nsw i64 %458, %461
  %463 = getelementptr inbounds float, ptr %457, i64 %462
  %464 = load float, ptr %463, align 4, !tbaa !11
  %465 = load float, ptr %54, align 4, !tbaa !11
  %466 = load ptr, ptr %22, align 8, !tbaa !5
  %467 = load i64, ptr %46, align 8, !tbaa !9
  %468 = load i64, ptr %46, align 8, !tbaa !9
  %469 = load i64, ptr %30, align 8, !tbaa !9
  %470 = mul nsw i64 %468, %469
  %471 = add nsw i64 %467, %470
  %472 = getelementptr inbounds float, ptr %466, i64 %471
  %473 = load float, ptr %472, align 4, !tbaa !11
  %474 = call float @llvm.fmuladd.f32(float %465, float %473, float %464)
  store float %474, ptr %48, align 4, !tbaa !11
  %475 = load float, ptr %48, align 4, !tbaa !11
  %476 = fcmp oge float %475, 0.000000e+00
  br i1 %476, label %477, label %479

477:                                              ; preds = %418
  %478 = load float, ptr %48, align 4, !tbaa !11
  br label %482

479:                                              ; preds = %418
  %480 = load float, ptr %48, align 4, !tbaa !11
  %481 = fneg float %480
  br label %482

482:                                              ; preds = %479, %477
  %483 = phi float [ %478, %477 ], [ %481, %479 ]
  %484 = fpext float %483 to double
  %485 = fptrunc double %484 to float
  store float %485, ptr %50, align 4, !tbaa !11
  %486 = load float, ptr %50, align 4, !tbaa !11
  %487 = load float, ptr %56, align 4, !tbaa !11
  %488 = fcmp ole float %486, %487
  br i1 %488, label %489, label %493

489:                                              ; preds = %482
  %490 = load float, ptr %56, align 4, !tbaa !11
  store float %490, ptr %48, align 4, !tbaa !11
  %491 = load float, ptr %56, align 4, !tbaa !11
  store float %491, ptr %50, align 4, !tbaa !11
  %492 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %492, align 8, !tbaa !9
  br label %493

493:                                              ; preds = %489, %482
  %494 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %495 = load float, ptr %494, align 16, !tbaa !11
  %496 = fcmp oge float %495, 0.000000e+00
  br i1 %496, label %497, label %500

497:                                              ; preds = %493
  %498 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %499 = load float, ptr %498, align 16, !tbaa !11
  br label %504

500:                                              ; preds = %493
  %501 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %502 = load float, ptr %501, align 16, !tbaa !11
  %503 = fneg float %502
  br label %504

504:                                              ; preds = %500, %497
  %505 = phi float [ %499, %497 ], [ %503, %500 ]
  %506 = fpext float %505 to double
  %507 = fptrunc double %506 to float
  store float %507, ptr %49, align 4, !tbaa !11
  %508 = load float, ptr %50, align 4, !tbaa !11
  %509 = fcmp olt float %508, 1.000000e+00
  br i1 %509, label %510, label %523

510:                                              ; preds = %504
  %511 = load float, ptr %49, align 4, !tbaa !11
  %512 = fcmp ogt float %511, 1.000000e+00
  br i1 %512, label %513, label %523

513:                                              ; preds = %510
  %514 = load float, ptr %49, align 4, !tbaa !11
  %515 = load float, ptr %63, align 4, !tbaa !11
  %516 = load float, ptr %50, align 4, !tbaa !11
  %517 = fmul float %515, %516
  %518 = fcmp ogt float %514, %517
  br i1 %518, label %519, label %522

519:                                              ; preds = %513
  %520 = load float, ptr %49, align 4, !tbaa !11
  %521 = fdiv float 1.000000e+00, %520
  store float %521, ptr %62, align 4, !tbaa !11
  br label %522

522:                                              ; preds = %519, %513
  br label %523

523:                                              ; preds = %522, %510, %504
  %524 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %525 = load float, ptr %524, align 16, !tbaa !11
  %526 = load float, ptr %62, align 4, !tbaa !11
  %527 = fmul float %525, %526
  %528 = load float, ptr %48, align 4, !tbaa !11
  %529 = fdiv float %527, %528
  %530 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  store float %529, ptr %530, align 16, !tbaa !11
  %531 = load float, ptr %62, align 4, !tbaa !11
  %532 = fcmp une float %531, 1.000000e+00
  br i1 %532, label %533, label %557

533:                                              ; preds = %523
  %534 = load ptr, ptr %19, align 8, !tbaa !5
  %535 = load i64, ptr %534, align 8, !tbaa !9
  store i64 %535, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %536

536:                                              ; preds = %549, %533
  %537 = load i64, ptr %40, align 8, !tbaa !9
  %538 = load i64, ptr %35, align 8, !tbaa !9
  %539 = icmp sle i64 %537, %538
  br i1 %539, label %540, label %552

540:                                              ; preds = %536
  %541 = load ptr, ptr %18, align 8, !tbaa !5
  %542 = load ptr, ptr %24, align 8, !tbaa !5
  %543 = load i64, ptr %40, align 8, !tbaa !9
  %544 = load i64, ptr %32, align 8, !tbaa !9
  %545 = mul nsw i64 %543, %544
  %546 = add nsw i64 %545, 1
  %547 = getelementptr inbounds float, ptr %542, i64 %546
  %548 = call i32 @f2c_sscal(ptr noundef %541, ptr noundef %62, ptr noundef %547, ptr noundef @c__1)
  br label %549

549:                                              ; preds = %540
  %550 = load i64, ptr %40, align 8, !tbaa !9
  %551 = add nsw i64 %550, 1
  store i64 %551, ptr %40, align 8, !tbaa !9
  br label %536, !llvm.loop !13

552:                                              ; preds = %536
  %553 = load float, ptr %62, align 4, !tbaa !11
  %554 = load ptr, ptr %26, align 8, !tbaa !5
  %555 = load float, ptr %554, align 4, !tbaa !11
  %556 = fmul float %555, %553
  store float %556, ptr %554, align 4, !tbaa !11
  br label %557

557:                                              ; preds = %552, %523
  %558 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %559 = load float, ptr %558, align 16, !tbaa !11
  %560 = load ptr, ptr %24, align 8, !tbaa !5
  %561 = load i64, ptr %44, align 8, !tbaa !9
  %562 = load i64, ptr %46, align 8, !tbaa !9
  %563 = load i64, ptr %32, align 8, !tbaa !9
  %564 = mul nsw i64 %562, %563
  %565 = add nsw i64 %561, %564
  %566 = getelementptr inbounds float, ptr %560, i64 %565
  store float %559, ptr %566, align 4, !tbaa !11
  br label %1433

567:                                              ; preds = %377, %373
  %568 = load i64, ptr %46, align 8, !tbaa !9
  %569 = load i64, ptr %47, align 8, !tbaa !9
  %570 = icmp eq i64 %568, %569
  br i1 %570, label %571, label %798

571:                                              ; preds = %567
  %572 = load i64, ptr %44, align 8, !tbaa !9
  %573 = load i64, ptr %45, align 8, !tbaa !9
  %574 = icmp ne i64 %572, %573
  br i1 %574, label %575, label %798

575:                                              ; preds = %571
  %576 = load ptr, ptr %18, align 8, !tbaa !5
  %577 = load i64, ptr %576, align 8, !tbaa !9
  %578 = load i64, ptr %45, align 8, !tbaa !9
  %579 = sub nsw i64 %577, %578
  store i64 %579, ptr %35, align 8, !tbaa !9
  %580 = load i64, ptr %45, align 8, !tbaa !9
  %581 = add nsw i64 %580, 1
  store i64 %581, ptr %36, align 8, !tbaa !9
  %582 = load i64, ptr %45, align 8, !tbaa !9
  %583 = add nsw i64 %582, 1
  store i64 %583, ptr %37, align 8, !tbaa !9
  %584 = load ptr, ptr %20, align 8, !tbaa !5
  %585 = load i64, ptr %44, align 8, !tbaa !9
  %586 = load i64, ptr %36, align 8, !tbaa !9
  %587 = load ptr, ptr %18, align 8, !tbaa !5
  %588 = load i64, ptr %587, align 8, !tbaa !9
  %589 = icmp sle i64 %586, %588
  br i1 %589, label %590, label %592

590:                                              ; preds = %575
  %591 = load i64, ptr %36, align 8, !tbaa !9
  br label %595

592:                                              ; preds = %575
  %593 = load ptr, ptr %18, align 8, !tbaa !5
  %594 = load i64, ptr %593, align 8, !tbaa !9
  br label %595

595:                                              ; preds = %592, %590
  %596 = phi i64 [ %591, %590 ], [ %594, %592 ]
  %597 = load i64, ptr %28, align 8, !tbaa !9
  %598 = mul nsw i64 %596, %597
  %599 = add nsw i64 %585, %598
  %600 = getelementptr inbounds float, ptr %584, i64 %599
  %601 = load ptr, ptr %21, align 8, !tbaa !5
  %602 = load ptr, ptr %24, align 8, !tbaa !5
  %603 = load i64, ptr %37, align 8, !tbaa !9
  %604 = load ptr, ptr %18, align 8, !tbaa !5
  %605 = load i64, ptr %604, align 8, !tbaa !9
  %606 = icmp sle i64 %603, %605
  br i1 %606, label %607, label %609

607:                                              ; preds = %595
  %608 = load i64, ptr %37, align 8, !tbaa !9
  br label %612

609:                                              ; preds = %595
  %610 = load ptr, ptr %18, align 8, !tbaa !5
  %611 = load i64, ptr %610, align 8, !tbaa !9
  br label %612

612:                                              ; preds = %609, %607
  %613 = phi i64 [ %608, %607 ], [ %611, %609 ]
  %614 = load i64, ptr %46, align 8, !tbaa !9
  %615 = load i64, ptr %32, align 8, !tbaa !9
  %616 = mul nsw i64 %614, %615
  %617 = add nsw i64 %613, %616
  %618 = getelementptr inbounds float, ptr %602, i64 %617
  %619 = call double @f2c_sdot(ptr noundef %35, ptr noundef %600, ptr noundef %601, ptr noundef %618, ptr noundef @c__1)
  %620 = fptrunc double %619 to float
  store float %620, ptr %57, align 4, !tbaa !11
  %621 = load i64, ptr %46, align 8, !tbaa !9
  %622 = sub nsw i64 %621, 1
  store i64 %622, ptr %35, align 8, !tbaa !9
  %623 = load ptr, ptr %24, align 8, !tbaa !5
  %624 = load i64, ptr %44, align 8, !tbaa !9
  %625 = load i64, ptr %32, align 8, !tbaa !9
  %626 = add nsw i64 %624, %625
  %627 = getelementptr inbounds float, ptr %623, i64 %626
  %628 = load ptr, ptr %25, align 8, !tbaa !5
  %629 = load ptr, ptr %22, align 8, !tbaa !5
  %630 = load i64, ptr %46, align 8, !tbaa !9
  %631 = load i64, ptr %30, align 8, !tbaa !9
  %632 = mul nsw i64 %630, %631
  %633 = add nsw i64 %632, 1
  %634 = getelementptr inbounds float, ptr %629, i64 %633
  %635 = call double @f2c_sdot(ptr noundef %35, ptr noundef %627, ptr noundef %628, ptr noundef %634, ptr noundef @c__1)
  %636 = fptrunc double %635 to float
  store float %636, ptr %58, align 4, !tbaa !11
  %637 = load ptr, ptr %24, align 8, !tbaa !5
  %638 = load i64, ptr %44, align 8, !tbaa !9
  %639 = load i64, ptr %46, align 8, !tbaa !9
  %640 = load i64, ptr %32, align 8, !tbaa !9
  %641 = mul nsw i64 %639, %640
  %642 = add nsw i64 %638, %641
  %643 = getelementptr inbounds float, ptr %637, i64 %642
  %644 = load float, ptr %643, align 4, !tbaa !11
  %645 = load float, ptr %57, align 4, !tbaa !11
  %646 = load float, ptr %54, align 4, !tbaa !11
  %647 = load float, ptr %58, align 4, !tbaa !11
  %648 = call float @llvm.fmuladd.f32(float %646, float %647, float %645)
  %649 = fsub float %644, %648
  %650 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %649, ptr %650, align 16, !tbaa !11
  %651 = load ptr, ptr %18, align 8, !tbaa !5
  %652 = load i64, ptr %651, align 8, !tbaa !9
  %653 = load i64, ptr %45, align 8, !tbaa !9
  %654 = sub nsw i64 %652, %653
  store i64 %654, ptr %35, align 8, !tbaa !9
  %655 = load i64, ptr %45, align 8, !tbaa !9
  %656 = add nsw i64 %655, 1
  store i64 %656, ptr %36, align 8, !tbaa !9
  %657 = load i64, ptr %45, align 8, !tbaa !9
  %658 = add nsw i64 %657, 1
  store i64 %658, ptr %37, align 8, !tbaa !9
  %659 = load ptr, ptr %20, align 8, !tbaa !5
  %660 = load i64, ptr %45, align 8, !tbaa !9
  %661 = load i64, ptr %36, align 8, !tbaa !9
  %662 = load ptr, ptr %18, align 8, !tbaa !5
  %663 = load i64, ptr %662, align 8, !tbaa !9
  %664 = icmp sle i64 %661, %663
  br i1 %664, label %665, label %667

665:                                              ; preds = %612
  %666 = load i64, ptr %36, align 8, !tbaa !9
  br label %670

667:                                              ; preds = %612
  %668 = load ptr, ptr %18, align 8, !tbaa !5
  %669 = load i64, ptr %668, align 8, !tbaa !9
  br label %670

670:                                              ; preds = %667, %665
  %671 = phi i64 [ %666, %665 ], [ %669, %667 ]
  %672 = load i64, ptr %28, align 8, !tbaa !9
  %673 = mul nsw i64 %671, %672
  %674 = add nsw i64 %660, %673
  %675 = getelementptr inbounds float, ptr %659, i64 %674
  %676 = load ptr, ptr %21, align 8, !tbaa !5
  %677 = load ptr, ptr %24, align 8, !tbaa !5
  %678 = load i64, ptr %37, align 8, !tbaa !9
  %679 = load ptr, ptr %18, align 8, !tbaa !5
  %680 = load i64, ptr %679, align 8, !tbaa !9
  %681 = icmp sle i64 %678, %680
  br i1 %681, label %682, label %684

682:                                              ; preds = %670
  %683 = load i64, ptr %37, align 8, !tbaa !9
  br label %687

684:                                              ; preds = %670
  %685 = load ptr, ptr %18, align 8, !tbaa !5
  %686 = load i64, ptr %685, align 8, !tbaa !9
  br label %687

687:                                              ; preds = %684, %682
  %688 = phi i64 [ %683, %682 ], [ %686, %684 ]
  %689 = load i64, ptr %46, align 8, !tbaa !9
  %690 = load i64, ptr %32, align 8, !tbaa !9
  %691 = mul nsw i64 %689, %690
  %692 = add nsw i64 %688, %691
  %693 = getelementptr inbounds float, ptr %677, i64 %692
  %694 = call double @f2c_sdot(ptr noundef %35, ptr noundef %675, ptr noundef %676, ptr noundef %693, ptr noundef @c__1)
  %695 = fptrunc double %694 to float
  store float %695, ptr %57, align 4, !tbaa !11
  %696 = load i64, ptr %46, align 8, !tbaa !9
  %697 = sub nsw i64 %696, 1
  store i64 %697, ptr %35, align 8, !tbaa !9
  %698 = load ptr, ptr %24, align 8, !tbaa !5
  %699 = load i64, ptr %45, align 8, !tbaa !9
  %700 = load i64, ptr %32, align 8, !tbaa !9
  %701 = add nsw i64 %699, %700
  %702 = getelementptr inbounds float, ptr %698, i64 %701
  %703 = load ptr, ptr %25, align 8, !tbaa !5
  %704 = load ptr, ptr %22, align 8, !tbaa !5
  %705 = load i64, ptr %46, align 8, !tbaa !9
  %706 = load i64, ptr %30, align 8, !tbaa !9
  %707 = mul nsw i64 %705, %706
  %708 = add nsw i64 %707, 1
  %709 = getelementptr inbounds float, ptr %704, i64 %708
  %710 = call double @f2c_sdot(ptr noundef %35, ptr noundef %702, ptr noundef %703, ptr noundef %709, ptr noundef @c__1)
  %711 = fptrunc double %710 to float
  store float %711, ptr %58, align 4, !tbaa !11
  %712 = load ptr, ptr %24, align 8, !tbaa !5
  %713 = load i64, ptr %45, align 8, !tbaa !9
  %714 = load i64, ptr %46, align 8, !tbaa !9
  %715 = load i64, ptr %32, align 8, !tbaa !9
  %716 = mul nsw i64 %714, %715
  %717 = add nsw i64 %713, %716
  %718 = getelementptr inbounds float, ptr %712, i64 %717
  %719 = load float, ptr %718, align 4, !tbaa !11
  %720 = load float, ptr %57, align 4, !tbaa !11
  %721 = load float, ptr %54, align 4, !tbaa !11
  %722 = load float, ptr %58, align 4, !tbaa !11
  %723 = call float @llvm.fmuladd.f32(float %721, float %722, float %720)
  %724 = fsub float %719, %723
  %725 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 1
  store float %724, ptr %725, align 4, !tbaa !11
  %726 = load float, ptr %54, align 4, !tbaa !11
  %727 = fneg float %726
  %728 = load ptr, ptr %22, align 8, !tbaa !5
  %729 = load i64, ptr %46, align 8, !tbaa !9
  %730 = load i64, ptr %46, align 8, !tbaa !9
  %731 = load i64, ptr %30, align 8, !tbaa !9
  %732 = mul nsw i64 %730, %731
  %733 = add nsw i64 %729, %732
  %734 = getelementptr inbounds float, ptr %728, i64 %733
  %735 = load float, ptr %734, align 4, !tbaa !11
  %736 = fmul float %727, %735
  store float %736, ptr %38, align 4, !tbaa !11
  %737 = load ptr, ptr %20, align 8, !tbaa !5
  %738 = load i64, ptr %44, align 8, !tbaa !9
  %739 = load i64, ptr %44, align 8, !tbaa !9
  %740 = load i64, ptr %28, align 8, !tbaa !9
  %741 = mul nsw i64 %739, %740
  %742 = add nsw i64 %738, %741
  %743 = getelementptr inbounds float, ptr %737, i64 %742
  %744 = load ptr, ptr %21, align 8, !tbaa !5
  %745 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %746 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %747 = call i32 @slaln2_(ptr noundef @c_false, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %56, ptr noundef @c_b26, ptr noundef %743, ptr noundef %744, ptr noundef @c_b26, ptr noundef @c_b26, ptr noundef %745, ptr noundef @c__2, ptr noundef %38, ptr noundef @c_b30, ptr noundef %746, ptr noundef @c__2, ptr noundef %62, ptr noundef %61, ptr noundef %55)
  %748 = load i64, ptr %55, align 8, !tbaa !9
  %749 = icmp ne i64 %748, 0
  br i1 %749, label %750, label %752

750:                                              ; preds = %687
  %751 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %751, align 8, !tbaa !9
  br label %752

752:                                              ; preds = %750, %687
  %753 = load float, ptr %62, align 4, !tbaa !11
  %754 = fcmp une float %753, 1.000000e+00
  br i1 %754, label %755, label %779

755:                                              ; preds = %752
  %756 = load ptr, ptr %19, align 8, !tbaa !5
  %757 = load i64, ptr %756, align 8, !tbaa !9
  store i64 %757, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %758

758:                                              ; preds = %771, %755
  %759 = load i64, ptr %40, align 8, !tbaa !9
  %760 = load i64, ptr %35, align 8, !tbaa !9
  %761 = icmp sle i64 %759, %760
  br i1 %761, label %762, label %774

762:                                              ; preds = %758
  %763 = load ptr, ptr %18, align 8, !tbaa !5
  %764 = load ptr, ptr %24, align 8, !tbaa !5
  %765 = load i64, ptr %40, align 8, !tbaa !9
  %766 = load i64, ptr %32, align 8, !tbaa !9
  %767 = mul nsw i64 %765, %766
  %768 = add nsw i64 %767, 1
  %769 = getelementptr inbounds float, ptr %764, i64 %768
  %770 = call i32 @f2c_sscal(ptr noundef %763, ptr noundef %62, ptr noundef %769, ptr noundef @c__1)
  br label %771

771:                                              ; preds = %762
  %772 = load i64, ptr %40, align 8, !tbaa !9
  %773 = add nsw i64 %772, 1
  store i64 %773, ptr %40, align 8, !tbaa !9
  br label %758, !llvm.loop !15

774:                                              ; preds = %758
  %775 = load float, ptr %62, align 4, !tbaa !11
  %776 = load ptr, ptr %26, align 8, !tbaa !5
  %777 = load float, ptr %776, align 4, !tbaa !11
  %778 = fmul float %777, %775
  store float %778, ptr %776, align 4, !tbaa !11
  br label %779

779:                                              ; preds = %774, %752
  %780 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %781 = load float, ptr %780, align 16, !tbaa !11
  %782 = load ptr, ptr %24, align 8, !tbaa !5
  %783 = load i64, ptr %44, align 8, !tbaa !9
  %784 = load i64, ptr %46, align 8, !tbaa !9
  %785 = load i64, ptr %32, align 8, !tbaa !9
  %786 = mul nsw i64 %784, %785
  %787 = add nsw i64 %783, %786
  %788 = getelementptr inbounds float, ptr %782, i64 %787
  store float %781, ptr %788, align 4, !tbaa !11
  %789 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 1
  %790 = load float, ptr %789, align 4, !tbaa !11
  %791 = load ptr, ptr %24, align 8, !tbaa !5
  %792 = load i64, ptr %45, align 8, !tbaa !9
  %793 = load i64, ptr %46, align 8, !tbaa !9
  %794 = load i64, ptr %32, align 8, !tbaa !9
  %795 = mul nsw i64 %793, %794
  %796 = add nsw i64 %792, %795
  %797 = getelementptr inbounds float, ptr %791, i64 %796
  store float %790, ptr %797, align 4, !tbaa !11
  br label %1432

798:                                              ; preds = %571, %567
  %799 = load i64, ptr %46, align 8, !tbaa !9
  %800 = load i64, ptr %47, align 8, !tbaa !9
  %801 = icmp ne i64 %799, %800
  br i1 %801, label %802, label %1033

802:                                              ; preds = %798
  %803 = load i64, ptr %44, align 8, !tbaa !9
  %804 = load i64, ptr %45, align 8, !tbaa !9
  %805 = icmp eq i64 %803, %804
  br i1 %805, label %806, label %1033

806:                                              ; preds = %802
  %807 = load ptr, ptr %18, align 8, !tbaa !5
  %808 = load i64, ptr %807, align 8, !tbaa !9
  %809 = load i64, ptr %44, align 8, !tbaa !9
  %810 = sub nsw i64 %808, %809
  store i64 %810, ptr %35, align 8, !tbaa !9
  %811 = load i64, ptr %44, align 8, !tbaa !9
  %812 = add nsw i64 %811, 1
  store i64 %812, ptr %36, align 8, !tbaa !9
  %813 = load i64, ptr %44, align 8, !tbaa !9
  %814 = add nsw i64 %813, 1
  store i64 %814, ptr %37, align 8, !tbaa !9
  %815 = load ptr, ptr %20, align 8, !tbaa !5
  %816 = load i64, ptr %44, align 8, !tbaa !9
  %817 = load i64, ptr %36, align 8, !tbaa !9
  %818 = load ptr, ptr %18, align 8, !tbaa !5
  %819 = load i64, ptr %818, align 8, !tbaa !9
  %820 = icmp sle i64 %817, %819
  br i1 %820, label %821, label %823

821:                                              ; preds = %806
  %822 = load i64, ptr %36, align 8, !tbaa !9
  br label %826

823:                                              ; preds = %806
  %824 = load ptr, ptr %18, align 8, !tbaa !5
  %825 = load i64, ptr %824, align 8, !tbaa !9
  br label %826

826:                                              ; preds = %823, %821
  %827 = phi i64 [ %822, %821 ], [ %825, %823 ]
  %828 = load i64, ptr %28, align 8, !tbaa !9
  %829 = mul nsw i64 %827, %828
  %830 = add nsw i64 %816, %829
  %831 = getelementptr inbounds float, ptr %815, i64 %830
  %832 = load ptr, ptr %21, align 8, !tbaa !5
  %833 = load ptr, ptr %24, align 8, !tbaa !5
  %834 = load i64, ptr %37, align 8, !tbaa !9
  %835 = load ptr, ptr %18, align 8, !tbaa !5
  %836 = load i64, ptr %835, align 8, !tbaa !9
  %837 = icmp sle i64 %834, %836
  br i1 %837, label %838, label %840

838:                                              ; preds = %826
  %839 = load i64, ptr %37, align 8, !tbaa !9
  br label %843

840:                                              ; preds = %826
  %841 = load ptr, ptr %18, align 8, !tbaa !5
  %842 = load i64, ptr %841, align 8, !tbaa !9
  br label %843

843:                                              ; preds = %840, %838
  %844 = phi i64 [ %839, %838 ], [ %842, %840 ]
  %845 = load i64, ptr %46, align 8, !tbaa !9
  %846 = load i64, ptr %32, align 8, !tbaa !9
  %847 = mul nsw i64 %845, %846
  %848 = add nsw i64 %844, %847
  %849 = getelementptr inbounds float, ptr %833, i64 %848
  %850 = call double @f2c_sdot(ptr noundef %35, ptr noundef %831, ptr noundef %832, ptr noundef %849, ptr noundef @c__1)
  %851 = fptrunc double %850 to float
  store float %851, ptr %57, align 4, !tbaa !11
  %852 = load i64, ptr %46, align 8, !tbaa !9
  %853 = sub nsw i64 %852, 1
  store i64 %853, ptr %35, align 8, !tbaa !9
  %854 = load ptr, ptr %24, align 8, !tbaa !5
  %855 = load i64, ptr %44, align 8, !tbaa !9
  %856 = load i64, ptr %32, align 8, !tbaa !9
  %857 = add nsw i64 %855, %856
  %858 = getelementptr inbounds float, ptr %854, i64 %857
  %859 = load ptr, ptr %25, align 8, !tbaa !5
  %860 = load ptr, ptr %22, align 8, !tbaa !5
  %861 = load i64, ptr %46, align 8, !tbaa !9
  %862 = load i64, ptr %30, align 8, !tbaa !9
  %863 = mul nsw i64 %861, %862
  %864 = add nsw i64 %863, 1
  %865 = getelementptr inbounds float, ptr %860, i64 %864
  %866 = call double @f2c_sdot(ptr noundef %35, ptr noundef %858, ptr noundef %859, ptr noundef %865, ptr noundef @c__1)
  %867 = fptrunc double %866 to float
  store float %867, ptr %58, align 4, !tbaa !11
  %868 = load float, ptr %54, align 4, !tbaa !11
  %869 = load ptr, ptr %24, align 8, !tbaa !5
  %870 = load i64, ptr %44, align 8, !tbaa !9
  %871 = load i64, ptr %46, align 8, !tbaa !9
  %872 = load i64, ptr %32, align 8, !tbaa !9
  %873 = mul nsw i64 %871, %872
  %874 = add nsw i64 %870, %873
  %875 = getelementptr inbounds float, ptr %869, i64 %874
  %876 = load float, ptr %875, align 4, !tbaa !11
  %877 = load float, ptr %57, align 4, !tbaa !11
  %878 = load float, ptr %54, align 4, !tbaa !11
  %879 = load float, ptr %58, align 4, !tbaa !11
  %880 = call float @llvm.fmuladd.f32(float %878, float %879, float %877)
  %881 = fsub float %876, %880
  %882 = fmul float %868, %881
  %883 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %882, ptr %883, align 16, !tbaa !11
  %884 = load ptr, ptr %18, align 8, !tbaa !5
  %885 = load i64, ptr %884, align 8, !tbaa !9
  %886 = load i64, ptr %44, align 8, !tbaa !9
  %887 = sub nsw i64 %885, %886
  store i64 %887, ptr %35, align 8, !tbaa !9
  %888 = load i64, ptr %44, align 8, !tbaa !9
  %889 = add nsw i64 %888, 1
  store i64 %889, ptr %36, align 8, !tbaa !9
  %890 = load i64, ptr %44, align 8, !tbaa !9
  %891 = add nsw i64 %890, 1
  store i64 %891, ptr %37, align 8, !tbaa !9
  %892 = load ptr, ptr %20, align 8, !tbaa !5
  %893 = load i64, ptr %44, align 8, !tbaa !9
  %894 = load i64, ptr %36, align 8, !tbaa !9
  %895 = load ptr, ptr %18, align 8, !tbaa !5
  %896 = load i64, ptr %895, align 8, !tbaa !9
  %897 = icmp sle i64 %894, %896
  br i1 %897, label %898, label %900

898:                                              ; preds = %843
  %899 = load i64, ptr %36, align 8, !tbaa !9
  br label %903

900:                                              ; preds = %843
  %901 = load ptr, ptr %18, align 8, !tbaa !5
  %902 = load i64, ptr %901, align 8, !tbaa !9
  br label %903

903:                                              ; preds = %900, %898
  %904 = phi i64 [ %899, %898 ], [ %902, %900 ]
  %905 = load i64, ptr %28, align 8, !tbaa !9
  %906 = mul nsw i64 %904, %905
  %907 = add nsw i64 %893, %906
  %908 = getelementptr inbounds float, ptr %892, i64 %907
  %909 = load ptr, ptr %21, align 8, !tbaa !5
  %910 = load ptr, ptr %24, align 8, !tbaa !5
  %911 = load i64, ptr %37, align 8, !tbaa !9
  %912 = load ptr, ptr %18, align 8, !tbaa !5
  %913 = load i64, ptr %912, align 8, !tbaa !9
  %914 = icmp sle i64 %911, %913
  br i1 %914, label %915, label %917

915:                                              ; preds = %903
  %916 = load i64, ptr %37, align 8, !tbaa !9
  br label %920

917:                                              ; preds = %903
  %918 = load ptr, ptr %18, align 8, !tbaa !5
  %919 = load i64, ptr %918, align 8, !tbaa !9
  br label %920

920:                                              ; preds = %917, %915
  %921 = phi i64 [ %916, %915 ], [ %919, %917 ]
  %922 = load i64, ptr %47, align 8, !tbaa !9
  %923 = load i64, ptr %32, align 8, !tbaa !9
  %924 = mul nsw i64 %922, %923
  %925 = add nsw i64 %921, %924
  %926 = getelementptr inbounds float, ptr %910, i64 %925
  %927 = call double @f2c_sdot(ptr noundef %35, ptr noundef %908, ptr noundef %909, ptr noundef %926, ptr noundef @c__1)
  %928 = fptrunc double %927 to float
  store float %928, ptr %57, align 4, !tbaa !11
  %929 = load i64, ptr %46, align 8, !tbaa !9
  %930 = sub nsw i64 %929, 1
  store i64 %930, ptr %35, align 8, !tbaa !9
  %931 = load ptr, ptr %24, align 8, !tbaa !5
  %932 = load i64, ptr %44, align 8, !tbaa !9
  %933 = load i64, ptr %32, align 8, !tbaa !9
  %934 = add nsw i64 %932, %933
  %935 = getelementptr inbounds float, ptr %931, i64 %934
  %936 = load ptr, ptr %25, align 8, !tbaa !5
  %937 = load ptr, ptr %22, align 8, !tbaa !5
  %938 = load i64, ptr %47, align 8, !tbaa !9
  %939 = load i64, ptr %30, align 8, !tbaa !9
  %940 = mul nsw i64 %938, %939
  %941 = add nsw i64 %940, 1
  %942 = getelementptr inbounds float, ptr %937, i64 %941
  %943 = call double @f2c_sdot(ptr noundef %35, ptr noundef %935, ptr noundef %936, ptr noundef %942, ptr noundef @c__1)
  %944 = fptrunc double %943 to float
  store float %944, ptr %58, align 4, !tbaa !11
  %945 = load float, ptr %54, align 4, !tbaa !11
  %946 = load ptr, ptr %24, align 8, !tbaa !5
  %947 = load i64, ptr %44, align 8, !tbaa !9
  %948 = load i64, ptr %47, align 8, !tbaa !9
  %949 = load i64, ptr %32, align 8, !tbaa !9
  %950 = mul nsw i64 %948, %949
  %951 = add nsw i64 %947, %950
  %952 = getelementptr inbounds float, ptr %946, i64 %951
  %953 = load float, ptr %952, align 4, !tbaa !11
  %954 = load float, ptr %57, align 4, !tbaa !11
  %955 = load float, ptr %54, align 4, !tbaa !11
  %956 = load float, ptr %58, align 4, !tbaa !11
  %957 = call float @llvm.fmuladd.f32(float %955, float %956, float %954)
  %958 = fsub float %953, %957
  %959 = fmul float %945, %958
  %960 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 1
  store float %959, ptr %960, align 4, !tbaa !11
  %961 = load float, ptr %54, align 4, !tbaa !11
  %962 = fneg float %961
  %963 = load ptr, ptr %20, align 8, !tbaa !5
  %964 = load i64, ptr %44, align 8, !tbaa !9
  %965 = load i64, ptr %44, align 8, !tbaa !9
  %966 = load i64, ptr %28, align 8, !tbaa !9
  %967 = mul nsw i64 %965, %966
  %968 = add nsw i64 %964, %967
  %969 = getelementptr inbounds float, ptr %963, i64 %968
  %970 = load float, ptr %969, align 4, !tbaa !11
  %971 = fmul float %962, %970
  store float %971, ptr %38, align 4, !tbaa !11
  %972 = load ptr, ptr %22, align 8, !tbaa !5
  %973 = load i64, ptr %46, align 8, !tbaa !9
  %974 = load i64, ptr %46, align 8, !tbaa !9
  %975 = load i64, ptr %30, align 8, !tbaa !9
  %976 = mul nsw i64 %974, %975
  %977 = add nsw i64 %973, %976
  %978 = getelementptr inbounds float, ptr %972, i64 %977
  %979 = load ptr, ptr %23, align 8, !tbaa !5
  %980 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %981 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %982 = call i32 @slaln2_(ptr noundef @c_true, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %56, ptr noundef @c_b26, ptr noundef %978, ptr noundef %979, ptr noundef @c_b26, ptr noundef @c_b26, ptr noundef %980, ptr noundef @c__2, ptr noundef %38, ptr noundef @c_b30, ptr noundef %981, ptr noundef @c__2, ptr noundef %62, ptr noundef %61, ptr noundef %55)
  %983 = load i64, ptr %55, align 8, !tbaa !9
  %984 = icmp ne i64 %983, 0
  br i1 %984, label %985, label %987

985:                                              ; preds = %920
  %986 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %986, align 8, !tbaa !9
  br label %987

987:                                              ; preds = %985, %920
  %988 = load float, ptr %62, align 4, !tbaa !11
  %989 = fcmp une float %988, 1.000000e+00
  br i1 %989, label %990, label %1014

990:                                              ; preds = %987
  %991 = load ptr, ptr %19, align 8, !tbaa !5
  %992 = load i64, ptr %991, align 8, !tbaa !9
  store i64 %992, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %993

993:                                              ; preds = %1006, %990
  %994 = load i64, ptr %40, align 8, !tbaa !9
  %995 = load i64, ptr %35, align 8, !tbaa !9
  %996 = icmp sle i64 %994, %995
  br i1 %996, label %997, label %1009

997:                                              ; preds = %993
  %998 = load ptr, ptr %18, align 8, !tbaa !5
  %999 = load ptr, ptr %24, align 8, !tbaa !5
  %1000 = load i64, ptr %40, align 8, !tbaa !9
  %1001 = load i64, ptr %32, align 8, !tbaa !9
  %1002 = mul nsw i64 %1000, %1001
  %1003 = add nsw i64 %1002, 1
  %1004 = getelementptr inbounds float, ptr %999, i64 %1003
  %1005 = call i32 @f2c_sscal(ptr noundef %998, ptr noundef %62, ptr noundef %1004, ptr noundef @c__1)
  br label %1006

1006:                                             ; preds = %997
  %1007 = load i64, ptr %40, align 8, !tbaa !9
  %1008 = add nsw i64 %1007, 1
  store i64 %1008, ptr %40, align 8, !tbaa !9
  br label %993, !llvm.loop !16

1009:                                             ; preds = %993
  %1010 = load float, ptr %62, align 4, !tbaa !11
  %1011 = load ptr, ptr %26, align 8, !tbaa !5
  %1012 = load float, ptr %1011, align 4, !tbaa !11
  %1013 = fmul float %1012, %1010
  store float %1013, ptr %1011, align 4, !tbaa !11
  br label %1014

1014:                                             ; preds = %1009, %987
  %1015 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %1016 = load float, ptr %1015, align 16, !tbaa !11
  %1017 = load ptr, ptr %24, align 8, !tbaa !5
  %1018 = load i64, ptr %44, align 8, !tbaa !9
  %1019 = load i64, ptr %46, align 8, !tbaa !9
  %1020 = load i64, ptr %32, align 8, !tbaa !9
  %1021 = mul nsw i64 %1019, %1020
  %1022 = add nsw i64 %1018, %1021
  %1023 = getelementptr inbounds float, ptr %1017, i64 %1022
  store float %1016, ptr %1023, align 4, !tbaa !11
  %1024 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 1
  %1025 = load float, ptr %1024, align 4, !tbaa !11
  %1026 = load ptr, ptr %24, align 8, !tbaa !5
  %1027 = load i64, ptr %44, align 8, !tbaa !9
  %1028 = load i64, ptr %47, align 8, !tbaa !9
  %1029 = load i64, ptr %32, align 8, !tbaa !9
  %1030 = mul nsw i64 %1028, %1029
  %1031 = add nsw i64 %1027, %1030
  %1032 = getelementptr inbounds float, ptr %1026, i64 %1031
  store float %1025, ptr %1032, align 4, !tbaa !11
  br label %1431

1033:                                             ; preds = %802, %798
  %1034 = load i64, ptr %46, align 8, !tbaa !9
  %1035 = load i64, ptr %47, align 8, !tbaa !9
  %1036 = icmp ne i64 %1034, %1035
  br i1 %1036, label %1037, label %1430

1037:                                             ; preds = %1033
  %1038 = load i64, ptr %44, align 8, !tbaa !9
  %1039 = load i64, ptr %45, align 8, !tbaa !9
  %1040 = icmp ne i64 %1038, %1039
  br i1 %1040, label %1041, label %1430

1041:                                             ; preds = %1037
  %1042 = load ptr, ptr %18, align 8, !tbaa !5
  %1043 = load i64, ptr %1042, align 8, !tbaa !9
  %1044 = load i64, ptr %45, align 8, !tbaa !9
  %1045 = sub nsw i64 %1043, %1044
  store i64 %1045, ptr %35, align 8, !tbaa !9
  %1046 = load i64, ptr %45, align 8, !tbaa !9
  %1047 = add nsw i64 %1046, 1
  store i64 %1047, ptr %36, align 8, !tbaa !9
  %1048 = load i64, ptr %45, align 8, !tbaa !9
  %1049 = add nsw i64 %1048, 1
  store i64 %1049, ptr %37, align 8, !tbaa !9
  %1050 = load ptr, ptr %20, align 8, !tbaa !5
  %1051 = load i64, ptr %44, align 8, !tbaa !9
  %1052 = load i64, ptr %36, align 8, !tbaa !9
  %1053 = load ptr, ptr %18, align 8, !tbaa !5
  %1054 = load i64, ptr %1053, align 8, !tbaa !9
  %1055 = icmp sle i64 %1052, %1054
  br i1 %1055, label %1056, label %1058

1056:                                             ; preds = %1041
  %1057 = load i64, ptr %36, align 8, !tbaa !9
  br label %1061

1058:                                             ; preds = %1041
  %1059 = load ptr, ptr %18, align 8, !tbaa !5
  %1060 = load i64, ptr %1059, align 8, !tbaa !9
  br label %1061

1061:                                             ; preds = %1058, %1056
  %1062 = phi i64 [ %1057, %1056 ], [ %1060, %1058 ]
  %1063 = load i64, ptr %28, align 8, !tbaa !9
  %1064 = mul nsw i64 %1062, %1063
  %1065 = add nsw i64 %1051, %1064
  %1066 = getelementptr inbounds float, ptr %1050, i64 %1065
  %1067 = load ptr, ptr %21, align 8, !tbaa !5
  %1068 = load ptr, ptr %24, align 8, !tbaa !5
  %1069 = load i64, ptr %37, align 8, !tbaa !9
  %1070 = load ptr, ptr %18, align 8, !tbaa !5
  %1071 = load i64, ptr %1070, align 8, !tbaa !9
  %1072 = icmp sle i64 %1069, %1071
  br i1 %1072, label %1073, label %1075

1073:                                             ; preds = %1061
  %1074 = load i64, ptr %37, align 8, !tbaa !9
  br label %1078

1075:                                             ; preds = %1061
  %1076 = load ptr, ptr %18, align 8, !tbaa !5
  %1077 = load i64, ptr %1076, align 8, !tbaa !9
  br label %1078

1078:                                             ; preds = %1075, %1073
  %1079 = phi i64 [ %1074, %1073 ], [ %1077, %1075 ]
  %1080 = load i64, ptr %46, align 8, !tbaa !9
  %1081 = load i64, ptr %32, align 8, !tbaa !9
  %1082 = mul nsw i64 %1080, %1081
  %1083 = add nsw i64 %1079, %1082
  %1084 = getelementptr inbounds float, ptr %1068, i64 %1083
  %1085 = call double @f2c_sdot(ptr noundef %35, ptr noundef %1066, ptr noundef %1067, ptr noundef %1084, ptr noundef @c__1)
  %1086 = fptrunc double %1085 to float
  store float %1086, ptr %57, align 4, !tbaa !11
  %1087 = load i64, ptr %46, align 8, !tbaa !9
  %1088 = sub nsw i64 %1087, 1
  store i64 %1088, ptr %35, align 8, !tbaa !9
  %1089 = load ptr, ptr %24, align 8, !tbaa !5
  %1090 = load i64, ptr %44, align 8, !tbaa !9
  %1091 = load i64, ptr %32, align 8, !tbaa !9
  %1092 = add nsw i64 %1090, %1091
  %1093 = getelementptr inbounds float, ptr %1089, i64 %1092
  %1094 = load ptr, ptr %25, align 8, !tbaa !5
  %1095 = load ptr, ptr %22, align 8, !tbaa !5
  %1096 = load i64, ptr %46, align 8, !tbaa !9
  %1097 = load i64, ptr %30, align 8, !tbaa !9
  %1098 = mul nsw i64 %1096, %1097
  %1099 = add nsw i64 %1098, 1
  %1100 = getelementptr inbounds float, ptr %1095, i64 %1099
  %1101 = call double @f2c_sdot(ptr noundef %35, ptr noundef %1093, ptr noundef %1094, ptr noundef %1100, ptr noundef @c__1)
  %1102 = fptrunc double %1101 to float
  store float %1102, ptr %58, align 4, !tbaa !11
  %1103 = load ptr, ptr %24, align 8, !tbaa !5
  %1104 = load i64, ptr %44, align 8, !tbaa !9
  %1105 = load i64, ptr %46, align 8, !tbaa !9
  %1106 = load i64, ptr %32, align 8, !tbaa !9
  %1107 = mul nsw i64 %1105, %1106
  %1108 = add nsw i64 %1104, %1107
  %1109 = getelementptr inbounds float, ptr %1103, i64 %1108
  %1110 = load float, ptr %1109, align 4, !tbaa !11
  %1111 = load float, ptr %57, align 4, !tbaa !11
  %1112 = load float, ptr %54, align 4, !tbaa !11
  %1113 = load float, ptr %58, align 4, !tbaa !11
  %1114 = call float @llvm.fmuladd.f32(float %1112, float %1113, float %1111)
  %1115 = fsub float %1110, %1114
  %1116 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %1115, ptr %1116, align 16, !tbaa !11
  %1117 = load ptr, ptr %18, align 8, !tbaa !5
  %1118 = load i64, ptr %1117, align 8, !tbaa !9
  %1119 = load i64, ptr %45, align 8, !tbaa !9
  %1120 = sub nsw i64 %1118, %1119
  store i64 %1120, ptr %35, align 8, !tbaa !9
  %1121 = load i64, ptr %45, align 8, !tbaa !9
  %1122 = add nsw i64 %1121, 1
  store i64 %1122, ptr %36, align 8, !tbaa !9
  %1123 = load i64, ptr %45, align 8, !tbaa !9
  %1124 = add nsw i64 %1123, 1
  store i64 %1124, ptr %37, align 8, !tbaa !9
  %1125 = load ptr, ptr %20, align 8, !tbaa !5
  %1126 = load i64, ptr %44, align 8, !tbaa !9
  %1127 = load i64, ptr %36, align 8, !tbaa !9
  %1128 = load ptr, ptr %18, align 8, !tbaa !5
  %1129 = load i64, ptr %1128, align 8, !tbaa !9
  %1130 = icmp sle i64 %1127, %1129
  br i1 %1130, label %1131, label %1133

1131:                                             ; preds = %1078
  %1132 = load i64, ptr %36, align 8, !tbaa !9
  br label %1136

1133:                                             ; preds = %1078
  %1134 = load ptr, ptr %18, align 8, !tbaa !5
  %1135 = load i64, ptr %1134, align 8, !tbaa !9
  br label %1136

1136:                                             ; preds = %1133, %1131
  %1137 = phi i64 [ %1132, %1131 ], [ %1135, %1133 ]
  %1138 = load i64, ptr %28, align 8, !tbaa !9
  %1139 = mul nsw i64 %1137, %1138
  %1140 = add nsw i64 %1126, %1139
  %1141 = getelementptr inbounds float, ptr %1125, i64 %1140
  %1142 = load ptr, ptr %21, align 8, !tbaa !5
  %1143 = load ptr, ptr %24, align 8, !tbaa !5
  %1144 = load i64, ptr %37, align 8, !tbaa !9
  %1145 = load ptr, ptr %18, align 8, !tbaa !5
  %1146 = load i64, ptr %1145, align 8, !tbaa !9
  %1147 = icmp sle i64 %1144, %1146
  br i1 %1147, label %1148, label %1150

1148:                                             ; preds = %1136
  %1149 = load i64, ptr %37, align 8, !tbaa !9
  br label %1153

1150:                                             ; preds = %1136
  %1151 = load ptr, ptr %18, align 8, !tbaa !5
  %1152 = load i64, ptr %1151, align 8, !tbaa !9
  br label %1153

1153:                                             ; preds = %1150, %1148
  %1154 = phi i64 [ %1149, %1148 ], [ %1152, %1150 ]
  %1155 = load i64, ptr %47, align 8, !tbaa !9
  %1156 = load i64, ptr %32, align 8, !tbaa !9
  %1157 = mul nsw i64 %1155, %1156
  %1158 = add nsw i64 %1154, %1157
  %1159 = getelementptr inbounds float, ptr %1143, i64 %1158
  %1160 = call double @f2c_sdot(ptr noundef %35, ptr noundef %1141, ptr noundef %1142, ptr noundef %1159, ptr noundef @c__1)
  %1161 = fptrunc double %1160 to float
  store float %1161, ptr %57, align 4, !tbaa !11
  %1162 = load i64, ptr %46, align 8, !tbaa !9
  %1163 = sub nsw i64 %1162, 1
  store i64 %1163, ptr %35, align 8, !tbaa !9
  %1164 = load ptr, ptr %24, align 8, !tbaa !5
  %1165 = load i64, ptr %44, align 8, !tbaa !9
  %1166 = load i64, ptr %32, align 8, !tbaa !9
  %1167 = add nsw i64 %1165, %1166
  %1168 = getelementptr inbounds float, ptr %1164, i64 %1167
  %1169 = load ptr, ptr %25, align 8, !tbaa !5
  %1170 = load ptr, ptr %22, align 8, !tbaa !5
  %1171 = load i64, ptr %47, align 8, !tbaa !9
  %1172 = load i64, ptr %30, align 8, !tbaa !9
  %1173 = mul nsw i64 %1171, %1172
  %1174 = add nsw i64 %1173, 1
  %1175 = getelementptr inbounds float, ptr %1170, i64 %1174
  %1176 = call double @f2c_sdot(ptr noundef %35, ptr noundef %1168, ptr noundef %1169, ptr noundef %1175, ptr noundef @c__1)
  %1177 = fptrunc double %1176 to float
  store float %1177, ptr %58, align 4, !tbaa !11
  %1178 = load ptr, ptr %24, align 8, !tbaa !5
  %1179 = load i64, ptr %44, align 8, !tbaa !9
  %1180 = load i64, ptr %47, align 8, !tbaa !9
  %1181 = load i64, ptr %32, align 8, !tbaa !9
  %1182 = mul nsw i64 %1180, %1181
  %1183 = add nsw i64 %1179, %1182
  %1184 = getelementptr inbounds float, ptr %1178, i64 %1183
  %1185 = load float, ptr %1184, align 4, !tbaa !11
  %1186 = load float, ptr %57, align 4, !tbaa !11
  %1187 = load float, ptr %54, align 4, !tbaa !11
  %1188 = load float, ptr %58, align 4, !tbaa !11
  %1189 = call float @llvm.fmuladd.f32(float %1187, float %1188, float %1186)
  %1190 = fsub float %1185, %1189
  %1191 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 2
  store float %1190, ptr %1191, align 8, !tbaa !11
  %1192 = load ptr, ptr %18, align 8, !tbaa !5
  %1193 = load i64, ptr %1192, align 8, !tbaa !9
  %1194 = load i64, ptr %45, align 8, !tbaa !9
  %1195 = sub nsw i64 %1193, %1194
  store i64 %1195, ptr %35, align 8, !tbaa !9
  %1196 = load i64, ptr %45, align 8, !tbaa !9
  %1197 = add nsw i64 %1196, 1
  store i64 %1197, ptr %36, align 8, !tbaa !9
  %1198 = load i64, ptr %45, align 8, !tbaa !9
  %1199 = add nsw i64 %1198, 1
  store i64 %1199, ptr %37, align 8, !tbaa !9
  %1200 = load ptr, ptr %20, align 8, !tbaa !5
  %1201 = load i64, ptr %45, align 8, !tbaa !9
  %1202 = load i64, ptr %36, align 8, !tbaa !9
  %1203 = load ptr, ptr %18, align 8, !tbaa !5
  %1204 = load i64, ptr %1203, align 8, !tbaa !9
  %1205 = icmp sle i64 %1202, %1204
  br i1 %1205, label %1206, label %1208

1206:                                             ; preds = %1153
  %1207 = load i64, ptr %36, align 8, !tbaa !9
  br label %1211

1208:                                             ; preds = %1153
  %1209 = load ptr, ptr %18, align 8, !tbaa !5
  %1210 = load i64, ptr %1209, align 8, !tbaa !9
  br label %1211

1211:                                             ; preds = %1208, %1206
  %1212 = phi i64 [ %1207, %1206 ], [ %1210, %1208 ]
  %1213 = load i64, ptr %28, align 8, !tbaa !9
  %1214 = mul nsw i64 %1212, %1213
  %1215 = add nsw i64 %1201, %1214
  %1216 = getelementptr inbounds float, ptr %1200, i64 %1215
  %1217 = load ptr, ptr %21, align 8, !tbaa !5
  %1218 = load ptr, ptr %24, align 8, !tbaa !5
  %1219 = load i64, ptr %37, align 8, !tbaa !9
  %1220 = load ptr, ptr %18, align 8, !tbaa !5
  %1221 = load i64, ptr %1220, align 8, !tbaa !9
  %1222 = icmp sle i64 %1219, %1221
  br i1 %1222, label %1223, label %1225

1223:                                             ; preds = %1211
  %1224 = load i64, ptr %37, align 8, !tbaa !9
  br label %1228

1225:                                             ; preds = %1211
  %1226 = load ptr, ptr %18, align 8, !tbaa !5
  %1227 = load i64, ptr %1226, align 8, !tbaa !9
  br label %1228

1228:                                             ; preds = %1225, %1223
  %1229 = phi i64 [ %1224, %1223 ], [ %1227, %1225 ]
  %1230 = load i64, ptr %46, align 8, !tbaa !9
  %1231 = load i64, ptr %32, align 8, !tbaa !9
  %1232 = mul nsw i64 %1230, %1231
  %1233 = add nsw i64 %1229, %1232
  %1234 = getelementptr inbounds float, ptr %1218, i64 %1233
  %1235 = call double @f2c_sdot(ptr noundef %35, ptr noundef %1216, ptr noundef %1217, ptr noundef %1234, ptr noundef @c__1)
  %1236 = fptrunc double %1235 to float
  store float %1236, ptr %57, align 4, !tbaa !11
  %1237 = load i64, ptr %46, align 8, !tbaa !9
  %1238 = sub nsw i64 %1237, 1
  store i64 %1238, ptr %35, align 8, !tbaa !9
  %1239 = load ptr, ptr %24, align 8, !tbaa !5
  %1240 = load i64, ptr %45, align 8, !tbaa !9
  %1241 = load i64, ptr %32, align 8, !tbaa !9
  %1242 = add nsw i64 %1240, %1241
  %1243 = getelementptr inbounds float, ptr %1239, i64 %1242
  %1244 = load ptr, ptr %25, align 8, !tbaa !5
  %1245 = load ptr, ptr %22, align 8, !tbaa !5
  %1246 = load i64, ptr %46, align 8, !tbaa !9
  %1247 = load i64, ptr %30, align 8, !tbaa !9
  %1248 = mul nsw i64 %1246, %1247
  %1249 = add nsw i64 %1248, 1
  %1250 = getelementptr inbounds float, ptr %1245, i64 %1249
  %1251 = call double @f2c_sdot(ptr noundef %35, ptr noundef %1243, ptr noundef %1244, ptr noundef %1250, ptr noundef @c__1)
  %1252 = fptrunc double %1251 to float
  store float %1252, ptr %58, align 4, !tbaa !11
  %1253 = load ptr, ptr %24, align 8, !tbaa !5
  %1254 = load i64, ptr %45, align 8, !tbaa !9
  %1255 = load i64, ptr %46, align 8, !tbaa !9
  %1256 = load i64, ptr %32, align 8, !tbaa !9
  %1257 = mul nsw i64 %1255, %1256
  %1258 = add nsw i64 %1254, %1257
  %1259 = getelementptr inbounds float, ptr %1253, i64 %1258
  %1260 = load float, ptr %1259, align 4, !tbaa !11
  %1261 = load float, ptr %57, align 4, !tbaa !11
  %1262 = load float, ptr %54, align 4, !tbaa !11
  %1263 = load float, ptr %58, align 4, !tbaa !11
  %1264 = call float @llvm.fmuladd.f32(float %1262, float %1263, float %1261)
  %1265 = fsub float %1260, %1264
  %1266 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 1
  store float %1265, ptr %1266, align 4, !tbaa !11
  %1267 = load ptr, ptr %18, align 8, !tbaa !5
  %1268 = load i64, ptr %1267, align 8, !tbaa !9
  %1269 = load i64, ptr %45, align 8, !tbaa !9
  %1270 = sub nsw i64 %1268, %1269
  store i64 %1270, ptr %35, align 8, !tbaa !9
  %1271 = load i64, ptr %45, align 8, !tbaa !9
  %1272 = add nsw i64 %1271, 1
  store i64 %1272, ptr %36, align 8, !tbaa !9
  %1273 = load i64, ptr %45, align 8, !tbaa !9
  %1274 = add nsw i64 %1273, 1
  store i64 %1274, ptr %37, align 8, !tbaa !9
  %1275 = load ptr, ptr %20, align 8, !tbaa !5
  %1276 = load i64, ptr %45, align 8, !tbaa !9
  %1277 = load i64, ptr %36, align 8, !tbaa !9
  %1278 = load ptr, ptr %18, align 8, !tbaa !5
  %1279 = load i64, ptr %1278, align 8, !tbaa !9
  %1280 = icmp sle i64 %1277, %1279
  br i1 %1280, label %1281, label %1283

1281:                                             ; preds = %1228
  %1282 = load i64, ptr %36, align 8, !tbaa !9
  br label %1286

1283:                                             ; preds = %1228
  %1284 = load ptr, ptr %18, align 8, !tbaa !5
  %1285 = load i64, ptr %1284, align 8, !tbaa !9
  br label %1286

1286:                                             ; preds = %1283, %1281
  %1287 = phi i64 [ %1282, %1281 ], [ %1285, %1283 ]
  %1288 = load i64, ptr %28, align 8, !tbaa !9
  %1289 = mul nsw i64 %1287, %1288
  %1290 = add nsw i64 %1276, %1289
  %1291 = getelementptr inbounds float, ptr %1275, i64 %1290
  %1292 = load ptr, ptr %21, align 8, !tbaa !5
  %1293 = load ptr, ptr %24, align 8, !tbaa !5
  %1294 = load i64, ptr %37, align 8, !tbaa !9
  %1295 = load ptr, ptr %18, align 8, !tbaa !5
  %1296 = load i64, ptr %1295, align 8, !tbaa !9
  %1297 = icmp sle i64 %1294, %1296
  br i1 %1297, label %1298, label %1300

1298:                                             ; preds = %1286
  %1299 = load i64, ptr %37, align 8, !tbaa !9
  br label %1303

1300:                                             ; preds = %1286
  %1301 = load ptr, ptr %18, align 8, !tbaa !5
  %1302 = load i64, ptr %1301, align 8, !tbaa !9
  br label %1303

1303:                                             ; preds = %1300, %1298
  %1304 = phi i64 [ %1299, %1298 ], [ %1302, %1300 ]
  %1305 = load i64, ptr %47, align 8, !tbaa !9
  %1306 = load i64, ptr %32, align 8, !tbaa !9
  %1307 = mul nsw i64 %1305, %1306
  %1308 = add nsw i64 %1304, %1307
  %1309 = getelementptr inbounds float, ptr %1293, i64 %1308
  %1310 = call double @f2c_sdot(ptr noundef %35, ptr noundef %1291, ptr noundef %1292, ptr noundef %1309, ptr noundef @c__1)
  %1311 = fptrunc double %1310 to float
  store float %1311, ptr %57, align 4, !tbaa !11
  %1312 = load i64, ptr %46, align 8, !tbaa !9
  %1313 = sub nsw i64 %1312, 1
  store i64 %1313, ptr %35, align 8, !tbaa !9
  %1314 = load ptr, ptr %24, align 8, !tbaa !5
  %1315 = load i64, ptr %45, align 8, !tbaa !9
  %1316 = load i64, ptr %32, align 8, !tbaa !9
  %1317 = add nsw i64 %1315, %1316
  %1318 = getelementptr inbounds float, ptr %1314, i64 %1317
  %1319 = load ptr, ptr %25, align 8, !tbaa !5
  %1320 = load ptr, ptr %22, align 8, !tbaa !5
  %1321 = load i64, ptr %47, align 8, !tbaa !9
  %1322 = load i64, ptr %30, align 8, !tbaa !9
  %1323 = mul nsw i64 %1321, %1322
  %1324 = add nsw i64 %1323, 1
  %1325 = getelementptr inbounds float, ptr %1320, i64 %1324
  %1326 = call double @f2c_sdot(ptr noundef %35, ptr noundef %1318, ptr noundef %1319, ptr noundef %1325, ptr noundef @c__1)
  %1327 = fptrunc double %1326 to float
  store float %1327, ptr %58, align 4, !tbaa !11
  %1328 = load ptr, ptr %24, align 8, !tbaa !5
  %1329 = load i64, ptr %45, align 8, !tbaa !9
  %1330 = load i64, ptr %47, align 8, !tbaa !9
  %1331 = load i64, ptr %32, align 8, !tbaa !9
  %1332 = mul nsw i64 %1330, %1331
  %1333 = add nsw i64 %1329, %1332
  %1334 = getelementptr inbounds float, ptr %1328, i64 %1333
  %1335 = load float, ptr %1334, align 4, !tbaa !11
  %1336 = load float, ptr %57, align 4, !tbaa !11
  %1337 = load float, ptr %54, align 4, !tbaa !11
  %1338 = load float, ptr %58, align 4, !tbaa !11
  %1339 = call float @llvm.fmuladd.f32(float %1337, float %1338, float %1336)
  %1340 = fsub float %1335, %1339
  %1341 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 3
  store float %1340, ptr %1341, align 4, !tbaa !11
  %1342 = load ptr, ptr %17, align 8, !tbaa !5
  %1343 = load ptr, ptr %20, align 8, !tbaa !5
  %1344 = load i64, ptr %44, align 8, !tbaa !9
  %1345 = load i64, ptr %44, align 8, !tbaa !9
  %1346 = load i64, ptr %28, align 8, !tbaa !9
  %1347 = mul nsw i64 %1345, %1346
  %1348 = add nsw i64 %1344, %1347
  %1349 = getelementptr inbounds float, ptr %1343, i64 %1348
  %1350 = load ptr, ptr %21, align 8, !tbaa !5
  %1351 = load ptr, ptr %22, align 8, !tbaa !5
  %1352 = load i64, ptr %46, align 8, !tbaa !9
  %1353 = load i64, ptr %46, align 8, !tbaa !9
  %1354 = load i64, ptr %30, align 8, !tbaa !9
  %1355 = mul nsw i64 %1353, %1354
  %1356 = add nsw i64 %1352, %1355
  %1357 = getelementptr inbounds float, ptr %1351, i64 %1356
  %1358 = load ptr, ptr %23, align 8, !tbaa !5
  %1359 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %1360 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %1361 = call i32 @slasy2_(ptr noundef @c_false, ptr noundef @c_false, ptr noundef %1342, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %1349, ptr noundef %1350, ptr noundef %1357, ptr noundef %1358, ptr noundef %1359, ptr noundef @c__2, ptr noundef %62, ptr noundef %1360, ptr noundef @c__2, ptr noundef %61, ptr noundef %55)
  %1362 = load i64, ptr %55, align 8, !tbaa !9
  %1363 = icmp ne i64 %1362, 0
  br i1 %1363, label %1364, label %1366

1364:                                             ; preds = %1303
  %1365 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %1365, align 8, !tbaa !9
  br label %1366

1366:                                             ; preds = %1364, %1303
  %1367 = load float, ptr %62, align 4, !tbaa !11
  %1368 = fcmp une float %1367, 1.000000e+00
  br i1 %1368, label %1369, label %1393

1369:                                             ; preds = %1366
  %1370 = load ptr, ptr %19, align 8, !tbaa !5
  %1371 = load i64, ptr %1370, align 8, !tbaa !9
  store i64 %1371, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %1372

1372:                                             ; preds = %1385, %1369
  %1373 = load i64, ptr %40, align 8, !tbaa !9
  %1374 = load i64, ptr %35, align 8, !tbaa !9
  %1375 = icmp sle i64 %1373, %1374
  br i1 %1375, label %1376, label %1388

1376:                                             ; preds = %1372
  %1377 = load ptr, ptr %18, align 8, !tbaa !5
  %1378 = load ptr, ptr %24, align 8, !tbaa !5
  %1379 = load i64, ptr %40, align 8, !tbaa !9
  %1380 = load i64, ptr %32, align 8, !tbaa !9
  %1381 = mul nsw i64 %1379, %1380
  %1382 = add nsw i64 %1381, 1
  %1383 = getelementptr inbounds float, ptr %1378, i64 %1382
  %1384 = call i32 @f2c_sscal(ptr noundef %1377, ptr noundef %62, ptr noundef %1383, ptr noundef @c__1)
  br label %1385

1385:                                             ; preds = %1376
  %1386 = load i64, ptr %40, align 8, !tbaa !9
  %1387 = add nsw i64 %1386, 1
  store i64 %1387, ptr %40, align 8, !tbaa !9
  br label %1372, !llvm.loop !17

1388:                                             ; preds = %1372
  %1389 = load float, ptr %62, align 4, !tbaa !11
  %1390 = load ptr, ptr %26, align 8, !tbaa !5
  %1391 = load float, ptr %1390, align 4, !tbaa !11
  %1392 = fmul float %1391, %1389
  store float %1392, ptr %1390, align 4, !tbaa !11
  br label %1393

1393:                                             ; preds = %1388, %1366
  %1394 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %1395 = load float, ptr %1394, align 16, !tbaa !11
  %1396 = load ptr, ptr %24, align 8, !tbaa !5
  %1397 = load i64, ptr %44, align 8, !tbaa !9
  %1398 = load i64, ptr %46, align 8, !tbaa !9
  %1399 = load i64, ptr %32, align 8, !tbaa !9
  %1400 = mul nsw i64 %1398, %1399
  %1401 = add nsw i64 %1397, %1400
  %1402 = getelementptr inbounds float, ptr %1396, i64 %1401
  store float %1395, ptr %1402, align 4, !tbaa !11
  %1403 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 2
  %1404 = load float, ptr %1403, align 8, !tbaa !11
  %1405 = load ptr, ptr %24, align 8, !tbaa !5
  %1406 = load i64, ptr %44, align 8, !tbaa !9
  %1407 = load i64, ptr %47, align 8, !tbaa !9
  %1408 = load i64, ptr %32, align 8, !tbaa !9
  %1409 = mul nsw i64 %1407, %1408
  %1410 = add nsw i64 %1406, %1409
  %1411 = getelementptr inbounds float, ptr %1405, i64 %1410
  store float %1404, ptr %1411, align 4, !tbaa !11
  %1412 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 1
  %1413 = load float, ptr %1412, align 4, !tbaa !11
  %1414 = load ptr, ptr %24, align 8, !tbaa !5
  %1415 = load i64, ptr %45, align 8, !tbaa !9
  %1416 = load i64, ptr %46, align 8, !tbaa !9
  %1417 = load i64, ptr %32, align 8, !tbaa !9
  %1418 = mul nsw i64 %1416, %1417
  %1419 = add nsw i64 %1415, %1418
  %1420 = getelementptr inbounds float, ptr %1414, i64 %1419
  store float %1413, ptr %1420, align 4, !tbaa !11
  %1421 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 3
  %1422 = load float, ptr %1421, align 4, !tbaa !11
  %1423 = load ptr, ptr %24, align 8, !tbaa !5
  %1424 = load i64, ptr %45, align 8, !tbaa !9
  %1425 = load i64, ptr %47, align 8, !tbaa !9
  %1426 = load i64, ptr %32, align 8, !tbaa !9
  %1427 = mul nsw i64 %1425, %1426
  %1428 = add nsw i64 %1424, %1427
  %1429 = getelementptr inbounds float, ptr %1423, i64 %1428
  store float %1422, ptr %1429, align 4, !tbaa !11
  br label %1430

1430:                                             ; preds = %1393, %1037, %1033
  br label %1431

1431:                                             ; preds = %1430, %1014
  br label %1432

1432:                                             ; preds = %1431, %779
  br label %1433

1433:                                             ; preds = %1432, %557
  br label %1434

1434:                                             ; preds = %1433, %343
  br label %1435

1435:                                             ; preds = %1434
  %1436 = load i64, ptr %41, align 8, !tbaa !9
  %1437 = add nsw i64 %1436, -1
  store i64 %1437, ptr %41, align 8, !tbaa !9
  br label %336, !llvm.loop !18

1438:                                             ; preds = %336
  br label %1439

1439:                                             ; preds = %1438, %299
  br label %1440

1440:                                             ; preds = %1439
  %1441 = load i64, ptr %42, align 8, !tbaa !9
  %1442 = add nsw i64 %1441, 1
  store i64 %1442, ptr %42, align 8, !tbaa !9
  br label %291, !llvm.loop !19

1443:                                             ; preds = %291
  br label %4951

1444:                                             ; preds = %285, %276
  %1445 = load i64, ptr %64, align 8, !tbaa !9
  %1446 = icmp ne i64 %1445, 0
  br i1 %1446, label %2346, label %1447

1447:                                             ; preds = %1444
  %1448 = load i64, ptr %65, align 8, !tbaa !9
  %1449 = icmp ne i64 %1448, 0
  br i1 %1449, label %1450, label %2346

1450:                                             ; preds = %1447
  store i64 1, ptr %60, align 8, !tbaa !9
  %1451 = load ptr, ptr %19, align 8, !tbaa !5
  %1452 = load i64, ptr %1451, align 8, !tbaa !9
  store i64 %1452, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %42, align 8, !tbaa !9
  br label %1453

1453:                                             ; preds = %2342, %1450
  %1454 = load i64, ptr %42, align 8, !tbaa !9
  %1455 = load i64, ptr %34, align 8, !tbaa !9
  %1456 = icmp sle i64 %1454, %1455
  br i1 %1456, label %1457, label %2345

1457:                                             ; preds = %1453
  %1458 = load i64, ptr %42, align 8, !tbaa !9
  %1459 = load i64, ptr %60, align 8, !tbaa !9
  %1460 = icmp slt i64 %1458, %1459
  br i1 %1460, label %1461, label %1462

1461:                                             ; preds = %1457
  br label %2341

1462:                                             ; preds = %1457
  %1463 = load i64, ptr %42, align 8, !tbaa !9
  %1464 = load ptr, ptr %19, align 8, !tbaa !5
  %1465 = load i64, ptr %1464, align 8, !tbaa !9
  %1466 = icmp eq i64 %1463, %1465
  br i1 %1466, label %1467, label %1470

1467:                                             ; preds = %1462
  %1468 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %1468, ptr %46, align 8, !tbaa !9
  %1469 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %1469, ptr %47, align 8, !tbaa !9
  br label %1493

1470:                                             ; preds = %1462
  %1471 = load ptr, ptr %22, align 8, !tbaa !5
  %1472 = load i64, ptr %42, align 8, !tbaa !9
  %1473 = add nsw i64 %1472, 1
  %1474 = load i64, ptr %42, align 8, !tbaa !9
  %1475 = load i64, ptr %30, align 8, !tbaa !9
  %1476 = mul nsw i64 %1474, %1475
  %1477 = add nsw i64 %1473, %1476
  %1478 = getelementptr inbounds float, ptr %1471, i64 %1477
  %1479 = load float, ptr %1478, align 4, !tbaa !11
  %1480 = fcmp une float %1479, 0.000000e+00
  br i1 %1480, label %1481, label %1487

1481:                                             ; preds = %1470
  %1482 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %1482, ptr %46, align 8, !tbaa !9
  %1483 = load i64, ptr %42, align 8, !tbaa !9
  %1484 = add nsw i64 %1483, 1
  store i64 %1484, ptr %47, align 8, !tbaa !9
  %1485 = load i64, ptr %42, align 8, !tbaa !9
  %1486 = add nsw i64 %1485, 2
  store i64 %1486, ptr %60, align 8, !tbaa !9
  br label %1492

1487:                                             ; preds = %1470
  %1488 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %1488, ptr %46, align 8, !tbaa !9
  %1489 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %1489, ptr %47, align 8, !tbaa !9
  %1490 = load i64, ptr %42, align 8, !tbaa !9
  %1491 = add nsw i64 %1490, 1
  store i64 %1491, ptr %60, align 8, !tbaa !9
  br label %1492

1492:                                             ; preds = %1487, %1481
  br label %1493

1493:                                             ; preds = %1492, %1467
  store i64 1, ptr %59, align 8, !tbaa !9
  %1494 = load ptr, ptr %18, align 8, !tbaa !5
  %1495 = load i64, ptr %1494, align 8, !tbaa !9
  store i64 %1495, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %41, align 8, !tbaa !9
  br label %1496

1496:                                             ; preds = %2337, %1493
  %1497 = load i64, ptr %41, align 8, !tbaa !9
  %1498 = load i64, ptr %35, align 8, !tbaa !9
  %1499 = icmp sle i64 %1497, %1498
  br i1 %1499, label %1500, label %2340

1500:                                             ; preds = %1496
  %1501 = load i64, ptr %41, align 8, !tbaa !9
  %1502 = load i64, ptr %59, align 8, !tbaa !9
  %1503 = icmp slt i64 %1501, %1502
  br i1 %1503, label %1504, label %1505

1504:                                             ; preds = %1500
  br label %2336

1505:                                             ; preds = %1500
  %1506 = load i64, ptr %41, align 8, !tbaa !9
  %1507 = load ptr, ptr %18, align 8, !tbaa !5
  %1508 = load i64, ptr %1507, align 8, !tbaa !9
  %1509 = icmp eq i64 %1506, %1508
  br i1 %1509, label %1510, label %1513

1510:                                             ; preds = %1505
  %1511 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %1511, ptr %44, align 8, !tbaa !9
  %1512 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %1512, ptr %45, align 8, !tbaa !9
  br label %1536

1513:                                             ; preds = %1505
  %1514 = load ptr, ptr %20, align 8, !tbaa !5
  %1515 = load i64, ptr %41, align 8, !tbaa !9
  %1516 = add nsw i64 %1515, 1
  %1517 = load i64, ptr %41, align 8, !tbaa !9
  %1518 = load i64, ptr %28, align 8, !tbaa !9
  %1519 = mul nsw i64 %1517, %1518
  %1520 = add nsw i64 %1516, %1519
  %1521 = getelementptr inbounds float, ptr %1514, i64 %1520
  %1522 = load float, ptr %1521, align 4, !tbaa !11
  %1523 = fcmp une float %1522, 0.000000e+00
  br i1 %1523, label %1524, label %1530

1524:                                             ; preds = %1513
  %1525 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %1525, ptr %44, align 8, !tbaa !9
  %1526 = load i64, ptr %41, align 8, !tbaa !9
  %1527 = add nsw i64 %1526, 1
  store i64 %1527, ptr %45, align 8, !tbaa !9
  %1528 = load i64, ptr %41, align 8, !tbaa !9
  %1529 = add nsw i64 %1528, 2
  store i64 %1529, ptr %59, align 8, !tbaa !9
  br label %1535

1530:                                             ; preds = %1513
  %1531 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %1531, ptr %44, align 8, !tbaa !9
  %1532 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %1532, ptr %45, align 8, !tbaa !9
  %1533 = load i64, ptr %41, align 8, !tbaa !9
  %1534 = add nsw i64 %1533, 1
  store i64 %1534, ptr %59, align 8, !tbaa !9
  br label %1535

1535:                                             ; preds = %1530, %1524
  br label %1536

1536:                                             ; preds = %1535, %1510
  %1537 = load i64, ptr %46, align 8, !tbaa !9
  %1538 = load i64, ptr %47, align 8, !tbaa !9
  %1539 = icmp eq i64 %1537, %1538
  br i1 %1539, label %1540, label %1701

1540:                                             ; preds = %1536
  %1541 = load i64, ptr %44, align 8, !tbaa !9
  %1542 = load i64, ptr %45, align 8, !tbaa !9
  %1543 = icmp eq i64 %1541, %1542
  br i1 %1543, label %1544, label %1701

1544:                                             ; preds = %1540
  %1545 = load i64, ptr %44, align 8, !tbaa !9
  %1546 = sub nsw i64 %1545, 1
  store i64 %1546, ptr %36, align 8, !tbaa !9
  %1547 = load ptr, ptr %20, align 8, !tbaa !5
  %1548 = load i64, ptr %44, align 8, !tbaa !9
  %1549 = load i64, ptr %28, align 8, !tbaa !9
  %1550 = mul nsw i64 %1548, %1549
  %1551 = add nsw i64 %1550, 1
  %1552 = getelementptr inbounds float, ptr %1547, i64 %1551
  %1553 = load ptr, ptr %24, align 8, !tbaa !5
  %1554 = load i64, ptr %46, align 8, !tbaa !9
  %1555 = load i64, ptr %32, align 8, !tbaa !9
  %1556 = mul nsw i64 %1554, %1555
  %1557 = add nsw i64 %1556, 1
  %1558 = getelementptr inbounds float, ptr %1553, i64 %1557
  %1559 = call double @f2c_sdot(ptr noundef %36, ptr noundef %1552, ptr noundef @c__1, ptr noundef %1558, ptr noundef @c__1)
  %1560 = fptrunc double %1559 to float
  store float %1560, ptr %57, align 4, !tbaa !11
  %1561 = load i64, ptr %46, align 8, !tbaa !9
  %1562 = sub nsw i64 %1561, 1
  store i64 %1562, ptr %36, align 8, !tbaa !9
  %1563 = load ptr, ptr %24, align 8, !tbaa !5
  %1564 = load i64, ptr %44, align 8, !tbaa !9
  %1565 = load i64, ptr %32, align 8, !tbaa !9
  %1566 = add nsw i64 %1564, %1565
  %1567 = getelementptr inbounds float, ptr %1563, i64 %1566
  %1568 = load ptr, ptr %25, align 8, !tbaa !5
  %1569 = load ptr, ptr %22, align 8, !tbaa !5
  %1570 = load i64, ptr %46, align 8, !tbaa !9
  %1571 = load i64, ptr %30, align 8, !tbaa !9
  %1572 = mul nsw i64 %1570, %1571
  %1573 = add nsw i64 %1572, 1
  %1574 = getelementptr inbounds float, ptr %1569, i64 %1573
  %1575 = call double @f2c_sdot(ptr noundef %36, ptr noundef %1567, ptr noundef %1568, ptr noundef %1574, ptr noundef @c__1)
  %1576 = fptrunc double %1575 to float
  store float %1576, ptr %58, align 4, !tbaa !11
  %1577 = load ptr, ptr %24, align 8, !tbaa !5
  %1578 = load i64, ptr %44, align 8, !tbaa !9
  %1579 = load i64, ptr %46, align 8, !tbaa !9
  %1580 = load i64, ptr %32, align 8, !tbaa !9
  %1581 = mul nsw i64 %1579, %1580
  %1582 = add nsw i64 %1578, %1581
  %1583 = getelementptr inbounds float, ptr %1577, i64 %1582
  %1584 = load float, ptr %1583, align 4, !tbaa !11
  %1585 = load float, ptr %57, align 4, !tbaa !11
  %1586 = load float, ptr %54, align 4, !tbaa !11
  %1587 = load float, ptr %58, align 4, !tbaa !11
  %1588 = call float @llvm.fmuladd.f32(float %1586, float %1587, float %1585)
  %1589 = fsub float %1584, %1588
  %1590 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %1589, ptr %1590, align 16, !tbaa !11
  store float 1.000000e+00, ptr %62, align 4, !tbaa !11
  %1591 = load ptr, ptr %20, align 8, !tbaa !5
  %1592 = load i64, ptr %44, align 8, !tbaa !9
  %1593 = load i64, ptr %44, align 8, !tbaa !9
  %1594 = load i64, ptr %28, align 8, !tbaa !9
  %1595 = mul nsw i64 %1593, %1594
  %1596 = add nsw i64 %1592, %1595
  %1597 = getelementptr inbounds float, ptr %1591, i64 %1596
  %1598 = load float, ptr %1597, align 4, !tbaa !11
  %1599 = load float, ptr %54, align 4, !tbaa !11
  %1600 = load ptr, ptr %22, align 8, !tbaa !5
  %1601 = load i64, ptr %46, align 8, !tbaa !9
  %1602 = load i64, ptr %46, align 8, !tbaa !9
  %1603 = load i64, ptr %30, align 8, !tbaa !9
  %1604 = mul nsw i64 %1602, %1603
  %1605 = add nsw i64 %1601, %1604
  %1606 = getelementptr inbounds float, ptr %1600, i64 %1605
  %1607 = load float, ptr %1606, align 4, !tbaa !11
  %1608 = call float @llvm.fmuladd.f32(float %1599, float %1607, float %1598)
  store float %1608, ptr %48, align 4, !tbaa !11
  %1609 = load float, ptr %48, align 4, !tbaa !11
  %1610 = fcmp oge float %1609, 0.000000e+00
  br i1 %1610, label %1611, label %1613

1611:                                             ; preds = %1544
  %1612 = load float, ptr %48, align 4, !tbaa !11
  br label %1616

1613:                                             ; preds = %1544
  %1614 = load float, ptr %48, align 4, !tbaa !11
  %1615 = fneg float %1614
  br label %1616

1616:                                             ; preds = %1613, %1611
  %1617 = phi float [ %1612, %1611 ], [ %1615, %1613 ]
  %1618 = fpext float %1617 to double
  %1619 = fptrunc double %1618 to float
  store float %1619, ptr %50, align 4, !tbaa !11
  %1620 = load float, ptr %50, align 4, !tbaa !11
  %1621 = load float, ptr %56, align 4, !tbaa !11
  %1622 = fcmp ole float %1620, %1621
  br i1 %1622, label %1623, label %1627

1623:                                             ; preds = %1616
  %1624 = load float, ptr %56, align 4, !tbaa !11
  store float %1624, ptr %48, align 4, !tbaa !11
  %1625 = load float, ptr %56, align 4, !tbaa !11
  store float %1625, ptr %50, align 4, !tbaa !11
  %1626 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %1626, align 8, !tbaa !9
  br label %1627

1627:                                             ; preds = %1623, %1616
  %1628 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %1629 = load float, ptr %1628, align 16, !tbaa !11
  %1630 = fcmp oge float %1629, 0.000000e+00
  br i1 %1630, label %1631, label %1634

1631:                                             ; preds = %1627
  %1632 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %1633 = load float, ptr %1632, align 16, !tbaa !11
  br label %1638

1634:                                             ; preds = %1627
  %1635 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %1636 = load float, ptr %1635, align 16, !tbaa !11
  %1637 = fneg float %1636
  br label %1638

1638:                                             ; preds = %1634, %1631
  %1639 = phi float [ %1633, %1631 ], [ %1637, %1634 ]
  %1640 = fpext float %1639 to double
  %1641 = fptrunc double %1640 to float
  store float %1641, ptr %49, align 4, !tbaa !11
  %1642 = load float, ptr %50, align 4, !tbaa !11
  %1643 = fcmp olt float %1642, 1.000000e+00
  br i1 %1643, label %1644, label %1657

1644:                                             ; preds = %1638
  %1645 = load float, ptr %49, align 4, !tbaa !11
  %1646 = fcmp ogt float %1645, 1.000000e+00
  br i1 %1646, label %1647, label %1657

1647:                                             ; preds = %1644
  %1648 = load float, ptr %49, align 4, !tbaa !11
  %1649 = load float, ptr %63, align 4, !tbaa !11
  %1650 = load float, ptr %50, align 4, !tbaa !11
  %1651 = fmul float %1649, %1650
  %1652 = fcmp ogt float %1648, %1651
  br i1 %1652, label %1653, label %1656

1653:                                             ; preds = %1647
  %1654 = load float, ptr %49, align 4, !tbaa !11
  %1655 = fdiv float 1.000000e+00, %1654
  store float %1655, ptr %62, align 4, !tbaa !11
  br label %1656

1656:                                             ; preds = %1653, %1647
  br label %1657

1657:                                             ; preds = %1656, %1644, %1638
  %1658 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %1659 = load float, ptr %1658, align 16, !tbaa !11
  %1660 = load float, ptr %62, align 4, !tbaa !11
  %1661 = fmul float %1659, %1660
  %1662 = load float, ptr %48, align 4, !tbaa !11
  %1663 = fdiv float %1661, %1662
  %1664 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  store float %1663, ptr %1664, align 16, !tbaa !11
  %1665 = load float, ptr %62, align 4, !tbaa !11
  %1666 = fcmp une float %1665, 1.000000e+00
  br i1 %1666, label %1667, label %1691

1667:                                             ; preds = %1657
  %1668 = load ptr, ptr %19, align 8, !tbaa !5
  %1669 = load i64, ptr %1668, align 8, !tbaa !9
  store i64 %1669, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %1670

1670:                                             ; preds = %1683, %1667
  %1671 = load i64, ptr %40, align 8, !tbaa !9
  %1672 = load i64, ptr %36, align 8, !tbaa !9
  %1673 = icmp sle i64 %1671, %1672
  br i1 %1673, label %1674, label %1686

1674:                                             ; preds = %1670
  %1675 = load ptr, ptr %18, align 8, !tbaa !5
  %1676 = load ptr, ptr %24, align 8, !tbaa !5
  %1677 = load i64, ptr %40, align 8, !tbaa !9
  %1678 = load i64, ptr %32, align 8, !tbaa !9
  %1679 = mul nsw i64 %1677, %1678
  %1680 = add nsw i64 %1679, 1
  %1681 = getelementptr inbounds float, ptr %1676, i64 %1680
  %1682 = call i32 @f2c_sscal(ptr noundef %1675, ptr noundef %62, ptr noundef %1681, ptr noundef @c__1)
  br label %1683

1683:                                             ; preds = %1674
  %1684 = load i64, ptr %40, align 8, !tbaa !9
  %1685 = add nsw i64 %1684, 1
  store i64 %1685, ptr %40, align 8, !tbaa !9
  br label %1670, !llvm.loop !20

1686:                                             ; preds = %1670
  %1687 = load float, ptr %62, align 4, !tbaa !11
  %1688 = load ptr, ptr %26, align 8, !tbaa !5
  %1689 = load float, ptr %1688, align 4, !tbaa !11
  %1690 = fmul float %1689, %1687
  store float %1690, ptr %1688, align 4, !tbaa !11
  br label %1691

1691:                                             ; preds = %1686, %1657
  %1692 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %1693 = load float, ptr %1692, align 16, !tbaa !11
  %1694 = load ptr, ptr %24, align 8, !tbaa !5
  %1695 = load i64, ptr %44, align 8, !tbaa !9
  %1696 = load i64, ptr %46, align 8, !tbaa !9
  %1697 = load i64, ptr %32, align 8, !tbaa !9
  %1698 = mul nsw i64 %1696, %1697
  %1699 = add nsw i64 %1695, %1698
  %1700 = getelementptr inbounds float, ptr %1694, i64 %1699
  store float %1693, ptr %1700, align 4, !tbaa !11
  br label %2335

1701:                                             ; preds = %1540, %1536
  %1702 = load i64, ptr %46, align 8, !tbaa !9
  %1703 = load i64, ptr %47, align 8, !tbaa !9
  %1704 = icmp eq i64 %1702, %1703
  br i1 %1704, label %1705, label %1874

1705:                                             ; preds = %1701
  %1706 = load i64, ptr %44, align 8, !tbaa !9
  %1707 = load i64, ptr %45, align 8, !tbaa !9
  %1708 = icmp ne i64 %1706, %1707
  br i1 %1708, label %1709, label %1874

1709:                                             ; preds = %1705
  %1710 = load i64, ptr %44, align 8, !tbaa !9
  %1711 = sub nsw i64 %1710, 1
  store i64 %1711, ptr %36, align 8, !tbaa !9
  %1712 = load ptr, ptr %20, align 8, !tbaa !5
  %1713 = load i64, ptr %44, align 8, !tbaa !9
  %1714 = load i64, ptr %28, align 8, !tbaa !9
  %1715 = mul nsw i64 %1713, %1714
  %1716 = add nsw i64 %1715, 1
  %1717 = getelementptr inbounds float, ptr %1712, i64 %1716
  %1718 = load ptr, ptr %24, align 8, !tbaa !5
  %1719 = load i64, ptr %46, align 8, !tbaa !9
  %1720 = load i64, ptr %32, align 8, !tbaa !9
  %1721 = mul nsw i64 %1719, %1720
  %1722 = add nsw i64 %1721, 1
  %1723 = getelementptr inbounds float, ptr %1718, i64 %1722
  %1724 = call double @f2c_sdot(ptr noundef %36, ptr noundef %1717, ptr noundef @c__1, ptr noundef %1723, ptr noundef @c__1)
  %1725 = fptrunc double %1724 to float
  store float %1725, ptr %57, align 4, !tbaa !11
  %1726 = load i64, ptr %46, align 8, !tbaa !9
  %1727 = sub nsw i64 %1726, 1
  store i64 %1727, ptr %36, align 8, !tbaa !9
  %1728 = load ptr, ptr %24, align 8, !tbaa !5
  %1729 = load i64, ptr %44, align 8, !tbaa !9
  %1730 = load i64, ptr %32, align 8, !tbaa !9
  %1731 = add nsw i64 %1729, %1730
  %1732 = getelementptr inbounds float, ptr %1728, i64 %1731
  %1733 = load ptr, ptr %25, align 8, !tbaa !5
  %1734 = load ptr, ptr %22, align 8, !tbaa !5
  %1735 = load i64, ptr %46, align 8, !tbaa !9
  %1736 = load i64, ptr %30, align 8, !tbaa !9
  %1737 = mul nsw i64 %1735, %1736
  %1738 = add nsw i64 %1737, 1
  %1739 = getelementptr inbounds float, ptr %1734, i64 %1738
  %1740 = call double @f2c_sdot(ptr noundef %36, ptr noundef %1732, ptr noundef %1733, ptr noundef %1739, ptr noundef @c__1)
  %1741 = fptrunc double %1740 to float
  store float %1741, ptr %58, align 4, !tbaa !11
  %1742 = load ptr, ptr %24, align 8, !tbaa !5
  %1743 = load i64, ptr %44, align 8, !tbaa !9
  %1744 = load i64, ptr %46, align 8, !tbaa !9
  %1745 = load i64, ptr %32, align 8, !tbaa !9
  %1746 = mul nsw i64 %1744, %1745
  %1747 = add nsw i64 %1743, %1746
  %1748 = getelementptr inbounds float, ptr %1742, i64 %1747
  %1749 = load float, ptr %1748, align 4, !tbaa !11
  %1750 = load float, ptr %57, align 4, !tbaa !11
  %1751 = load float, ptr %54, align 4, !tbaa !11
  %1752 = load float, ptr %58, align 4, !tbaa !11
  %1753 = call float @llvm.fmuladd.f32(float %1751, float %1752, float %1750)
  %1754 = fsub float %1749, %1753
  %1755 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %1754, ptr %1755, align 16, !tbaa !11
  %1756 = load i64, ptr %44, align 8, !tbaa !9
  %1757 = sub nsw i64 %1756, 1
  store i64 %1757, ptr %36, align 8, !tbaa !9
  %1758 = load ptr, ptr %20, align 8, !tbaa !5
  %1759 = load i64, ptr %45, align 8, !tbaa !9
  %1760 = load i64, ptr %28, align 8, !tbaa !9
  %1761 = mul nsw i64 %1759, %1760
  %1762 = add nsw i64 %1761, 1
  %1763 = getelementptr inbounds float, ptr %1758, i64 %1762
  %1764 = load ptr, ptr %24, align 8, !tbaa !5
  %1765 = load i64, ptr %46, align 8, !tbaa !9
  %1766 = load i64, ptr %32, align 8, !tbaa !9
  %1767 = mul nsw i64 %1765, %1766
  %1768 = add nsw i64 %1767, 1
  %1769 = getelementptr inbounds float, ptr %1764, i64 %1768
  %1770 = call double @f2c_sdot(ptr noundef %36, ptr noundef %1763, ptr noundef @c__1, ptr noundef %1769, ptr noundef @c__1)
  %1771 = fptrunc double %1770 to float
  store float %1771, ptr %57, align 4, !tbaa !11
  %1772 = load i64, ptr %46, align 8, !tbaa !9
  %1773 = sub nsw i64 %1772, 1
  store i64 %1773, ptr %36, align 8, !tbaa !9
  %1774 = load ptr, ptr %24, align 8, !tbaa !5
  %1775 = load i64, ptr %45, align 8, !tbaa !9
  %1776 = load i64, ptr %32, align 8, !tbaa !9
  %1777 = add nsw i64 %1775, %1776
  %1778 = getelementptr inbounds float, ptr %1774, i64 %1777
  %1779 = load ptr, ptr %25, align 8, !tbaa !5
  %1780 = load ptr, ptr %22, align 8, !tbaa !5
  %1781 = load i64, ptr %46, align 8, !tbaa !9
  %1782 = load i64, ptr %30, align 8, !tbaa !9
  %1783 = mul nsw i64 %1781, %1782
  %1784 = add nsw i64 %1783, 1
  %1785 = getelementptr inbounds float, ptr %1780, i64 %1784
  %1786 = call double @f2c_sdot(ptr noundef %36, ptr noundef %1778, ptr noundef %1779, ptr noundef %1785, ptr noundef @c__1)
  %1787 = fptrunc double %1786 to float
  store float %1787, ptr %58, align 4, !tbaa !11
  %1788 = load ptr, ptr %24, align 8, !tbaa !5
  %1789 = load i64, ptr %45, align 8, !tbaa !9
  %1790 = load i64, ptr %46, align 8, !tbaa !9
  %1791 = load i64, ptr %32, align 8, !tbaa !9
  %1792 = mul nsw i64 %1790, %1791
  %1793 = add nsw i64 %1789, %1792
  %1794 = getelementptr inbounds float, ptr %1788, i64 %1793
  %1795 = load float, ptr %1794, align 4, !tbaa !11
  %1796 = load float, ptr %57, align 4, !tbaa !11
  %1797 = load float, ptr %54, align 4, !tbaa !11
  %1798 = load float, ptr %58, align 4, !tbaa !11
  %1799 = call float @llvm.fmuladd.f32(float %1797, float %1798, float %1796)
  %1800 = fsub float %1795, %1799
  %1801 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 1
  store float %1800, ptr %1801, align 4, !tbaa !11
  %1802 = load float, ptr %54, align 4, !tbaa !11
  %1803 = fneg float %1802
  %1804 = load ptr, ptr %22, align 8, !tbaa !5
  %1805 = load i64, ptr %46, align 8, !tbaa !9
  %1806 = load i64, ptr %46, align 8, !tbaa !9
  %1807 = load i64, ptr %30, align 8, !tbaa !9
  %1808 = mul nsw i64 %1806, %1807
  %1809 = add nsw i64 %1805, %1808
  %1810 = getelementptr inbounds float, ptr %1804, i64 %1809
  %1811 = load float, ptr %1810, align 4, !tbaa !11
  %1812 = fmul float %1803, %1811
  store float %1812, ptr %38, align 4, !tbaa !11
  %1813 = load ptr, ptr %20, align 8, !tbaa !5
  %1814 = load i64, ptr %44, align 8, !tbaa !9
  %1815 = load i64, ptr %44, align 8, !tbaa !9
  %1816 = load i64, ptr %28, align 8, !tbaa !9
  %1817 = mul nsw i64 %1815, %1816
  %1818 = add nsw i64 %1814, %1817
  %1819 = getelementptr inbounds float, ptr %1813, i64 %1818
  %1820 = load ptr, ptr %21, align 8, !tbaa !5
  %1821 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %1822 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %1823 = call i32 @slaln2_(ptr noundef @c_true, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %56, ptr noundef @c_b26, ptr noundef %1819, ptr noundef %1820, ptr noundef @c_b26, ptr noundef @c_b26, ptr noundef %1821, ptr noundef @c__2, ptr noundef %38, ptr noundef @c_b30, ptr noundef %1822, ptr noundef @c__2, ptr noundef %62, ptr noundef %61, ptr noundef %55)
  %1824 = load i64, ptr %55, align 8, !tbaa !9
  %1825 = icmp ne i64 %1824, 0
  br i1 %1825, label %1826, label %1828

1826:                                             ; preds = %1709
  %1827 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %1827, align 8, !tbaa !9
  br label %1828

1828:                                             ; preds = %1826, %1709
  %1829 = load float, ptr %62, align 4, !tbaa !11
  %1830 = fcmp une float %1829, 1.000000e+00
  br i1 %1830, label %1831, label %1855

1831:                                             ; preds = %1828
  %1832 = load ptr, ptr %19, align 8, !tbaa !5
  %1833 = load i64, ptr %1832, align 8, !tbaa !9
  store i64 %1833, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %1834

1834:                                             ; preds = %1847, %1831
  %1835 = load i64, ptr %40, align 8, !tbaa !9
  %1836 = load i64, ptr %36, align 8, !tbaa !9
  %1837 = icmp sle i64 %1835, %1836
  br i1 %1837, label %1838, label %1850

1838:                                             ; preds = %1834
  %1839 = load ptr, ptr %18, align 8, !tbaa !5
  %1840 = load ptr, ptr %24, align 8, !tbaa !5
  %1841 = load i64, ptr %40, align 8, !tbaa !9
  %1842 = load i64, ptr %32, align 8, !tbaa !9
  %1843 = mul nsw i64 %1841, %1842
  %1844 = add nsw i64 %1843, 1
  %1845 = getelementptr inbounds float, ptr %1840, i64 %1844
  %1846 = call i32 @f2c_sscal(ptr noundef %1839, ptr noundef %62, ptr noundef %1845, ptr noundef @c__1)
  br label %1847

1847:                                             ; preds = %1838
  %1848 = load i64, ptr %40, align 8, !tbaa !9
  %1849 = add nsw i64 %1848, 1
  store i64 %1849, ptr %40, align 8, !tbaa !9
  br label %1834, !llvm.loop !21

1850:                                             ; preds = %1834
  %1851 = load float, ptr %62, align 4, !tbaa !11
  %1852 = load ptr, ptr %26, align 8, !tbaa !5
  %1853 = load float, ptr %1852, align 4, !tbaa !11
  %1854 = fmul float %1853, %1851
  store float %1854, ptr %1852, align 4, !tbaa !11
  br label %1855

1855:                                             ; preds = %1850, %1828
  %1856 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %1857 = load float, ptr %1856, align 16, !tbaa !11
  %1858 = load ptr, ptr %24, align 8, !tbaa !5
  %1859 = load i64, ptr %44, align 8, !tbaa !9
  %1860 = load i64, ptr %46, align 8, !tbaa !9
  %1861 = load i64, ptr %32, align 8, !tbaa !9
  %1862 = mul nsw i64 %1860, %1861
  %1863 = add nsw i64 %1859, %1862
  %1864 = getelementptr inbounds float, ptr %1858, i64 %1863
  store float %1857, ptr %1864, align 4, !tbaa !11
  %1865 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 1
  %1866 = load float, ptr %1865, align 4, !tbaa !11
  %1867 = load ptr, ptr %24, align 8, !tbaa !5
  %1868 = load i64, ptr %45, align 8, !tbaa !9
  %1869 = load i64, ptr %46, align 8, !tbaa !9
  %1870 = load i64, ptr %32, align 8, !tbaa !9
  %1871 = mul nsw i64 %1869, %1870
  %1872 = add nsw i64 %1868, %1871
  %1873 = getelementptr inbounds float, ptr %1867, i64 %1872
  store float %1866, ptr %1873, align 4, !tbaa !11
  br label %2334

1874:                                             ; preds = %1705, %1701
  %1875 = load i64, ptr %46, align 8, !tbaa !9
  %1876 = load i64, ptr %47, align 8, !tbaa !9
  %1877 = icmp ne i64 %1875, %1876
  br i1 %1877, label %1878, label %2051

1878:                                             ; preds = %1874
  %1879 = load i64, ptr %44, align 8, !tbaa !9
  %1880 = load i64, ptr %45, align 8, !tbaa !9
  %1881 = icmp eq i64 %1879, %1880
  br i1 %1881, label %1882, label %2051

1882:                                             ; preds = %1878
  %1883 = load i64, ptr %44, align 8, !tbaa !9
  %1884 = sub nsw i64 %1883, 1
  store i64 %1884, ptr %36, align 8, !tbaa !9
  %1885 = load ptr, ptr %20, align 8, !tbaa !5
  %1886 = load i64, ptr %44, align 8, !tbaa !9
  %1887 = load i64, ptr %28, align 8, !tbaa !9
  %1888 = mul nsw i64 %1886, %1887
  %1889 = add nsw i64 %1888, 1
  %1890 = getelementptr inbounds float, ptr %1885, i64 %1889
  %1891 = load ptr, ptr %24, align 8, !tbaa !5
  %1892 = load i64, ptr %46, align 8, !tbaa !9
  %1893 = load i64, ptr %32, align 8, !tbaa !9
  %1894 = mul nsw i64 %1892, %1893
  %1895 = add nsw i64 %1894, 1
  %1896 = getelementptr inbounds float, ptr %1891, i64 %1895
  %1897 = call double @f2c_sdot(ptr noundef %36, ptr noundef %1890, ptr noundef @c__1, ptr noundef %1896, ptr noundef @c__1)
  %1898 = fptrunc double %1897 to float
  store float %1898, ptr %57, align 4, !tbaa !11
  %1899 = load i64, ptr %46, align 8, !tbaa !9
  %1900 = sub nsw i64 %1899, 1
  store i64 %1900, ptr %36, align 8, !tbaa !9
  %1901 = load ptr, ptr %24, align 8, !tbaa !5
  %1902 = load i64, ptr %44, align 8, !tbaa !9
  %1903 = load i64, ptr %32, align 8, !tbaa !9
  %1904 = add nsw i64 %1902, %1903
  %1905 = getelementptr inbounds float, ptr %1901, i64 %1904
  %1906 = load ptr, ptr %25, align 8, !tbaa !5
  %1907 = load ptr, ptr %22, align 8, !tbaa !5
  %1908 = load i64, ptr %46, align 8, !tbaa !9
  %1909 = load i64, ptr %30, align 8, !tbaa !9
  %1910 = mul nsw i64 %1908, %1909
  %1911 = add nsw i64 %1910, 1
  %1912 = getelementptr inbounds float, ptr %1907, i64 %1911
  %1913 = call double @f2c_sdot(ptr noundef %36, ptr noundef %1905, ptr noundef %1906, ptr noundef %1912, ptr noundef @c__1)
  %1914 = fptrunc double %1913 to float
  store float %1914, ptr %58, align 4, !tbaa !11
  %1915 = load float, ptr %54, align 4, !tbaa !11
  %1916 = load ptr, ptr %24, align 8, !tbaa !5
  %1917 = load i64, ptr %44, align 8, !tbaa !9
  %1918 = load i64, ptr %46, align 8, !tbaa !9
  %1919 = load i64, ptr %32, align 8, !tbaa !9
  %1920 = mul nsw i64 %1918, %1919
  %1921 = add nsw i64 %1917, %1920
  %1922 = getelementptr inbounds float, ptr %1916, i64 %1921
  %1923 = load float, ptr %1922, align 4, !tbaa !11
  %1924 = load float, ptr %57, align 4, !tbaa !11
  %1925 = load float, ptr %54, align 4, !tbaa !11
  %1926 = load float, ptr %58, align 4, !tbaa !11
  %1927 = call float @llvm.fmuladd.f32(float %1925, float %1926, float %1924)
  %1928 = fsub float %1923, %1927
  %1929 = fmul float %1915, %1928
  %1930 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %1929, ptr %1930, align 16, !tbaa !11
  %1931 = load i64, ptr %44, align 8, !tbaa !9
  %1932 = sub nsw i64 %1931, 1
  store i64 %1932, ptr %36, align 8, !tbaa !9
  %1933 = load ptr, ptr %20, align 8, !tbaa !5
  %1934 = load i64, ptr %44, align 8, !tbaa !9
  %1935 = load i64, ptr %28, align 8, !tbaa !9
  %1936 = mul nsw i64 %1934, %1935
  %1937 = add nsw i64 %1936, 1
  %1938 = getelementptr inbounds float, ptr %1933, i64 %1937
  %1939 = load ptr, ptr %24, align 8, !tbaa !5
  %1940 = load i64, ptr %47, align 8, !tbaa !9
  %1941 = load i64, ptr %32, align 8, !tbaa !9
  %1942 = mul nsw i64 %1940, %1941
  %1943 = add nsw i64 %1942, 1
  %1944 = getelementptr inbounds float, ptr %1939, i64 %1943
  %1945 = call double @f2c_sdot(ptr noundef %36, ptr noundef %1938, ptr noundef @c__1, ptr noundef %1944, ptr noundef @c__1)
  %1946 = fptrunc double %1945 to float
  store float %1946, ptr %57, align 4, !tbaa !11
  %1947 = load i64, ptr %46, align 8, !tbaa !9
  %1948 = sub nsw i64 %1947, 1
  store i64 %1948, ptr %36, align 8, !tbaa !9
  %1949 = load ptr, ptr %24, align 8, !tbaa !5
  %1950 = load i64, ptr %44, align 8, !tbaa !9
  %1951 = load i64, ptr %32, align 8, !tbaa !9
  %1952 = add nsw i64 %1950, %1951
  %1953 = getelementptr inbounds float, ptr %1949, i64 %1952
  %1954 = load ptr, ptr %25, align 8, !tbaa !5
  %1955 = load ptr, ptr %22, align 8, !tbaa !5
  %1956 = load i64, ptr %47, align 8, !tbaa !9
  %1957 = load i64, ptr %30, align 8, !tbaa !9
  %1958 = mul nsw i64 %1956, %1957
  %1959 = add nsw i64 %1958, 1
  %1960 = getelementptr inbounds float, ptr %1955, i64 %1959
  %1961 = call double @f2c_sdot(ptr noundef %36, ptr noundef %1953, ptr noundef %1954, ptr noundef %1960, ptr noundef @c__1)
  %1962 = fptrunc double %1961 to float
  store float %1962, ptr %58, align 4, !tbaa !11
  %1963 = load float, ptr %54, align 4, !tbaa !11
  %1964 = load ptr, ptr %24, align 8, !tbaa !5
  %1965 = load i64, ptr %44, align 8, !tbaa !9
  %1966 = load i64, ptr %47, align 8, !tbaa !9
  %1967 = load i64, ptr %32, align 8, !tbaa !9
  %1968 = mul nsw i64 %1966, %1967
  %1969 = add nsw i64 %1965, %1968
  %1970 = getelementptr inbounds float, ptr %1964, i64 %1969
  %1971 = load float, ptr %1970, align 4, !tbaa !11
  %1972 = load float, ptr %57, align 4, !tbaa !11
  %1973 = load float, ptr %54, align 4, !tbaa !11
  %1974 = load float, ptr %58, align 4, !tbaa !11
  %1975 = call float @llvm.fmuladd.f32(float %1973, float %1974, float %1972)
  %1976 = fsub float %1971, %1975
  %1977 = fmul float %1963, %1976
  %1978 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 1
  store float %1977, ptr %1978, align 4, !tbaa !11
  %1979 = load float, ptr %54, align 4, !tbaa !11
  %1980 = fneg float %1979
  %1981 = load ptr, ptr %20, align 8, !tbaa !5
  %1982 = load i64, ptr %44, align 8, !tbaa !9
  %1983 = load i64, ptr %44, align 8, !tbaa !9
  %1984 = load i64, ptr %28, align 8, !tbaa !9
  %1985 = mul nsw i64 %1983, %1984
  %1986 = add nsw i64 %1982, %1985
  %1987 = getelementptr inbounds float, ptr %1981, i64 %1986
  %1988 = load float, ptr %1987, align 4, !tbaa !11
  %1989 = fmul float %1980, %1988
  store float %1989, ptr %38, align 4, !tbaa !11
  %1990 = load ptr, ptr %22, align 8, !tbaa !5
  %1991 = load i64, ptr %46, align 8, !tbaa !9
  %1992 = load i64, ptr %46, align 8, !tbaa !9
  %1993 = load i64, ptr %30, align 8, !tbaa !9
  %1994 = mul nsw i64 %1992, %1993
  %1995 = add nsw i64 %1991, %1994
  %1996 = getelementptr inbounds float, ptr %1990, i64 %1995
  %1997 = load ptr, ptr %23, align 8, !tbaa !5
  %1998 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %1999 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %2000 = call i32 @slaln2_(ptr noundef @c_true, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %56, ptr noundef @c_b26, ptr noundef %1996, ptr noundef %1997, ptr noundef @c_b26, ptr noundef @c_b26, ptr noundef %1998, ptr noundef @c__2, ptr noundef %38, ptr noundef @c_b30, ptr noundef %1999, ptr noundef @c__2, ptr noundef %62, ptr noundef %61, ptr noundef %55)
  %2001 = load i64, ptr %55, align 8, !tbaa !9
  %2002 = icmp ne i64 %2001, 0
  br i1 %2002, label %2003, label %2005

2003:                                             ; preds = %1882
  %2004 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %2004, align 8, !tbaa !9
  br label %2005

2005:                                             ; preds = %2003, %1882
  %2006 = load float, ptr %62, align 4, !tbaa !11
  %2007 = fcmp une float %2006, 1.000000e+00
  br i1 %2007, label %2008, label %2032

2008:                                             ; preds = %2005
  %2009 = load ptr, ptr %19, align 8, !tbaa !5
  %2010 = load i64, ptr %2009, align 8, !tbaa !9
  store i64 %2010, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %2011

2011:                                             ; preds = %2024, %2008
  %2012 = load i64, ptr %40, align 8, !tbaa !9
  %2013 = load i64, ptr %36, align 8, !tbaa !9
  %2014 = icmp sle i64 %2012, %2013
  br i1 %2014, label %2015, label %2027

2015:                                             ; preds = %2011
  %2016 = load ptr, ptr %18, align 8, !tbaa !5
  %2017 = load ptr, ptr %24, align 8, !tbaa !5
  %2018 = load i64, ptr %40, align 8, !tbaa !9
  %2019 = load i64, ptr %32, align 8, !tbaa !9
  %2020 = mul nsw i64 %2018, %2019
  %2021 = add nsw i64 %2020, 1
  %2022 = getelementptr inbounds float, ptr %2017, i64 %2021
  %2023 = call i32 @f2c_sscal(ptr noundef %2016, ptr noundef %62, ptr noundef %2022, ptr noundef @c__1)
  br label %2024

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

2027:                                             ; preds = %2011
  %2028 = load float, ptr %62, align 4, !tbaa !11
  %2029 = load ptr, ptr %26, align 8, !tbaa !5
  %2030 = load float, ptr %2029, align 4, !tbaa !11
  %2031 = fmul float %2030, %2028
  store float %2031, ptr %2029, align 4, !tbaa !11
  br label %2032

2032:                                             ; preds = %2027, %2005
  %2033 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %2034 = load float, ptr %2033, align 16, !tbaa !11
  %2035 = load ptr, ptr %24, align 8, !tbaa !5
  %2036 = load i64, ptr %44, align 8, !tbaa !9
  %2037 = load i64, ptr %46, align 8, !tbaa !9
  %2038 = load i64, ptr %32, align 8, !tbaa !9
  %2039 = mul nsw i64 %2037, %2038
  %2040 = add nsw i64 %2036, %2039
  %2041 = getelementptr inbounds float, ptr %2035, i64 %2040
  store float %2034, ptr %2041, align 4, !tbaa !11
  %2042 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 1
  %2043 = load float, ptr %2042, align 4, !tbaa !11
  %2044 = load ptr, ptr %24, align 8, !tbaa !5
  %2045 = load i64, ptr %44, align 8, !tbaa !9
  %2046 = load i64, ptr %47, align 8, !tbaa !9
  %2047 = load i64, ptr %32, align 8, !tbaa !9
  %2048 = mul nsw i64 %2046, %2047
  %2049 = add nsw i64 %2045, %2048
  %2050 = getelementptr inbounds float, ptr %2044, i64 %2049
  store float %2043, ptr %2050, align 4, !tbaa !11
  br label %2333

2051:                                             ; preds = %1878, %1874
  %2052 = load i64, ptr %46, align 8, !tbaa !9
  %2053 = load i64, ptr %47, align 8, !tbaa !9
  %2054 = icmp ne i64 %2052, %2053
  br i1 %2054, label %2055, label %2332

2055:                                             ; preds = %2051
  %2056 = load i64, ptr %44, align 8, !tbaa !9
  %2057 = load i64, ptr %45, align 8, !tbaa !9
  %2058 = icmp ne i64 %2056, %2057
  br i1 %2058, label %2059, label %2332

2059:                                             ; preds = %2055
  %2060 = load i64, ptr %44, align 8, !tbaa !9
  %2061 = sub nsw i64 %2060, 1
  store i64 %2061, ptr %36, align 8, !tbaa !9
  %2062 = load ptr, ptr %20, align 8, !tbaa !5
  %2063 = load i64, ptr %44, align 8, !tbaa !9
  %2064 = load i64, ptr %28, align 8, !tbaa !9
  %2065 = mul nsw i64 %2063, %2064
  %2066 = add nsw i64 %2065, 1
  %2067 = getelementptr inbounds float, ptr %2062, i64 %2066
  %2068 = load ptr, ptr %24, align 8, !tbaa !5
  %2069 = load i64, ptr %46, align 8, !tbaa !9
  %2070 = load i64, ptr %32, align 8, !tbaa !9
  %2071 = mul nsw i64 %2069, %2070
  %2072 = add nsw i64 %2071, 1
  %2073 = getelementptr inbounds float, ptr %2068, i64 %2072
  %2074 = call double @f2c_sdot(ptr noundef %36, ptr noundef %2067, ptr noundef @c__1, ptr noundef %2073, ptr noundef @c__1)
  %2075 = fptrunc double %2074 to float
  store float %2075, ptr %57, align 4, !tbaa !11
  %2076 = load i64, ptr %46, align 8, !tbaa !9
  %2077 = sub nsw i64 %2076, 1
  store i64 %2077, ptr %36, align 8, !tbaa !9
  %2078 = load ptr, ptr %24, align 8, !tbaa !5
  %2079 = load i64, ptr %44, align 8, !tbaa !9
  %2080 = load i64, ptr %32, align 8, !tbaa !9
  %2081 = add nsw i64 %2079, %2080
  %2082 = getelementptr inbounds float, ptr %2078, i64 %2081
  %2083 = load ptr, ptr %25, align 8, !tbaa !5
  %2084 = load ptr, ptr %22, align 8, !tbaa !5
  %2085 = load i64, ptr %46, align 8, !tbaa !9
  %2086 = load i64, ptr %30, align 8, !tbaa !9
  %2087 = mul nsw i64 %2085, %2086
  %2088 = add nsw i64 %2087, 1
  %2089 = getelementptr inbounds float, ptr %2084, i64 %2088
  %2090 = call double @f2c_sdot(ptr noundef %36, ptr noundef %2082, ptr noundef %2083, ptr noundef %2089, ptr noundef @c__1)
  %2091 = fptrunc double %2090 to float
  store float %2091, ptr %58, align 4, !tbaa !11
  %2092 = load ptr, ptr %24, align 8, !tbaa !5
  %2093 = load i64, ptr %44, align 8, !tbaa !9
  %2094 = load i64, ptr %46, align 8, !tbaa !9
  %2095 = load i64, ptr %32, align 8, !tbaa !9
  %2096 = mul nsw i64 %2094, %2095
  %2097 = add nsw i64 %2093, %2096
  %2098 = getelementptr inbounds float, ptr %2092, i64 %2097
  %2099 = load float, ptr %2098, align 4, !tbaa !11
  %2100 = load float, ptr %57, align 4, !tbaa !11
  %2101 = load float, ptr %54, align 4, !tbaa !11
  %2102 = load float, ptr %58, align 4, !tbaa !11
  %2103 = call float @llvm.fmuladd.f32(float %2101, float %2102, float %2100)
  %2104 = fsub float %2099, %2103
  %2105 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %2104, ptr %2105, align 16, !tbaa !11
  %2106 = load i64, ptr %44, align 8, !tbaa !9
  %2107 = sub nsw i64 %2106, 1
  store i64 %2107, ptr %36, align 8, !tbaa !9
  %2108 = load ptr, ptr %20, align 8, !tbaa !5
  %2109 = load i64, ptr %44, align 8, !tbaa !9
  %2110 = load i64, ptr %28, align 8, !tbaa !9
  %2111 = mul nsw i64 %2109, %2110
  %2112 = add nsw i64 %2111, 1
  %2113 = getelementptr inbounds float, ptr %2108, i64 %2112
  %2114 = load ptr, ptr %24, align 8, !tbaa !5
  %2115 = load i64, ptr %47, align 8, !tbaa !9
  %2116 = load i64, ptr %32, align 8, !tbaa !9
  %2117 = mul nsw i64 %2115, %2116
  %2118 = add nsw i64 %2117, 1
  %2119 = getelementptr inbounds float, ptr %2114, i64 %2118
  %2120 = call double @f2c_sdot(ptr noundef %36, ptr noundef %2113, ptr noundef @c__1, ptr noundef %2119, ptr noundef @c__1)
  %2121 = fptrunc double %2120 to float
  store float %2121, ptr %57, align 4, !tbaa !11
  %2122 = load i64, ptr %46, align 8, !tbaa !9
  %2123 = sub nsw i64 %2122, 1
  store i64 %2123, ptr %36, align 8, !tbaa !9
  %2124 = load ptr, ptr %24, align 8, !tbaa !5
  %2125 = load i64, ptr %44, align 8, !tbaa !9
  %2126 = load i64, ptr %32, align 8, !tbaa !9
  %2127 = add nsw i64 %2125, %2126
  %2128 = getelementptr inbounds float, ptr %2124, i64 %2127
  %2129 = load ptr, ptr %25, align 8, !tbaa !5
  %2130 = load ptr, ptr %22, align 8, !tbaa !5
  %2131 = load i64, ptr %47, align 8, !tbaa !9
  %2132 = load i64, ptr %30, align 8, !tbaa !9
  %2133 = mul nsw i64 %2131, %2132
  %2134 = add nsw i64 %2133, 1
  %2135 = getelementptr inbounds float, ptr %2130, i64 %2134
  %2136 = call double @f2c_sdot(ptr noundef %36, ptr noundef %2128, ptr noundef %2129, ptr noundef %2135, ptr noundef @c__1)
  %2137 = fptrunc double %2136 to float
  store float %2137, ptr %58, align 4, !tbaa !11
  %2138 = load ptr, ptr %24, align 8, !tbaa !5
  %2139 = load i64, ptr %44, align 8, !tbaa !9
  %2140 = load i64, ptr %47, align 8, !tbaa !9
  %2141 = load i64, ptr %32, align 8, !tbaa !9
  %2142 = mul nsw i64 %2140, %2141
  %2143 = add nsw i64 %2139, %2142
  %2144 = getelementptr inbounds float, ptr %2138, i64 %2143
  %2145 = load float, ptr %2144, align 4, !tbaa !11
  %2146 = load float, ptr %57, align 4, !tbaa !11
  %2147 = load float, ptr %54, align 4, !tbaa !11
  %2148 = load float, ptr %58, align 4, !tbaa !11
  %2149 = call float @llvm.fmuladd.f32(float %2147, float %2148, float %2146)
  %2150 = fsub float %2145, %2149
  %2151 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 2
  store float %2150, ptr %2151, align 8, !tbaa !11
  %2152 = load i64, ptr %44, align 8, !tbaa !9
  %2153 = sub nsw i64 %2152, 1
  store i64 %2153, ptr %36, align 8, !tbaa !9
  %2154 = load ptr, ptr %20, align 8, !tbaa !5
  %2155 = load i64, ptr %45, align 8, !tbaa !9
  %2156 = load i64, ptr %28, align 8, !tbaa !9
  %2157 = mul nsw i64 %2155, %2156
  %2158 = add nsw i64 %2157, 1
  %2159 = getelementptr inbounds float, ptr %2154, i64 %2158
  %2160 = load ptr, ptr %24, align 8, !tbaa !5
  %2161 = load i64, ptr %46, align 8, !tbaa !9
  %2162 = load i64, ptr %32, align 8, !tbaa !9
  %2163 = mul nsw i64 %2161, %2162
  %2164 = add nsw i64 %2163, 1
  %2165 = getelementptr inbounds float, ptr %2160, i64 %2164
  %2166 = call double @f2c_sdot(ptr noundef %36, ptr noundef %2159, ptr noundef @c__1, ptr noundef %2165, ptr noundef @c__1)
  %2167 = fptrunc double %2166 to float
  store float %2167, ptr %57, align 4, !tbaa !11
  %2168 = load i64, ptr %46, align 8, !tbaa !9
  %2169 = sub nsw i64 %2168, 1
  store i64 %2169, ptr %36, align 8, !tbaa !9
  %2170 = load ptr, ptr %24, align 8, !tbaa !5
  %2171 = load i64, ptr %45, align 8, !tbaa !9
  %2172 = load i64, ptr %32, align 8, !tbaa !9
  %2173 = add nsw i64 %2171, %2172
  %2174 = getelementptr inbounds float, ptr %2170, i64 %2173
  %2175 = load ptr, ptr %25, align 8, !tbaa !5
  %2176 = load ptr, ptr %22, align 8, !tbaa !5
  %2177 = load i64, ptr %46, align 8, !tbaa !9
  %2178 = load i64, ptr %30, align 8, !tbaa !9
  %2179 = mul nsw i64 %2177, %2178
  %2180 = add nsw i64 %2179, 1
  %2181 = getelementptr inbounds float, ptr %2176, i64 %2180
  %2182 = call double @f2c_sdot(ptr noundef %36, ptr noundef %2174, ptr noundef %2175, ptr noundef %2181, ptr noundef @c__1)
  %2183 = fptrunc double %2182 to float
  store float %2183, ptr %58, align 4, !tbaa !11
  %2184 = load ptr, ptr %24, align 8, !tbaa !5
  %2185 = load i64, ptr %45, align 8, !tbaa !9
  %2186 = load i64, ptr %46, align 8, !tbaa !9
  %2187 = load i64, ptr %32, align 8, !tbaa !9
  %2188 = mul nsw i64 %2186, %2187
  %2189 = add nsw i64 %2185, %2188
  %2190 = getelementptr inbounds float, ptr %2184, i64 %2189
  %2191 = load float, ptr %2190, align 4, !tbaa !11
  %2192 = load float, ptr %57, align 4, !tbaa !11
  %2193 = load float, ptr %54, align 4, !tbaa !11
  %2194 = load float, ptr %58, align 4, !tbaa !11
  %2195 = call float @llvm.fmuladd.f32(float %2193, float %2194, float %2192)
  %2196 = fsub float %2191, %2195
  %2197 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 1
  store float %2196, ptr %2197, align 4, !tbaa !11
  %2198 = load i64, ptr %44, align 8, !tbaa !9
  %2199 = sub nsw i64 %2198, 1
  store i64 %2199, ptr %36, align 8, !tbaa !9
  %2200 = load ptr, ptr %20, align 8, !tbaa !5
  %2201 = load i64, ptr %45, align 8, !tbaa !9
  %2202 = load i64, ptr %28, align 8, !tbaa !9
  %2203 = mul nsw i64 %2201, %2202
  %2204 = add nsw i64 %2203, 1
  %2205 = getelementptr inbounds float, ptr %2200, i64 %2204
  %2206 = load ptr, ptr %24, align 8, !tbaa !5
  %2207 = load i64, ptr %47, align 8, !tbaa !9
  %2208 = load i64, ptr %32, align 8, !tbaa !9
  %2209 = mul nsw i64 %2207, %2208
  %2210 = add nsw i64 %2209, 1
  %2211 = getelementptr inbounds float, ptr %2206, i64 %2210
  %2212 = call double @f2c_sdot(ptr noundef %36, ptr noundef %2205, ptr noundef @c__1, ptr noundef %2211, ptr noundef @c__1)
  %2213 = fptrunc double %2212 to float
  store float %2213, ptr %57, align 4, !tbaa !11
  %2214 = load i64, ptr %46, align 8, !tbaa !9
  %2215 = sub nsw i64 %2214, 1
  store i64 %2215, ptr %36, align 8, !tbaa !9
  %2216 = load ptr, ptr %24, align 8, !tbaa !5
  %2217 = load i64, ptr %45, align 8, !tbaa !9
  %2218 = load i64, ptr %32, align 8, !tbaa !9
  %2219 = add nsw i64 %2217, %2218
  %2220 = getelementptr inbounds float, ptr %2216, i64 %2219
  %2221 = load ptr, ptr %25, align 8, !tbaa !5
  %2222 = load ptr, ptr %22, align 8, !tbaa !5
  %2223 = load i64, ptr %47, align 8, !tbaa !9
  %2224 = load i64, ptr %30, align 8, !tbaa !9
  %2225 = mul nsw i64 %2223, %2224
  %2226 = add nsw i64 %2225, 1
  %2227 = getelementptr inbounds float, ptr %2222, i64 %2226
  %2228 = call double @f2c_sdot(ptr noundef %36, ptr noundef %2220, ptr noundef %2221, ptr noundef %2227, ptr noundef @c__1)
  %2229 = fptrunc double %2228 to float
  store float %2229, ptr %58, align 4, !tbaa !11
  %2230 = load ptr, ptr %24, align 8, !tbaa !5
  %2231 = load i64, ptr %45, align 8, !tbaa !9
  %2232 = load i64, ptr %47, align 8, !tbaa !9
  %2233 = load i64, ptr %32, align 8, !tbaa !9
  %2234 = mul nsw i64 %2232, %2233
  %2235 = add nsw i64 %2231, %2234
  %2236 = getelementptr inbounds float, ptr %2230, i64 %2235
  %2237 = load float, ptr %2236, align 4, !tbaa !11
  %2238 = load float, ptr %57, align 4, !tbaa !11
  %2239 = load float, ptr %54, align 4, !tbaa !11
  %2240 = load float, ptr %58, align 4, !tbaa !11
  %2241 = call float @llvm.fmuladd.f32(float %2239, float %2240, float %2238)
  %2242 = fsub float %2237, %2241
  %2243 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 3
  store float %2242, ptr %2243, align 4, !tbaa !11
  %2244 = load ptr, ptr %17, align 8, !tbaa !5
  %2245 = load ptr, ptr %20, align 8, !tbaa !5
  %2246 = load i64, ptr %44, align 8, !tbaa !9
  %2247 = load i64, ptr %44, align 8, !tbaa !9
  %2248 = load i64, ptr %28, align 8, !tbaa !9
  %2249 = mul nsw i64 %2247, %2248
  %2250 = add nsw i64 %2246, %2249
  %2251 = getelementptr inbounds float, ptr %2245, i64 %2250
  %2252 = load ptr, ptr %21, align 8, !tbaa !5
  %2253 = load ptr, ptr %22, align 8, !tbaa !5
  %2254 = load i64, ptr %46, align 8, !tbaa !9
  %2255 = load i64, ptr %46, align 8, !tbaa !9
  %2256 = load i64, ptr %30, align 8, !tbaa !9
  %2257 = mul nsw i64 %2255, %2256
  %2258 = add nsw i64 %2254, %2257
  %2259 = getelementptr inbounds float, ptr %2253, i64 %2258
  %2260 = load ptr, ptr %23, align 8, !tbaa !5
  %2261 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %2262 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %2263 = call i32 @slasy2_(ptr noundef @c_true, ptr noundef @c_false, ptr noundef %2244, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %2251, ptr noundef %2252, ptr noundef %2259, ptr noundef %2260, ptr noundef %2261, ptr noundef @c__2, ptr noundef %62, ptr noundef %2262, ptr noundef @c__2, ptr noundef %61, ptr noundef %55)
  %2264 = load i64, ptr %55, align 8, !tbaa !9
  %2265 = icmp ne i64 %2264, 0
  br i1 %2265, label %2266, label %2268

2266:                                             ; preds = %2059
  %2267 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %2267, align 8, !tbaa !9
  br label %2268

2268:                                             ; preds = %2266, %2059
  %2269 = load float, ptr %62, align 4, !tbaa !11
  %2270 = fcmp une float %2269, 1.000000e+00
  br i1 %2270, label %2271, label %2295

2271:                                             ; preds = %2268
  %2272 = load ptr, ptr %19, align 8, !tbaa !5
  %2273 = load i64, ptr %2272, align 8, !tbaa !9
  store i64 %2273, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %2274

2274:                                             ; preds = %2287, %2271
  %2275 = load i64, ptr %40, align 8, !tbaa !9
  %2276 = load i64, ptr %36, align 8, !tbaa !9
  %2277 = icmp sle i64 %2275, %2276
  br i1 %2277, label %2278, label %2290

2278:                                             ; preds = %2274
  %2279 = load ptr, ptr %18, align 8, !tbaa !5
  %2280 = load ptr, ptr %24, align 8, !tbaa !5
  %2281 = load i64, ptr %40, align 8, !tbaa !9
  %2282 = load i64, ptr %32, align 8, !tbaa !9
  %2283 = mul nsw i64 %2281, %2282
  %2284 = add nsw i64 %2283, 1
  %2285 = getelementptr inbounds float, ptr %2280, i64 %2284
  %2286 = call i32 @f2c_sscal(ptr noundef %2279, ptr noundef %62, ptr noundef %2285, ptr noundef @c__1)
  br label %2287

2287:                                             ; preds = %2278
  %2288 = load i64, ptr %40, align 8, !tbaa !9
  %2289 = add nsw i64 %2288, 1
  store i64 %2289, ptr %40, align 8, !tbaa !9
  br label %2274, !llvm.loop !23

2290:                                             ; preds = %2274
  %2291 = load float, ptr %62, align 4, !tbaa !11
  %2292 = load ptr, ptr %26, align 8, !tbaa !5
  %2293 = load float, ptr %2292, align 4, !tbaa !11
  %2294 = fmul float %2293, %2291
  store float %2294, ptr %2292, align 4, !tbaa !11
  br label %2295

2295:                                             ; preds = %2290, %2268
  %2296 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %2297 = load float, ptr %2296, align 16, !tbaa !11
  %2298 = load ptr, ptr %24, align 8, !tbaa !5
  %2299 = load i64, ptr %44, align 8, !tbaa !9
  %2300 = load i64, ptr %46, align 8, !tbaa !9
  %2301 = load i64, ptr %32, align 8, !tbaa !9
  %2302 = mul nsw i64 %2300, %2301
  %2303 = add nsw i64 %2299, %2302
  %2304 = getelementptr inbounds float, ptr %2298, i64 %2303
  store float %2297, ptr %2304, align 4, !tbaa !11
  %2305 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 2
  %2306 = load float, ptr %2305, align 8, !tbaa !11
  %2307 = load ptr, ptr %24, align 8, !tbaa !5
  %2308 = load i64, ptr %44, align 8, !tbaa !9
  %2309 = load i64, ptr %47, align 8, !tbaa !9
  %2310 = load i64, ptr %32, align 8, !tbaa !9
  %2311 = mul nsw i64 %2309, %2310
  %2312 = add nsw i64 %2308, %2311
  %2313 = getelementptr inbounds float, ptr %2307, i64 %2312
  store float %2306, ptr %2313, align 4, !tbaa !11
  %2314 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 1
  %2315 = load float, ptr %2314, align 4, !tbaa !11
  %2316 = load ptr, ptr %24, align 8, !tbaa !5
  %2317 = load i64, ptr %45, align 8, !tbaa !9
  %2318 = load i64, ptr %46, align 8, !tbaa !9
  %2319 = load i64, ptr %32, align 8, !tbaa !9
  %2320 = mul nsw i64 %2318, %2319
  %2321 = add nsw i64 %2317, %2320
  %2322 = getelementptr inbounds float, ptr %2316, i64 %2321
  store float %2315, ptr %2322, align 4, !tbaa !11
  %2323 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 3
  %2324 = load float, ptr %2323, align 4, !tbaa !11
  %2325 = load ptr, ptr %24, align 8, !tbaa !5
  %2326 = load i64, ptr %45, align 8, !tbaa !9
  %2327 = load i64, ptr %47, align 8, !tbaa !9
  %2328 = load i64, ptr %32, align 8, !tbaa !9
  %2329 = mul nsw i64 %2327, %2328
  %2330 = add nsw i64 %2326, %2329
  %2331 = getelementptr inbounds float, ptr %2325, i64 %2330
  store float %2324, ptr %2331, align 4, !tbaa !11
  br label %2332

2332:                                             ; preds = %2295, %2055, %2051
  br label %2333

2333:                                             ; preds = %2332, %2032
  br label %2334

2334:                                             ; preds = %2333, %1855
  br label %2335

2335:                                             ; preds = %2334, %1691
  br label %2336

2336:                                             ; preds = %2335, %1504
  br label %2337

2337:                                             ; preds = %2336
  %2338 = load i64, ptr %41, align 8, !tbaa !9
  %2339 = add nsw i64 %2338, 1
  store i64 %2339, ptr %41, align 8, !tbaa !9
  br label %1496, !llvm.loop !24

2340:                                             ; preds = %1496
  br label %2341

2341:                                             ; preds = %2340, %1461
  br label %2342

2342:                                             ; preds = %2341
  %2343 = load i64, ptr %42, align 8, !tbaa !9
  %2344 = add nsw i64 %2343, 1
  store i64 %2344, ptr %42, align 8, !tbaa !9
  br label %1453, !llvm.loop !25

2345:                                             ; preds = %1453
  br label %4950

2346:                                             ; preds = %1447, %1444
  %2347 = load i64, ptr %64, align 8, !tbaa !9
  %2348 = icmp ne i64 %2347, 0
  br i1 %2348, label %3517, label %2349

2349:                                             ; preds = %2346
  %2350 = load i64, ptr %65, align 8, !tbaa !9
  %2351 = icmp ne i64 %2350, 0
  br i1 %2351, label %3517, label %2352

2352:                                             ; preds = %2349
  %2353 = load ptr, ptr %19, align 8, !tbaa !5
  %2354 = load i64, ptr %2353, align 8, !tbaa !9
  store i64 %2354, ptr %60, align 8, !tbaa !9
  %2355 = load ptr, ptr %19, align 8, !tbaa !5
  %2356 = load i64, ptr %2355, align 8, !tbaa !9
  store i64 %2356, ptr %42, align 8, !tbaa !9
  br label %2357

2357:                                             ; preds = %3513, %2352
  %2358 = load i64, ptr %42, align 8, !tbaa !9
  %2359 = icmp sge i64 %2358, 1
  br i1 %2359, label %2360, label %3516

2360:                                             ; preds = %2357
  %2361 = load i64, ptr %42, align 8, !tbaa !9
  %2362 = load i64, ptr %60, align 8, !tbaa !9
  %2363 = icmp sgt i64 %2361, %2362
  br i1 %2363, label %2364, label %2365

2364:                                             ; preds = %2360
  br label %3512

2365:                                             ; preds = %2360
  %2366 = load i64, ptr %42, align 8, !tbaa !9
  %2367 = icmp eq i64 %2366, 1
  br i1 %2367, label %2368, label %2371

2368:                                             ; preds = %2365
  %2369 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %2369, ptr %46, align 8, !tbaa !9
  %2370 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %2370, ptr %47, align 8, !tbaa !9
  br label %2394

2371:                                             ; preds = %2365
  %2372 = load ptr, ptr %22, align 8, !tbaa !5
  %2373 = load i64, ptr %42, align 8, !tbaa !9
  %2374 = load i64, ptr %42, align 8, !tbaa !9
  %2375 = sub nsw i64 %2374, 1
  %2376 = load i64, ptr %30, align 8, !tbaa !9
  %2377 = mul nsw i64 %2375, %2376
  %2378 = add nsw i64 %2373, %2377
  %2379 = getelementptr inbounds float, ptr %2372, i64 %2378
  %2380 = load float, ptr %2379, align 4, !tbaa !11
  %2381 = fcmp une float %2380, 0.000000e+00
  br i1 %2381, label %2382, label %2388

2382:                                             ; preds = %2371
  %2383 = load i64, ptr %42, align 8, !tbaa !9
  %2384 = sub nsw i64 %2383, 1
  store i64 %2384, ptr %46, align 8, !tbaa !9
  %2385 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %2385, ptr %47, align 8, !tbaa !9
  %2386 = load i64, ptr %42, align 8, !tbaa !9
  %2387 = sub nsw i64 %2386, 2
  store i64 %2387, ptr %60, align 8, !tbaa !9
  br label %2393

2388:                                             ; preds = %2371
  %2389 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %2389, ptr %46, align 8, !tbaa !9
  %2390 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %2390, ptr %47, align 8, !tbaa !9
  %2391 = load i64, ptr %42, align 8, !tbaa !9
  %2392 = sub nsw i64 %2391, 1
  store i64 %2392, ptr %60, align 8, !tbaa !9
  br label %2393

2393:                                             ; preds = %2388, %2382
  br label %2394

2394:                                             ; preds = %2393, %2368
  store i64 1, ptr %59, align 8, !tbaa !9
  %2395 = load ptr, ptr %18, align 8, !tbaa !5
  %2396 = load i64, ptr %2395, align 8, !tbaa !9
  store i64 %2396, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %41, align 8, !tbaa !9
  br label %2397

2397:                                             ; preds = %3508, %2394
  %2398 = load i64, ptr %41, align 8, !tbaa !9
  %2399 = load i64, ptr %34, align 8, !tbaa !9
  %2400 = icmp sle i64 %2398, %2399
  br i1 %2400, label %2401, label %3511

2401:                                             ; preds = %2397
  %2402 = load i64, ptr %41, align 8, !tbaa !9
  %2403 = load i64, ptr %59, align 8, !tbaa !9
  %2404 = icmp slt i64 %2402, %2403
  br i1 %2404, label %2405, label %2406

2405:                                             ; preds = %2401
  br label %3507

2406:                                             ; preds = %2401
  %2407 = load i64, ptr %41, align 8, !tbaa !9
  %2408 = load ptr, ptr %18, align 8, !tbaa !5
  %2409 = load i64, ptr %2408, align 8, !tbaa !9
  %2410 = icmp eq i64 %2407, %2409
  br i1 %2410, label %2411, label %2414

2411:                                             ; preds = %2406
  %2412 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %2412, ptr %44, align 8, !tbaa !9
  %2413 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %2413, ptr %45, align 8, !tbaa !9
  br label %2437

2414:                                             ; preds = %2406
  %2415 = load ptr, ptr %20, align 8, !tbaa !5
  %2416 = load i64, ptr %41, align 8, !tbaa !9
  %2417 = add nsw i64 %2416, 1
  %2418 = load i64, ptr %41, align 8, !tbaa !9
  %2419 = load i64, ptr %28, align 8, !tbaa !9
  %2420 = mul nsw i64 %2418, %2419
  %2421 = add nsw i64 %2417, %2420
  %2422 = getelementptr inbounds float, ptr %2415, i64 %2421
  %2423 = load float, ptr %2422, align 4, !tbaa !11
  %2424 = fcmp une float %2423, 0.000000e+00
  br i1 %2424, label %2425, label %2431

2425:                                             ; preds = %2414
  %2426 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %2426, ptr %44, align 8, !tbaa !9
  %2427 = load i64, ptr %41, align 8, !tbaa !9
  %2428 = add nsw i64 %2427, 1
  store i64 %2428, ptr %45, align 8, !tbaa !9
  %2429 = load i64, ptr %41, align 8, !tbaa !9
  %2430 = add nsw i64 %2429, 2
  store i64 %2430, ptr %59, align 8, !tbaa !9
  br label %2436

2431:                                             ; preds = %2414
  %2432 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %2432, ptr %44, align 8, !tbaa !9
  %2433 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %2433, ptr %45, align 8, !tbaa !9
  %2434 = load i64, ptr %41, align 8, !tbaa !9
  %2435 = add nsw i64 %2434, 1
  store i64 %2435, ptr %59, align 8, !tbaa !9
  br label %2436

2436:                                             ; preds = %2431, %2425
  br label %2437

2437:                                             ; preds = %2436, %2411
  %2438 = load i64, ptr %46, align 8, !tbaa !9
  %2439 = load i64, ptr %47, align 8, !tbaa !9
  %2440 = icmp eq i64 %2438, %2439
  br i1 %2440, label %2441, label %2632

2441:                                             ; preds = %2437
  %2442 = load i64, ptr %44, align 8, !tbaa !9
  %2443 = load i64, ptr %45, align 8, !tbaa !9
  %2444 = icmp eq i64 %2442, %2443
  br i1 %2444, label %2445, label %2632

2445:                                             ; preds = %2441
  %2446 = load i64, ptr %44, align 8, !tbaa !9
  %2447 = sub nsw i64 %2446, 1
  store i64 %2447, ptr %35, align 8, !tbaa !9
  %2448 = load ptr, ptr %20, align 8, !tbaa !5
  %2449 = load i64, ptr %44, align 8, !tbaa !9
  %2450 = load i64, ptr %28, align 8, !tbaa !9
  %2451 = mul nsw i64 %2449, %2450
  %2452 = add nsw i64 %2451, 1
  %2453 = getelementptr inbounds float, ptr %2448, i64 %2452
  %2454 = load ptr, ptr %24, align 8, !tbaa !5
  %2455 = load i64, ptr %46, align 8, !tbaa !9
  %2456 = load i64, ptr %32, align 8, !tbaa !9
  %2457 = mul nsw i64 %2455, %2456
  %2458 = add nsw i64 %2457, 1
  %2459 = getelementptr inbounds float, ptr %2454, i64 %2458
  %2460 = call double @f2c_sdot(ptr noundef %35, ptr noundef %2453, ptr noundef @c__1, ptr noundef %2459, ptr noundef @c__1)
  %2461 = fptrunc double %2460 to float
  store float %2461, ptr %57, align 4, !tbaa !11
  %2462 = load ptr, ptr %19, align 8, !tbaa !5
  %2463 = load i64, ptr %2462, align 8, !tbaa !9
  %2464 = load i64, ptr %46, align 8, !tbaa !9
  %2465 = sub nsw i64 %2463, %2464
  store i64 %2465, ptr %35, align 8, !tbaa !9
  %2466 = load i64, ptr %46, align 8, !tbaa !9
  %2467 = add nsw i64 %2466, 1
  store i64 %2467, ptr %36, align 8, !tbaa !9
  %2468 = load i64, ptr %46, align 8, !tbaa !9
  %2469 = add nsw i64 %2468, 1
  store i64 %2469, ptr %37, align 8, !tbaa !9
  %2470 = load ptr, ptr %24, align 8, !tbaa !5
  %2471 = load i64, ptr %44, align 8, !tbaa !9
  %2472 = load i64, ptr %36, align 8, !tbaa !9
  %2473 = load ptr, ptr %19, align 8, !tbaa !5
  %2474 = load i64, ptr %2473, align 8, !tbaa !9
  %2475 = icmp sle i64 %2472, %2474
  br i1 %2475, label %2476, label %2478

2476:                                             ; preds = %2445
  %2477 = load i64, ptr %36, align 8, !tbaa !9
  br label %2481

2478:                                             ; preds = %2445
  %2479 = load ptr, ptr %19, align 8, !tbaa !5
  %2480 = load i64, ptr %2479, align 8, !tbaa !9
  br label %2481

2481:                                             ; preds = %2478, %2476
  %2482 = phi i64 [ %2477, %2476 ], [ %2480, %2478 ]
  %2483 = load i64, ptr %32, align 8, !tbaa !9
  %2484 = mul nsw i64 %2482, %2483
  %2485 = add nsw i64 %2471, %2484
  %2486 = getelementptr inbounds float, ptr %2470, i64 %2485
  %2487 = load ptr, ptr %25, align 8, !tbaa !5
  %2488 = load ptr, ptr %22, align 8, !tbaa !5
  %2489 = load i64, ptr %46, align 8, !tbaa !9
  %2490 = load i64, ptr %37, align 8, !tbaa !9
  %2491 = load ptr, ptr %19, align 8, !tbaa !5
  %2492 = load i64, ptr %2491, align 8, !tbaa !9
  %2493 = icmp sle i64 %2490, %2492
  br i1 %2493, label %2494, label %2496

2494:                                             ; preds = %2481
  %2495 = load i64, ptr %37, align 8, !tbaa !9
  br label %2499

2496:                                             ; preds = %2481
  %2497 = load ptr, ptr %19, align 8, !tbaa !5
  %2498 = load i64, ptr %2497, align 8, !tbaa !9
  br label %2499

2499:                                             ; preds = %2496, %2494
  %2500 = phi i64 [ %2495, %2494 ], [ %2498, %2496 ]
  %2501 = load i64, ptr %30, align 8, !tbaa !9
  %2502 = mul nsw i64 %2500, %2501
  %2503 = add nsw i64 %2489, %2502
  %2504 = getelementptr inbounds float, ptr %2488, i64 %2503
  %2505 = load ptr, ptr %23, align 8, !tbaa !5
  %2506 = call double @f2c_sdot(ptr noundef %35, ptr noundef %2486, ptr noundef %2487, ptr noundef %2504, ptr noundef %2505)
  %2507 = fptrunc double %2506 to float
  store float %2507, ptr %58, align 4, !tbaa !11
  %2508 = load ptr, ptr %24, align 8, !tbaa !5
  %2509 = load i64, ptr %44, align 8, !tbaa !9
  %2510 = load i64, ptr %46, align 8, !tbaa !9
  %2511 = load i64, ptr %32, align 8, !tbaa !9
  %2512 = mul nsw i64 %2510, %2511
  %2513 = add nsw i64 %2509, %2512
  %2514 = getelementptr inbounds float, ptr %2508, i64 %2513
  %2515 = load float, ptr %2514, align 4, !tbaa !11
  %2516 = load float, ptr %57, align 4, !tbaa !11
  %2517 = load float, ptr %54, align 4, !tbaa !11
  %2518 = load float, ptr %58, align 4, !tbaa !11
  %2519 = call float @llvm.fmuladd.f32(float %2517, float %2518, float %2516)
  %2520 = fsub float %2515, %2519
  %2521 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %2520, ptr %2521, align 16, !tbaa !11
  store float 1.000000e+00, ptr %62, align 4, !tbaa !11
  %2522 = load ptr, ptr %20, align 8, !tbaa !5
  %2523 = load i64, ptr %44, align 8, !tbaa !9
  %2524 = load i64, ptr %44, align 8, !tbaa !9
  %2525 = load i64, ptr %28, align 8, !tbaa !9
  %2526 = mul nsw i64 %2524, %2525
  %2527 = add nsw i64 %2523, %2526
  %2528 = getelementptr inbounds float, ptr %2522, i64 %2527
  %2529 = load float, ptr %2528, align 4, !tbaa !11
  %2530 = load float, ptr %54, align 4, !tbaa !11
  %2531 = load ptr, ptr %22, align 8, !tbaa !5
  %2532 = load i64, ptr %46, align 8, !tbaa !9
  %2533 = load i64, ptr %46, align 8, !tbaa !9
  %2534 = load i64, ptr %30, align 8, !tbaa !9
  %2535 = mul nsw i64 %2533, %2534
  %2536 = add nsw i64 %2532, %2535
  %2537 = getelementptr inbounds float, ptr %2531, i64 %2536
  %2538 = load float, ptr %2537, align 4, !tbaa !11
  %2539 = call float @llvm.fmuladd.f32(float %2530, float %2538, float %2529)
  store float %2539, ptr %48, align 4, !tbaa !11
  %2540 = load float, ptr %48, align 4, !tbaa !11
  %2541 = fcmp oge float %2540, 0.000000e+00
  br i1 %2541, label %2542, label %2544

2542:                                             ; preds = %2499
  %2543 = load float, ptr %48, align 4, !tbaa !11
  br label %2547

2544:                                             ; preds = %2499
  %2545 = load float, ptr %48, align 4, !tbaa !11
  %2546 = fneg float %2545
  br label %2547

2547:                                             ; preds = %2544, %2542
  %2548 = phi float [ %2543, %2542 ], [ %2546, %2544 ]
  %2549 = fpext float %2548 to double
  %2550 = fptrunc double %2549 to float
  store float %2550, ptr %50, align 4, !tbaa !11
  %2551 = load float, ptr %50, align 4, !tbaa !11
  %2552 = load float, ptr %56, align 4, !tbaa !11
  %2553 = fcmp ole float %2551, %2552
  br i1 %2553, label %2554, label %2558

2554:                                             ; preds = %2547
  %2555 = load float, ptr %56, align 4, !tbaa !11
  store float %2555, ptr %48, align 4, !tbaa !11
  %2556 = load float, ptr %56, align 4, !tbaa !11
  store float %2556, ptr %50, align 4, !tbaa !11
  %2557 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %2557, align 8, !tbaa !9
  br label %2558

2558:                                             ; preds = %2554, %2547
  %2559 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %2560 = load float, ptr %2559, align 16, !tbaa !11
  %2561 = fcmp oge float %2560, 0.000000e+00
  br i1 %2561, label %2562, label %2565

2562:                                             ; preds = %2558
  %2563 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %2564 = load float, ptr %2563, align 16, !tbaa !11
  br label %2569

2565:                                             ; preds = %2558
  %2566 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %2567 = load float, ptr %2566, align 16, !tbaa !11
  %2568 = fneg float %2567
  br label %2569

2569:                                             ; preds = %2565, %2562
  %2570 = phi float [ %2564, %2562 ], [ %2568, %2565 ]
  %2571 = fpext float %2570 to double
  %2572 = fptrunc double %2571 to float
  store float %2572, ptr %49, align 4, !tbaa !11
  %2573 = load float, ptr %50, align 4, !tbaa !11
  %2574 = fcmp olt float %2573, 1.000000e+00
  br i1 %2574, label %2575, label %2588

2575:                                             ; preds = %2569
  %2576 = load float, ptr %49, align 4, !tbaa !11
  %2577 = fcmp ogt float %2576, 1.000000e+00
  br i1 %2577, label %2578, label %2588

2578:                                             ; preds = %2575
  %2579 = load float, ptr %49, align 4, !tbaa !11
  %2580 = load float, ptr %63, align 4, !tbaa !11
  %2581 = load float, ptr %50, align 4, !tbaa !11
  %2582 = fmul float %2580, %2581
  %2583 = fcmp ogt float %2579, %2582
  br i1 %2583, label %2584, label %2587

2584:                                             ; preds = %2578
  %2585 = load float, ptr %49, align 4, !tbaa !11
  %2586 = fdiv float 1.000000e+00, %2585
  store float %2586, ptr %62, align 4, !tbaa !11
  br label %2587

2587:                                             ; preds = %2584, %2578
  br label %2588

2588:                                             ; preds = %2587, %2575, %2569
  %2589 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %2590 = load float, ptr %2589, align 16, !tbaa !11
  %2591 = load float, ptr %62, align 4, !tbaa !11
  %2592 = fmul float %2590, %2591
  %2593 = load float, ptr %48, align 4, !tbaa !11
  %2594 = fdiv float %2592, %2593
  %2595 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  store float %2594, ptr %2595, align 16, !tbaa !11
  %2596 = load float, ptr %62, align 4, !tbaa !11
  %2597 = fcmp une float %2596, 1.000000e+00
  br i1 %2597, label %2598, label %2622

2598:                                             ; preds = %2588
  %2599 = load ptr, ptr %19, align 8, !tbaa !5
  %2600 = load i64, ptr %2599, align 8, !tbaa !9
  store i64 %2600, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %2601

2601:                                             ; preds = %2614, %2598
  %2602 = load i64, ptr %40, align 8, !tbaa !9
  %2603 = load i64, ptr %35, align 8, !tbaa !9
  %2604 = icmp sle i64 %2602, %2603
  br i1 %2604, label %2605, label %2617

2605:                                             ; preds = %2601
  %2606 = load ptr, ptr %18, align 8, !tbaa !5
  %2607 = load ptr, ptr %24, align 8, !tbaa !5
  %2608 = load i64, ptr %40, align 8, !tbaa !9
  %2609 = load i64, ptr %32, align 8, !tbaa !9
  %2610 = mul nsw i64 %2608, %2609
  %2611 = add nsw i64 %2610, 1
  %2612 = getelementptr inbounds float, ptr %2607, i64 %2611
  %2613 = call i32 @f2c_sscal(ptr noundef %2606, ptr noundef %62, ptr noundef %2612, ptr noundef @c__1)
  br label %2614

2614:                                             ; preds = %2605
  %2615 = load i64, ptr %40, align 8, !tbaa !9
  %2616 = add nsw i64 %2615, 1
  store i64 %2616, ptr %40, align 8, !tbaa !9
  br label %2601, !llvm.loop !26

2617:                                             ; preds = %2601
  %2618 = load float, ptr %62, align 4, !tbaa !11
  %2619 = load ptr, ptr %26, align 8, !tbaa !5
  %2620 = load float, ptr %2619, align 4, !tbaa !11
  %2621 = fmul float %2620, %2618
  store float %2621, ptr %2619, align 4, !tbaa !11
  br label %2622

2622:                                             ; preds = %2617, %2588
  %2623 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %2624 = load float, ptr %2623, align 16, !tbaa !11
  %2625 = load ptr, ptr %24, align 8, !tbaa !5
  %2626 = load i64, ptr %44, align 8, !tbaa !9
  %2627 = load i64, ptr %46, align 8, !tbaa !9
  %2628 = load i64, ptr %32, align 8, !tbaa !9
  %2629 = mul nsw i64 %2627, %2628
  %2630 = add nsw i64 %2626, %2629
  %2631 = getelementptr inbounds float, ptr %2625, i64 %2630
  store float %2624, ptr %2631, align 4, !tbaa !11
  br label %3506

2632:                                             ; preds = %2441, %2437
  %2633 = load i64, ptr %46, align 8, !tbaa !9
  %2634 = load i64, ptr %47, align 8, !tbaa !9
  %2635 = icmp eq i64 %2633, %2634
  br i1 %2635, label %2636, label %2865

2636:                                             ; preds = %2632
  %2637 = load i64, ptr %44, align 8, !tbaa !9
  %2638 = load i64, ptr %45, align 8, !tbaa !9
  %2639 = icmp ne i64 %2637, %2638
  br i1 %2639, label %2640, label %2865

2640:                                             ; preds = %2636
  %2641 = load i64, ptr %44, align 8, !tbaa !9
  %2642 = sub nsw i64 %2641, 1
  store i64 %2642, ptr %35, align 8, !tbaa !9
  %2643 = load ptr, ptr %20, align 8, !tbaa !5
  %2644 = load i64, ptr %44, align 8, !tbaa !9
  %2645 = load i64, ptr %28, align 8, !tbaa !9
  %2646 = mul nsw i64 %2644, %2645
  %2647 = add nsw i64 %2646, 1
  %2648 = getelementptr inbounds float, ptr %2643, i64 %2647
  %2649 = load ptr, ptr %24, align 8, !tbaa !5
  %2650 = load i64, ptr %46, align 8, !tbaa !9
  %2651 = load i64, ptr %32, align 8, !tbaa !9
  %2652 = mul nsw i64 %2650, %2651
  %2653 = add nsw i64 %2652, 1
  %2654 = getelementptr inbounds float, ptr %2649, i64 %2653
  %2655 = call double @f2c_sdot(ptr noundef %35, ptr noundef %2648, ptr noundef @c__1, ptr noundef %2654, ptr noundef @c__1)
  %2656 = fptrunc double %2655 to float
  store float %2656, ptr %57, align 4, !tbaa !11
  %2657 = load ptr, ptr %19, align 8, !tbaa !5
  %2658 = load i64, ptr %2657, align 8, !tbaa !9
  %2659 = load i64, ptr %47, align 8, !tbaa !9
  %2660 = sub nsw i64 %2658, %2659
  store i64 %2660, ptr %35, align 8, !tbaa !9
  %2661 = load i64, ptr %47, align 8, !tbaa !9
  %2662 = add nsw i64 %2661, 1
  store i64 %2662, ptr %36, align 8, !tbaa !9
  %2663 = load i64, ptr %47, align 8, !tbaa !9
  %2664 = add nsw i64 %2663, 1
  store i64 %2664, ptr %37, align 8, !tbaa !9
  %2665 = load ptr, ptr %24, align 8, !tbaa !5
  %2666 = load i64, ptr %44, align 8, !tbaa !9
  %2667 = load i64, ptr %36, align 8, !tbaa !9
  %2668 = load ptr, ptr %19, align 8, !tbaa !5
  %2669 = load i64, ptr %2668, align 8, !tbaa !9
  %2670 = icmp sle i64 %2667, %2669
  br i1 %2670, label %2671, label %2673

2671:                                             ; preds = %2640
  %2672 = load i64, ptr %36, align 8, !tbaa !9
  br label %2676

2673:                                             ; preds = %2640
  %2674 = load ptr, ptr %19, align 8, !tbaa !5
  %2675 = load i64, ptr %2674, align 8, !tbaa !9
  br label %2676

2676:                                             ; preds = %2673, %2671
  %2677 = phi i64 [ %2672, %2671 ], [ %2675, %2673 ]
  %2678 = load i64, ptr %32, align 8, !tbaa !9
  %2679 = mul nsw i64 %2677, %2678
  %2680 = add nsw i64 %2666, %2679
  %2681 = getelementptr inbounds float, ptr %2665, i64 %2680
  %2682 = load ptr, ptr %25, align 8, !tbaa !5
  %2683 = load ptr, ptr %22, align 8, !tbaa !5
  %2684 = load i64, ptr %46, align 8, !tbaa !9
  %2685 = load i64, ptr %37, align 8, !tbaa !9
  %2686 = load ptr, ptr %19, align 8, !tbaa !5
  %2687 = load i64, ptr %2686, align 8, !tbaa !9
  %2688 = icmp sle i64 %2685, %2687
  br i1 %2688, label %2689, label %2691

2689:                                             ; preds = %2676
  %2690 = load i64, ptr %37, align 8, !tbaa !9
  br label %2694

2691:                                             ; preds = %2676
  %2692 = load ptr, ptr %19, align 8, !tbaa !5
  %2693 = load i64, ptr %2692, align 8, !tbaa !9
  br label %2694

2694:                                             ; preds = %2691, %2689
  %2695 = phi i64 [ %2690, %2689 ], [ %2693, %2691 ]
  %2696 = load i64, ptr %30, align 8, !tbaa !9
  %2697 = mul nsw i64 %2695, %2696
  %2698 = add nsw i64 %2684, %2697
  %2699 = getelementptr inbounds float, ptr %2683, i64 %2698
  %2700 = load ptr, ptr %23, align 8, !tbaa !5
  %2701 = call double @f2c_sdot(ptr noundef %35, ptr noundef %2681, ptr noundef %2682, ptr noundef %2699, ptr noundef %2700)
  %2702 = fptrunc double %2701 to float
  store float %2702, ptr %58, align 4, !tbaa !11
  %2703 = load ptr, ptr %24, align 8, !tbaa !5
  %2704 = load i64, ptr %44, align 8, !tbaa !9
  %2705 = load i64, ptr %46, align 8, !tbaa !9
  %2706 = load i64, ptr %32, align 8, !tbaa !9
  %2707 = mul nsw i64 %2705, %2706
  %2708 = add nsw i64 %2704, %2707
  %2709 = getelementptr inbounds float, ptr %2703, i64 %2708
  %2710 = load float, ptr %2709, align 4, !tbaa !11
  %2711 = load float, ptr %57, align 4, !tbaa !11
  %2712 = load float, ptr %54, align 4, !tbaa !11
  %2713 = load float, ptr %58, align 4, !tbaa !11
  %2714 = call float @llvm.fmuladd.f32(float %2712, float %2713, float %2711)
  %2715 = fsub float %2710, %2714
  %2716 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %2715, ptr %2716, align 16, !tbaa !11
  %2717 = load i64, ptr %44, align 8, !tbaa !9
  %2718 = sub nsw i64 %2717, 1
  store i64 %2718, ptr %35, align 8, !tbaa !9
  %2719 = load ptr, ptr %20, align 8, !tbaa !5
  %2720 = load i64, ptr %45, align 8, !tbaa !9
  %2721 = load i64, ptr %28, align 8, !tbaa !9
  %2722 = mul nsw i64 %2720, %2721
  %2723 = add nsw i64 %2722, 1
  %2724 = getelementptr inbounds float, ptr %2719, i64 %2723
  %2725 = load ptr, ptr %24, align 8, !tbaa !5
  %2726 = load i64, ptr %46, align 8, !tbaa !9
  %2727 = load i64, ptr %32, align 8, !tbaa !9
  %2728 = mul nsw i64 %2726, %2727
  %2729 = add nsw i64 %2728, 1
  %2730 = getelementptr inbounds float, ptr %2725, i64 %2729
  %2731 = call double @f2c_sdot(ptr noundef %35, ptr noundef %2724, ptr noundef @c__1, ptr noundef %2730, ptr noundef @c__1)
  %2732 = fptrunc double %2731 to float
  store float %2732, ptr %57, align 4, !tbaa !11
  %2733 = load ptr, ptr %19, align 8, !tbaa !5
  %2734 = load i64, ptr %2733, align 8, !tbaa !9
  %2735 = load i64, ptr %47, align 8, !tbaa !9
  %2736 = sub nsw i64 %2734, %2735
  store i64 %2736, ptr %35, align 8, !tbaa !9
  %2737 = load i64, ptr %47, align 8, !tbaa !9
  %2738 = add nsw i64 %2737, 1
  store i64 %2738, ptr %36, align 8, !tbaa !9
  %2739 = load i64, ptr %47, align 8, !tbaa !9
  %2740 = add nsw i64 %2739, 1
  store i64 %2740, ptr %37, align 8, !tbaa !9
  %2741 = load ptr, ptr %24, align 8, !tbaa !5
  %2742 = load i64, ptr %45, align 8, !tbaa !9
  %2743 = load i64, ptr %36, align 8, !tbaa !9
  %2744 = load ptr, ptr %19, align 8, !tbaa !5
  %2745 = load i64, ptr %2744, align 8, !tbaa !9
  %2746 = icmp sle i64 %2743, %2745
  br i1 %2746, label %2747, label %2749

2747:                                             ; preds = %2694
  %2748 = load i64, ptr %36, align 8, !tbaa !9
  br label %2752

2749:                                             ; preds = %2694
  %2750 = load ptr, ptr %19, align 8, !tbaa !5
  %2751 = load i64, ptr %2750, align 8, !tbaa !9
  br label %2752

2752:                                             ; preds = %2749, %2747
  %2753 = phi i64 [ %2748, %2747 ], [ %2751, %2749 ]
  %2754 = load i64, ptr %32, align 8, !tbaa !9
  %2755 = mul nsw i64 %2753, %2754
  %2756 = add nsw i64 %2742, %2755
  %2757 = getelementptr inbounds float, ptr %2741, i64 %2756
  %2758 = load ptr, ptr %25, align 8, !tbaa !5
  %2759 = load ptr, ptr %22, align 8, !tbaa !5
  %2760 = load i64, ptr %46, align 8, !tbaa !9
  %2761 = load i64, ptr %37, align 8, !tbaa !9
  %2762 = load ptr, ptr %19, align 8, !tbaa !5
  %2763 = load i64, ptr %2762, align 8, !tbaa !9
  %2764 = icmp sle i64 %2761, %2763
  br i1 %2764, label %2765, label %2767

2765:                                             ; preds = %2752
  %2766 = load i64, ptr %37, align 8, !tbaa !9
  br label %2770

2767:                                             ; preds = %2752
  %2768 = load ptr, ptr %19, align 8, !tbaa !5
  %2769 = load i64, ptr %2768, align 8, !tbaa !9
  br label %2770

2770:                                             ; preds = %2767, %2765
  %2771 = phi i64 [ %2766, %2765 ], [ %2769, %2767 ]
  %2772 = load i64, ptr %30, align 8, !tbaa !9
  %2773 = mul nsw i64 %2771, %2772
  %2774 = add nsw i64 %2760, %2773
  %2775 = getelementptr inbounds float, ptr %2759, i64 %2774
  %2776 = load ptr, ptr %23, align 8, !tbaa !5
  %2777 = call double @f2c_sdot(ptr noundef %35, ptr noundef %2757, ptr noundef %2758, ptr noundef %2775, ptr noundef %2776)
  %2778 = fptrunc double %2777 to float
  store float %2778, ptr %58, align 4, !tbaa !11
  %2779 = load ptr, ptr %24, align 8, !tbaa !5
  %2780 = load i64, ptr %45, align 8, !tbaa !9
  %2781 = load i64, ptr %46, align 8, !tbaa !9
  %2782 = load i64, ptr %32, align 8, !tbaa !9
  %2783 = mul nsw i64 %2781, %2782
  %2784 = add nsw i64 %2780, %2783
  %2785 = getelementptr inbounds float, ptr %2779, i64 %2784
  %2786 = load float, ptr %2785, align 4, !tbaa !11
  %2787 = load float, ptr %57, align 4, !tbaa !11
  %2788 = load float, ptr %54, align 4, !tbaa !11
  %2789 = load float, ptr %58, align 4, !tbaa !11
  %2790 = call float @llvm.fmuladd.f32(float %2788, float %2789, float %2787)
  %2791 = fsub float %2786, %2790
  %2792 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 1
  store float %2791, ptr %2792, align 4, !tbaa !11
  %2793 = load float, ptr %54, align 4, !tbaa !11
  %2794 = fneg float %2793
  %2795 = load ptr, ptr %22, align 8, !tbaa !5
  %2796 = load i64, ptr %46, align 8, !tbaa !9
  %2797 = load i64, ptr %46, align 8, !tbaa !9
  %2798 = load i64, ptr %30, align 8, !tbaa !9
  %2799 = mul nsw i64 %2797, %2798
  %2800 = add nsw i64 %2796, %2799
  %2801 = getelementptr inbounds float, ptr %2795, i64 %2800
  %2802 = load float, ptr %2801, align 4, !tbaa !11
  %2803 = fmul float %2794, %2802
  store float %2803, ptr %38, align 4, !tbaa !11
  %2804 = load ptr, ptr %20, align 8, !tbaa !5
  %2805 = load i64, ptr %44, align 8, !tbaa !9
  %2806 = load i64, ptr %44, align 8, !tbaa !9
  %2807 = load i64, ptr %28, align 8, !tbaa !9
  %2808 = mul nsw i64 %2806, %2807
  %2809 = add nsw i64 %2805, %2808
  %2810 = getelementptr inbounds float, ptr %2804, i64 %2809
  %2811 = load ptr, ptr %21, align 8, !tbaa !5
  %2812 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %2813 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %2814 = call i32 @slaln2_(ptr noundef @c_true, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %56, ptr noundef @c_b26, ptr noundef %2810, ptr noundef %2811, ptr noundef @c_b26, ptr noundef @c_b26, ptr noundef %2812, ptr noundef @c__2, ptr noundef %38, ptr noundef @c_b30, ptr noundef %2813, ptr noundef @c__2, ptr noundef %62, ptr noundef %61, ptr noundef %55)
  %2815 = load i64, ptr %55, align 8, !tbaa !9
  %2816 = icmp ne i64 %2815, 0
  br i1 %2816, label %2817, label %2819

2817:                                             ; preds = %2770
  %2818 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %2818, align 8, !tbaa !9
  br label %2819

2819:                                             ; preds = %2817, %2770
  %2820 = load float, ptr %62, align 4, !tbaa !11
  %2821 = fcmp une float %2820, 1.000000e+00
  br i1 %2821, label %2822, label %2846

2822:                                             ; preds = %2819
  %2823 = load ptr, ptr %19, align 8, !tbaa !5
  %2824 = load i64, ptr %2823, align 8, !tbaa !9
  store i64 %2824, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %2825

2825:                                             ; preds = %2838, %2822
  %2826 = load i64, ptr %40, align 8, !tbaa !9
  %2827 = load i64, ptr %35, align 8, !tbaa !9
  %2828 = icmp sle i64 %2826, %2827
  br i1 %2828, label %2829, label %2841

2829:                                             ; preds = %2825
  %2830 = load ptr, ptr %18, align 8, !tbaa !5
  %2831 = load ptr, ptr %24, align 8, !tbaa !5
  %2832 = load i64, ptr %40, align 8, !tbaa !9
  %2833 = load i64, ptr %32, align 8, !tbaa !9
  %2834 = mul nsw i64 %2832, %2833
  %2835 = add nsw i64 %2834, 1
  %2836 = getelementptr inbounds float, ptr %2831, i64 %2835
  %2837 = call i32 @f2c_sscal(ptr noundef %2830, ptr noundef %62, ptr noundef %2836, ptr noundef @c__1)
  br label %2838

2838:                                             ; preds = %2829
  %2839 = load i64, ptr %40, align 8, !tbaa !9
  %2840 = add nsw i64 %2839, 1
  store i64 %2840, ptr %40, align 8, !tbaa !9
  br label %2825, !llvm.loop !27

2841:                                             ; preds = %2825
  %2842 = load float, ptr %62, align 4, !tbaa !11
  %2843 = load ptr, ptr %26, align 8, !tbaa !5
  %2844 = load float, ptr %2843, align 4, !tbaa !11
  %2845 = fmul float %2844, %2842
  store float %2845, ptr %2843, align 4, !tbaa !11
  br label %2846

2846:                                             ; preds = %2841, %2819
  %2847 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %2848 = load float, ptr %2847, align 16, !tbaa !11
  %2849 = load ptr, ptr %24, align 8, !tbaa !5
  %2850 = load i64, ptr %44, align 8, !tbaa !9
  %2851 = load i64, ptr %46, align 8, !tbaa !9
  %2852 = load i64, ptr %32, align 8, !tbaa !9
  %2853 = mul nsw i64 %2851, %2852
  %2854 = add nsw i64 %2850, %2853
  %2855 = getelementptr inbounds float, ptr %2849, i64 %2854
  store float %2848, ptr %2855, align 4, !tbaa !11
  %2856 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 1
  %2857 = load float, ptr %2856, align 4, !tbaa !11
  %2858 = load ptr, ptr %24, align 8, !tbaa !5
  %2859 = load i64, ptr %45, align 8, !tbaa !9
  %2860 = load i64, ptr %46, align 8, !tbaa !9
  %2861 = load i64, ptr %32, align 8, !tbaa !9
  %2862 = mul nsw i64 %2860, %2861
  %2863 = add nsw i64 %2859, %2862
  %2864 = getelementptr inbounds float, ptr %2858, i64 %2863
  store float %2857, ptr %2864, align 4, !tbaa !11
  br label %3505

2865:                                             ; preds = %2636, %2632
  %2866 = load i64, ptr %46, align 8, !tbaa !9
  %2867 = load i64, ptr %47, align 8, !tbaa !9
  %2868 = icmp ne i64 %2866, %2867
  br i1 %2868, label %2869, label %3102

2869:                                             ; preds = %2865
  %2870 = load i64, ptr %44, align 8, !tbaa !9
  %2871 = load i64, ptr %45, align 8, !tbaa !9
  %2872 = icmp eq i64 %2870, %2871
  br i1 %2872, label %2873, label %3102

2873:                                             ; preds = %2869
  %2874 = load i64, ptr %44, align 8, !tbaa !9
  %2875 = sub nsw i64 %2874, 1
  store i64 %2875, ptr %35, align 8, !tbaa !9
  %2876 = load ptr, ptr %20, align 8, !tbaa !5
  %2877 = load i64, ptr %44, align 8, !tbaa !9
  %2878 = load i64, ptr %28, align 8, !tbaa !9
  %2879 = mul nsw i64 %2877, %2878
  %2880 = add nsw i64 %2879, 1
  %2881 = getelementptr inbounds float, ptr %2876, i64 %2880
  %2882 = load ptr, ptr %24, align 8, !tbaa !5
  %2883 = load i64, ptr %46, align 8, !tbaa !9
  %2884 = load i64, ptr %32, align 8, !tbaa !9
  %2885 = mul nsw i64 %2883, %2884
  %2886 = add nsw i64 %2885, 1
  %2887 = getelementptr inbounds float, ptr %2882, i64 %2886
  %2888 = call double @f2c_sdot(ptr noundef %35, ptr noundef %2881, ptr noundef @c__1, ptr noundef %2887, ptr noundef @c__1)
  %2889 = fptrunc double %2888 to float
  store float %2889, ptr %57, align 4, !tbaa !11
  %2890 = load ptr, ptr %19, align 8, !tbaa !5
  %2891 = load i64, ptr %2890, align 8, !tbaa !9
  %2892 = load i64, ptr %47, align 8, !tbaa !9
  %2893 = sub nsw i64 %2891, %2892
  store i64 %2893, ptr %35, align 8, !tbaa !9
  %2894 = load i64, ptr %47, align 8, !tbaa !9
  %2895 = add nsw i64 %2894, 1
  store i64 %2895, ptr %36, align 8, !tbaa !9
  %2896 = load i64, ptr %47, align 8, !tbaa !9
  %2897 = add nsw i64 %2896, 1
  store i64 %2897, ptr %37, align 8, !tbaa !9
  %2898 = load ptr, ptr %24, align 8, !tbaa !5
  %2899 = load i64, ptr %44, align 8, !tbaa !9
  %2900 = load i64, ptr %36, align 8, !tbaa !9
  %2901 = load ptr, ptr %19, align 8, !tbaa !5
  %2902 = load i64, ptr %2901, align 8, !tbaa !9
  %2903 = icmp sle i64 %2900, %2902
  br i1 %2903, label %2904, label %2906

2904:                                             ; preds = %2873
  %2905 = load i64, ptr %36, align 8, !tbaa !9
  br label %2909

2906:                                             ; preds = %2873
  %2907 = load ptr, ptr %19, align 8, !tbaa !5
  %2908 = load i64, ptr %2907, align 8, !tbaa !9
  br label %2909

2909:                                             ; preds = %2906, %2904
  %2910 = phi i64 [ %2905, %2904 ], [ %2908, %2906 ]
  %2911 = load i64, ptr %32, align 8, !tbaa !9
  %2912 = mul nsw i64 %2910, %2911
  %2913 = add nsw i64 %2899, %2912
  %2914 = getelementptr inbounds float, ptr %2898, i64 %2913
  %2915 = load ptr, ptr %25, align 8, !tbaa !5
  %2916 = load ptr, ptr %22, align 8, !tbaa !5
  %2917 = load i64, ptr %46, align 8, !tbaa !9
  %2918 = load i64, ptr %37, align 8, !tbaa !9
  %2919 = load ptr, ptr %19, align 8, !tbaa !5
  %2920 = load i64, ptr %2919, align 8, !tbaa !9
  %2921 = icmp sle i64 %2918, %2920
  br i1 %2921, label %2922, label %2924

2922:                                             ; preds = %2909
  %2923 = load i64, ptr %37, align 8, !tbaa !9
  br label %2927

2924:                                             ; preds = %2909
  %2925 = load ptr, ptr %19, align 8, !tbaa !5
  %2926 = load i64, ptr %2925, align 8, !tbaa !9
  br label %2927

2927:                                             ; preds = %2924, %2922
  %2928 = phi i64 [ %2923, %2922 ], [ %2926, %2924 ]
  %2929 = load i64, ptr %30, align 8, !tbaa !9
  %2930 = mul nsw i64 %2928, %2929
  %2931 = add nsw i64 %2917, %2930
  %2932 = getelementptr inbounds float, ptr %2916, i64 %2931
  %2933 = load ptr, ptr %23, align 8, !tbaa !5
  %2934 = call double @f2c_sdot(ptr noundef %35, ptr noundef %2914, ptr noundef %2915, ptr noundef %2932, ptr noundef %2933)
  %2935 = fptrunc double %2934 to float
  store float %2935, ptr %58, align 4, !tbaa !11
  %2936 = load float, ptr %54, align 4, !tbaa !11
  %2937 = load ptr, ptr %24, align 8, !tbaa !5
  %2938 = load i64, ptr %44, align 8, !tbaa !9
  %2939 = load i64, ptr %46, align 8, !tbaa !9
  %2940 = load i64, ptr %32, align 8, !tbaa !9
  %2941 = mul nsw i64 %2939, %2940
  %2942 = add nsw i64 %2938, %2941
  %2943 = getelementptr inbounds float, ptr %2937, i64 %2942
  %2944 = load float, ptr %2943, align 4, !tbaa !11
  %2945 = load float, ptr %57, align 4, !tbaa !11
  %2946 = load float, ptr %54, align 4, !tbaa !11
  %2947 = load float, ptr %58, align 4, !tbaa !11
  %2948 = call float @llvm.fmuladd.f32(float %2946, float %2947, float %2945)
  %2949 = fsub float %2944, %2948
  %2950 = fmul float %2936, %2949
  %2951 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %2950, ptr %2951, align 16, !tbaa !11
  %2952 = load i64, ptr %44, align 8, !tbaa !9
  %2953 = sub nsw i64 %2952, 1
  store i64 %2953, ptr %35, align 8, !tbaa !9
  %2954 = load ptr, ptr %20, align 8, !tbaa !5
  %2955 = load i64, ptr %44, align 8, !tbaa !9
  %2956 = load i64, ptr %28, align 8, !tbaa !9
  %2957 = mul nsw i64 %2955, %2956
  %2958 = add nsw i64 %2957, 1
  %2959 = getelementptr inbounds float, ptr %2954, i64 %2958
  %2960 = load ptr, ptr %24, align 8, !tbaa !5
  %2961 = load i64, ptr %47, align 8, !tbaa !9
  %2962 = load i64, ptr %32, align 8, !tbaa !9
  %2963 = mul nsw i64 %2961, %2962
  %2964 = add nsw i64 %2963, 1
  %2965 = getelementptr inbounds float, ptr %2960, i64 %2964
  %2966 = call double @f2c_sdot(ptr noundef %35, ptr noundef %2959, ptr noundef @c__1, ptr noundef %2965, ptr noundef @c__1)
  %2967 = fptrunc double %2966 to float
  store float %2967, ptr %57, align 4, !tbaa !11
  %2968 = load ptr, ptr %19, align 8, !tbaa !5
  %2969 = load i64, ptr %2968, align 8, !tbaa !9
  %2970 = load i64, ptr %47, align 8, !tbaa !9
  %2971 = sub nsw i64 %2969, %2970
  store i64 %2971, ptr %35, align 8, !tbaa !9
  %2972 = load i64, ptr %47, align 8, !tbaa !9
  %2973 = add nsw i64 %2972, 1
  store i64 %2973, ptr %36, align 8, !tbaa !9
  %2974 = load i64, ptr %47, align 8, !tbaa !9
  %2975 = add nsw i64 %2974, 1
  store i64 %2975, ptr %37, align 8, !tbaa !9
  %2976 = load ptr, ptr %24, align 8, !tbaa !5
  %2977 = load i64, ptr %44, align 8, !tbaa !9
  %2978 = load i64, ptr %36, align 8, !tbaa !9
  %2979 = load ptr, ptr %19, align 8, !tbaa !5
  %2980 = load i64, ptr %2979, align 8, !tbaa !9
  %2981 = icmp sle i64 %2978, %2980
  br i1 %2981, label %2982, label %2984

2982:                                             ; preds = %2927
  %2983 = load i64, ptr %36, align 8, !tbaa !9
  br label %2987

2984:                                             ; preds = %2927
  %2985 = load ptr, ptr %19, align 8, !tbaa !5
  %2986 = load i64, ptr %2985, align 8, !tbaa !9
  br label %2987

2987:                                             ; preds = %2984, %2982
  %2988 = phi i64 [ %2983, %2982 ], [ %2986, %2984 ]
  %2989 = load i64, ptr %32, align 8, !tbaa !9
  %2990 = mul nsw i64 %2988, %2989
  %2991 = add nsw i64 %2977, %2990
  %2992 = getelementptr inbounds float, ptr %2976, i64 %2991
  %2993 = load ptr, ptr %25, align 8, !tbaa !5
  %2994 = load ptr, ptr %22, align 8, !tbaa !5
  %2995 = load i64, ptr %47, align 8, !tbaa !9
  %2996 = load i64, ptr %37, align 8, !tbaa !9
  %2997 = load ptr, ptr %19, align 8, !tbaa !5
  %2998 = load i64, ptr %2997, align 8, !tbaa !9
  %2999 = icmp sle i64 %2996, %2998
  br i1 %2999, label %3000, label %3002

3000:                                             ; preds = %2987
  %3001 = load i64, ptr %37, align 8, !tbaa !9
  br label %3005

3002:                                             ; preds = %2987
  %3003 = load ptr, ptr %19, align 8, !tbaa !5
  %3004 = load i64, ptr %3003, align 8, !tbaa !9
  br label %3005

3005:                                             ; preds = %3002, %3000
  %3006 = phi i64 [ %3001, %3000 ], [ %3004, %3002 ]
  %3007 = load i64, ptr %30, align 8, !tbaa !9
  %3008 = mul nsw i64 %3006, %3007
  %3009 = add nsw i64 %2995, %3008
  %3010 = getelementptr inbounds float, ptr %2994, i64 %3009
  %3011 = load ptr, ptr %23, align 8, !tbaa !5
  %3012 = call double @f2c_sdot(ptr noundef %35, ptr noundef %2992, ptr noundef %2993, ptr noundef %3010, ptr noundef %3011)
  %3013 = fptrunc double %3012 to float
  store float %3013, ptr %58, align 4, !tbaa !11
  %3014 = load float, ptr %54, align 4, !tbaa !11
  %3015 = load ptr, ptr %24, align 8, !tbaa !5
  %3016 = load i64, ptr %44, align 8, !tbaa !9
  %3017 = load i64, ptr %47, align 8, !tbaa !9
  %3018 = load i64, ptr %32, align 8, !tbaa !9
  %3019 = mul nsw i64 %3017, %3018
  %3020 = add nsw i64 %3016, %3019
  %3021 = getelementptr inbounds float, ptr %3015, i64 %3020
  %3022 = load float, ptr %3021, align 4, !tbaa !11
  %3023 = load float, ptr %57, align 4, !tbaa !11
  %3024 = load float, ptr %54, align 4, !tbaa !11
  %3025 = load float, ptr %58, align 4, !tbaa !11
  %3026 = call float @llvm.fmuladd.f32(float %3024, float %3025, float %3023)
  %3027 = fsub float %3022, %3026
  %3028 = fmul float %3014, %3027
  %3029 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 1
  store float %3028, ptr %3029, align 4, !tbaa !11
  %3030 = load float, ptr %54, align 4, !tbaa !11
  %3031 = fneg float %3030
  %3032 = load ptr, ptr %20, align 8, !tbaa !5
  %3033 = load i64, ptr %44, align 8, !tbaa !9
  %3034 = load i64, ptr %44, align 8, !tbaa !9
  %3035 = load i64, ptr %28, align 8, !tbaa !9
  %3036 = mul nsw i64 %3034, %3035
  %3037 = add nsw i64 %3033, %3036
  %3038 = getelementptr inbounds float, ptr %3032, i64 %3037
  %3039 = load float, ptr %3038, align 4, !tbaa !11
  %3040 = fmul float %3031, %3039
  store float %3040, ptr %38, align 4, !tbaa !11
  %3041 = load ptr, ptr %22, align 8, !tbaa !5
  %3042 = load i64, ptr %46, align 8, !tbaa !9
  %3043 = load i64, ptr %46, align 8, !tbaa !9
  %3044 = load i64, ptr %30, align 8, !tbaa !9
  %3045 = mul nsw i64 %3043, %3044
  %3046 = add nsw i64 %3042, %3045
  %3047 = getelementptr inbounds float, ptr %3041, i64 %3046
  %3048 = load ptr, ptr %23, align 8, !tbaa !5
  %3049 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %3050 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %3051 = call i32 @slaln2_(ptr noundef @c_false, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %56, ptr noundef @c_b26, ptr noundef %3047, ptr noundef %3048, ptr noundef @c_b26, ptr noundef @c_b26, ptr noundef %3049, ptr noundef @c__2, ptr noundef %38, ptr noundef @c_b30, ptr noundef %3050, ptr noundef @c__2, ptr noundef %62, ptr noundef %61, ptr noundef %55)
  %3052 = load i64, ptr %55, align 8, !tbaa !9
  %3053 = icmp ne i64 %3052, 0
  br i1 %3053, label %3054, label %3056

3054:                                             ; preds = %3005
  %3055 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %3055, align 8, !tbaa !9
  br label %3056

3056:                                             ; preds = %3054, %3005
  %3057 = load float, ptr %62, align 4, !tbaa !11
  %3058 = fcmp une float %3057, 1.000000e+00
  br i1 %3058, label %3059, label %3083

3059:                                             ; preds = %3056
  %3060 = load ptr, ptr %19, align 8, !tbaa !5
  %3061 = load i64, ptr %3060, align 8, !tbaa !9
  store i64 %3061, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %3062

3062:                                             ; preds = %3075, %3059
  %3063 = load i64, ptr %40, align 8, !tbaa !9
  %3064 = load i64, ptr %35, align 8, !tbaa !9
  %3065 = icmp sle i64 %3063, %3064
  br i1 %3065, label %3066, label %3078

3066:                                             ; preds = %3062
  %3067 = load ptr, ptr %18, align 8, !tbaa !5
  %3068 = load ptr, ptr %24, align 8, !tbaa !5
  %3069 = load i64, ptr %40, align 8, !tbaa !9
  %3070 = load i64, ptr %32, align 8, !tbaa !9
  %3071 = mul nsw i64 %3069, %3070
  %3072 = add nsw i64 %3071, 1
  %3073 = getelementptr inbounds float, ptr %3068, i64 %3072
  %3074 = call i32 @f2c_sscal(ptr noundef %3067, ptr noundef %62, ptr noundef %3073, ptr noundef @c__1)
  br label %3075

3075:                                             ; preds = %3066
  %3076 = load i64, ptr %40, align 8, !tbaa !9
  %3077 = add nsw i64 %3076, 1
  store i64 %3077, ptr %40, align 8, !tbaa !9
  br label %3062, !llvm.loop !28

3078:                                             ; preds = %3062
  %3079 = load float, ptr %62, align 4, !tbaa !11
  %3080 = load ptr, ptr %26, align 8, !tbaa !5
  %3081 = load float, ptr %3080, align 4, !tbaa !11
  %3082 = fmul float %3081, %3079
  store float %3082, ptr %3080, align 4, !tbaa !11
  br label %3083

3083:                                             ; preds = %3078, %3056
  %3084 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %3085 = load float, ptr %3084, align 16, !tbaa !11
  %3086 = load ptr, ptr %24, align 8, !tbaa !5
  %3087 = load i64, ptr %44, align 8, !tbaa !9
  %3088 = load i64, ptr %46, align 8, !tbaa !9
  %3089 = load i64, ptr %32, align 8, !tbaa !9
  %3090 = mul nsw i64 %3088, %3089
  %3091 = add nsw i64 %3087, %3090
  %3092 = getelementptr inbounds float, ptr %3086, i64 %3091
  store float %3085, ptr %3092, align 4, !tbaa !11
  %3093 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 1
  %3094 = load float, ptr %3093, align 4, !tbaa !11
  %3095 = load ptr, ptr %24, align 8, !tbaa !5
  %3096 = load i64, ptr %44, align 8, !tbaa !9
  %3097 = load i64, ptr %47, align 8, !tbaa !9
  %3098 = load i64, ptr %32, align 8, !tbaa !9
  %3099 = mul nsw i64 %3097, %3098
  %3100 = add nsw i64 %3096, %3099
  %3101 = getelementptr inbounds float, ptr %3095, i64 %3100
  store float %3094, ptr %3101, align 4, !tbaa !11
  br label %3504

3102:                                             ; preds = %2869, %2865
  %3103 = load i64, ptr %46, align 8, !tbaa !9
  %3104 = load i64, ptr %47, align 8, !tbaa !9
  %3105 = icmp ne i64 %3103, %3104
  br i1 %3105, label %3106, label %3503

3106:                                             ; preds = %3102
  %3107 = load i64, ptr %44, align 8, !tbaa !9
  %3108 = load i64, ptr %45, align 8, !tbaa !9
  %3109 = icmp ne i64 %3107, %3108
  br i1 %3109, label %3110, label %3503

3110:                                             ; preds = %3106
  %3111 = load i64, ptr %44, align 8, !tbaa !9
  %3112 = sub nsw i64 %3111, 1
  store i64 %3112, ptr %35, align 8, !tbaa !9
  %3113 = load ptr, ptr %20, align 8, !tbaa !5
  %3114 = load i64, ptr %44, align 8, !tbaa !9
  %3115 = load i64, ptr %28, align 8, !tbaa !9
  %3116 = mul nsw i64 %3114, %3115
  %3117 = add nsw i64 %3116, 1
  %3118 = getelementptr inbounds float, ptr %3113, i64 %3117
  %3119 = load ptr, ptr %24, align 8, !tbaa !5
  %3120 = load i64, ptr %46, align 8, !tbaa !9
  %3121 = load i64, ptr %32, align 8, !tbaa !9
  %3122 = mul nsw i64 %3120, %3121
  %3123 = add nsw i64 %3122, 1
  %3124 = getelementptr inbounds float, ptr %3119, i64 %3123
  %3125 = call double @f2c_sdot(ptr noundef %35, ptr noundef %3118, ptr noundef @c__1, ptr noundef %3124, ptr noundef @c__1)
  %3126 = fptrunc double %3125 to float
  store float %3126, ptr %57, align 4, !tbaa !11
  %3127 = load ptr, ptr %19, align 8, !tbaa !5
  %3128 = load i64, ptr %3127, align 8, !tbaa !9
  %3129 = load i64, ptr %47, align 8, !tbaa !9
  %3130 = sub nsw i64 %3128, %3129
  store i64 %3130, ptr %35, align 8, !tbaa !9
  %3131 = load i64, ptr %47, align 8, !tbaa !9
  %3132 = add nsw i64 %3131, 1
  store i64 %3132, ptr %36, align 8, !tbaa !9
  %3133 = load i64, ptr %47, align 8, !tbaa !9
  %3134 = add nsw i64 %3133, 1
  store i64 %3134, ptr %37, align 8, !tbaa !9
  %3135 = load ptr, ptr %24, align 8, !tbaa !5
  %3136 = load i64, ptr %44, align 8, !tbaa !9
  %3137 = load i64, ptr %36, align 8, !tbaa !9
  %3138 = load ptr, ptr %19, align 8, !tbaa !5
  %3139 = load i64, ptr %3138, align 8, !tbaa !9
  %3140 = icmp sle i64 %3137, %3139
  br i1 %3140, label %3141, label %3143

3141:                                             ; preds = %3110
  %3142 = load i64, ptr %36, align 8, !tbaa !9
  br label %3146

3143:                                             ; preds = %3110
  %3144 = load ptr, ptr %19, align 8, !tbaa !5
  %3145 = load i64, ptr %3144, align 8, !tbaa !9
  br label %3146

3146:                                             ; preds = %3143, %3141
  %3147 = phi i64 [ %3142, %3141 ], [ %3145, %3143 ]
  %3148 = load i64, ptr %32, align 8, !tbaa !9
  %3149 = mul nsw i64 %3147, %3148
  %3150 = add nsw i64 %3136, %3149
  %3151 = getelementptr inbounds float, ptr %3135, i64 %3150
  %3152 = load ptr, ptr %25, align 8, !tbaa !5
  %3153 = load ptr, ptr %22, align 8, !tbaa !5
  %3154 = load i64, ptr %46, align 8, !tbaa !9
  %3155 = load i64, ptr %37, align 8, !tbaa !9
  %3156 = load ptr, ptr %19, align 8, !tbaa !5
  %3157 = load i64, ptr %3156, align 8, !tbaa !9
  %3158 = icmp sle i64 %3155, %3157
  br i1 %3158, label %3159, label %3161

3159:                                             ; preds = %3146
  %3160 = load i64, ptr %37, align 8, !tbaa !9
  br label %3164

3161:                                             ; preds = %3146
  %3162 = load ptr, ptr %19, align 8, !tbaa !5
  %3163 = load i64, ptr %3162, align 8, !tbaa !9
  br label %3164

3164:                                             ; preds = %3161, %3159
  %3165 = phi i64 [ %3160, %3159 ], [ %3163, %3161 ]
  %3166 = load i64, ptr %30, align 8, !tbaa !9
  %3167 = mul nsw i64 %3165, %3166
  %3168 = add nsw i64 %3154, %3167
  %3169 = getelementptr inbounds float, ptr %3153, i64 %3168
  %3170 = load ptr, ptr %23, align 8, !tbaa !5
  %3171 = call double @f2c_sdot(ptr noundef %35, ptr noundef %3151, ptr noundef %3152, ptr noundef %3169, ptr noundef %3170)
  %3172 = fptrunc double %3171 to float
  store float %3172, ptr %58, align 4, !tbaa !11
  %3173 = load ptr, ptr %24, align 8, !tbaa !5
  %3174 = load i64, ptr %44, align 8, !tbaa !9
  %3175 = load i64, ptr %46, align 8, !tbaa !9
  %3176 = load i64, ptr %32, align 8, !tbaa !9
  %3177 = mul nsw i64 %3175, %3176
  %3178 = add nsw i64 %3174, %3177
  %3179 = getelementptr inbounds float, ptr %3173, i64 %3178
  %3180 = load float, ptr %3179, align 4, !tbaa !11
  %3181 = load float, ptr %57, align 4, !tbaa !11
  %3182 = load float, ptr %54, align 4, !tbaa !11
  %3183 = load float, ptr %58, align 4, !tbaa !11
  %3184 = call float @llvm.fmuladd.f32(float %3182, float %3183, float %3181)
  %3185 = fsub float %3180, %3184
  %3186 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %3185, ptr %3186, align 16, !tbaa !11
  %3187 = load i64, ptr %44, align 8, !tbaa !9
  %3188 = sub nsw i64 %3187, 1
  store i64 %3188, ptr %35, align 8, !tbaa !9
  %3189 = load ptr, ptr %20, align 8, !tbaa !5
  %3190 = load i64, ptr %44, align 8, !tbaa !9
  %3191 = load i64, ptr %28, align 8, !tbaa !9
  %3192 = mul nsw i64 %3190, %3191
  %3193 = add nsw i64 %3192, 1
  %3194 = getelementptr inbounds float, ptr %3189, i64 %3193
  %3195 = load ptr, ptr %24, align 8, !tbaa !5
  %3196 = load i64, ptr %47, align 8, !tbaa !9
  %3197 = load i64, ptr %32, align 8, !tbaa !9
  %3198 = mul nsw i64 %3196, %3197
  %3199 = add nsw i64 %3198, 1
  %3200 = getelementptr inbounds float, ptr %3195, i64 %3199
  %3201 = call double @f2c_sdot(ptr noundef %35, ptr noundef %3194, ptr noundef @c__1, ptr noundef %3200, ptr noundef @c__1)
  %3202 = fptrunc double %3201 to float
  store float %3202, ptr %57, align 4, !tbaa !11
  %3203 = load ptr, ptr %19, align 8, !tbaa !5
  %3204 = load i64, ptr %3203, align 8, !tbaa !9
  %3205 = load i64, ptr %47, align 8, !tbaa !9
  %3206 = sub nsw i64 %3204, %3205
  store i64 %3206, ptr %35, align 8, !tbaa !9
  %3207 = load i64, ptr %47, align 8, !tbaa !9
  %3208 = add nsw i64 %3207, 1
  store i64 %3208, ptr %36, align 8, !tbaa !9
  %3209 = load i64, ptr %47, align 8, !tbaa !9
  %3210 = add nsw i64 %3209, 1
  store i64 %3210, ptr %37, align 8, !tbaa !9
  %3211 = load ptr, ptr %24, align 8, !tbaa !5
  %3212 = load i64, ptr %44, align 8, !tbaa !9
  %3213 = load i64, ptr %36, align 8, !tbaa !9
  %3214 = load ptr, ptr %19, align 8, !tbaa !5
  %3215 = load i64, ptr %3214, align 8, !tbaa !9
  %3216 = icmp sle i64 %3213, %3215
  br i1 %3216, label %3217, label %3219

3217:                                             ; preds = %3164
  %3218 = load i64, ptr %36, align 8, !tbaa !9
  br label %3222

3219:                                             ; preds = %3164
  %3220 = load ptr, ptr %19, align 8, !tbaa !5
  %3221 = load i64, ptr %3220, align 8, !tbaa !9
  br label %3222

3222:                                             ; preds = %3219, %3217
  %3223 = phi i64 [ %3218, %3217 ], [ %3221, %3219 ]
  %3224 = load i64, ptr %32, align 8, !tbaa !9
  %3225 = mul nsw i64 %3223, %3224
  %3226 = add nsw i64 %3212, %3225
  %3227 = getelementptr inbounds float, ptr %3211, i64 %3226
  %3228 = load ptr, ptr %25, align 8, !tbaa !5
  %3229 = load ptr, ptr %22, align 8, !tbaa !5
  %3230 = load i64, ptr %47, align 8, !tbaa !9
  %3231 = load i64, ptr %37, align 8, !tbaa !9
  %3232 = load ptr, ptr %19, align 8, !tbaa !5
  %3233 = load i64, ptr %3232, align 8, !tbaa !9
  %3234 = icmp sle i64 %3231, %3233
  br i1 %3234, label %3235, label %3237

3235:                                             ; preds = %3222
  %3236 = load i64, ptr %37, align 8, !tbaa !9
  br label %3240

3237:                                             ; preds = %3222
  %3238 = load ptr, ptr %19, align 8, !tbaa !5
  %3239 = load i64, ptr %3238, align 8, !tbaa !9
  br label %3240

3240:                                             ; preds = %3237, %3235
  %3241 = phi i64 [ %3236, %3235 ], [ %3239, %3237 ]
  %3242 = load i64, ptr %30, align 8, !tbaa !9
  %3243 = mul nsw i64 %3241, %3242
  %3244 = add nsw i64 %3230, %3243
  %3245 = getelementptr inbounds float, ptr %3229, i64 %3244
  %3246 = load ptr, ptr %23, align 8, !tbaa !5
  %3247 = call double @f2c_sdot(ptr noundef %35, ptr noundef %3227, ptr noundef %3228, ptr noundef %3245, ptr noundef %3246)
  %3248 = fptrunc double %3247 to float
  store float %3248, ptr %58, align 4, !tbaa !11
  %3249 = load ptr, ptr %24, align 8, !tbaa !5
  %3250 = load i64, ptr %44, align 8, !tbaa !9
  %3251 = load i64, ptr %47, align 8, !tbaa !9
  %3252 = load i64, ptr %32, align 8, !tbaa !9
  %3253 = mul nsw i64 %3251, %3252
  %3254 = add nsw i64 %3250, %3253
  %3255 = getelementptr inbounds float, ptr %3249, i64 %3254
  %3256 = load float, ptr %3255, align 4, !tbaa !11
  %3257 = load float, ptr %57, align 4, !tbaa !11
  %3258 = load float, ptr %54, align 4, !tbaa !11
  %3259 = load float, ptr %58, align 4, !tbaa !11
  %3260 = call float @llvm.fmuladd.f32(float %3258, float %3259, float %3257)
  %3261 = fsub float %3256, %3260
  %3262 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 2
  store float %3261, ptr %3262, align 8, !tbaa !11
  %3263 = load i64, ptr %44, align 8, !tbaa !9
  %3264 = sub nsw i64 %3263, 1
  store i64 %3264, ptr %35, align 8, !tbaa !9
  %3265 = load ptr, ptr %20, align 8, !tbaa !5
  %3266 = load i64, ptr %45, align 8, !tbaa !9
  %3267 = load i64, ptr %28, align 8, !tbaa !9
  %3268 = mul nsw i64 %3266, %3267
  %3269 = add nsw i64 %3268, 1
  %3270 = getelementptr inbounds float, ptr %3265, i64 %3269
  %3271 = load ptr, ptr %24, align 8, !tbaa !5
  %3272 = load i64, ptr %46, align 8, !tbaa !9
  %3273 = load i64, ptr %32, align 8, !tbaa !9
  %3274 = mul nsw i64 %3272, %3273
  %3275 = add nsw i64 %3274, 1
  %3276 = getelementptr inbounds float, ptr %3271, i64 %3275
  %3277 = call double @f2c_sdot(ptr noundef %35, ptr noundef %3270, ptr noundef @c__1, ptr noundef %3276, ptr noundef @c__1)
  %3278 = fptrunc double %3277 to float
  store float %3278, ptr %57, align 4, !tbaa !11
  %3279 = load ptr, ptr %19, align 8, !tbaa !5
  %3280 = load i64, ptr %3279, align 8, !tbaa !9
  %3281 = load i64, ptr %47, align 8, !tbaa !9
  %3282 = sub nsw i64 %3280, %3281
  store i64 %3282, ptr %35, align 8, !tbaa !9
  %3283 = load i64, ptr %47, align 8, !tbaa !9
  %3284 = add nsw i64 %3283, 1
  store i64 %3284, ptr %36, align 8, !tbaa !9
  %3285 = load i64, ptr %47, align 8, !tbaa !9
  %3286 = add nsw i64 %3285, 1
  store i64 %3286, ptr %37, align 8, !tbaa !9
  %3287 = load ptr, ptr %24, align 8, !tbaa !5
  %3288 = load i64, ptr %45, align 8, !tbaa !9
  %3289 = load i64, ptr %36, align 8, !tbaa !9
  %3290 = load ptr, ptr %19, align 8, !tbaa !5
  %3291 = load i64, ptr %3290, align 8, !tbaa !9
  %3292 = icmp sle i64 %3289, %3291
  br i1 %3292, label %3293, label %3295

3293:                                             ; preds = %3240
  %3294 = load i64, ptr %36, align 8, !tbaa !9
  br label %3298

3295:                                             ; preds = %3240
  %3296 = load ptr, ptr %19, align 8, !tbaa !5
  %3297 = load i64, ptr %3296, align 8, !tbaa !9
  br label %3298

3298:                                             ; preds = %3295, %3293
  %3299 = phi i64 [ %3294, %3293 ], [ %3297, %3295 ]
  %3300 = load i64, ptr %32, align 8, !tbaa !9
  %3301 = mul nsw i64 %3299, %3300
  %3302 = add nsw i64 %3288, %3301
  %3303 = getelementptr inbounds float, ptr %3287, i64 %3302
  %3304 = load ptr, ptr %25, align 8, !tbaa !5
  %3305 = load ptr, ptr %22, align 8, !tbaa !5
  %3306 = load i64, ptr %46, align 8, !tbaa !9
  %3307 = load i64, ptr %37, align 8, !tbaa !9
  %3308 = load ptr, ptr %19, align 8, !tbaa !5
  %3309 = load i64, ptr %3308, align 8, !tbaa !9
  %3310 = icmp sle i64 %3307, %3309
  br i1 %3310, label %3311, label %3313

3311:                                             ; preds = %3298
  %3312 = load i64, ptr %37, align 8, !tbaa !9
  br label %3316

3313:                                             ; preds = %3298
  %3314 = load ptr, ptr %19, align 8, !tbaa !5
  %3315 = load i64, ptr %3314, align 8, !tbaa !9
  br label %3316

3316:                                             ; preds = %3313, %3311
  %3317 = phi i64 [ %3312, %3311 ], [ %3315, %3313 ]
  %3318 = load i64, ptr %30, align 8, !tbaa !9
  %3319 = mul nsw i64 %3317, %3318
  %3320 = add nsw i64 %3306, %3319
  %3321 = getelementptr inbounds float, ptr %3305, i64 %3320
  %3322 = load ptr, ptr %23, align 8, !tbaa !5
  %3323 = call double @f2c_sdot(ptr noundef %35, ptr noundef %3303, ptr noundef %3304, ptr noundef %3321, ptr noundef %3322)
  %3324 = fptrunc double %3323 to float
  store float %3324, ptr %58, align 4, !tbaa !11
  %3325 = load ptr, ptr %24, align 8, !tbaa !5
  %3326 = load i64, ptr %45, align 8, !tbaa !9
  %3327 = load i64, ptr %46, align 8, !tbaa !9
  %3328 = load i64, ptr %32, align 8, !tbaa !9
  %3329 = mul nsw i64 %3327, %3328
  %3330 = add nsw i64 %3326, %3329
  %3331 = getelementptr inbounds float, ptr %3325, i64 %3330
  %3332 = load float, ptr %3331, align 4, !tbaa !11
  %3333 = load float, ptr %57, align 4, !tbaa !11
  %3334 = load float, ptr %54, align 4, !tbaa !11
  %3335 = load float, ptr %58, align 4, !tbaa !11
  %3336 = call float @llvm.fmuladd.f32(float %3334, float %3335, float %3333)
  %3337 = fsub float %3332, %3336
  %3338 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 1
  store float %3337, ptr %3338, align 4, !tbaa !11
  %3339 = load i64, ptr %44, align 8, !tbaa !9
  %3340 = sub nsw i64 %3339, 1
  store i64 %3340, ptr %35, align 8, !tbaa !9
  %3341 = load ptr, ptr %20, align 8, !tbaa !5
  %3342 = load i64, ptr %45, align 8, !tbaa !9
  %3343 = load i64, ptr %28, align 8, !tbaa !9
  %3344 = mul nsw i64 %3342, %3343
  %3345 = add nsw i64 %3344, 1
  %3346 = getelementptr inbounds float, ptr %3341, i64 %3345
  %3347 = load ptr, ptr %24, align 8, !tbaa !5
  %3348 = load i64, ptr %47, align 8, !tbaa !9
  %3349 = load i64, ptr %32, align 8, !tbaa !9
  %3350 = mul nsw i64 %3348, %3349
  %3351 = add nsw i64 %3350, 1
  %3352 = getelementptr inbounds float, ptr %3347, i64 %3351
  %3353 = call double @f2c_sdot(ptr noundef %35, ptr noundef %3346, ptr noundef @c__1, ptr noundef %3352, ptr noundef @c__1)
  %3354 = fptrunc double %3353 to float
  store float %3354, ptr %57, align 4, !tbaa !11
  %3355 = load ptr, ptr %19, align 8, !tbaa !5
  %3356 = load i64, ptr %3355, align 8, !tbaa !9
  %3357 = load i64, ptr %47, align 8, !tbaa !9
  %3358 = sub nsw i64 %3356, %3357
  store i64 %3358, ptr %35, align 8, !tbaa !9
  %3359 = load i64, ptr %47, align 8, !tbaa !9
  %3360 = add nsw i64 %3359, 1
  store i64 %3360, ptr %36, align 8, !tbaa !9
  %3361 = load i64, ptr %47, align 8, !tbaa !9
  %3362 = add nsw i64 %3361, 1
  store i64 %3362, ptr %37, align 8, !tbaa !9
  %3363 = load ptr, ptr %24, align 8, !tbaa !5
  %3364 = load i64, ptr %45, align 8, !tbaa !9
  %3365 = load i64, ptr %36, align 8, !tbaa !9
  %3366 = load ptr, ptr %19, align 8, !tbaa !5
  %3367 = load i64, ptr %3366, align 8, !tbaa !9
  %3368 = icmp sle i64 %3365, %3367
  br i1 %3368, label %3369, label %3371

3369:                                             ; preds = %3316
  %3370 = load i64, ptr %36, align 8, !tbaa !9
  br label %3374

3371:                                             ; preds = %3316
  %3372 = load ptr, ptr %19, align 8, !tbaa !5
  %3373 = load i64, ptr %3372, align 8, !tbaa !9
  br label %3374

3374:                                             ; preds = %3371, %3369
  %3375 = phi i64 [ %3370, %3369 ], [ %3373, %3371 ]
  %3376 = load i64, ptr %32, align 8, !tbaa !9
  %3377 = mul nsw i64 %3375, %3376
  %3378 = add nsw i64 %3364, %3377
  %3379 = getelementptr inbounds float, ptr %3363, i64 %3378
  %3380 = load ptr, ptr %25, align 8, !tbaa !5
  %3381 = load ptr, ptr %22, align 8, !tbaa !5
  %3382 = load i64, ptr %47, align 8, !tbaa !9
  %3383 = load i64, ptr %37, align 8, !tbaa !9
  %3384 = load ptr, ptr %19, align 8, !tbaa !5
  %3385 = load i64, ptr %3384, align 8, !tbaa !9
  %3386 = icmp sle i64 %3383, %3385
  br i1 %3386, label %3387, label %3389

3387:                                             ; preds = %3374
  %3388 = load i64, ptr %37, align 8, !tbaa !9
  br label %3392

3389:                                             ; preds = %3374
  %3390 = load ptr, ptr %19, align 8, !tbaa !5
  %3391 = load i64, ptr %3390, align 8, !tbaa !9
  br label %3392

3392:                                             ; preds = %3389, %3387
  %3393 = phi i64 [ %3388, %3387 ], [ %3391, %3389 ]
  %3394 = load i64, ptr %30, align 8, !tbaa !9
  %3395 = mul nsw i64 %3393, %3394
  %3396 = add nsw i64 %3382, %3395
  %3397 = getelementptr inbounds float, ptr %3381, i64 %3396
  %3398 = load ptr, ptr %23, align 8, !tbaa !5
  %3399 = call double @f2c_sdot(ptr noundef %35, ptr noundef %3379, ptr noundef %3380, ptr noundef %3397, ptr noundef %3398)
  %3400 = fptrunc double %3399 to float
  store float %3400, ptr %58, align 4, !tbaa !11
  %3401 = load ptr, ptr %24, align 8, !tbaa !5
  %3402 = load i64, ptr %45, align 8, !tbaa !9
  %3403 = load i64, ptr %47, align 8, !tbaa !9
  %3404 = load i64, ptr %32, align 8, !tbaa !9
  %3405 = mul nsw i64 %3403, %3404
  %3406 = add nsw i64 %3402, %3405
  %3407 = getelementptr inbounds float, ptr %3401, i64 %3406
  %3408 = load float, ptr %3407, align 4, !tbaa !11
  %3409 = load float, ptr %57, align 4, !tbaa !11
  %3410 = load float, ptr %54, align 4, !tbaa !11
  %3411 = load float, ptr %58, align 4, !tbaa !11
  %3412 = call float @llvm.fmuladd.f32(float %3410, float %3411, float %3409)
  %3413 = fsub float %3408, %3412
  %3414 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 3
  store float %3413, ptr %3414, align 4, !tbaa !11
  %3415 = load ptr, ptr %17, align 8, !tbaa !5
  %3416 = load ptr, ptr %20, align 8, !tbaa !5
  %3417 = load i64, ptr %44, align 8, !tbaa !9
  %3418 = load i64, ptr %44, align 8, !tbaa !9
  %3419 = load i64, ptr %28, align 8, !tbaa !9
  %3420 = mul nsw i64 %3418, %3419
  %3421 = add nsw i64 %3417, %3420
  %3422 = getelementptr inbounds float, ptr %3416, i64 %3421
  %3423 = load ptr, ptr %21, align 8, !tbaa !5
  %3424 = load ptr, ptr %22, align 8, !tbaa !5
  %3425 = load i64, ptr %46, align 8, !tbaa !9
  %3426 = load i64, ptr %46, align 8, !tbaa !9
  %3427 = load i64, ptr %30, align 8, !tbaa !9
  %3428 = mul nsw i64 %3426, %3427
  %3429 = add nsw i64 %3425, %3428
  %3430 = getelementptr inbounds float, ptr %3424, i64 %3429
  %3431 = load ptr, ptr %23, align 8, !tbaa !5
  %3432 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %3433 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %3434 = call i32 @slasy2_(ptr noundef @c_true, ptr noundef @c_true, ptr noundef %3415, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %3422, ptr noundef %3423, ptr noundef %3430, ptr noundef %3431, ptr noundef %3432, ptr noundef @c__2, ptr noundef %62, ptr noundef %3433, ptr noundef @c__2, ptr noundef %61, ptr noundef %55)
  %3435 = load i64, ptr %55, align 8, !tbaa !9
  %3436 = icmp ne i64 %3435, 0
  br i1 %3436, label %3437, label %3439

3437:                                             ; preds = %3392
  %3438 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %3438, align 8, !tbaa !9
  br label %3439

3439:                                             ; preds = %3437, %3392
  %3440 = load float, ptr %62, align 4, !tbaa !11
  %3441 = fcmp une float %3440, 1.000000e+00
  br i1 %3441, label %3442, label %3466

3442:                                             ; preds = %3439
  %3443 = load ptr, ptr %19, align 8, !tbaa !5
  %3444 = load i64, ptr %3443, align 8, !tbaa !9
  store i64 %3444, ptr %35, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %3445

3445:                                             ; preds = %3458, %3442
  %3446 = load i64, ptr %40, align 8, !tbaa !9
  %3447 = load i64, ptr %35, align 8, !tbaa !9
  %3448 = icmp sle i64 %3446, %3447
  br i1 %3448, label %3449, label %3461

3449:                                             ; preds = %3445
  %3450 = load ptr, ptr %18, align 8, !tbaa !5
  %3451 = load ptr, ptr %24, align 8, !tbaa !5
  %3452 = load i64, ptr %40, align 8, !tbaa !9
  %3453 = load i64, ptr %32, align 8, !tbaa !9
  %3454 = mul nsw i64 %3452, %3453
  %3455 = add nsw i64 %3454, 1
  %3456 = getelementptr inbounds float, ptr %3451, i64 %3455
  %3457 = call i32 @f2c_sscal(ptr noundef %3450, ptr noundef %62, ptr noundef %3456, ptr noundef @c__1)
  br label %3458

3458:                                             ; preds = %3449
  %3459 = load i64, ptr %40, align 8, !tbaa !9
  %3460 = add nsw i64 %3459, 1
  store i64 %3460, ptr %40, align 8, !tbaa !9
  br label %3445, !llvm.loop !29

3461:                                             ; preds = %3445
  %3462 = load float, ptr %62, align 4, !tbaa !11
  %3463 = load ptr, ptr %26, align 8, !tbaa !5
  %3464 = load float, ptr %3463, align 4, !tbaa !11
  %3465 = fmul float %3464, %3462
  store float %3465, ptr %3463, align 4, !tbaa !11
  br label %3466

3466:                                             ; preds = %3461, %3439
  %3467 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %3468 = load float, ptr %3467, align 16, !tbaa !11
  %3469 = load ptr, ptr %24, align 8, !tbaa !5
  %3470 = load i64, ptr %44, align 8, !tbaa !9
  %3471 = load i64, ptr %46, align 8, !tbaa !9
  %3472 = load i64, ptr %32, align 8, !tbaa !9
  %3473 = mul nsw i64 %3471, %3472
  %3474 = add nsw i64 %3470, %3473
  %3475 = getelementptr inbounds float, ptr %3469, i64 %3474
  store float %3468, ptr %3475, align 4, !tbaa !11
  %3476 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 2
  %3477 = load float, ptr %3476, align 8, !tbaa !11
  %3478 = load ptr, ptr %24, align 8, !tbaa !5
  %3479 = load i64, ptr %44, align 8, !tbaa !9
  %3480 = load i64, ptr %47, align 8, !tbaa !9
  %3481 = load i64, ptr %32, align 8, !tbaa !9
  %3482 = mul nsw i64 %3480, %3481
  %3483 = add nsw i64 %3479, %3482
  %3484 = getelementptr inbounds float, ptr %3478, i64 %3483
  store float %3477, ptr %3484, align 4, !tbaa !11
  %3485 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 1
  %3486 = load float, ptr %3485, align 4, !tbaa !11
  %3487 = load ptr, ptr %24, align 8, !tbaa !5
  %3488 = load i64, ptr %45, align 8, !tbaa !9
  %3489 = load i64, ptr %46, align 8, !tbaa !9
  %3490 = load i64, ptr %32, align 8, !tbaa !9
  %3491 = mul nsw i64 %3489, %3490
  %3492 = add nsw i64 %3488, %3491
  %3493 = getelementptr inbounds float, ptr %3487, i64 %3492
  store float %3486, ptr %3493, align 4, !tbaa !11
  %3494 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 3
  %3495 = load float, ptr %3494, align 4, !tbaa !11
  %3496 = load ptr, ptr %24, align 8, !tbaa !5
  %3497 = load i64, ptr %45, align 8, !tbaa !9
  %3498 = load i64, ptr %47, align 8, !tbaa !9
  %3499 = load i64, ptr %32, align 8, !tbaa !9
  %3500 = mul nsw i64 %3498, %3499
  %3501 = add nsw i64 %3497, %3500
  %3502 = getelementptr inbounds float, ptr %3496, i64 %3501
  store float %3495, ptr %3502, align 4, !tbaa !11
  br label %3503

3503:                                             ; preds = %3466, %3106, %3102
  br label %3504

3504:                                             ; preds = %3503, %3083
  br label %3505

3505:                                             ; preds = %3504, %2846
  br label %3506

3506:                                             ; preds = %3505, %2622
  br label %3507

3507:                                             ; preds = %3506, %2405
  br label %3508

3508:                                             ; preds = %3507
  %3509 = load i64, ptr %41, align 8, !tbaa !9
  %3510 = add nsw i64 %3509, 1
  store i64 %3510, ptr %41, align 8, !tbaa !9
  br label %2397, !llvm.loop !30

3511:                                             ; preds = %2397
  br label %3512

3512:                                             ; preds = %3511, %2364
  br label %3513

3513:                                             ; preds = %3512
  %3514 = load i64, ptr %42, align 8, !tbaa !9
  %3515 = add nsw i64 %3514, -1
  store i64 %3515, ptr %42, align 8, !tbaa !9
  br label %2357, !llvm.loop !31

3516:                                             ; preds = %2357
  br label %4949

3517:                                             ; preds = %2349, %2346
  %3518 = load i64, ptr %64, align 8, !tbaa !9
  %3519 = icmp ne i64 %3518, 0
  br i1 %3519, label %3520, label %4948

3520:                                             ; preds = %3517
  %3521 = load i64, ptr %65, align 8, !tbaa !9
  %3522 = icmp ne i64 %3521, 0
  br i1 %3522, label %4948, label %3523

3523:                                             ; preds = %3520
  %3524 = load ptr, ptr %19, align 8, !tbaa !5
  %3525 = load i64, ptr %3524, align 8, !tbaa !9
  store i64 %3525, ptr %60, align 8, !tbaa !9
  %3526 = load ptr, ptr %19, align 8, !tbaa !5
  %3527 = load i64, ptr %3526, align 8, !tbaa !9
  store i64 %3527, ptr %42, align 8, !tbaa !9
  br label %3528

3528:                                             ; preds = %4944, %3523
  %3529 = load i64, ptr %42, align 8, !tbaa !9
  %3530 = icmp sge i64 %3529, 1
  br i1 %3530, label %3531, label %4947

3531:                                             ; preds = %3528
  %3532 = load i64, ptr %42, align 8, !tbaa !9
  %3533 = load i64, ptr %60, align 8, !tbaa !9
  %3534 = icmp sgt i64 %3532, %3533
  br i1 %3534, label %3535, label %3536

3535:                                             ; preds = %3531
  br label %4943

3536:                                             ; preds = %3531
  %3537 = load i64, ptr %42, align 8, !tbaa !9
  %3538 = icmp eq i64 %3537, 1
  br i1 %3538, label %3539, label %3542

3539:                                             ; preds = %3536
  %3540 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %3540, ptr %46, align 8, !tbaa !9
  %3541 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %3541, ptr %47, align 8, !tbaa !9
  br label %3565

3542:                                             ; preds = %3536
  %3543 = load ptr, ptr %22, align 8, !tbaa !5
  %3544 = load i64, ptr %42, align 8, !tbaa !9
  %3545 = load i64, ptr %42, align 8, !tbaa !9
  %3546 = sub nsw i64 %3545, 1
  %3547 = load i64, ptr %30, align 8, !tbaa !9
  %3548 = mul nsw i64 %3546, %3547
  %3549 = add nsw i64 %3544, %3548
  %3550 = getelementptr inbounds float, ptr %3543, i64 %3549
  %3551 = load float, ptr %3550, align 4, !tbaa !11
  %3552 = fcmp une float %3551, 0.000000e+00
  br i1 %3552, label %3553, label %3559

3553:                                             ; preds = %3542
  %3554 = load i64, ptr %42, align 8, !tbaa !9
  %3555 = sub nsw i64 %3554, 1
  store i64 %3555, ptr %46, align 8, !tbaa !9
  %3556 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %3556, ptr %47, align 8, !tbaa !9
  %3557 = load i64, ptr %42, align 8, !tbaa !9
  %3558 = sub nsw i64 %3557, 2
  store i64 %3558, ptr %60, align 8, !tbaa !9
  br label %3564

3559:                                             ; preds = %3542
  %3560 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %3560, ptr %46, align 8, !tbaa !9
  %3561 = load i64, ptr %42, align 8, !tbaa !9
  store i64 %3561, ptr %47, align 8, !tbaa !9
  %3562 = load i64, ptr %42, align 8, !tbaa !9
  %3563 = sub nsw i64 %3562, 1
  store i64 %3563, ptr %60, align 8, !tbaa !9
  br label %3564

3564:                                             ; preds = %3559, %3553
  br label %3565

3565:                                             ; preds = %3564, %3539
  %3566 = load ptr, ptr %18, align 8, !tbaa !5
  %3567 = load i64, ptr %3566, align 8, !tbaa !9
  store i64 %3567, ptr %59, align 8, !tbaa !9
  %3568 = load ptr, ptr %18, align 8, !tbaa !5
  %3569 = load i64, ptr %3568, align 8, !tbaa !9
  store i64 %3569, ptr %41, align 8, !tbaa !9
  br label %3570

3570:                                             ; preds = %4939, %3565
  %3571 = load i64, ptr %41, align 8, !tbaa !9
  %3572 = icmp sge i64 %3571, 1
  br i1 %3572, label %3573, label %4942

3573:                                             ; preds = %3570
  %3574 = load i64, ptr %41, align 8, !tbaa !9
  %3575 = load i64, ptr %59, align 8, !tbaa !9
  %3576 = icmp sgt i64 %3574, %3575
  br i1 %3576, label %3577, label %3578

3577:                                             ; preds = %3573
  br label %4938

3578:                                             ; preds = %3573
  %3579 = load i64, ptr %41, align 8, !tbaa !9
  %3580 = icmp eq i64 %3579, 1
  br i1 %3580, label %3581, label %3584

3581:                                             ; preds = %3578
  %3582 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %3582, ptr %44, align 8, !tbaa !9
  %3583 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %3583, ptr %45, align 8, !tbaa !9
  br label %3607

3584:                                             ; preds = %3578
  %3585 = load ptr, ptr %20, align 8, !tbaa !5
  %3586 = load i64, ptr %41, align 8, !tbaa !9
  %3587 = load i64, ptr %41, align 8, !tbaa !9
  %3588 = sub nsw i64 %3587, 1
  %3589 = load i64, ptr %28, align 8, !tbaa !9
  %3590 = mul nsw i64 %3588, %3589
  %3591 = add nsw i64 %3586, %3590
  %3592 = getelementptr inbounds float, ptr %3585, i64 %3591
  %3593 = load float, ptr %3592, align 4, !tbaa !11
  %3594 = fcmp une float %3593, 0.000000e+00
  br i1 %3594, label %3595, label %3601

3595:                                             ; preds = %3584
  %3596 = load i64, ptr %41, align 8, !tbaa !9
  %3597 = sub nsw i64 %3596, 1
  store i64 %3597, ptr %44, align 8, !tbaa !9
  %3598 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %3598, ptr %45, align 8, !tbaa !9
  %3599 = load i64, ptr %41, align 8, !tbaa !9
  %3600 = sub nsw i64 %3599, 2
  store i64 %3600, ptr %59, align 8, !tbaa !9
  br label %3606

3601:                                             ; preds = %3584
  %3602 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %3602, ptr %44, align 8, !tbaa !9
  %3603 = load i64, ptr %41, align 8, !tbaa !9
  store i64 %3603, ptr %45, align 8, !tbaa !9
  %3604 = load i64, ptr %41, align 8, !tbaa !9
  %3605 = sub nsw i64 %3604, 1
  store i64 %3605, ptr %59, align 8, !tbaa !9
  br label %3606

3606:                                             ; preds = %3601, %3595
  br label %3607

3607:                                             ; preds = %3606, %3581
  %3608 = load i64, ptr %46, align 8, !tbaa !9
  %3609 = load i64, ptr %47, align 8, !tbaa !9
  %3610 = icmp eq i64 %3608, %3609
  br i1 %3610, label %3611, label %3831

3611:                                             ; preds = %3607
  %3612 = load i64, ptr %44, align 8, !tbaa !9
  %3613 = load i64, ptr %45, align 8, !tbaa !9
  %3614 = icmp eq i64 %3612, %3613
  br i1 %3614, label %3615, label %3831

3615:                                             ; preds = %3611
  %3616 = load ptr, ptr %18, align 8, !tbaa !5
  %3617 = load i64, ptr %3616, align 8, !tbaa !9
  %3618 = load i64, ptr %44, align 8, !tbaa !9
  %3619 = sub nsw i64 %3617, %3618
  store i64 %3619, ptr %34, align 8, !tbaa !9
  %3620 = load i64, ptr %44, align 8, !tbaa !9
  %3621 = add nsw i64 %3620, 1
  store i64 %3621, ptr %35, align 8, !tbaa !9
  %3622 = load i64, ptr %44, align 8, !tbaa !9
  %3623 = add nsw i64 %3622, 1
  store i64 %3623, ptr %36, align 8, !tbaa !9
  %3624 = load ptr, ptr %20, align 8, !tbaa !5
  %3625 = load i64, ptr %44, align 8, !tbaa !9
  %3626 = load i64, ptr %35, align 8, !tbaa !9
  %3627 = load ptr, ptr %18, align 8, !tbaa !5
  %3628 = load i64, ptr %3627, align 8, !tbaa !9
  %3629 = icmp sle i64 %3626, %3628
  br i1 %3629, label %3630, label %3632

3630:                                             ; preds = %3615
  %3631 = load i64, ptr %35, align 8, !tbaa !9
  br label %3635

3632:                                             ; preds = %3615
  %3633 = load ptr, ptr %18, align 8, !tbaa !5
  %3634 = load i64, ptr %3633, align 8, !tbaa !9
  br label %3635

3635:                                             ; preds = %3632, %3630
  %3636 = phi i64 [ %3631, %3630 ], [ %3634, %3632 ]
  %3637 = load i64, ptr %28, align 8, !tbaa !9
  %3638 = mul nsw i64 %3636, %3637
  %3639 = add nsw i64 %3625, %3638
  %3640 = getelementptr inbounds float, ptr %3624, i64 %3639
  %3641 = load ptr, ptr %21, align 8, !tbaa !5
  %3642 = load ptr, ptr %24, align 8, !tbaa !5
  %3643 = load i64, ptr %36, align 8, !tbaa !9
  %3644 = load ptr, ptr %18, align 8, !tbaa !5
  %3645 = load i64, ptr %3644, align 8, !tbaa !9
  %3646 = icmp sle i64 %3643, %3645
  br i1 %3646, label %3647, label %3649

3647:                                             ; preds = %3635
  %3648 = load i64, ptr %36, align 8, !tbaa !9
  br label %3652

3649:                                             ; preds = %3635
  %3650 = load ptr, ptr %18, align 8, !tbaa !5
  %3651 = load i64, ptr %3650, align 8, !tbaa !9
  br label %3652

3652:                                             ; preds = %3649, %3647
  %3653 = phi i64 [ %3648, %3647 ], [ %3651, %3649 ]
  %3654 = load i64, ptr %46, align 8, !tbaa !9
  %3655 = load i64, ptr %32, align 8, !tbaa !9
  %3656 = mul nsw i64 %3654, %3655
  %3657 = add nsw i64 %3653, %3656
  %3658 = getelementptr inbounds float, ptr %3642, i64 %3657
  %3659 = call double @f2c_sdot(ptr noundef %34, ptr noundef %3640, ptr noundef %3641, ptr noundef %3658, ptr noundef @c__1)
  %3660 = fptrunc double %3659 to float
  store float %3660, ptr %57, align 4, !tbaa !11
  %3661 = load ptr, ptr %19, align 8, !tbaa !5
  %3662 = load i64, ptr %3661, align 8, !tbaa !9
  %3663 = load i64, ptr %46, align 8, !tbaa !9
  %3664 = sub nsw i64 %3662, %3663
  store i64 %3664, ptr %34, align 8, !tbaa !9
  %3665 = load i64, ptr %46, align 8, !tbaa !9
  %3666 = add nsw i64 %3665, 1
  store i64 %3666, ptr %35, align 8, !tbaa !9
  %3667 = load i64, ptr %46, align 8, !tbaa !9
  %3668 = add nsw i64 %3667, 1
  store i64 %3668, ptr %36, align 8, !tbaa !9
  %3669 = load ptr, ptr %24, align 8, !tbaa !5
  %3670 = load i64, ptr %44, align 8, !tbaa !9
  %3671 = load i64, ptr %35, align 8, !tbaa !9
  %3672 = load ptr, ptr %19, align 8, !tbaa !5
  %3673 = load i64, ptr %3672, align 8, !tbaa !9
  %3674 = icmp sle i64 %3671, %3673
  br i1 %3674, label %3675, label %3677

3675:                                             ; preds = %3652
  %3676 = load i64, ptr %35, align 8, !tbaa !9
  br label %3680

3677:                                             ; preds = %3652
  %3678 = load ptr, ptr %19, align 8, !tbaa !5
  %3679 = load i64, ptr %3678, align 8, !tbaa !9
  br label %3680

3680:                                             ; preds = %3677, %3675
  %3681 = phi i64 [ %3676, %3675 ], [ %3679, %3677 ]
  %3682 = load i64, ptr %32, align 8, !tbaa !9
  %3683 = mul nsw i64 %3681, %3682
  %3684 = add nsw i64 %3670, %3683
  %3685 = getelementptr inbounds float, ptr %3669, i64 %3684
  %3686 = load ptr, ptr %25, align 8, !tbaa !5
  %3687 = load ptr, ptr %22, align 8, !tbaa !5
  %3688 = load i64, ptr %46, align 8, !tbaa !9
  %3689 = load i64, ptr %36, align 8, !tbaa !9
  %3690 = load ptr, ptr %19, align 8, !tbaa !5
  %3691 = load i64, ptr %3690, align 8, !tbaa !9
  %3692 = icmp sle i64 %3689, %3691
  br i1 %3692, label %3693, label %3695

3693:                                             ; preds = %3680
  %3694 = load i64, ptr %36, align 8, !tbaa !9
  br label %3698

3695:                                             ; preds = %3680
  %3696 = load ptr, ptr %19, align 8, !tbaa !5
  %3697 = load i64, ptr %3696, align 8, !tbaa !9
  br label %3698

3698:                                             ; preds = %3695, %3693
  %3699 = phi i64 [ %3694, %3693 ], [ %3697, %3695 ]
  %3700 = load i64, ptr %30, align 8, !tbaa !9
  %3701 = mul nsw i64 %3699, %3700
  %3702 = add nsw i64 %3688, %3701
  %3703 = getelementptr inbounds float, ptr %3687, i64 %3702
  %3704 = load ptr, ptr %23, align 8, !tbaa !5
  %3705 = call double @f2c_sdot(ptr noundef %34, ptr noundef %3685, ptr noundef %3686, ptr noundef %3703, ptr noundef %3704)
  %3706 = fptrunc double %3705 to float
  store float %3706, ptr %58, align 4, !tbaa !11
  %3707 = load ptr, ptr %24, align 8, !tbaa !5
  %3708 = load i64, ptr %44, align 8, !tbaa !9
  %3709 = load i64, ptr %46, align 8, !tbaa !9
  %3710 = load i64, ptr %32, align 8, !tbaa !9
  %3711 = mul nsw i64 %3709, %3710
  %3712 = add nsw i64 %3708, %3711
  %3713 = getelementptr inbounds float, ptr %3707, i64 %3712
  %3714 = load float, ptr %3713, align 4, !tbaa !11
  %3715 = load float, ptr %57, align 4, !tbaa !11
  %3716 = load float, ptr %54, align 4, !tbaa !11
  %3717 = load float, ptr %58, align 4, !tbaa !11
  %3718 = call float @llvm.fmuladd.f32(float %3716, float %3717, float %3715)
  %3719 = fsub float %3714, %3718
  %3720 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %3719, ptr %3720, align 16, !tbaa !11
  store float 1.000000e+00, ptr %62, align 4, !tbaa !11
  %3721 = load ptr, ptr %20, align 8, !tbaa !5
  %3722 = load i64, ptr %44, align 8, !tbaa !9
  %3723 = load i64, ptr %44, align 8, !tbaa !9
  %3724 = load i64, ptr %28, align 8, !tbaa !9
  %3725 = mul nsw i64 %3723, %3724
  %3726 = add nsw i64 %3722, %3725
  %3727 = getelementptr inbounds float, ptr %3721, i64 %3726
  %3728 = load float, ptr %3727, align 4, !tbaa !11
  %3729 = load float, ptr %54, align 4, !tbaa !11
  %3730 = load ptr, ptr %22, align 8, !tbaa !5
  %3731 = load i64, ptr %46, align 8, !tbaa !9
  %3732 = load i64, ptr %46, align 8, !tbaa !9
  %3733 = load i64, ptr %30, align 8, !tbaa !9
  %3734 = mul nsw i64 %3732, %3733
  %3735 = add nsw i64 %3731, %3734
  %3736 = getelementptr inbounds float, ptr %3730, i64 %3735
  %3737 = load float, ptr %3736, align 4, !tbaa !11
  %3738 = call float @llvm.fmuladd.f32(float %3729, float %3737, float %3728)
  store float %3738, ptr %48, align 4, !tbaa !11
  %3739 = load float, ptr %48, align 4, !tbaa !11
  %3740 = fcmp oge float %3739, 0.000000e+00
  br i1 %3740, label %3741, label %3743

3741:                                             ; preds = %3698
  %3742 = load float, ptr %48, align 4, !tbaa !11
  br label %3746

3743:                                             ; preds = %3698
  %3744 = load float, ptr %48, align 4, !tbaa !11
  %3745 = fneg float %3744
  br label %3746

3746:                                             ; preds = %3743, %3741
  %3747 = phi float [ %3742, %3741 ], [ %3745, %3743 ]
  %3748 = fpext float %3747 to double
  %3749 = fptrunc double %3748 to float
  store float %3749, ptr %50, align 4, !tbaa !11
  %3750 = load float, ptr %50, align 4, !tbaa !11
  %3751 = load float, ptr %56, align 4, !tbaa !11
  %3752 = fcmp ole float %3750, %3751
  br i1 %3752, label %3753, label %3757

3753:                                             ; preds = %3746
  %3754 = load float, ptr %56, align 4, !tbaa !11
  store float %3754, ptr %48, align 4, !tbaa !11
  %3755 = load float, ptr %56, align 4, !tbaa !11
  store float %3755, ptr %50, align 4, !tbaa !11
  %3756 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %3756, align 8, !tbaa !9
  br label %3757

3757:                                             ; preds = %3753, %3746
  %3758 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %3759 = load float, ptr %3758, align 16, !tbaa !11
  %3760 = fcmp oge float %3759, 0.000000e+00
  br i1 %3760, label %3761, label %3764

3761:                                             ; preds = %3757
  %3762 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %3763 = load float, ptr %3762, align 16, !tbaa !11
  br label %3768

3764:                                             ; preds = %3757
  %3765 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %3766 = load float, ptr %3765, align 16, !tbaa !11
  %3767 = fneg float %3766
  br label %3768

3768:                                             ; preds = %3764, %3761
  %3769 = phi float [ %3763, %3761 ], [ %3767, %3764 ]
  %3770 = fpext float %3769 to double
  %3771 = fptrunc double %3770 to float
  store float %3771, ptr %49, align 4, !tbaa !11
  %3772 = load float, ptr %50, align 4, !tbaa !11
  %3773 = fcmp olt float %3772, 1.000000e+00
  br i1 %3773, label %3774, label %3787

3774:                                             ; preds = %3768
  %3775 = load float, ptr %49, align 4, !tbaa !11
  %3776 = fcmp ogt float %3775, 1.000000e+00
  br i1 %3776, label %3777, label %3787

3777:                                             ; preds = %3774
  %3778 = load float, ptr %49, align 4, !tbaa !11
  %3779 = load float, ptr %63, align 4, !tbaa !11
  %3780 = load float, ptr %50, align 4, !tbaa !11
  %3781 = fmul float %3779, %3780
  %3782 = fcmp ogt float %3778, %3781
  br i1 %3782, label %3783, label %3786

3783:                                             ; preds = %3777
  %3784 = load float, ptr %49, align 4, !tbaa !11
  %3785 = fdiv float 1.000000e+00, %3784
  store float %3785, ptr %62, align 4, !tbaa !11
  br label %3786

3786:                                             ; preds = %3783, %3777
  br label %3787

3787:                                             ; preds = %3786, %3774, %3768
  %3788 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %3789 = load float, ptr %3788, align 16, !tbaa !11
  %3790 = load float, ptr %62, align 4, !tbaa !11
  %3791 = fmul float %3789, %3790
  %3792 = load float, ptr %48, align 4, !tbaa !11
  %3793 = fdiv float %3791, %3792
  %3794 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  store float %3793, ptr %3794, align 16, !tbaa !11
  %3795 = load float, ptr %62, align 4, !tbaa !11
  %3796 = fcmp une float %3795, 1.000000e+00
  br i1 %3796, label %3797, label %3821

3797:                                             ; preds = %3787
  %3798 = load ptr, ptr %19, align 8, !tbaa !5
  %3799 = load i64, ptr %3798, align 8, !tbaa !9
  store i64 %3799, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %3800

3800:                                             ; preds = %3813, %3797
  %3801 = load i64, ptr %40, align 8, !tbaa !9
  %3802 = load i64, ptr %34, align 8, !tbaa !9
  %3803 = icmp sle i64 %3801, %3802
  br i1 %3803, label %3804, label %3816

3804:                                             ; preds = %3800
  %3805 = load ptr, ptr %18, align 8, !tbaa !5
  %3806 = load ptr, ptr %24, align 8, !tbaa !5
  %3807 = load i64, ptr %40, align 8, !tbaa !9
  %3808 = load i64, ptr %32, align 8, !tbaa !9
  %3809 = mul nsw i64 %3807, %3808
  %3810 = add nsw i64 %3809, 1
  %3811 = getelementptr inbounds float, ptr %3806, i64 %3810
  %3812 = call i32 @f2c_sscal(ptr noundef %3805, ptr noundef %62, ptr noundef %3811, ptr noundef @c__1)
  br label %3813

3813:                                             ; preds = %3804
  %3814 = load i64, ptr %40, align 8, !tbaa !9
  %3815 = add nsw i64 %3814, 1
  store i64 %3815, ptr %40, align 8, !tbaa !9
  br label %3800, !llvm.loop !32

3816:                                             ; preds = %3800
  %3817 = load float, ptr %62, align 4, !tbaa !11
  %3818 = load ptr, ptr %26, align 8, !tbaa !5
  %3819 = load float, ptr %3818, align 4, !tbaa !11
  %3820 = fmul float %3819, %3817
  store float %3820, ptr %3818, align 4, !tbaa !11
  br label %3821

3821:                                             ; preds = %3816, %3787
  %3822 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %3823 = load float, ptr %3822, align 16, !tbaa !11
  %3824 = load ptr, ptr %24, align 8, !tbaa !5
  %3825 = load i64, ptr %44, align 8, !tbaa !9
  %3826 = load i64, ptr %46, align 8, !tbaa !9
  %3827 = load i64, ptr %32, align 8, !tbaa !9
  %3828 = mul nsw i64 %3826, %3827
  %3829 = add nsw i64 %3825, %3828
  %3830 = getelementptr inbounds float, ptr %3824, i64 %3829
  store float %3823, ptr %3830, align 4, !tbaa !11
  br label %4937

3831:                                             ; preds = %3611, %3607
  %3832 = load i64, ptr %46, align 8, !tbaa !9
  %3833 = load i64, ptr %47, align 8, !tbaa !9
  %3834 = icmp eq i64 %3832, %3833
  br i1 %3834, label %3835, label %4122

3835:                                             ; preds = %3831
  %3836 = load i64, ptr %44, align 8, !tbaa !9
  %3837 = load i64, ptr %45, align 8, !tbaa !9
  %3838 = icmp ne i64 %3836, %3837
  br i1 %3838, label %3839, label %4122

3839:                                             ; preds = %3835
  %3840 = load ptr, ptr %18, align 8, !tbaa !5
  %3841 = load i64, ptr %3840, align 8, !tbaa !9
  %3842 = load i64, ptr %45, align 8, !tbaa !9
  %3843 = sub nsw i64 %3841, %3842
  store i64 %3843, ptr %34, align 8, !tbaa !9
  %3844 = load i64, ptr %45, align 8, !tbaa !9
  %3845 = add nsw i64 %3844, 1
  store i64 %3845, ptr %35, align 8, !tbaa !9
  %3846 = load i64, ptr %45, align 8, !tbaa !9
  %3847 = add nsw i64 %3846, 1
  store i64 %3847, ptr %36, align 8, !tbaa !9
  %3848 = load ptr, ptr %20, align 8, !tbaa !5
  %3849 = load i64, ptr %44, align 8, !tbaa !9
  %3850 = load i64, ptr %35, align 8, !tbaa !9
  %3851 = load ptr, ptr %18, align 8, !tbaa !5
  %3852 = load i64, ptr %3851, align 8, !tbaa !9
  %3853 = icmp sle i64 %3850, %3852
  br i1 %3853, label %3854, label %3856

3854:                                             ; preds = %3839
  %3855 = load i64, ptr %35, align 8, !tbaa !9
  br label %3859

3856:                                             ; preds = %3839
  %3857 = load ptr, ptr %18, align 8, !tbaa !5
  %3858 = load i64, ptr %3857, align 8, !tbaa !9
  br label %3859

3859:                                             ; preds = %3856, %3854
  %3860 = phi i64 [ %3855, %3854 ], [ %3858, %3856 ]
  %3861 = load i64, ptr %28, align 8, !tbaa !9
  %3862 = mul nsw i64 %3860, %3861
  %3863 = add nsw i64 %3849, %3862
  %3864 = getelementptr inbounds float, ptr %3848, i64 %3863
  %3865 = load ptr, ptr %21, align 8, !tbaa !5
  %3866 = load ptr, ptr %24, align 8, !tbaa !5
  %3867 = load i64, ptr %36, align 8, !tbaa !9
  %3868 = load ptr, ptr %18, align 8, !tbaa !5
  %3869 = load i64, ptr %3868, align 8, !tbaa !9
  %3870 = icmp sle i64 %3867, %3869
  br i1 %3870, label %3871, label %3873

3871:                                             ; preds = %3859
  %3872 = load i64, ptr %36, align 8, !tbaa !9
  br label %3876

3873:                                             ; preds = %3859
  %3874 = load ptr, ptr %18, align 8, !tbaa !5
  %3875 = load i64, ptr %3874, align 8, !tbaa !9
  br label %3876

3876:                                             ; preds = %3873, %3871
  %3877 = phi i64 [ %3872, %3871 ], [ %3875, %3873 ]
  %3878 = load i64, ptr %46, align 8, !tbaa !9
  %3879 = load i64, ptr %32, align 8, !tbaa !9
  %3880 = mul nsw i64 %3878, %3879
  %3881 = add nsw i64 %3877, %3880
  %3882 = getelementptr inbounds float, ptr %3866, i64 %3881
  %3883 = call double @f2c_sdot(ptr noundef %34, ptr noundef %3864, ptr noundef %3865, ptr noundef %3882, ptr noundef @c__1)
  %3884 = fptrunc double %3883 to float
  store float %3884, ptr %57, align 4, !tbaa !11
  %3885 = load ptr, ptr %19, align 8, !tbaa !5
  %3886 = load i64, ptr %3885, align 8, !tbaa !9
  %3887 = load i64, ptr %47, align 8, !tbaa !9
  %3888 = sub nsw i64 %3886, %3887
  store i64 %3888, ptr %34, align 8, !tbaa !9
  %3889 = load i64, ptr %47, align 8, !tbaa !9
  %3890 = add nsw i64 %3889, 1
  store i64 %3890, ptr %35, align 8, !tbaa !9
  %3891 = load i64, ptr %47, align 8, !tbaa !9
  %3892 = add nsw i64 %3891, 1
  store i64 %3892, ptr %36, align 8, !tbaa !9
  %3893 = load ptr, ptr %24, align 8, !tbaa !5
  %3894 = load i64, ptr %44, align 8, !tbaa !9
  %3895 = load i64, ptr %35, align 8, !tbaa !9
  %3896 = load ptr, ptr %19, align 8, !tbaa !5
  %3897 = load i64, ptr %3896, align 8, !tbaa !9
  %3898 = icmp sle i64 %3895, %3897
  br i1 %3898, label %3899, label %3901

3899:                                             ; preds = %3876
  %3900 = load i64, ptr %35, align 8, !tbaa !9
  br label %3904

3901:                                             ; preds = %3876
  %3902 = load ptr, ptr %19, align 8, !tbaa !5
  %3903 = load i64, ptr %3902, align 8, !tbaa !9
  br label %3904

3904:                                             ; preds = %3901, %3899
  %3905 = phi i64 [ %3900, %3899 ], [ %3903, %3901 ]
  %3906 = load i64, ptr %32, align 8, !tbaa !9
  %3907 = mul nsw i64 %3905, %3906
  %3908 = add nsw i64 %3894, %3907
  %3909 = getelementptr inbounds float, ptr %3893, i64 %3908
  %3910 = load ptr, ptr %25, align 8, !tbaa !5
  %3911 = load ptr, ptr %22, align 8, !tbaa !5
  %3912 = load i64, ptr %46, align 8, !tbaa !9
  %3913 = load i64, ptr %36, align 8, !tbaa !9
  %3914 = load ptr, ptr %19, align 8, !tbaa !5
  %3915 = load i64, ptr %3914, align 8, !tbaa !9
  %3916 = icmp sle i64 %3913, %3915
  br i1 %3916, label %3917, label %3919

3917:                                             ; preds = %3904
  %3918 = load i64, ptr %36, align 8, !tbaa !9
  br label %3922

3919:                                             ; preds = %3904
  %3920 = load ptr, ptr %19, align 8, !tbaa !5
  %3921 = load i64, ptr %3920, align 8, !tbaa !9
  br label %3922

3922:                                             ; preds = %3919, %3917
  %3923 = phi i64 [ %3918, %3917 ], [ %3921, %3919 ]
  %3924 = load i64, ptr %30, align 8, !tbaa !9
  %3925 = mul nsw i64 %3923, %3924
  %3926 = add nsw i64 %3912, %3925
  %3927 = getelementptr inbounds float, ptr %3911, i64 %3926
  %3928 = load ptr, ptr %23, align 8, !tbaa !5
  %3929 = call double @f2c_sdot(ptr noundef %34, ptr noundef %3909, ptr noundef %3910, ptr noundef %3927, ptr noundef %3928)
  %3930 = fptrunc double %3929 to float
  store float %3930, ptr %58, align 4, !tbaa !11
  %3931 = load ptr, ptr %24, align 8, !tbaa !5
  %3932 = load i64, ptr %44, align 8, !tbaa !9
  %3933 = load i64, ptr %46, align 8, !tbaa !9
  %3934 = load i64, ptr %32, align 8, !tbaa !9
  %3935 = mul nsw i64 %3933, %3934
  %3936 = add nsw i64 %3932, %3935
  %3937 = getelementptr inbounds float, ptr %3931, i64 %3936
  %3938 = load float, ptr %3937, align 4, !tbaa !11
  %3939 = load float, ptr %57, align 4, !tbaa !11
  %3940 = load float, ptr %54, align 4, !tbaa !11
  %3941 = load float, ptr %58, align 4, !tbaa !11
  %3942 = call float @llvm.fmuladd.f32(float %3940, float %3941, float %3939)
  %3943 = fsub float %3938, %3942
  %3944 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %3943, ptr %3944, align 16, !tbaa !11
  %3945 = load ptr, ptr %18, align 8, !tbaa !5
  %3946 = load i64, ptr %3945, align 8, !tbaa !9
  %3947 = load i64, ptr %45, align 8, !tbaa !9
  %3948 = sub nsw i64 %3946, %3947
  store i64 %3948, ptr %34, align 8, !tbaa !9
  %3949 = load i64, ptr %45, align 8, !tbaa !9
  %3950 = add nsw i64 %3949, 1
  store i64 %3950, ptr %35, align 8, !tbaa !9
  %3951 = load i64, ptr %45, align 8, !tbaa !9
  %3952 = add nsw i64 %3951, 1
  store i64 %3952, ptr %36, align 8, !tbaa !9
  %3953 = load ptr, ptr %20, align 8, !tbaa !5
  %3954 = load i64, ptr %45, align 8, !tbaa !9
  %3955 = load i64, ptr %35, align 8, !tbaa !9
  %3956 = load ptr, ptr %18, align 8, !tbaa !5
  %3957 = load i64, ptr %3956, align 8, !tbaa !9
  %3958 = icmp sle i64 %3955, %3957
  br i1 %3958, label %3959, label %3961

3959:                                             ; preds = %3922
  %3960 = load i64, ptr %35, align 8, !tbaa !9
  br label %3964

3961:                                             ; preds = %3922
  %3962 = load ptr, ptr %18, align 8, !tbaa !5
  %3963 = load i64, ptr %3962, align 8, !tbaa !9
  br label %3964

3964:                                             ; preds = %3961, %3959
  %3965 = phi i64 [ %3960, %3959 ], [ %3963, %3961 ]
  %3966 = load i64, ptr %28, align 8, !tbaa !9
  %3967 = mul nsw i64 %3965, %3966
  %3968 = add nsw i64 %3954, %3967
  %3969 = getelementptr inbounds float, ptr %3953, i64 %3968
  %3970 = load ptr, ptr %21, align 8, !tbaa !5
  %3971 = load ptr, ptr %24, align 8, !tbaa !5
  %3972 = load i64, ptr %36, align 8, !tbaa !9
  %3973 = load ptr, ptr %18, align 8, !tbaa !5
  %3974 = load i64, ptr %3973, align 8, !tbaa !9
  %3975 = icmp sle i64 %3972, %3974
  br i1 %3975, label %3976, label %3978

3976:                                             ; preds = %3964
  %3977 = load i64, ptr %36, align 8, !tbaa !9
  br label %3981

3978:                                             ; preds = %3964
  %3979 = load ptr, ptr %18, align 8, !tbaa !5
  %3980 = load i64, ptr %3979, align 8, !tbaa !9
  br label %3981

3981:                                             ; preds = %3978, %3976
  %3982 = phi i64 [ %3977, %3976 ], [ %3980, %3978 ]
  %3983 = load i64, ptr %46, align 8, !tbaa !9
  %3984 = load i64, ptr %32, align 8, !tbaa !9
  %3985 = mul nsw i64 %3983, %3984
  %3986 = add nsw i64 %3982, %3985
  %3987 = getelementptr inbounds float, ptr %3971, i64 %3986
  %3988 = call double @f2c_sdot(ptr noundef %34, ptr noundef %3969, ptr noundef %3970, ptr noundef %3987, ptr noundef @c__1)
  %3989 = fptrunc double %3988 to float
  store float %3989, ptr %57, align 4, !tbaa !11
  %3990 = load ptr, ptr %19, align 8, !tbaa !5
  %3991 = load i64, ptr %3990, align 8, !tbaa !9
  %3992 = load i64, ptr %47, align 8, !tbaa !9
  %3993 = sub nsw i64 %3991, %3992
  store i64 %3993, ptr %34, align 8, !tbaa !9
  %3994 = load i64, ptr %47, align 8, !tbaa !9
  %3995 = add nsw i64 %3994, 1
  store i64 %3995, ptr %35, align 8, !tbaa !9
  %3996 = load i64, ptr %47, align 8, !tbaa !9
  %3997 = add nsw i64 %3996, 1
  store i64 %3997, ptr %36, align 8, !tbaa !9
  %3998 = load ptr, ptr %24, align 8, !tbaa !5
  %3999 = load i64, ptr %45, align 8, !tbaa !9
  %4000 = load i64, ptr %35, align 8, !tbaa !9
  %4001 = load ptr, ptr %19, align 8, !tbaa !5
  %4002 = load i64, ptr %4001, align 8, !tbaa !9
  %4003 = icmp sle i64 %4000, %4002
  br i1 %4003, label %4004, label %4006

4004:                                             ; preds = %3981
  %4005 = load i64, ptr %35, align 8, !tbaa !9
  br label %4009

4006:                                             ; preds = %3981
  %4007 = load ptr, ptr %19, align 8, !tbaa !5
  %4008 = load i64, ptr %4007, align 8, !tbaa !9
  br label %4009

4009:                                             ; preds = %4006, %4004
  %4010 = phi i64 [ %4005, %4004 ], [ %4008, %4006 ]
  %4011 = load i64, ptr %32, align 8, !tbaa !9
  %4012 = mul nsw i64 %4010, %4011
  %4013 = add nsw i64 %3999, %4012
  %4014 = getelementptr inbounds float, ptr %3998, i64 %4013
  %4015 = load ptr, ptr %25, align 8, !tbaa !5
  %4016 = load ptr, ptr %22, align 8, !tbaa !5
  %4017 = load i64, ptr %46, align 8, !tbaa !9
  %4018 = load i64, ptr %36, align 8, !tbaa !9
  %4019 = load ptr, ptr %19, align 8, !tbaa !5
  %4020 = load i64, ptr %4019, align 8, !tbaa !9
  %4021 = icmp sle i64 %4018, %4020
  br i1 %4021, label %4022, label %4024

4022:                                             ; preds = %4009
  %4023 = load i64, ptr %36, align 8, !tbaa !9
  br label %4027

4024:                                             ; preds = %4009
  %4025 = load ptr, ptr %19, align 8, !tbaa !5
  %4026 = load i64, ptr %4025, align 8, !tbaa !9
  br label %4027

4027:                                             ; preds = %4024, %4022
  %4028 = phi i64 [ %4023, %4022 ], [ %4026, %4024 ]
  %4029 = load i64, ptr %30, align 8, !tbaa !9
  %4030 = mul nsw i64 %4028, %4029
  %4031 = add nsw i64 %4017, %4030
  %4032 = getelementptr inbounds float, ptr %4016, i64 %4031
  %4033 = load ptr, ptr %23, align 8, !tbaa !5
  %4034 = call double @f2c_sdot(ptr noundef %34, ptr noundef %4014, ptr noundef %4015, ptr noundef %4032, ptr noundef %4033)
  %4035 = fptrunc double %4034 to float
  store float %4035, ptr %58, align 4, !tbaa !11
  %4036 = load ptr, ptr %24, align 8, !tbaa !5
  %4037 = load i64, ptr %45, align 8, !tbaa !9
  %4038 = load i64, ptr %46, align 8, !tbaa !9
  %4039 = load i64, ptr %32, align 8, !tbaa !9
  %4040 = mul nsw i64 %4038, %4039
  %4041 = add nsw i64 %4037, %4040
  %4042 = getelementptr inbounds float, ptr %4036, i64 %4041
  %4043 = load float, ptr %4042, align 4, !tbaa !11
  %4044 = load float, ptr %57, align 4, !tbaa !11
  %4045 = load float, ptr %54, align 4, !tbaa !11
  %4046 = load float, ptr %58, align 4, !tbaa !11
  %4047 = call float @llvm.fmuladd.f32(float %4045, float %4046, float %4044)
  %4048 = fsub float %4043, %4047
  %4049 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 1
  store float %4048, ptr %4049, align 4, !tbaa !11
  %4050 = load float, ptr %54, align 4, !tbaa !11
  %4051 = fneg float %4050
  %4052 = load ptr, ptr %22, align 8, !tbaa !5
  %4053 = load i64, ptr %46, align 8, !tbaa !9
  %4054 = load i64, ptr %46, align 8, !tbaa !9
  %4055 = load i64, ptr %30, align 8, !tbaa !9
  %4056 = mul nsw i64 %4054, %4055
  %4057 = add nsw i64 %4053, %4056
  %4058 = getelementptr inbounds float, ptr %4052, i64 %4057
  %4059 = load float, ptr %4058, align 4, !tbaa !11
  %4060 = fmul float %4051, %4059
  store float %4060, ptr %38, align 4, !tbaa !11
  %4061 = load ptr, ptr %20, align 8, !tbaa !5
  %4062 = load i64, ptr %44, align 8, !tbaa !9
  %4063 = load i64, ptr %44, align 8, !tbaa !9
  %4064 = load i64, ptr %28, align 8, !tbaa !9
  %4065 = mul nsw i64 %4063, %4064
  %4066 = add nsw i64 %4062, %4065
  %4067 = getelementptr inbounds float, ptr %4061, i64 %4066
  %4068 = load ptr, ptr %21, align 8, !tbaa !5
  %4069 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %4070 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %4071 = call i32 @slaln2_(ptr noundef @c_false, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %56, ptr noundef @c_b26, ptr noundef %4067, ptr noundef %4068, ptr noundef @c_b26, ptr noundef @c_b26, ptr noundef %4069, ptr noundef @c__2, ptr noundef %38, ptr noundef @c_b30, ptr noundef %4070, ptr noundef @c__2, ptr noundef %62, ptr noundef %61, ptr noundef %55)
  %4072 = load i64, ptr %55, align 8, !tbaa !9
  %4073 = icmp ne i64 %4072, 0
  br i1 %4073, label %4074, label %4076

4074:                                             ; preds = %4027
  %4075 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %4075, align 8, !tbaa !9
  br label %4076

4076:                                             ; preds = %4074, %4027
  %4077 = load float, ptr %62, align 4, !tbaa !11
  %4078 = fcmp une float %4077, 1.000000e+00
  br i1 %4078, label %4079, label %4103

4079:                                             ; preds = %4076
  %4080 = load ptr, ptr %19, align 8, !tbaa !5
  %4081 = load i64, ptr %4080, align 8, !tbaa !9
  store i64 %4081, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %4082

4082:                                             ; preds = %4095, %4079
  %4083 = load i64, ptr %40, align 8, !tbaa !9
  %4084 = load i64, ptr %34, align 8, !tbaa !9
  %4085 = icmp sle i64 %4083, %4084
  br i1 %4085, label %4086, label %4098

4086:                                             ; preds = %4082
  %4087 = load ptr, ptr %18, align 8, !tbaa !5
  %4088 = load ptr, ptr %24, align 8, !tbaa !5
  %4089 = load i64, ptr %40, align 8, !tbaa !9
  %4090 = load i64, ptr %32, align 8, !tbaa !9
  %4091 = mul nsw i64 %4089, %4090
  %4092 = add nsw i64 %4091, 1
  %4093 = getelementptr inbounds float, ptr %4088, i64 %4092
  %4094 = call i32 @f2c_sscal(ptr noundef %4087, ptr noundef %62, ptr noundef %4093, ptr noundef @c__1)
  br label %4095

4095:                                             ; preds = %4086
  %4096 = load i64, ptr %40, align 8, !tbaa !9
  %4097 = add nsw i64 %4096, 1
  store i64 %4097, ptr %40, align 8, !tbaa !9
  br label %4082, !llvm.loop !33

4098:                                             ; preds = %4082
  %4099 = load float, ptr %62, align 4, !tbaa !11
  %4100 = load ptr, ptr %26, align 8, !tbaa !5
  %4101 = load float, ptr %4100, align 4, !tbaa !11
  %4102 = fmul float %4101, %4099
  store float %4102, ptr %4100, align 4, !tbaa !11
  br label %4103

4103:                                             ; preds = %4098, %4076
  %4104 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %4105 = load float, ptr %4104, align 16, !tbaa !11
  %4106 = load ptr, ptr %24, align 8, !tbaa !5
  %4107 = load i64, ptr %44, align 8, !tbaa !9
  %4108 = load i64, ptr %46, align 8, !tbaa !9
  %4109 = load i64, ptr %32, align 8, !tbaa !9
  %4110 = mul nsw i64 %4108, %4109
  %4111 = add nsw i64 %4107, %4110
  %4112 = getelementptr inbounds float, ptr %4106, i64 %4111
  store float %4105, ptr %4112, align 4, !tbaa !11
  %4113 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 1
  %4114 = load float, ptr %4113, align 4, !tbaa !11
  %4115 = load ptr, ptr %24, align 8, !tbaa !5
  %4116 = load i64, ptr %45, align 8, !tbaa !9
  %4117 = load i64, ptr %46, align 8, !tbaa !9
  %4118 = load i64, ptr %32, align 8, !tbaa !9
  %4119 = mul nsw i64 %4117, %4118
  %4120 = add nsw i64 %4116, %4119
  %4121 = getelementptr inbounds float, ptr %4115, i64 %4120
  store float %4114, ptr %4121, align 4, !tbaa !11
  br label %4936

4122:                                             ; preds = %3835, %3831
  %4123 = load i64, ptr %46, align 8, !tbaa !9
  %4124 = load i64, ptr %47, align 8, !tbaa !9
  %4125 = icmp ne i64 %4123, %4124
  br i1 %4125, label %4126, label %4417

4126:                                             ; preds = %4122
  %4127 = load i64, ptr %44, align 8, !tbaa !9
  %4128 = load i64, ptr %45, align 8, !tbaa !9
  %4129 = icmp eq i64 %4127, %4128
  br i1 %4129, label %4130, label %4417

4130:                                             ; preds = %4126
  %4131 = load ptr, ptr %18, align 8, !tbaa !5
  %4132 = load i64, ptr %4131, align 8, !tbaa !9
  %4133 = load i64, ptr %44, align 8, !tbaa !9
  %4134 = sub nsw i64 %4132, %4133
  store i64 %4134, ptr %34, align 8, !tbaa !9
  %4135 = load i64, ptr %44, align 8, !tbaa !9
  %4136 = add nsw i64 %4135, 1
  store i64 %4136, ptr %35, align 8, !tbaa !9
  %4137 = load i64, ptr %44, align 8, !tbaa !9
  %4138 = add nsw i64 %4137, 1
  store i64 %4138, ptr %36, align 8, !tbaa !9
  %4139 = load ptr, ptr %20, align 8, !tbaa !5
  %4140 = load i64, ptr %44, align 8, !tbaa !9
  %4141 = load i64, ptr %35, align 8, !tbaa !9
  %4142 = load ptr, ptr %18, align 8, !tbaa !5
  %4143 = load i64, ptr %4142, align 8, !tbaa !9
  %4144 = icmp sle i64 %4141, %4143
  br i1 %4144, label %4145, label %4147

4145:                                             ; preds = %4130
  %4146 = load i64, ptr %35, align 8, !tbaa !9
  br label %4150

4147:                                             ; preds = %4130
  %4148 = load ptr, ptr %18, align 8, !tbaa !5
  %4149 = load i64, ptr %4148, align 8, !tbaa !9
  br label %4150

4150:                                             ; preds = %4147, %4145
  %4151 = phi i64 [ %4146, %4145 ], [ %4149, %4147 ]
  %4152 = load i64, ptr %28, align 8, !tbaa !9
  %4153 = mul nsw i64 %4151, %4152
  %4154 = add nsw i64 %4140, %4153
  %4155 = getelementptr inbounds float, ptr %4139, i64 %4154
  %4156 = load ptr, ptr %21, align 8, !tbaa !5
  %4157 = load ptr, ptr %24, align 8, !tbaa !5
  %4158 = load i64, ptr %36, align 8, !tbaa !9
  %4159 = load ptr, ptr %18, align 8, !tbaa !5
  %4160 = load i64, ptr %4159, align 8, !tbaa !9
  %4161 = icmp sle i64 %4158, %4160
  br i1 %4161, label %4162, label %4164

4162:                                             ; preds = %4150
  %4163 = load i64, ptr %36, align 8, !tbaa !9
  br label %4167

4164:                                             ; preds = %4150
  %4165 = load ptr, ptr %18, align 8, !tbaa !5
  %4166 = load i64, ptr %4165, align 8, !tbaa !9
  br label %4167

4167:                                             ; preds = %4164, %4162
  %4168 = phi i64 [ %4163, %4162 ], [ %4166, %4164 ]
  %4169 = load i64, ptr %46, align 8, !tbaa !9
  %4170 = load i64, ptr %32, align 8, !tbaa !9
  %4171 = mul nsw i64 %4169, %4170
  %4172 = add nsw i64 %4168, %4171
  %4173 = getelementptr inbounds float, ptr %4157, i64 %4172
  %4174 = call double @f2c_sdot(ptr noundef %34, ptr noundef %4155, ptr noundef %4156, ptr noundef %4173, ptr noundef @c__1)
  %4175 = fptrunc double %4174 to float
  store float %4175, ptr %57, align 4, !tbaa !11
  %4176 = load ptr, ptr %19, align 8, !tbaa !5
  %4177 = load i64, ptr %4176, align 8, !tbaa !9
  %4178 = load i64, ptr %47, align 8, !tbaa !9
  %4179 = sub nsw i64 %4177, %4178
  store i64 %4179, ptr %34, align 8, !tbaa !9
  %4180 = load i64, ptr %47, align 8, !tbaa !9
  %4181 = add nsw i64 %4180, 1
  store i64 %4181, ptr %35, align 8, !tbaa !9
  %4182 = load i64, ptr %47, align 8, !tbaa !9
  %4183 = add nsw i64 %4182, 1
  store i64 %4183, ptr %36, align 8, !tbaa !9
  %4184 = load ptr, ptr %24, align 8, !tbaa !5
  %4185 = load i64, ptr %44, align 8, !tbaa !9
  %4186 = load i64, ptr %35, align 8, !tbaa !9
  %4187 = load ptr, ptr %19, align 8, !tbaa !5
  %4188 = load i64, ptr %4187, align 8, !tbaa !9
  %4189 = icmp sle i64 %4186, %4188
  br i1 %4189, label %4190, label %4192

4190:                                             ; preds = %4167
  %4191 = load i64, ptr %35, align 8, !tbaa !9
  br label %4195

4192:                                             ; preds = %4167
  %4193 = load ptr, ptr %19, align 8, !tbaa !5
  %4194 = load i64, ptr %4193, align 8, !tbaa !9
  br label %4195

4195:                                             ; preds = %4192, %4190
  %4196 = phi i64 [ %4191, %4190 ], [ %4194, %4192 ]
  %4197 = load i64, ptr %32, align 8, !tbaa !9
  %4198 = mul nsw i64 %4196, %4197
  %4199 = add nsw i64 %4185, %4198
  %4200 = getelementptr inbounds float, ptr %4184, i64 %4199
  %4201 = load ptr, ptr %25, align 8, !tbaa !5
  %4202 = load ptr, ptr %22, align 8, !tbaa !5
  %4203 = load i64, ptr %46, align 8, !tbaa !9
  %4204 = load i64, ptr %36, align 8, !tbaa !9
  %4205 = load ptr, ptr %19, align 8, !tbaa !5
  %4206 = load i64, ptr %4205, align 8, !tbaa !9
  %4207 = icmp sle i64 %4204, %4206
  br i1 %4207, label %4208, label %4210

4208:                                             ; preds = %4195
  %4209 = load i64, ptr %36, align 8, !tbaa !9
  br label %4213

4210:                                             ; preds = %4195
  %4211 = load ptr, ptr %19, align 8, !tbaa !5
  %4212 = load i64, ptr %4211, align 8, !tbaa !9
  br label %4213

4213:                                             ; preds = %4210, %4208
  %4214 = phi i64 [ %4209, %4208 ], [ %4212, %4210 ]
  %4215 = load i64, ptr %30, align 8, !tbaa !9
  %4216 = mul nsw i64 %4214, %4215
  %4217 = add nsw i64 %4203, %4216
  %4218 = getelementptr inbounds float, ptr %4202, i64 %4217
  %4219 = load ptr, ptr %23, align 8, !tbaa !5
  %4220 = call double @f2c_sdot(ptr noundef %34, ptr noundef %4200, ptr noundef %4201, ptr noundef %4218, ptr noundef %4219)
  %4221 = fptrunc double %4220 to float
  store float %4221, ptr %58, align 4, !tbaa !11
  %4222 = load float, ptr %54, align 4, !tbaa !11
  %4223 = load ptr, ptr %24, align 8, !tbaa !5
  %4224 = load i64, ptr %44, align 8, !tbaa !9
  %4225 = load i64, ptr %46, align 8, !tbaa !9
  %4226 = load i64, ptr %32, align 8, !tbaa !9
  %4227 = mul nsw i64 %4225, %4226
  %4228 = add nsw i64 %4224, %4227
  %4229 = getelementptr inbounds float, ptr %4223, i64 %4228
  %4230 = load float, ptr %4229, align 4, !tbaa !11
  %4231 = load float, ptr %57, align 4, !tbaa !11
  %4232 = load float, ptr %54, align 4, !tbaa !11
  %4233 = load float, ptr %58, align 4, !tbaa !11
  %4234 = call float @llvm.fmuladd.f32(float %4232, float %4233, float %4231)
  %4235 = fsub float %4230, %4234
  %4236 = fmul float %4222, %4235
  %4237 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %4236, ptr %4237, align 16, !tbaa !11
  %4238 = load ptr, ptr %18, align 8, !tbaa !5
  %4239 = load i64, ptr %4238, align 8, !tbaa !9
  %4240 = load i64, ptr %44, align 8, !tbaa !9
  %4241 = sub nsw i64 %4239, %4240
  store i64 %4241, ptr %34, align 8, !tbaa !9
  %4242 = load i64, ptr %44, align 8, !tbaa !9
  %4243 = add nsw i64 %4242, 1
  store i64 %4243, ptr %35, align 8, !tbaa !9
  %4244 = load i64, ptr %44, align 8, !tbaa !9
  %4245 = add nsw i64 %4244, 1
  store i64 %4245, ptr %36, align 8, !tbaa !9
  %4246 = load ptr, ptr %20, align 8, !tbaa !5
  %4247 = load i64, ptr %44, align 8, !tbaa !9
  %4248 = load i64, ptr %35, align 8, !tbaa !9
  %4249 = load ptr, ptr %18, align 8, !tbaa !5
  %4250 = load i64, ptr %4249, align 8, !tbaa !9
  %4251 = icmp sle i64 %4248, %4250
  br i1 %4251, label %4252, label %4254

4252:                                             ; preds = %4213
  %4253 = load i64, ptr %35, align 8, !tbaa !9
  br label %4257

4254:                                             ; preds = %4213
  %4255 = load ptr, ptr %18, align 8, !tbaa !5
  %4256 = load i64, ptr %4255, align 8, !tbaa !9
  br label %4257

4257:                                             ; preds = %4254, %4252
  %4258 = phi i64 [ %4253, %4252 ], [ %4256, %4254 ]
  %4259 = load i64, ptr %28, align 8, !tbaa !9
  %4260 = mul nsw i64 %4258, %4259
  %4261 = add nsw i64 %4247, %4260
  %4262 = getelementptr inbounds float, ptr %4246, i64 %4261
  %4263 = load ptr, ptr %21, align 8, !tbaa !5
  %4264 = load ptr, ptr %24, align 8, !tbaa !5
  %4265 = load i64, ptr %36, align 8, !tbaa !9
  %4266 = load ptr, ptr %18, align 8, !tbaa !5
  %4267 = load i64, ptr %4266, align 8, !tbaa !9
  %4268 = icmp sle i64 %4265, %4267
  br i1 %4268, label %4269, label %4271

4269:                                             ; preds = %4257
  %4270 = load i64, ptr %36, align 8, !tbaa !9
  br label %4274

4271:                                             ; preds = %4257
  %4272 = load ptr, ptr %18, align 8, !tbaa !5
  %4273 = load i64, ptr %4272, align 8, !tbaa !9
  br label %4274

4274:                                             ; preds = %4271, %4269
  %4275 = phi i64 [ %4270, %4269 ], [ %4273, %4271 ]
  %4276 = load i64, ptr %47, align 8, !tbaa !9
  %4277 = load i64, ptr %32, align 8, !tbaa !9
  %4278 = mul nsw i64 %4276, %4277
  %4279 = add nsw i64 %4275, %4278
  %4280 = getelementptr inbounds float, ptr %4264, i64 %4279
  %4281 = call double @f2c_sdot(ptr noundef %34, ptr noundef %4262, ptr noundef %4263, ptr noundef %4280, ptr noundef @c__1)
  %4282 = fptrunc double %4281 to float
  store float %4282, ptr %57, align 4, !tbaa !11
  %4283 = load ptr, ptr %19, align 8, !tbaa !5
  %4284 = load i64, ptr %4283, align 8, !tbaa !9
  %4285 = load i64, ptr %47, align 8, !tbaa !9
  %4286 = sub nsw i64 %4284, %4285
  store i64 %4286, ptr %34, align 8, !tbaa !9
  %4287 = load i64, ptr %47, align 8, !tbaa !9
  %4288 = add nsw i64 %4287, 1
  store i64 %4288, ptr %35, align 8, !tbaa !9
  %4289 = load i64, ptr %47, align 8, !tbaa !9
  %4290 = add nsw i64 %4289, 1
  store i64 %4290, ptr %36, align 8, !tbaa !9
  %4291 = load ptr, ptr %24, align 8, !tbaa !5
  %4292 = load i64, ptr %44, align 8, !tbaa !9
  %4293 = load i64, ptr %35, align 8, !tbaa !9
  %4294 = load ptr, ptr %19, align 8, !tbaa !5
  %4295 = load i64, ptr %4294, align 8, !tbaa !9
  %4296 = icmp sle i64 %4293, %4295
  br i1 %4296, label %4297, label %4299

4297:                                             ; preds = %4274
  %4298 = load i64, ptr %35, align 8, !tbaa !9
  br label %4302

4299:                                             ; preds = %4274
  %4300 = load ptr, ptr %19, align 8, !tbaa !5
  %4301 = load i64, ptr %4300, align 8, !tbaa !9
  br label %4302

4302:                                             ; preds = %4299, %4297
  %4303 = phi i64 [ %4298, %4297 ], [ %4301, %4299 ]
  %4304 = load i64, ptr %32, align 8, !tbaa !9
  %4305 = mul nsw i64 %4303, %4304
  %4306 = add nsw i64 %4292, %4305
  %4307 = getelementptr inbounds float, ptr %4291, i64 %4306
  %4308 = load ptr, ptr %25, align 8, !tbaa !5
  %4309 = load ptr, ptr %22, align 8, !tbaa !5
  %4310 = load i64, ptr %47, align 8, !tbaa !9
  %4311 = load i64, ptr %36, align 8, !tbaa !9
  %4312 = load ptr, ptr %19, align 8, !tbaa !5
  %4313 = load i64, ptr %4312, align 8, !tbaa !9
  %4314 = icmp sle i64 %4311, %4313
  br i1 %4314, label %4315, label %4317

4315:                                             ; preds = %4302
  %4316 = load i64, ptr %36, align 8, !tbaa !9
  br label %4320

4317:                                             ; preds = %4302
  %4318 = load ptr, ptr %19, align 8, !tbaa !5
  %4319 = load i64, ptr %4318, align 8, !tbaa !9
  br label %4320

4320:                                             ; preds = %4317, %4315
  %4321 = phi i64 [ %4316, %4315 ], [ %4319, %4317 ]
  %4322 = load i64, ptr %30, align 8, !tbaa !9
  %4323 = mul nsw i64 %4321, %4322
  %4324 = add nsw i64 %4310, %4323
  %4325 = getelementptr inbounds float, ptr %4309, i64 %4324
  %4326 = load ptr, ptr %23, align 8, !tbaa !5
  %4327 = call double @f2c_sdot(ptr noundef %34, ptr noundef %4307, ptr noundef %4308, ptr noundef %4325, ptr noundef %4326)
  %4328 = fptrunc double %4327 to float
  store float %4328, ptr %58, align 4, !tbaa !11
  %4329 = load float, ptr %54, align 4, !tbaa !11
  %4330 = load ptr, ptr %24, align 8, !tbaa !5
  %4331 = load i64, ptr %44, align 8, !tbaa !9
  %4332 = load i64, ptr %47, align 8, !tbaa !9
  %4333 = load i64, ptr %32, align 8, !tbaa !9
  %4334 = mul nsw i64 %4332, %4333
  %4335 = add nsw i64 %4331, %4334
  %4336 = getelementptr inbounds float, ptr %4330, i64 %4335
  %4337 = load float, ptr %4336, align 4, !tbaa !11
  %4338 = load float, ptr %57, align 4, !tbaa !11
  %4339 = load float, ptr %54, align 4, !tbaa !11
  %4340 = load float, ptr %58, align 4, !tbaa !11
  %4341 = call float @llvm.fmuladd.f32(float %4339, float %4340, float %4338)
  %4342 = fsub float %4337, %4341
  %4343 = fmul float %4329, %4342
  %4344 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 1
  store float %4343, ptr %4344, align 4, !tbaa !11
  %4345 = load float, ptr %54, align 4, !tbaa !11
  %4346 = fneg float %4345
  %4347 = load ptr, ptr %20, align 8, !tbaa !5
  %4348 = load i64, ptr %44, align 8, !tbaa !9
  %4349 = load i64, ptr %44, align 8, !tbaa !9
  %4350 = load i64, ptr %28, align 8, !tbaa !9
  %4351 = mul nsw i64 %4349, %4350
  %4352 = add nsw i64 %4348, %4351
  %4353 = getelementptr inbounds float, ptr %4347, i64 %4352
  %4354 = load float, ptr %4353, align 4, !tbaa !11
  %4355 = fmul float %4346, %4354
  store float %4355, ptr %38, align 4, !tbaa !11
  %4356 = load ptr, ptr %22, align 8, !tbaa !5
  %4357 = load i64, ptr %46, align 8, !tbaa !9
  %4358 = load i64, ptr %46, align 8, !tbaa !9
  %4359 = load i64, ptr %30, align 8, !tbaa !9
  %4360 = mul nsw i64 %4358, %4359
  %4361 = add nsw i64 %4357, %4360
  %4362 = getelementptr inbounds float, ptr %4356, i64 %4361
  %4363 = load ptr, ptr %23, align 8, !tbaa !5
  %4364 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %4365 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %4366 = call i32 @slaln2_(ptr noundef @c_false, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %56, ptr noundef @c_b26, ptr noundef %4362, ptr noundef %4363, ptr noundef @c_b26, ptr noundef @c_b26, ptr noundef %4364, ptr noundef @c__2, ptr noundef %38, ptr noundef @c_b30, ptr noundef %4365, ptr noundef @c__2, ptr noundef %62, ptr noundef %61, ptr noundef %55)
  %4367 = load i64, ptr %55, align 8, !tbaa !9
  %4368 = icmp ne i64 %4367, 0
  br i1 %4368, label %4369, label %4371

4369:                                             ; preds = %4320
  %4370 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %4370, align 8, !tbaa !9
  br label %4371

4371:                                             ; preds = %4369, %4320
  %4372 = load float, ptr %62, align 4, !tbaa !11
  %4373 = fcmp une float %4372, 1.000000e+00
  br i1 %4373, label %4374, label %4398

4374:                                             ; preds = %4371
  %4375 = load ptr, ptr %19, align 8, !tbaa !5
  %4376 = load i64, ptr %4375, align 8, !tbaa !9
  store i64 %4376, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %4377

4377:                                             ; preds = %4390, %4374
  %4378 = load i64, ptr %40, align 8, !tbaa !9
  %4379 = load i64, ptr %34, align 8, !tbaa !9
  %4380 = icmp sle i64 %4378, %4379
  br i1 %4380, label %4381, label %4393

4381:                                             ; preds = %4377
  %4382 = load ptr, ptr %18, align 8, !tbaa !5
  %4383 = load ptr, ptr %24, align 8, !tbaa !5
  %4384 = load i64, ptr %40, align 8, !tbaa !9
  %4385 = load i64, ptr %32, align 8, !tbaa !9
  %4386 = mul nsw i64 %4384, %4385
  %4387 = add nsw i64 %4386, 1
  %4388 = getelementptr inbounds float, ptr %4383, i64 %4387
  %4389 = call i32 @f2c_sscal(ptr noundef %4382, ptr noundef %62, ptr noundef %4388, ptr noundef @c__1)
  br label %4390

4390:                                             ; preds = %4381
  %4391 = load i64, ptr %40, align 8, !tbaa !9
  %4392 = add nsw i64 %4391, 1
  store i64 %4392, ptr %40, align 8, !tbaa !9
  br label %4377, !llvm.loop !34

4393:                                             ; preds = %4377
  %4394 = load float, ptr %62, align 4, !tbaa !11
  %4395 = load ptr, ptr %26, align 8, !tbaa !5
  %4396 = load float, ptr %4395, align 4, !tbaa !11
  %4397 = fmul float %4396, %4394
  store float %4397, ptr %4395, align 4, !tbaa !11
  br label %4398

4398:                                             ; preds = %4393, %4371
  %4399 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %4400 = load float, ptr %4399, align 16, !tbaa !11
  %4401 = load ptr, ptr %24, align 8, !tbaa !5
  %4402 = load i64, ptr %44, align 8, !tbaa !9
  %4403 = load i64, ptr %46, align 8, !tbaa !9
  %4404 = load i64, ptr %32, align 8, !tbaa !9
  %4405 = mul nsw i64 %4403, %4404
  %4406 = add nsw i64 %4402, %4405
  %4407 = getelementptr inbounds float, ptr %4401, i64 %4406
  store float %4400, ptr %4407, align 4, !tbaa !11
  %4408 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 1
  %4409 = load float, ptr %4408, align 4, !tbaa !11
  %4410 = load ptr, ptr %24, align 8, !tbaa !5
  %4411 = load i64, ptr %44, align 8, !tbaa !9
  %4412 = load i64, ptr %47, align 8, !tbaa !9
  %4413 = load i64, ptr %32, align 8, !tbaa !9
  %4414 = mul nsw i64 %4412, %4413
  %4415 = add nsw i64 %4411, %4414
  %4416 = getelementptr inbounds float, ptr %4410, i64 %4415
  store float %4409, ptr %4416, align 4, !tbaa !11
  br label %4935

4417:                                             ; preds = %4126, %4122
  %4418 = load i64, ptr %46, align 8, !tbaa !9
  %4419 = load i64, ptr %47, align 8, !tbaa !9
  %4420 = icmp ne i64 %4418, %4419
  br i1 %4420, label %4421, label %4934

4421:                                             ; preds = %4417
  %4422 = load i64, ptr %44, align 8, !tbaa !9
  %4423 = load i64, ptr %45, align 8, !tbaa !9
  %4424 = icmp ne i64 %4422, %4423
  br i1 %4424, label %4425, label %4934

4425:                                             ; preds = %4421
  %4426 = load ptr, ptr %18, align 8, !tbaa !5
  %4427 = load i64, ptr %4426, align 8, !tbaa !9
  %4428 = load i64, ptr %45, align 8, !tbaa !9
  %4429 = sub nsw i64 %4427, %4428
  store i64 %4429, ptr %34, align 8, !tbaa !9
  %4430 = load i64, ptr %45, align 8, !tbaa !9
  %4431 = add nsw i64 %4430, 1
  store i64 %4431, ptr %35, align 8, !tbaa !9
  %4432 = load i64, ptr %45, align 8, !tbaa !9
  %4433 = add nsw i64 %4432, 1
  store i64 %4433, ptr %36, align 8, !tbaa !9
  %4434 = load ptr, ptr %20, align 8, !tbaa !5
  %4435 = load i64, ptr %44, align 8, !tbaa !9
  %4436 = load i64, ptr %35, align 8, !tbaa !9
  %4437 = load ptr, ptr %18, align 8, !tbaa !5
  %4438 = load i64, ptr %4437, align 8, !tbaa !9
  %4439 = icmp sle i64 %4436, %4438
  br i1 %4439, label %4440, label %4442

4440:                                             ; preds = %4425
  %4441 = load i64, ptr %35, align 8, !tbaa !9
  br label %4445

4442:                                             ; preds = %4425
  %4443 = load ptr, ptr %18, align 8, !tbaa !5
  %4444 = load i64, ptr %4443, align 8, !tbaa !9
  br label %4445

4445:                                             ; preds = %4442, %4440
  %4446 = phi i64 [ %4441, %4440 ], [ %4444, %4442 ]
  %4447 = load i64, ptr %28, align 8, !tbaa !9
  %4448 = mul nsw i64 %4446, %4447
  %4449 = add nsw i64 %4435, %4448
  %4450 = getelementptr inbounds float, ptr %4434, i64 %4449
  %4451 = load ptr, ptr %21, align 8, !tbaa !5
  %4452 = load ptr, ptr %24, align 8, !tbaa !5
  %4453 = load i64, ptr %36, align 8, !tbaa !9
  %4454 = load ptr, ptr %18, align 8, !tbaa !5
  %4455 = load i64, ptr %4454, align 8, !tbaa !9
  %4456 = icmp sle i64 %4453, %4455
  br i1 %4456, label %4457, label %4459

4457:                                             ; preds = %4445
  %4458 = load i64, ptr %36, align 8, !tbaa !9
  br label %4462

4459:                                             ; preds = %4445
  %4460 = load ptr, ptr %18, align 8, !tbaa !5
  %4461 = load i64, ptr %4460, align 8, !tbaa !9
  br label %4462

4462:                                             ; preds = %4459, %4457
  %4463 = phi i64 [ %4458, %4457 ], [ %4461, %4459 ]
  %4464 = load i64, ptr %46, align 8, !tbaa !9
  %4465 = load i64, ptr %32, align 8, !tbaa !9
  %4466 = mul nsw i64 %4464, %4465
  %4467 = add nsw i64 %4463, %4466
  %4468 = getelementptr inbounds float, ptr %4452, i64 %4467
  %4469 = call double @f2c_sdot(ptr noundef %34, ptr noundef %4450, ptr noundef %4451, ptr noundef %4468, ptr noundef @c__1)
  %4470 = fptrunc double %4469 to float
  store float %4470, ptr %57, align 4, !tbaa !11
  %4471 = load ptr, ptr %19, align 8, !tbaa !5
  %4472 = load i64, ptr %4471, align 8, !tbaa !9
  %4473 = load i64, ptr %47, align 8, !tbaa !9
  %4474 = sub nsw i64 %4472, %4473
  store i64 %4474, ptr %34, align 8, !tbaa !9
  %4475 = load i64, ptr %47, align 8, !tbaa !9
  %4476 = add nsw i64 %4475, 1
  store i64 %4476, ptr %35, align 8, !tbaa !9
  %4477 = load i64, ptr %47, align 8, !tbaa !9
  %4478 = add nsw i64 %4477, 1
  store i64 %4478, ptr %36, align 8, !tbaa !9
  %4479 = load ptr, ptr %24, align 8, !tbaa !5
  %4480 = load i64, ptr %44, align 8, !tbaa !9
  %4481 = load i64, ptr %35, align 8, !tbaa !9
  %4482 = load ptr, ptr %19, align 8, !tbaa !5
  %4483 = load i64, ptr %4482, align 8, !tbaa !9
  %4484 = icmp sle i64 %4481, %4483
  br i1 %4484, label %4485, label %4487

4485:                                             ; preds = %4462
  %4486 = load i64, ptr %35, align 8, !tbaa !9
  br label %4490

4487:                                             ; preds = %4462
  %4488 = load ptr, ptr %19, align 8, !tbaa !5
  %4489 = load i64, ptr %4488, align 8, !tbaa !9
  br label %4490

4490:                                             ; preds = %4487, %4485
  %4491 = phi i64 [ %4486, %4485 ], [ %4489, %4487 ]
  %4492 = load i64, ptr %32, align 8, !tbaa !9
  %4493 = mul nsw i64 %4491, %4492
  %4494 = add nsw i64 %4480, %4493
  %4495 = getelementptr inbounds float, ptr %4479, i64 %4494
  %4496 = load ptr, ptr %25, align 8, !tbaa !5
  %4497 = load ptr, ptr %22, align 8, !tbaa !5
  %4498 = load i64, ptr %46, align 8, !tbaa !9
  %4499 = load i64, ptr %36, align 8, !tbaa !9
  %4500 = load ptr, ptr %19, align 8, !tbaa !5
  %4501 = load i64, ptr %4500, align 8, !tbaa !9
  %4502 = icmp sle i64 %4499, %4501
  br i1 %4502, label %4503, label %4505

4503:                                             ; preds = %4490
  %4504 = load i64, ptr %36, align 8, !tbaa !9
  br label %4508

4505:                                             ; preds = %4490
  %4506 = load ptr, ptr %19, align 8, !tbaa !5
  %4507 = load i64, ptr %4506, align 8, !tbaa !9
  br label %4508

4508:                                             ; preds = %4505, %4503
  %4509 = phi i64 [ %4504, %4503 ], [ %4507, %4505 ]
  %4510 = load i64, ptr %30, align 8, !tbaa !9
  %4511 = mul nsw i64 %4509, %4510
  %4512 = add nsw i64 %4498, %4511
  %4513 = getelementptr inbounds float, ptr %4497, i64 %4512
  %4514 = load ptr, ptr %23, align 8, !tbaa !5
  %4515 = call double @f2c_sdot(ptr noundef %34, ptr noundef %4495, ptr noundef %4496, ptr noundef %4513, ptr noundef %4514)
  %4516 = fptrunc double %4515 to float
  store float %4516, ptr %58, align 4, !tbaa !11
  %4517 = load ptr, ptr %24, align 8, !tbaa !5
  %4518 = load i64, ptr %44, align 8, !tbaa !9
  %4519 = load i64, ptr %46, align 8, !tbaa !9
  %4520 = load i64, ptr %32, align 8, !tbaa !9
  %4521 = mul nsw i64 %4519, %4520
  %4522 = add nsw i64 %4518, %4521
  %4523 = getelementptr inbounds float, ptr %4517, i64 %4522
  %4524 = load float, ptr %4523, align 4, !tbaa !11
  %4525 = load float, ptr %57, align 4, !tbaa !11
  %4526 = load float, ptr %54, align 4, !tbaa !11
  %4527 = load float, ptr %58, align 4, !tbaa !11
  %4528 = call float @llvm.fmuladd.f32(float %4526, float %4527, float %4525)
  %4529 = fsub float %4524, %4528
  %4530 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  store float %4529, ptr %4530, align 16, !tbaa !11
  %4531 = load ptr, ptr %18, align 8, !tbaa !5
  %4532 = load i64, ptr %4531, align 8, !tbaa !9
  %4533 = load i64, ptr %45, align 8, !tbaa !9
  %4534 = sub nsw i64 %4532, %4533
  store i64 %4534, ptr %34, align 8, !tbaa !9
  %4535 = load i64, ptr %45, align 8, !tbaa !9
  %4536 = add nsw i64 %4535, 1
  store i64 %4536, ptr %35, align 8, !tbaa !9
  %4537 = load i64, ptr %45, align 8, !tbaa !9
  %4538 = add nsw i64 %4537, 1
  store i64 %4538, ptr %36, align 8, !tbaa !9
  %4539 = load ptr, ptr %20, align 8, !tbaa !5
  %4540 = load i64, ptr %44, align 8, !tbaa !9
  %4541 = load i64, ptr %35, align 8, !tbaa !9
  %4542 = load ptr, ptr %18, align 8, !tbaa !5
  %4543 = load i64, ptr %4542, align 8, !tbaa !9
  %4544 = icmp sle i64 %4541, %4543
  br i1 %4544, label %4545, label %4547

4545:                                             ; preds = %4508
  %4546 = load i64, ptr %35, align 8, !tbaa !9
  br label %4550

4547:                                             ; preds = %4508
  %4548 = load ptr, ptr %18, align 8, !tbaa !5
  %4549 = load i64, ptr %4548, align 8, !tbaa !9
  br label %4550

4550:                                             ; preds = %4547, %4545
  %4551 = phi i64 [ %4546, %4545 ], [ %4549, %4547 ]
  %4552 = load i64, ptr %28, align 8, !tbaa !9
  %4553 = mul nsw i64 %4551, %4552
  %4554 = add nsw i64 %4540, %4553
  %4555 = getelementptr inbounds float, ptr %4539, i64 %4554
  %4556 = load ptr, ptr %21, align 8, !tbaa !5
  %4557 = load ptr, ptr %24, align 8, !tbaa !5
  %4558 = load i64, ptr %36, align 8, !tbaa !9
  %4559 = load ptr, ptr %18, align 8, !tbaa !5
  %4560 = load i64, ptr %4559, align 8, !tbaa !9
  %4561 = icmp sle i64 %4558, %4560
  br i1 %4561, label %4562, label %4564

4562:                                             ; preds = %4550
  %4563 = load i64, ptr %36, align 8, !tbaa !9
  br label %4567

4564:                                             ; preds = %4550
  %4565 = load ptr, ptr %18, align 8, !tbaa !5
  %4566 = load i64, ptr %4565, align 8, !tbaa !9
  br label %4567

4567:                                             ; preds = %4564, %4562
  %4568 = phi i64 [ %4563, %4562 ], [ %4566, %4564 ]
  %4569 = load i64, ptr %47, align 8, !tbaa !9
  %4570 = load i64, ptr %32, align 8, !tbaa !9
  %4571 = mul nsw i64 %4569, %4570
  %4572 = add nsw i64 %4568, %4571
  %4573 = getelementptr inbounds float, ptr %4557, i64 %4572
  %4574 = call double @f2c_sdot(ptr noundef %34, ptr noundef %4555, ptr noundef %4556, ptr noundef %4573, ptr noundef @c__1)
  %4575 = fptrunc double %4574 to float
  store float %4575, ptr %57, align 4, !tbaa !11
  %4576 = load ptr, ptr %19, align 8, !tbaa !5
  %4577 = load i64, ptr %4576, align 8, !tbaa !9
  %4578 = load i64, ptr %47, align 8, !tbaa !9
  %4579 = sub nsw i64 %4577, %4578
  store i64 %4579, ptr %34, align 8, !tbaa !9
  %4580 = load i64, ptr %47, align 8, !tbaa !9
  %4581 = add nsw i64 %4580, 1
  store i64 %4581, ptr %35, align 8, !tbaa !9
  %4582 = load i64, ptr %47, align 8, !tbaa !9
  %4583 = add nsw i64 %4582, 1
  store i64 %4583, ptr %36, align 8, !tbaa !9
  %4584 = load ptr, ptr %24, align 8, !tbaa !5
  %4585 = load i64, ptr %44, align 8, !tbaa !9
  %4586 = load i64, ptr %35, align 8, !tbaa !9
  %4587 = load ptr, ptr %19, align 8, !tbaa !5
  %4588 = load i64, ptr %4587, align 8, !tbaa !9
  %4589 = icmp sle i64 %4586, %4588
  br i1 %4589, label %4590, label %4592

4590:                                             ; preds = %4567
  %4591 = load i64, ptr %35, align 8, !tbaa !9
  br label %4595

4592:                                             ; preds = %4567
  %4593 = load ptr, ptr %19, align 8, !tbaa !5
  %4594 = load i64, ptr %4593, align 8, !tbaa !9
  br label %4595

4595:                                             ; preds = %4592, %4590
  %4596 = phi i64 [ %4591, %4590 ], [ %4594, %4592 ]
  %4597 = load i64, ptr %32, align 8, !tbaa !9
  %4598 = mul nsw i64 %4596, %4597
  %4599 = add nsw i64 %4585, %4598
  %4600 = getelementptr inbounds float, ptr %4584, i64 %4599
  %4601 = load ptr, ptr %25, align 8, !tbaa !5
  %4602 = load ptr, ptr %22, align 8, !tbaa !5
  %4603 = load i64, ptr %47, align 8, !tbaa !9
  %4604 = load i64, ptr %36, align 8, !tbaa !9
  %4605 = load ptr, ptr %19, align 8, !tbaa !5
  %4606 = load i64, ptr %4605, align 8, !tbaa !9
  %4607 = icmp sle i64 %4604, %4606
  br i1 %4607, label %4608, label %4610

4608:                                             ; preds = %4595
  %4609 = load i64, ptr %36, align 8, !tbaa !9
  br label %4613

4610:                                             ; preds = %4595
  %4611 = load ptr, ptr %19, align 8, !tbaa !5
  %4612 = load i64, ptr %4611, align 8, !tbaa !9
  br label %4613

4613:                                             ; preds = %4610, %4608
  %4614 = phi i64 [ %4609, %4608 ], [ %4612, %4610 ]
  %4615 = load i64, ptr %30, align 8, !tbaa !9
  %4616 = mul nsw i64 %4614, %4615
  %4617 = add nsw i64 %4603, %4616
  %4618 = getelementptr inbounds float, ptr %4602, i64 %4617
  %4619 = load ptr, ptr %23, align 8, !tbaa !5
  %4620 = call double @f2c_sdot(ptr noundef %34, ptr noundef %4600, ptr noundef %4601, ptr noundef %4618, ptr noundef %4619)
  %4621 = fptrunc double %4620 to float
  store float %4621, ptr %58, align 4, !tbaa !11
  %4622 = load ptr, ptr %24, align 8, !tbaa !5
  %4623 = load i64, ptr %44, align 8, !tbaa !9
  %4624 = load i64, ptr %47, align 8, !tbaa !9
  %4625 = load i64, ptr %32, align 8, !tbaa !9
  %4626 = mul nsw i64 %4624, %4625
  %4627 = add nsw i64 %4623, %4626
  %4628 = getelementptr inbounds float, ptr %4622, i64 %4627
  %4629 = load float, ptr %4628, align 4, !tbaa !11
  %4630 = load float, ptr %57, align 4, !tbaa !11
  %4631 = load float, ptr %54, align 4, !tbaa !11
  %4632 = load float, ptr %58, align 4, !tbaa !11
  %4633 = call float @llvm.fmuladd.f32(float %4631, float %4632, float %4630)
  %4634 = fsub float %4629, %4633
  %4635 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 2
  store float %4634, ptr %4635, align 8, !tbaa !11
  %4636 = load ptr, ptr %18, align 8, !tbaa !5
  %4637 = load i64, ptr %4636, align 8, !tbaa !9
  %4638 = load i64, ptr %45, align 8, !tbaa !9
  %4639 = sub nsw i64 %4637, %4638
  store i64 %4639, ptr %34, align 8, !tbaa !9
  %4640 = load i64, ptr %45, align 8, !tbaa !9
  %4641 = add nsw i64 %4640, 1
  store i64 %4641, ptr %35, align 8, !tbaa !9
  %4642 = load i64, ptr %45, align 8, !tbaa !9
  %4643 = add nsw i64 %4642, 1
  store i64 %4643, ptr %36, align 8, !tbaa !9
  %4644 = load ptr, ptr %20, align 8, !tbaa !5
  %4645 = load i64, ptr %45, align 8, !tbaa !9
  %4646 = load i64, ptr %35, align 8, !tbaa !9
  %4647 = load ptr, ptr %18, align 8, !tbaa !5
  %4648 = load i64, ptr %4647, align 8, !tbaa !9
  %4649 = icmp sle i64 %4646, %4648
  br i1 %4649, label %4650, label %4652

4650:                                             ; preds = %4613
  %4651 = load i64, ptr %35, align 8, !tbaa !9
  br label %4655

4652:                                             ; preds = %4613
  %4653 = load ptr, ptr %18, align 8, !tbaa !5
  %4654 = load i64, ptr %4653, align 8, !tbaa !9
  br label %4655

4655:                                             ; preds = %4652, %4650
  %4656 = phi i64 [ %4651, %4650 ], [ %4654, %4652 ]
  %4657 = load i64, ptr %28, align 8, !tbaa !9
  %4658 = mul nsw i64 %4656, %4657
  %4659 = add nsw i64 %4645, %4658
  %4660 = getelementptr inbounds float, ptr %4644, i64 %4659
  %4661 = load ptr, ptr %21, align 8, !tbaa !5
  %4662 = load ptr, ptr %24, align 8, !tbaa !5
  %4663 = load i64, ptr %36, align 8, !tbaa !9
  %4664 = load ptr, ptr %18, align 8, !tbaa !5
  %4665 = load i64, ptr %4664, align 8, !tbaa !9
  %4666 = icmp sle i64 %4663, %4665
  br i1 %4666, label %4667, label %4669

4667:                                             ; preds = %4655
  %4668 = load i64, ptr %36, align 8, !tbaa !9
  br label %4672

4669:                                             ; preds = %4655
  %4670 = load ptr, ptr %18, align 8, !tbaa !5
  %4671 = load i64, ptr %4670, align 8, !tbaa !9
  br label %4672

4672:                                             ; preds = %4669, %4667
  %4673 = phi i64 [ %4668, %4667 ], [ %4671, %4669 ]
  %4674 = load i64, ptr %46, align 8, !tbaa !9
  %4675 = load i64, ptr %32, align 8, !tbaa !9
  %4676 = mul nsw i64 %4674, %4675
  %4677 = add nsw i64 %4673, %4676
  %4678 = getelementptr inbounds float, ptr %4662, i64 %4677
  %4679 = call double @f2c_sdot(ptr noundef %34, ptr noundef %4660, ptr noundef %4661, ptr noundef %4678, ptr noundef @c__1)
  %4680 = fptrunc double %4679 to float
  store float %4680, ptr %57, align 4, !tbaa !11
  %4681 = load ptr, ptr %19, align 8, !tbaa !5
  %4682 = load i64, ptr %4681, align 8, !tbaa !9
  %4683 = load i64, ptr %47, align 8, !tbaa !9
  %4684 = sub nsw i64 %4682, %4683
  store i64 %4684, ptr %34, align 8, !tbaa !9
  %4685 = load i64, ptr %47, align 8, !tbaa !9
  %4686 = add nsw i64 %4685, 1
  store i64 %4686, ptr %35, align 8, !tbaa !9
  %4687 = load i64, ptr %47, align 8, !tbaa !9
  %4688 = add nsw i64 %4687, 1
  store i64 %4688, ptr %36, align 8, !tbaa !9
  %4689 = load ptr, ptr %24, align 8, !tbaa !5
  %4690 = load i64, ptr %45, align 8, !tbaa !9
  %4691 = load i64, ptr %35, align 8, !tbaa !9
  %4692 = load ptr, ptr %19, align 8, !tbaa !5
  %4693 = load i64, ptr %4692, align 8, !tbaa !9
  %4694 = icmp sle i64 %4691, %4693
  br i1 %4694, label %4695, label %4697

4695:                                             ; preds = %4672
  %4696 = load i64, ptr %35, align 8, !tbaa !9
  br label %4700

4697:                                             ; preds = %4672
  %4698 = load ptr, ptr %19, align 8, !tbaa !5
  %4699 = load i64, ptr %4698, align 8, !tbaa !9
  br label %4700

4700:                                             ; preds = %4697, %4695
  %4701 = phi i64 [ %4696, %4695 ], [ %4699, %4697 ]
  %4702 = load i64, ptr %32, align 8, !tbaa !9
  %4703 = mul nsw i64 %4701, %4702
  %4704 = add nsw i64 %4690, %4703
  %4705 = getelementptr inbounds float, ptr %4689, i64 %4704
  %4706 = load ptr, ptr %25, align 8, !tbaa !5
  %4707 = load ptr, ptr %22, align 8, !tbaa !5
  %4708 = load i64, ptr %46, align 8, !tbaa !9
  %4709 = load i64, ptr %36, align 8, !tbaa !9
  %4710 = load ptr, ptr %19, align 8, !tbaa !5
  %4711 = load i64, ptr %4710, align 8, !tbaa !9
  %4712 = icmp sle i64 %4709, %4711
  br i1 %4712, label %4713, label %4715

4713:                                             ; preds = %4700
  %4714 = load i64, ptr %36, align 8, !tbaa !9
  br label %4718

4715:                                             ; preds = %4700
  %4716 = load ptr, ptr %19, align 8, !tbaa !5
  %4717 = load i64, ptr %4716, align 8, !tbaa !9
  br label %4718

4718:                                             ; preds = %4715, %4713
  %4719 = phi i64 [ %4714, %4713 ], [ %4717, %4715 ]
  %4720 = load i64, ptr %30, align 8, !tbaa !9
  %4721 = mul nsw i64 %4719, %4720
  %4722 = add nsw i64 %4708, %4721
  %4723 = getelementptr inbounds float, ptr %4707, i64 %4722
  %4724 = load ptr, ptr %23, align 8, !tbaa !5
  %4725 = call double @f2c_sdot(ptr noundef %34, ptr noundef %4705, ptr noundef %4706, ptr noundef %4723, ptr noundef %4724)
  %4726 = fptrunc double %4725 to float
  store float %4726, ptr %58, align 4, !tbaa !11
  %4727 = load ptr, ptr %24, align 8, !tbaa !5
  %4728 = load i64, ptr %45, align 8, !tbaa !9
  %4729 = load i64, ptr %46, align 8, !tbaa !9
  %4730 = load i64, ptr %32, align 8, !tbaa !9
  %4731 = mul nsw i64 %4729, %4730
  %4732 = add nsw i64 %4728, %4731
  %4733 = getelementptr inbounds float, ptr %4727, i64 %4732
  %4734 = load float, ptr %4733, align 4, !tbaa !11
  %4735 = load float, ptr %57, align 4, !tbaa !11
  %4736 = load float, ptr %54, align 4, !tbaa !11
  %4737 = load float, ptr %58, align 4, !tbaa !11
  %4738 = call float @llvm.fmuladd.f32(float %4736, float %4737, float %4735)
  %4739 = fsub float %4734, %4738
  %4740 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 1
  store float %4739, ptr %4740, align 4, !tbaa !11
  %4741 = load ptr, ptr %18, align 8, !tbaa !5
  %4742 = load i64, ptr %4741, align 8, !tbaa !9
  %4743 = load i64, ptr %45, align 8, !tbaa !9
  %4744 = sub nsw i64 %4742, %4743
  store i64 %4744, ptr %34, align 8, !tbaa !9
  %4745 = load i64, ptr %45, align 8, !tbaa !9
  %4746 = add nsw i64 %4745, 1
  store i64 %4746, ptr %35, align 8, !tbaa !9
  %4747 = load i64, ptr %45, align 8, !tbaa !9
  %4748 = add nsw i64 %4747, 1
  store i64 %4748, ptr %36, align 8, !tbaa !9
  %4749 = load ptr, ptr %20, align 8, !tbaa !5
  %4750 = load i64, ptr %45, align 8, !tbaa !9
  %4751 = load i64, ptr %35, align 8, !tbaa !9
  %4752 = load ptr, ptr %18, align 8, !tbaa !5
  %4753 = load i64, ptr %4752, align 8, !tbaa !9
  %4754 = icmp sle i64 %4751, %4753
  br i1 %4754, label %4755, label %4757

4755:                                             ; preds = %4718
  %4756 = load i64, ptr %35, align 8, !tbaa !9
  br label %4760

4757:                                             ; preds = %4718
  %4758 = load ptr, ptr %18, align 8, !tbaa !5
  %4759 = load i64, ptr %4758, align 8, !tbaa !9
  br label %4760

4760:                                             ; preds = %4757, %4755
  %4761 = phi i64 [ %4756, %4755 ], [ %4759, %4757 ]
  %4762 = load i64, ptr %28, align 8, !tbaa !9
  %4763 = mul nsw i64 %4761, %4762
  %4764 = add nsw i64 %4750, %4763
  %4765 = getelementptr inbounds float, ptr %4749, i64 %4764
  %4766 = load ptr, ptr %21, align 8, !tbaa !5
  %4767 = load ptr, ptr %24, align 8, !tbaa !5
  %4768 = load i64, ptr %36, align 8, !tbaa !9
  %4769 = load ptr, ptr %18, align 8, !tbaa !5
  %4770 = load i64, ptr %4769, align 8, !tbaa !9
  %4771 = icmp sle i64 %4768, %4770
  br i1 %4771, label %4772, label %4774

4772:                                             ; preds = %4760
  %4773 = load i64, ptr %36, align 8, !tbaa !9
  br label %4777

4774:                                             ; preds = %4760
  %4775 = load ptr, ptr %18, align 8, !tbaa !5
  %4776 = load i64, ptr %4775, align 8, !tbaa !9
  br label %4777

4777:                                             ; preds = %4774, %4772
  %4778 = phi i64 [ %4773, %4772 ], [ %4776, %4774 ]
  %4779 = load i64, ptr %47, align 8, !tbaa !9
  %4780 = load i64, ptr %32, align 8, !tbaa !9
  %4781 = mul nsw i64 %4779, %4780
  %4782 = add nsw i64 %4778, %4781
  %4783 = getelementptr inbounds float, ptr %4767, i64 %4782
  %4784 = call double @f2c_sdot(ptr noundef %34, ptr noundef %4765, ptr noundef %4766, ptr noundef %4783, ptr noundef @c__1)
  %4785 = fptrunc double %4784 to float
  store float %4785, ptr %57, align 4, !tbaa !11
  %4786 = load ptr, ptr %19, align 8, !tbaa !5
  %4787 = load i64, ptr %4786, align 8, !tbaa !9
  %4788 = load i64, ptr %47, align 8, !tbaa !9
  %4789 = sub nsw i64 %4787, %4788
  store i64 %4789, ptr %34, align 8, !tbaa !9
  %4790 = load i64, ptr %47, align 8, !tbaa !9
  %4791 = add nsw i64 %4790, 1
  store i64 %4791, ptr %35, align 8, !tbaa !9
  %4792 = load i64, ptr %47, align 8, !tbaa !9
  %4793 = add nsw i64 %4792, 1
  store i64 %4793, ptr %36, align 8, !tbaa !9
  %4794 = load ptr, ptr %24, align 8, !tbaa !5
  %4795 = load i64, ptr %45, align 8, !tbaa !9
  %4796 = load i64, ptr %35, align 8, !tbaa !9
  %4797 = load ptr, ptr %19, align 8, !tbaa !5
  %4798 = load i64, ptr %4797, align 8, !tbaa !9
  %4799 = icmp sle i64 %4796, %4798
  br i1 %4799, label %4800, label %4802

4800:                                             ; preds = %4777
  %4801 = load i64, ptr %35, align 8, !tbaa !9
  br label %4805

4802:                                             ; preds = %4777
  %4803 = load ptr, ptr %19, align 8, !tbaa !5
  %4804 = load i64, ptr %4803, align 8, !tbaa !9
  br label %4805

4805:                                             ; preds = %4802, %4800
  %4806 = phi i64 [ %4801, %4800 ], [ %4804, %4802 ]
  %4807 = load i64, ptr %32, align 8, !tbaa !9
  %4808 = mul nsw i64 %4806, %4807
  %4809 = add nsw i64 %4795, %4808
  %4810 = getelementptr inbounds float, ptr %4794, i64 %4809
  %4811 = load ptr, ptr %25, align 8, !tbaa !5
  %4812 = load ptr, ptr %22, align 8, !tbaa !5
  %4813 = load i64, ptr %47, align 8, !tbaa !9
  %4814 = load i64, ptr %36, align 8, !tbaa !9
  %4815 = load ptr, ptr %19, align 8, !tbaa !5
  %4816 = load i64, ptr %4815, align 8, !tbaa !9
  %4817 = icmp sle i64 %4814, %4816
  br i1 %4817, label %4818, label %4820

4818:                                             ; preds = %4805
  %4819 = load i64, ptr %36, align 8, !tbaa !9
  br label %4823

4820:                                             ; preds = %4805
  %4821 = load ptr, ptr %19, align 8, !tbaa !5
  %4822 = load i64, ptr %4821, align 8, !tbaa !9
  br label %4823

4823:                                             ; preds = %4820, %4818
  %4824 = phi i64 [ %4819, %4818 ], [ %4822, %4820 ]
  %4825 = load i64, ptr %30, align 8, !tbaa !9
  %4826 = mul nsw i64 %4824, %4825
  %4827 = add nsw i64 %4813, %4826
  %4828 = getelementptr inbounds float, ptr %4812, i64 %4827
  %4829 = load ptr, ptr %23, align 8, !tbaa !5
  %4830 = call double @f2c_sdot(ptr noundef %34, ptr noundef %4810, ptr noundef %4811, ptr noundef %4828, ptr noundef %4829)
  %4831 = fptrunc double %4830 to float
  store float %4831, ptr %58, align 4, !tbaa !11
  %4832 = load ptr, ptr %24, align 8, !tbaa !5
  %4833 = load i64, ptr %45, align 8, !tbaa !9
  %4834 = load i64, ptr %47, align 8, !tbaa !9
  %4835 = load i64, ptr %32, align 8, !tbaa !9
  %4836 = mul nsw i64 %4834, %4835
  %4837 = add nsw i64 %4833, %4836
  %4838 = getelementptr inbounds float, ptr %4832, i64 %4837
  %4839 = load float, ptr %4838, align 4, !tbaa !11
  %4840 = load float, ptr %57, align 4, !tbaa !11
  %4841 = load float, ptr %54, align 4, !tbaa !11
  %4842 = load float, ptr %58, align 4, !tbaa !11
  %4843 = call float @llvm.fmuladd.f32(float %4841, float %4842, float %4840)
  %4844 = fsub float %4839, %4843
  %4845 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 3
  store float %4844, ptr %4845, align 4, !tbaa !11
  %4846 = load ptr, ptr %17, align 8, !tbaa !5
  %4847 = load ptr, ptr %20, align 8, !tbaa !5
  %4848 = load i64, ptr %44, align 8, !tbaa !9
  %4849 = load i64, ptr %44, align 8, !tbaa !9
  %4850 = load i64, ptr %28, align 8, !tbaa !9
  %4851 = mul nsw i64 %4849, %4850
  %4852 = add nsw i64 %4848, %4851
  %4853 = getelementptr inbounds float, ptr %4847, i64 %4852
  %4854 = load ptr, ptr %21, align 8, !tbaa !5
  %4855 = load ptr, ptr %22, align 8, !tbaa !5
  %4856 = load i64, ptr %46, align 8, !tbaa !9
  %4857 = load i64, ptr %46, align 8, !tbaa !9
  %4858 = load i64, ptr %30, align 8, !tbaa !9
  %4859 = mul nsw i64 %4857, %4858
  %4860 = add nsw i64 %4856, %4859
  %4861 = getelementptr inbounds float, ptr %4855, i64 %4860
  %4862 = load ptr, ptr %23, align 8, !tbaa !5
  %4863 = getelementptr inbounds [4 x float], ptr %51, i64 0, i64 0
  %4864 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %4865 = call i32 @slasy2_(ptr noundef @c_false, ptr noundef @c_true, ptr noundef %4846, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %4853, ptr noundef %4854, ptr noundef %4861, ptr noundef %4862, ptr noundef %4863, ptr noundef @c__2, ptr noundef %62, ptr noundef %4864, ptr noundef @c__2, ptr noundef %61, ptr noundef %55)
  %4866 = load i64, ptr %55, align 8, !tbaa !9
  %4867 = icmp ne i64 %4866, 0
  br i1 %4867, label %4868, label %4870

4868:                                             ; preds = %4823
  %4869 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 1, ptr %4869, align 8, !tbaa !9
  br label %4870

4870:                                             ; preds = %4868, %4823
  %4871 = load float, ptr %62, align 4, !tbaa !11
  %4872 = fcmp une float %4871, 1.000000e+00
  br i1 %4872, label %4873, label %4897

4873:                                             ; preds = %4870
  %4874 = load ptr, ptr %19, align 8, !tbaa !5
  %4875 = load i64, ptr %4874, align 8, !tbaa !9
  store i64 %4875, ptr %34, align 8, !tbaa !9
  store i64 1, ptr %40, align 8, !tbaa !9
  br label %4876

4876:                                             ; preds = %4889, %4873
  %4877 = load i64, ptr %40, align 8, !tbaa !9
  %4878 = load i64, ptr %34, align 8, !tbaa !9
  %4879 = icmp sle i64 %4877, %4878
  br i1 %4879, label %4880, label %4892

4880:                                             ; preds = %4876
  %4881 = load ptr, ptr %18, align 8, !tbaa !5
  %4882 = load ptr, ptr %24, align 8, !tbaa !5
  %4883 = load i64, ptr %40, align 8, !tbaa !9
  %4884 = load i64, ptr %32, align 8, !tbaa !9
  %4885 = mul nsw i64 %4883, %4884
  %4886 = add nsw i64 %4885, 1
  %4887 = getelementptr inbounds float, ptr %4882, i64 %4886
  %4888 = call i32 @f2c_sscal(ptr noundef %4881, ptr noundef %62, ptr noundef %4887, ptr noundef @c__1)
  br label %4889

4889:                                             ; preds = %4880
  %4890 = load i64, ptr %40, align 8, !tbaa !9
  %4891 = add nsw i64 %4890, 1
  store i64 %4891, ptr %40, align 8, !tbaa !9
  br label %4876, !llvm.loop !35

4892:                                             ; preds = %4876
  %4893 = load float, ptr %62, align 4, !tbaa !11
  %4894 = load ptr, ptr %26, align 8, !tbaa !5
  %4895 = load float, ptr %4894, align 4, !tbaa !11
  %4896 = fmul float %4895, %4893
  store float %4896, ptr %4894, align 4, !tbaa !11
  br label %4897

4897:                                             ; preds = %4892, %4870
  %4898 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 0
  %4899 = load float, ptr %4898, align 16, !tbaa !11
  %4900 = load ptr, ptr %24, align 8, !tbaa !5
  %4901 = load i64, ptr %44, align 8, !tbaa !9
  %4902 = load i64, ptr %46, align 8, !tbaa !9
  %4903 = load i64, ptr %32, align 8, !tbaa !9
  %4904 = mul nsw i64 %4902, %4903
  %4905 = add nsw i64 %4901, %4904
  %4906 = getelementptr inbounds float, ptr %4900, i64 %4905
  store float %4899, ptr %4906, align 4, !tbaa !11
  %4907 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 2
  %4908 = load float, ptr %4907, align 8, !tbaa !11
  %4909 = load ptr, ptr %24, align 8, !tbaa !5
  %4910 = load i64, ptr %44, align 8, !tbaa !9
  %4911 = load i64, ptr %47, align 8, !tbaa !9
  %4912 = load i64, ptr %32, align 8, !tbaa !9
  %4913 = mul nsw i64 %4911, %4912
  %4914 = add nsw i64 %4910, %4913
  %4915 = getelementptr inbounds float, ptr %4909, i64 %4914
  store float %4908, ptr %4915, align 4, !tbaa !11
  %4916 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 1
  %4917 = load float, ptr %4916, align 4, !tbaa !11
  %4918 = load ptr, ptr %24, align 8, !tbaa !5
  %4919 = load i64, ptr %45, align 8, !tbaa !9
  %4920 = load i64, ptr %46, align 8, !tbaa !9
  %4921 = load i64, ptr %32, align 8, !tbaa !9
  %4922 = mul nsw i64 %4920, %4921
  %4923 = add nsw i64 %4919, %4922
  %4924 = getelementptr inbounds float, ptr %4918, i64 %4923
  store float %4917, ptr %4924, align 4, !tbaa !11
  %4925 = getelementptr inbounds [4 x float], ptr %43, i64 0, i64 3
  %4926 = load float, ptr %4925, align 4, !tbaa !11
  %4927 = load ptr, ptr %24, align 8, !tbaa !5
  %4928 = load i64, ptr %45, align 8, !tbaa !9
  %4929 = load i64, ptr %47, align 8, !tbaa !9
  %4930 = load i64, ptr %32, align 8, !tbaa !9
  %4931 = mul nsw i64 %4929, %4930
  %4932 = add nsw i64 %4928, %4931
  %4933 = getelementptr inbounds float, ptr %4927, i64 %4932
  store float %4926, ptr %4933, align 4, !tbaa !11
  br label %4934

4934:                                             ; preds = %4897, %4421, %4417
  br label %4935

4935:                                             ; preds = %4934, %4398
  br label %4936

4936:                                             ; preds = %4935, %4103
  br label %4937

4937:                                             ; preds = %4936, %3821
  br label %4938

4938:                                             ; preds = %4937, %3577
  br label %4939

4939:                                             ; preds = %4938
  %4940 = load i64, ptr %41, align 8, !tbaa !9
  %4941 = add nsw i64 %4940, -1
  store i64 %4941, ptr %41, align 8, !tbaa !9
  br label %3570, !llvm.loop !36

4942:                                             ; preds = %3570
  br label %4943

4943:                                             ; preds = %4942, %3535
  br label %4944

4944:                                             ; preds = %4943
  %4945 = load i64, ptr %42, align 8, !tbaa !9
  %4946 = add nsw i64 %4945, -1
  store i64 %4946, ptr %42, align 8, !tbaa !9
  br label %3528, !llvm.loop !37

4947:                                             ; preds = %3528
  br label %4948

4948:                                             ; preds = %4947, %3520, %3517
  br label %4949

4949:                                             ; preds = %4948, %3516
  br label %4950

4950:                                             ; preds = %4949, %2345
  br label %4951

4951:                                             ; preds = %4950, %1443
  store i32 0, ptr %14, align 4
  store i32 1, ptr %67, align 4
  br label %4952

4952:                                             ; preds = %4951, %214, %200
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  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 8, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #4
  %4953 = load i32, ptr %14, align 4
  ret i32 %4953
}

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

declare double @slange_(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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = 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}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}
!34 = distinct !{!34, !14}
!35 = distinct !{!35, !14}
!36 = distinct !{!36, !14}
!37 = distinct !{!37, !14}


; 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 [7 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 [2 x i8], align 1
@c__1 = external hidden global i64, align 8
@c_false = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8
@c_b26 = external hidden global float, align 4
@c_b30 = external hidden global float, align 4
@c_true = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @strsyl_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr nocapture noundef %11, ptr nocapture noundef %12) local_unnamed_addr #0 {
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca float, align 4
  %18 = alloca [4 x float], align 16
  %19 = alloca [4 x float], align 16
  %20 = alloca [1 x float], align 4
  %21 = alloca i64, align 8
  %22 = alloca float, align 4
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #5
  %27 = load i64, ptr %6, align 8, !tbaa !5
  %28 = xor i64 %27, -1
  %29 = getelementptr inbounds float, ptr %5, i64 %28
  %30 = load i64, ptr %8, align 8, !tbaa !5
  %31 = xor i64 %30, -1
  %32 = getelementptr inbounds float, ptr %7, i64 %31
  %33 = load i64, ptr %10, align 8, !tbaa !5
  %34 = xor i64 %33, -1
  %35 = getelementptr inbounds float, ptr %9, i64 %34
  %36 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #5
  %37 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #5
  store i64 0, ptr %12, align 8, !tbaa !5
  %38 = icmp ne i64 %36, 0
  br i1 %38, label %43, label %39

39:                                               ; preds = %13
  %40 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #5
  %.not = icmp eq i64 %40, 0
  br i1 %.not, label %41, label %43

41:                                               ; preds = %39
  %42 = tail call i64 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #5
  %.not2135 = icmp eq i64 %42, 0
  br i1 %.not2135, label %.thread.sink.split, label %43

43:                                               ; preds = %41, %39, %13
  %.not2136 = icmp eq i64 %37, 0
  br i1 %.not2136, label %44, label %48

44:                                               ; preds = %43
  %45 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.1) #5
  %.not2137 = icmp eq i64 %45, 0
  br i1 %.not2137, label %46, label %48

46:                                               ; preds = %44
  %47 = tail call i64 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.2) #5
  %.not2138 = icmp eq i64 %47, 0
  br i1 %.not2138, label %.thread.sink.split, label %48

48:                                               ; preds = %46, %44, %43
  %49 = load i64, ptr %2, align 8, !tbaa !5
  switch i64 %49, label %.thread.sink.split [
    i64 1, label %50
    i64 -1, label %50
  ]

50:                                               ; preds = %48, %48
  %51 = load i64, ptr %3, align 8, !tbaa !5
  %52 = icmp slt i64 %51, 0
  br i1 %52, label %.thread.sink.split, label %53

53:                                               ; preds = %50
  %54 = load i64, ptr %4, align 8, !tbaa !5
  %55 = icmp slt i64 %54, 0
  br i1 %55, label %.thread.sink.split, label %56

56:                                               ; preds = %53
  %57 = load i64, ptr %6, align 8, !tbaa !5
  %spec.select = tail call i64 @llvm.umax.i64(i64 %51, i64 1)
  %58 = icmp slt i64 %57, %spec.select
  br i1 %58, label %.thread.sink.split, label %59

59:                                               ; preds = %56
  %60 = load i64, ptr %8, align 8, !tbaa !5
  %spec.select2258 = tail call i64 @llvm.umax.i64(i64 %54, i64 1)
  %61 = icmp slt i64 %60, %spec.select2258
  br i1 %61, label %.thread.sink.split, label %62

62:                                               ; preds = %59
  %63 = load i64, ptr %10, align 8, !tbaa !5
  %64 = icmp slt i64 %63, %spec.select
  br i1 %64, label %.thread.sink.split, label %65

65:                                               ; preds = %62
  %.pr = load i64, ptr %12, align 8, !tbaa !5
  %.not2141 = icmp eq i64 %.pr, 0
  br i1 %.not2141, label %69, label %.thread

.thread.sink.split:                               ; preds = %62, %59, %56, %53, %50, %48, %46, %41
  %.sink = phi i64 [ -1, %41 ], [ -2, %46 ], [ -3, %48 ], [ -4, %50 ], [ -5, %53 ], [ -7, %56 ], [ -9, %59 ], [ -11, %62 ]
  store i64 %.sink, ptr %12, align 8, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %65
  %66 = phi i64 [ %.pr, %65 ], [ %.sink, %.thread.sink.split ]
  %67 = sub nsw i64 0, %66
  store i64 %67, ptr %14, align 8, !tbaa !5
  %68 = call i32 @xerbla_(ptr noundef nonnull @.str.3, ptr noundef nonnull %14) #5
  br label %.loopexit2312

69:                                               ; preds = %65
  store float 1.000000e+00, ptr %11, align 4, !tbaa !9
  %70 = icmp eq i64 %51, 0
  %71 = icmp eq i64 %54, 0
  %or.cond2635 = or i1 %70, %71
  br i1 %or.cond2635, label %.loopexit2312, label %72

72:                                               ; preds = %69
  %73 = tail call double @slamch_(ptr noundef nonnull @.str.4) #5
  %74 = fptrunc double %73 to float
  %75 = tail call double @slamch_(ptr noundef nonnull @.str.5) #5
  %76 = fptrunc double %75 to float
  store float %76, ptr %26, align 4, !tbaa !9
  %77 = fdiv float 1.000000e+00, %76
  store float %77, ptr %25, align 4, !tbaa !9
  %78 = call i32 @slabad_(ptr noundef nonnull %26, ptr noundef nonnull %25) #5
  %79 = load float, ptr %26, align 4, !tbaa !9
  %80 = load i64, ptr %3, align 8, !tbaa !5
  %81 = load i64, ptr %4, align 8, !tbaa !5
  %82 = mul nsw i64 %81, %80
  %83 = sitofp i64 %82 to float
  %84 = fmul float %79, %83
  %85 = fdiv float %84, %74
  store float %85, ptr %26, align 4, !tbaa !9
  %86 = fdiv float 1.000000e+00, %85
  store float %86, ptr %25, align 4, !tbaa !9
  store float %85, ptr %17, align 4, !tbaa !9
  %87 = fpext float %74 to double
  %88 = call double @slange_(ptr noundef nonnull @.str.6, ptr noundef nonnull %3, ptr noundef nonnull %3, ptr noundef %5, ptr noundef nonnull %6, ptr noundef nonnull %20) #5
  %89 = fmul double %88, %87
  %90 = fptrunc double %89 to float
  %91 = load float, ptr %17, align 4
  %92 = fcmp oge float %91, %90
  %93 = select i1 %92, float %91, float %90
  store float %93, ptr %17, align 4, !tbaa !9
  %94 = call double @slange_(ptr noundef nonnull @.str.6, ptr noundef nonnull %4, ptr noundef nonnull %4, ptr noundef %7, ptr noundef nonnull %8, ptr noundef nonnull %20) #5
  %95 = fmul double %94, %87
  %96 = fptrunc double %95 to float
  %97 = load float, ptr %17, align 4
  %98 = fcmp oge float %97, %96
  %99 = select i1 %98, float %97, float %96
  store float %99, ptr %22, align 4, !tbaa !9
  %100 = load i64, ptr %2, align 8, !tbaa !5
  %101 = sitofp i64 %100 to float
  %102 = icmp ne i64 %37, 0
  %or.cond = select i1 %38, i1 %102, i1 false
  br i1 %or.cond, label %103, label %380

103:                                              ; preds = %72
  %104 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %104, ptr %14, align 8, !tbaa !5
  %.not22292568 = icmp slt i64 %104, 1
  br i1 %.not22292568, label %.loopexit2312, label %.lr.ph2573

.lr.ph2573:                                       ; preds = %103
  %invariant.gep2534 = getelementptr i8, ptr %32, i64 4
  %105 = getelementptr inbounds i8, ptr %19, i64 4
  %106 = fneg float %101
  %107 = add i64 %27, 1
  %invariant.gep2506 = getelementptr i8, ptr %35, i64 4
  %108 = getelementptr inbounds i8, ptr %18, i64 4
  %109 = getelementptr inbounds i8, ptr %19, i64 8
  %110 = getelementptr inbounds i8, ptr %19, i64 12
  %111 = getelementptr inbounds i8, ptr %18, i64 8
  %112 = getelementptr inbounds i8, ptr %18, i64 12
  br label %113

113:                                              ; preds = %.lr.ph2573, %.loopexit
  %114 = phi i64 [ %104, %.lr.ph2573 ], [ %378, %.loopexit ]
  %.019182571 = phi i64 [ 1, %.lr.ph2573 ], [ %.2, %.loopexit ]
  %.019552569 = phi i64 [ 1, %.lr.ph2573 ], [ %379, %.loopexit ]
  %115 = icmp slt i64 %.019552569, %.019182571
  br i1 %115, label %.loopexit, label %116

116:                                              ; preds = %113
  %117 = load i64, ptr %4, align 8, !tbaa !5
  %118 = icmp eq i64 %.019552569, %117
  br i1 %118, label %128, label %119

119:                                              ; preds = %116
  %120 = add nuw nsw i64 %.019552569, 1
  %121 = mul nsw i64 %.019552569, %30
  %122 = getelementptr float, ptr %32, i64 %120
  %123 = getelementptr float, ptr %122, i64 %121
  %124 = load float, ptr %123, align 4, !tbaa !9
  %125 = fcmp une float %124, 0.000000e+00
  br i1 %125, label %126, label %128

126:                                              ; preds = %119
  %127 = add nuw nsw i64 %.019552569, 2
  br label %128

128:                                              ; preds = %119, %116, %126
  %.01939 = phi i64 [ %120, %126 ], [ %.019552569, %116 ], [ %.019552569, %119 ]
  %.1 = phi i64 [ %127, %126 ], [ %.019182571, %116 ], [ %120, %119 ]
  %129 = load i64, ptr %3, align 8, !tbaa !5
  %130 = icmp sgt i64 %129, 0
  br i1 %130, label %.lr.ph2549, label %.loopexit

.lr.ph2549:                                       ; preds = %128
  %131 = icmp eq i64 %.019552569, %.01939
  %132 = mul nsw i64 %.019552569, %33
  %invariant.gep2550 = getelementptr float, ptr %35, i64 %132
  %133 = add nsw i64 %.019552569, -1
  %134 = mul nsw i64 %.019552569, %30
  %gep2535 = getelementptr float, ptr %invariant.gep2534, i64 %134
  %135 = getelementptr float, ptr %32, i64 %.019552569
  %136 = getelementptr float, ptr %135, i64 %134
  %137 = mul nsw i64 %.01939, %33
  %invariant.gep2556 = getelementptr float, ptr %35, i64 %137
  %138 = mul nsw i64 %.01939, %30
  %gep2539 = getelementptr float, ptr %invariant.gep2534, i64 %138
  br label %139

139:                                              ; preds = %.lr.ph2549, %375
  %.019192547 = phi i64 [ %129, %.lr.ph2549 ], [ %.21921, %375 ]
  %.019592546 = phi i64 [ %129, %.lr.ph2549 ], [ %376, %375 ]
  %140 = icmp sgt i64 %.019592546, %.019192547
  br i1 %140, label %375, label %141

141:                                              ; preds = %139
  %142 = icmp eq i64 %.019592546, 1
  br i1 %142, label %150, label %143

143:                                              ; preds = %141
  %144 = add nsw i64 %.019592546, -1
  %145 = mul nsw i64 %144, %27
  %146 = getelementptr float, ptr %29, i64 %.019592546
  %147 = getelementptr float, ptr %146, i64 %145
  %148 = load float, ptr %147, align 4, !tbaa !9
  %149 = fcmp une float %148, 0.000000e+00
  br i1 %149, label %205, label %150

150:                                              ; preds = %143, %141
  %.11920 = phi i64 [ %.019192547, %141 ], [ %144, %143 ]
  %151 = load i64, ptr %3, align 8, !tbaa !5
  %152 = sub nsw i64 %151, %.019592546
  store i64 %152, ptr %15, align 8, !tbaa !5
  %153 = add nuw nsw i64 %.019592546, 1
  br i1 %131, label %154, label %261

154:                                              ; preds = %150
  store i64 %153, ptr %16, align 8, !tbaa !5
  %.not2255.not = icmp slt i64 %.019592546, %151
  %. = select i1 %.not2255.not, i64 %153, i64 %151
  %155 = mul nsw i64 %., %27
  %156 = getelementptr float, ptr %29, i64 %.019592546
  %157 = getelementptr float, ptr %156, i64 %155
  %gep2567 = getelementptr float, ptr %invariant.gep2550, i64 %.
  %158 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %157, ptr noundef nonnull %6, ptr noundef %gep2567, ptr noundef nonnull @c__1) #5
  %159 = fptrunc double %158 to float
  store i64 %133, ptr %15, align 8, !tbaa !5
  %160 = getelementptr float, ptr %35, i64 %.019592546
  %161 = getelementptr float, ptr %160, i64 %33
  %162 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %161, ptr noundef nonnull %10, ptr noundef %gep2535, ptr noundef nonnull @c__1) #5
  %163 = fptrunc double %162 to float
  %164 = getelementptr float, ptr %160, i64 %132
  %165 = load float, ptr %164, align 4, !tbaa !9
  %166 = call float @llvm.fmuladd.f32(float %101, float %163, float %159)
  %167 = fsub float %165, %166
  store float %167, ptr %19, align 16, !tbaa !9
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %168 = mul i64 %.019592546, %107
  %169 = getelementptr inbounds float, ptr %29, i64 %168
  %170 = load float, ptr %169, align 4, !tbaa !9
  %171 = load float, ptr %136, align 4, !tbaa !9
  %172 = call float @llvm.fmuladd.f32(float %101, float %171, float %170)
  %173 = fcmp oge float %172, 0.000000e+00
  %174 = fneg float %172
  %175 = select i1 %173, float %172, float %174
  %176 = load float, ptr %22, align 4, !tbaa !9
  %177 = fcmp ugt float %175, %176
  br i1 %177, label %179, label %178

178:                                              ; preds = %154
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %179

179:                                              ; preds = %178, %154
  %.01935 = phi float [ %176, %178 ], [ %172, %154 ]
  %.01931 = phi float [ %176, %178 ], [ %175, %154 ]
  %180 = fcmp oge float %167, 0.000000e+00
  %181 = fneg float %167
  %182 = select i1 %180, float %167, float %181
  %183 = fcmp olt float %.01931, 1.000000e+00
  %184 = fcmp ogt float %182, 1.000000e+00
  %or.cond3 = select i1 %183, i1 %184, i1 false
  br i1 %or.cond3, label %185, label %thread-pre-split2298.thread

185:                                              ; preds = %179
  %186 = load float, ptr %25, align 4, !tbaa !9
  %187 = fmul float %.01931, %186
  %188 = fcmp ogt float %182, %187
  br i1 %188, label %thread-pre-split2298, label %thread-pre-split2298.thread

thread-pre-split2298.thread:                      ; preds = %179, %185
  %189 = fdiv float %167, %.01935
  store float %189, ptr %18, align 16, !tbaa !9
  br label %203

thread-pre-split2298:                             ; preds = %185
  %190 = fdiv float 1.000000e+00, %182
  store float %190, ptr %24, align 4, !tbaa !9
  %191 = fmul float %167, %190
  %192 = fdiv float %191, %.01935
  store float %192, ptr %18, align 16, !tbaa !9
  %193 = fcmp une float %190, 1.000000e+00
  br i1 %193, label %194, label %203

194:                                              ; preds = %thread-pre-split2298
  %195 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %195, ptr %15, align 8, !tbaa !5
  %.not22572529 = icmp slt i64 %195, 1
  br i1 %.not22572529, label %._crit_edge2533, label %.lr.ph2532

.lr.ph2532:                                       ; preds = %194, %.lr.ph2532
  %.019632530 = phi i64 [ %198, %.lr.ph2532 ], [ 1, %194 ]
  %196 = mul nsw i64 %.019632530, %33
  %gep2528 = getelementptr float, ptr %invariant.gep2506, i64 %196
  %197 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2528, ptr noundef nonnull @c__1) #5
  %198 = add nuw nsw i64 %.019632530, 1
  %199 = load i64, ptr %15, align 8, !tbaa !5
  %.not2257.not = icmp slt i64 %.019632530, %199
  br i1 %.not2257.not, label %.lr.ph2532, label %._crit_edge2533.loopexit, !llvm.loop !11

._crit_edge2533.loopexit:                         ; preds = %.lr.ph2532
  %.pre2595 = load float, ptr %24, align 4, !tbaa !9
  %.pre2596.pre = load float, ptr %18, align 16, !tbaa !9
  br label %._crit_edge2533

._crit_edge2533:                                  ; preds = %._crit_edge2533.loopexit, %194
  %.pre2596 = phi float [ %.pre2596.pre, %._crit_edge2533.loopexit ], [ %192, %194 ]
  %200 = phi float [ %.pre2595, %._crit_edge2533.loopexit ], [ %190, %194 ]
  %201 = load float, ptr %11, align 4, !tbaa !9
  %202 = fmul float %200, %201
  store float %202, ptr %11, align 4, !tbaa !9
  br label %203

203:                                              ; preds = %thread-pre-split2298.thread, %._crit_edge2533, %thread-pre-split2298
  %204 = phi float [ %.pre2596, %._crit_edge2533 ], [ %192, %thread-pre-split2298 ], [ %189, %thread-pre-split2298.thread ]
  store float %204, ptr %164, align 4, !tbaa !9
  br label %375

205:                                              ; preds = %143
  %206 = add nsw i64 %.019592546, -2
  %207 = load i64, ptr %3, align 8, !tbaa !5
  %208 = sub nsw i64 %207, %.019592546
  store i64 %208, ptr %15, align 8, !tbaa !5
  %209 = add nuw nsw i64 %.019592546, 1
  %.not2249.not = icmp slt i64 %.019592546, %207
  %.2263 = select i1 %.not2249.not, i64 %209, i64 %207
  %210 = mul nsw i64 %.2263, %27
  %211 = getelementptr float, ptr %29, i64 %144
  %212 = getelementptr float, ptr %211, i64 %210
  %gep2551 = getelementptr float, ptr %invariant.gep2550, i64 %.2263
  %213 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %212, ptr noundef nonnull %6, ptr noundef %gep2551, ptr noundef nonnull @c__1) #5
  %214 = fptrunc double %213 to float
  store i64 %133, ptr %15, align 8, !tbaa !5
  %215 = getelementptr float, ptr %35, i64 %144
  %216 = getelementptr float, ptr %215, i64 %33
  %217 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %216, ptr noundef nonnull %10, ptr noundef %gep2535, ptr noundef nonnull @c__1) #5
  %218 = fptrunc double %217 to float
  %219 = getelementptr float, ptr %215, i64 %132
  %220 = load float, ptr %219, align 4, !tbaa !9
  %221 = call float @llvm.fmuladd.f32(float %101, float %218, float %214)
  %222 = fsub float %220, %221
  store float %222, ptr %19, align 16, !tbaa !9
  %223 = load i64, ptr %3, align 8, !tbaa !5
  %224 = sub nsw i64 %223, %.019592546
  store i64 %224, ptr %15, align 8, !tbaa !5
  br i1 %131, label %225, label %312

225:                                              ; preds = %205
  store i64 %209, ptr %16, align 8, !tbaa !5
  %.not2251.not = icmp slt i64 %.019592546, %223
  %226 = select i1 %.not2251.not, i64 %209, i64 %223
  %227 = mul nsw i64 %226, %27
  %228 = getelementptr float, ptr %29, i64 %.019592546
  %229 = getelementptr float, ptr %228, i64 %227
  %gep2553 = getelementptr float, ptr %invariant.gep2550, i64 %226
  %230 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %229, ptr noundef nonnull %6, ptr noundef %gep2553, ptr noundef nonnull @c__1) #5
  %231 = fptrunc double %230 to float
  store i64 %133, ptr %15, align 8, !tbaa !5
  %232 = getelementptr float, ptr %35, i64 %.019592546
  %233 = getelementptr float, ptr %232, i64 %33
  %234 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %233, ptr noundef nonnull %10, ptr noundef %gep2535, ptr noundef nonnull @c__1) #5
  %235 = fptrunc double %234 to float
  %236 = getelementptr float, ptr %232, i64 %132
  %237 = load float, ptr %236, align 4, !tbaa !9
  %238 = call float @llvm.fmuladd.f32(float %101, float %235, float %231)
  %239 = fsub float %237, %238
  store float %239, ptr %105, align 4, !tbaa !9
  %240 = load float, ptr %136, align 4, !tbaa !9
  %241 = fmul float %240, %106
  store float %241, ptr %17, align 4, !tbaa !9
  %242 = mul i64 %144, %107
  %243 = getelementptr inbounds float, ptr %29, i64 %242
  %244 = call i32 @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef nonnull @c_b26, ptr noundef %243, ptr noundef nonnull %6, ptr noundef nonnull @c_b26, ptr noundef nonnull @c_b26, ptr noundef nonnull %19, ptr noundef nonnull @c__2, ptr noundef nonnull %17, ptr noundef nonnull @c_b30, ptr noundef nonnull %18, ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef nonnull %21) #5
  %245 = load i64, ptr %21, align 8, !tbaa !5
  %.not2253 = icmp eq i64 %245, 0
  br i1 %.not2253, label %247, label %246

246:                                              ; preds = %225
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %247

247:                                              ; preds = %246, %225
  %248 = load float, ptr %24, align 4, !tbaa !9
  %249 = fcmp une float %248, 1.000000e+00
  br i1 %249, label %250, label %259

250:                                              ; preds = %247
  %251 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %251, ptr %15, align 8, !tbaa !5
  %.not22542508 = icmp slt i64 %251, 1
  br i1 %.not22542508, label %._crit_edge2512, label %.lr.ph2511

.lr.ph2511:                                       ; preds = %250, %.lr.ph2511
  %.119642509 = phi i64 [ %254, %.lr.ph2511 ], [ 1, %250 ]
  %252 = mul nsw i64 %.119642509, %33
  %gep2507 = getelementptr float, ptr %invariant.gep2506, i64 %252
  %253 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2507, ptr noundef nonnull @c__1) #5
  %254 = add nuw nsw i64 %.119642509, 1
  %255 = load i64, ptr %15, align 8, !tbaa !5
  %.not2254.not = icmp slt i64 %.119642509, %255
  br i1 %.not2254.not, label %.lr.ph2511, label %._crit_edge2512.loopexit, !llvm.loop !13

._crit_edge2512.loopexit:                         ; preds = %.lr.ph2511
  %.pre2592 = load float, ptr %24, align 4, !tbaa !9
  br label %._crit_edge2512

._crit_edge2512:                                  ; preds = %._crit_edge2512.loopexit, %250
  %256 = phi float [ %.pre2592, %._crit_edge2512.loopexit ], [ %248, %250 ]
  %257 = load float, ptr %11, align 4, !tbaa !9
  %258 = fmul float %256, %257
  store float %258, ptr %11, align 4, !tbaa !9
  br label %259

259:                                              ; preds = %._crit_edge2512, %247
  %260 = load <2 x float>, ptr %18, align 16, !tbaa !9
  store <2 x float> %260, ptr %219, align 4, !tbaa !9
  br label %375

261:                                              ; preds = %150
  %.not2243.not = icmp slt i64 %.019592546, %151
  %.2265 = select i1 %.not2243.not, i64 %153, i64 %151
  %262 = mul nsw i64 %.2265, %27
  %263 = getelementptr float, ptr %29, i64 %.019592546
  %264 = getelementptr float, ptr %263, i64 %262
  %gep2563 = getelementptr float, ptr %invariant.gep2550, i64 %.2265
  %265 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %264, ptr noundef nonnull %6, ptr noundef %gep2563, ptr noundef nonnull @c__1) #5
  %266 = fptrunc double %265 to float
  store i64 %133, ptr %15, align 8, !tbaa !5
  %267 = getelementptr float, ptr %35, i64 %.019592546
  %268 = getelementptr float, ptr %267, i64 %33
  %269 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %268, ptr noundef nonnull %10, ptr noundef %gep2535, ptr noundef nonnull @c__1) #5
  %270 = fptrunc double %269 to float
  %271 = getelementptr float, ptr %267, i64 %132
  %272 = load float, ptr %271, align 4, !tbaa !9
  %273 = call float @llvm.fmuladd.f32(float %101, float %270, float %266)
  %274 = fsub float %272, %273
  %275 = fmul float %274, %101
  store float %275, ptr %19, align 16, !tbaa !9
  %276 = load i64, ptr %3, align 8, !tbaa !5
  %277 = sub nsw i64 %276, %.019592546
  store i64 %277, ptr %15, align 8, !tbaa !5
  store i64 %153, ptr %16, align 8, !tbaa !5
  %.not2245.not = icmp slt i64 %.019592546, %276
  %278 = select i1 %.not2245.not, i64 %153, i64 %276
  %279 = mul nsw i64 %278, %27
  %280 = getelementptr float, ptr %263, i64 %279
  %gep2565 = getelementptr float, ptr %invariant.gep2556, i64 %278
  %281 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %280, ptr noundef nonnull %6, ptr noundef %gep2565, ptr noundef nonnull @c__1) #5
  %282 = fptrunc double %281 to float
  store i64 %133, ptr %15, align 8, !tbaa !5
  %283 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %268, ptr noundef nonnull %10, ptr noundef %gep2539, ptr noundef nonnull @c__1) #5
  %284 = fptrunc double %283 to float
  %285 = getelementptr float, ptr %267, i64 %137
  %286 = load float, ptr %285, align 4, !tbaa !9
  %287 = call float @llvm.fmuladd.f32(float %101, float %284, float %282)
  %288 = fsub float %286, %287
  %289 = fmul float %288, %101
  store float %289, ptr %105, align 4, !tbaa !9
  %290 = mul i64 %.019592546, %107
  %291 = getelementptr inbounds float, ptr %29, i64 %290
  %292 = load float, ptr %291, align 4, !tbaa !9
  %293 = fmul float %292, %106
  store float %293, ptr %17, align 4, !tbaa !9
  %294 = call i32 @slaln2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef nonnull @c_b26, ptr noundef %136, ptr noundef nonnull %8, ptr noundef nonnull @c_b26, ptr noundef nonnull @c_b26, ptr noundef nonnull %19, ptr noundef nonnull @c__2, ptr noundef nonnull %17, ptr noundef nonnull @c_b30, ptr noundef nonnull %18, ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef nonnull %21) #5
  %295 = load i64, ptr %21, align 8, !tbaa !5
  %.not2247 = icmp eq i64 %295, 0
  br i1 %.not2247, label %297, label %296

296:                                              ; preds = %261
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %297

297:                                              ; preds = %296, %261
  %298 = load float, ptr %24, align 4, !tbaa !9
  %299 = fcmp une float %298, 1.000000e+00
  br i1 %299, label %300, label %309

300:                                              ; preds = %297
  %301 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %301, ptr %15, align 8, !tbaa !5
  %.not22482522 = icmp slt i64 %301, 1
  br i1 %.not22482522, label %._crit_edge2526, label %.lr.ph2525

.lr.ph2525:                                       ; preds = %300, %.lr.ph2525
  %.219652523 = phi i64 [ %304, %.lr.ph2525 ], [ 1, %300 ]
  %302 = mul nsw i64 %.219652523, %33
  %gep2521 = getelementptr float, ptr %invariant.gep2506, i64 %302
  %303 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2521, ptr noundef nonnull @c__1) #5
  %304 = add nuw nsw i64 %.219652523, 1
  %305 = load i64, ptr %15, align 8, !tbaa !5
  %.not2248.not = icmp slt i64 %.219652523, %305
  br i1 %.not2248.not, label %.lr.ph2525, label %._crit_edge2526.loopexit, !llvm.loop !14

._crit_edge2526.loopexit:                         ; preds = %.lr.ph2525
  %.pre2594 = load float, ptr %24, align 4, !tbaa !9
  br label %._crit_edge2526

._crit_edge2526:                                  ; preds = %._crit_edge2526.loopexit, %300
  %306 = phi float [ %.pre2594, %._crit_edge2526.loopexit ], [ %298, %300 ]
  %307 = load float, ptr %11, align 4, !tbaa !9
  %308 = fmul float %306, %307
  store float %308, ptr %11, align 4, !tbaa !9
  br label %309

309:                                              ; preds = %._crit_edge2526, %297
  %310 = load float, ptr %18, align 16, !tbaa !9
  store float %310, ptr %271, align 4, !tbaa !9
  %311 = load float, ptr %108, align 4, !tbaa !9
  store float %311, ptr %285, align 4, !tbaa !9
  br label %375

312:                                              ; preds = %205
  %.not2235.not = icmp slt i64 %.019592546, %223
  %313 = select i1 %.not2235.not, i64 %209, i64 %223
  %314 = mul nsw i64 %313, %27
  %315 = getelementptr float, ptr %211, i64 %314
  %gep2557 = getelementptr float, ptr %invariant.gep2556, i64 %313
  %316 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %315, ptr noundef nonnull %6, ptr noundef %gep2557, ptr noundef nonnull @c__1) #5
  %317 = fptrunc double %316 to float
  store i64 %133, ptr %15, align 8, !tbaa !5
  %318 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %216, ptr noundef nonnull %10, ptr noundef %gep2539, ptr noundef nonnull @c__1) #5
  %319 = fptrunc double %318 to float
  %320 = getelementptr float, ptr %215, i64 %137
  %321 = load float, ptr %320, align 4, !tbaa !9
  %322 = call float @llvm.fmuladd.f32(float %101, float %319, float %317)
  %323 = fsub float %321, %322
  store float %323, ptr %109, align 8, !tbaa !9
  %324 = load i64, ptr %3, align 8, !tbaa !5
  %325 = sub nsw i64 %324, %.019592546
  store i64 %325, ptr %15, align 8, !tbaa !5
  %.not2237.not = icmp slt i64 %.019592546, %324
  %326 = select i1 %.not2237.not, i64 %209, i64 %324
  %327 = mul nsw i64 %326, %27
  %328 = getelementptr float, ptr %29, i64 %.019592546
  %329 = getelementptr float, ptr %328, i64 %327
  %gep2559 = getelementptr float, ptr %invariant.gep2550, i64 %326
  %330 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %329, ptr noundef nonnull %6, ptr noundef %gep2559, ptr noundef nonnull @c__1) #5
  %331 = fptrunc double %330 to float
  store i64 %133, ptr %15, align 8, !tbaa !5
  %332 = getelementptr float, ptr %35, i64 %.019592546
  %333 = getelementptr float, ptr %332, i64 %33
  %334 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %333, ptr noundef nonnull %10, ptr noundef %gep2535, ptr noundef nonnull @c__1) #5
  %335 = fptrunc double %334 to float
  %336 = getelementptr float, ptr %332, i64 %132
  %337 = load float, ptr %336, align 4, !tbaa !9
  %338 = call float @llvm.fmuladd.f32(float %101, float %335, float %331)
  %339 = fsub float %337, %338
  store float %339, ptr %105, align 4, !tbaa !9
  %340 = load i64, ptr %3, align 8, !tbaa !5
  %341 = sub nsw i64 %340, %.019592546
  store i64 %341, ptr %15, align 8, !tbaa !5
  store i64 %209, ptr %16, align 8, !tbaa !5
  %.not2239.not = icmp slt i64 %.019592546, %340
  %342 = select i1 %.not2239.not, i64 %209, i64 %340
  %343 = mul nsw i64 %342, %27
  %344 = getelementptr float, ptr %328, i64 %343
  %gep2561 = getelementptr float, ptr %invariant.gep2556, i64 %342
  %345 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %344, ptr noundef nonnull %6, ptr noundef %gep2561, ptr noundef nonnull @c__1) #5
  %346 = fptrunc double %345 to float
  store i64 %133, ptr %15, align 8, !tbaa !5
  %347 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %333, ptr noundef nonnull %10, ptr noundef %gep2539, ptr noundef nonnull @c__1) #5
  %348 = fptrunc double %347 to float
  %349 = getelementptr float, ptr %332, i64 %137
  %350 = load float, ptr %349, align 4, !tbaa !9
  %351 = call float @llvm.fmuladd.f32(float %101, float %348, float %346)
  %352 = fsub float %350, %351
  store float %352, ptr %110, align 4, !tbaa !9
  %353 = mul i64 %144, %107
  %354 = getelementptr inbounds float, ptr %29, i64 %353
  %355 = call i32 @slasy2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_false, ptr noundef nonnull %2, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef %354, ptr noundef nonnull %6, ptr noundef %136, ptr noundef nonnull %8, ptr noundef nonnull %19, ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull %18, ptr noundef nonnull @c__2, ptr noundef nonnull %23, ptr noundef nonnull %21) #5
  %356 = load i64, ptr %21, align 8, !tbaa !5
  %.not2241 = icmp eq i64 %356, 0
  br i1 %.not2241, label %358, label %357

357:                                              ; preds = %312
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %358

358:                                              ; preds = %357, %312
  %359 = load float, ptr %24, align 4, !tbaa !9
  %360 = fcmp une float %359, 1.000000e+00
  br i1 %360, label %361, label %370

361:                                              ; preds = %358
  %362 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %362, ptr %15, align 8, !tbaa !5
  %.not22422515 = icmp slt i64 %362, 1
  br i1 %.not22422515, label %._crit_edge2519, label %.lr.ph2518

.lr.ph2518:                                       ; preds = %361, %.lr.ph2518
  %.319662516 = phi i64 [ %365, %.lr.ph2518 ], [ 1, %361 ]
  %363 = mul nsw i64 %.319662516, %33
  %gep2514 = getelementptr float, ptr %invariant.gep2506, i64 %363
  %364 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2514, ptr noundef nonnull @c__1) #5
  %365 = add nuw nsw i64 %.319662516, 1
  %366 = load i64, ptr %15, align 8, !tbaa !5
  %.not2242.not = icmp slt i64 %.319662516, %366
  br i1 %.not2242.not, label %.lr.ph2518, label %._crit_edge2519.loopexit, !llvm.loop !15

._crit_edge2519.loopexit:                         ; preds = %.lr.ph2518
  %.pre2593 = load float, ptr %24, align 4, !tbaa !9
  br label %._crit_edge2519

._crit_edge2519:                                  ; preds = %._crit_edge2519.loopexit, %361
  %367 = phi float [ %.pre2593, %._crit_edge2519.loopexit ], [ %359, %361 ]
  %368 = load float, ptr %11, align 4, !tbaa !9
  %369 = fmul float %367, %368
  store float %369, ptr %11, align 4, !tbaa !9
  br label %370

370:                                              ; preds = %._crit_edge2519, %358
  %371 = load float, ptr %18, align 16, !tbaa !9
  store float %371, ptr %219, align 4, !tbaa !9
  %372 = load float, ptr %111, align 8, !tbaa !9
  store float %372, ptr %320, align 4, !tbaa !9
  %373 = load float, ptr %108, align 4, !tbaa !9
  store float %373, ptr %336, align 4, !tbaa !9
  %374 = load float, ptr %112, align 4, !tbaa !9
  store float %374, ptr %349, align 4, !tbaa !9
  br label %375

375:                                              ; preds = %139, %259, %370, %309, %203
  %.21921 = phi i64 [ %.019192547, %139 ], [ %.11920, %203 ], [ %206, %259 ], [ %.11920, %309 ], [ %206, %370 ]
  %376 = add nsw i64 %.019592546, -1
  %377 = icmp sgt i64 %.019592546, 1
  br i1 %377, label %139, label %.loopexit.loopexit, !llvm.loop !16

.loopexit.loopexit:                               ; preds = %375
  %.pre2597 = load i64, ptr %14, align 8, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit, %128, %113
  %378 = phi i64 [ %114, %113 ], [ %114, %128 ], [ %.pre2597, %.loopexit.loopexit ]
  %.2 = phi i64 [ %.019182571, %113 ], [ %.1, %128 ], [ %.1, %.loopexit.loopexit ]
  %379 = add nuw nsw i64 %.019552569, 1
  %.not2229.not = icmp slt i64 %.019552569, %378
  br i1 %.not2229.not, label %113, label %.loopexit2312, !llvm.loop !17

380:                                              ; preds = %72
  %381 = icmp eq i64 %36, 0
  %or.cond5 = select i1 %381, i1 %102, i1 false
  br i1 %or.cond5, label %382, label %643

382:                                              ; preds = %380
  %383 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %383, ptr %14, align 8, !tbaa !5
  %.not22172500 = icmp slt i64 %383, 1
  br i1 %.not22172500, label %.loopexit2312, label %.lr.ph2505

.lr.ph2505:                                       ; preds = %382
  %invariant.gep2459 = getelementptr i8, ptr %29, i64 4
  %invariant.gep2461 = getelementptr i8, ptr %35, i64 4
  %invariant.gep2463 = getelementptr i8, ptr %32, i64 4
  %384 = getelementptr inbounds i8, ptr %19, i64 4
  %385 = fneg float %101
  %386 = getelementptr inbounds i8, ptr %18, i64 4
  %387 = getelementptr inbounds i8, ptr %19, i64 8
  %388 = getelementptr inbounds i8, ptr %19, i64 12
  %389 = getelementptr inbounds i8, ptr %18, i64 8
  %390 = getelementptr inbounds i8, ptr %18, i64 12
  br label %391

391:                                              ; preds = %.lr.ph2505, %.loopexit2313
  %392 = phi i64 [ %383, %.lr.ph2505 ], [ %641, %.loopexit2313 ]
  %.32503 = phi i64 [ 1, %.lr.ph2505 ], [ %.5, %.loopexit2313 ]
  %.119562501 = phi i64 [ 1, %.lr.ph2505 ], [ %642, %.loopexit2313 ]
  %393 = icmp slt i64 %.119562501, %.32503
  br i1 %393, label %.loopexit2313, label %394

394:                                              ; preds = %391
  %395 = load i64, ptr %4, align 8, !tbaa !5
  %396 = icmp eq i64 %.119562501, %395
  br i1 %396, label %406, label %397

397:                                              ; preds = %394
  %398 = add nuw nsw i64 %.119562501, 1
  %399 = mul nsw i64 %.119562501, %30
  %400 = getelementptr float, ptr %32, i64 %398
  %401 = getelementptr float, ptr %400, i64 %399
  %402 = load float, ptr %401, align 4, !tbaa !9
  %403 = fcmp une float %402, 0.000000e+00
  br i1 %403, label %404, label %406

404:                                              ; preds = %397
  %405 = add nuw nsw i64 %.119562501, 2
  br label %406

406:                                              ; preds = %397, %394, %404
  %.11940 = phi i64 [ %398, %404 ], [ %.119562501, %394 ], [ %.119562501, %397 ]
  %.4 = phi i64 [ %405, %404 ], [ %.32503, %394 ], [ %398, %397 ]
  %407 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %407, ptr %15, align 8, !tbaa !5
  %.not22182495 = icmp slt i64 %407, 1
  br i1 %.not22182495, label %.loopexit2313, label %.lr.ph2499

.lr.ph2499:                                       ; preds = %406
  %408 = icmp eq i64 %.119562501, %.11940
  %.not2269 = xor i1 %408, true
  %409 = mul nsw i64 %.119562501, %33
  %gep2462 = getelementptr float, ptr %invariant.gep2461, i64 %409
  %410 = add nsw i64 %.119562501, -1
  %411 = mul nsw i64 %.119562501, %30
  %gep2464 = getelementptr float, ptr %invariant.gep2463, i64 %411
  %412 = getelementptr float, ptr %32, i64 %.119562501
  %413 = getelementptr float, ptr %412, i64 %411
  %414 = mul nsw i64 %.11940, %33
  %gep2474 = getelementptr float, ptr %invariant.gep2461, i64 %414
  %415 = mul nsw i64 %.11940, %30
  %gep2476 = getelementptr float, ptr %invariant.gep2463, i64 %415
  br label %416

416:                                              ; preds = %.lr.ph2499, %638
  %.319222497 = phi i64 [ 1, %.lr.ph2499 ], [ %.51924, %638 ]
  %.119602496 = phi i64 [ 1, %.lr.ph2499 ], [ %639, %638 ]
  %417 = icmp slt i64 %.119602496, %.319222497
  br i1 %417, label %638, label %418

418:                                              ; preds = %416
  %419 = load i64, ptr %3, align 8, !tbaa !5
  %420 = icmp eq i64 %.119602496, %419
  br i1 %420, label %430, label %421

421:                                              ; preds = %418
  %422 = add nuw nsw i64 %.119602496, 1
  %423 = mul nsw i64 %.119602496, %27
  %424 = getelementptr float, ptr %29, i64 %422
  %425 = getelementptr float, ptr %424, i64 %423
  %426 = load float, ptr %425, align 4, !tbaa !9
  %427 = fcmp une float %426, 0.000000e+00
  br i1 %427, label %428, label %430

428:                                              ; preds = %421
  %429 = add nuw nsw i64 %.119602496, 2
  br label %430

430:                                              ; preds = %421, %418, %428
  %.11948 = phi i64 [ %422, %428 ], [ %.119602496, %418 ], [ %.119602496, %421 ]
  %.41923 = phi i64 [ %429, %428 ], [ %.319222497, %418 ], [ %422, %421 ]
  %431 = icmp eq i64 %.119602496, %.11948
  %or.cond2268 = and i1 %408, %431
  br i1 %or.cond2268, label %432, label %482

432:                                              ; preds = %430
  %433 = add nsw i64 %.119602496, -1
  store i64 %433, ptr %16, align 8, !tbaa !5
  %434 = mul nsw i64 %.119602496, %27
  %gep2490 = getelementptr float, ptr %invariant.gep2459, i64 %434
  %435 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %gep2490, ptr noundef nonnull @c__1, ptr noundef %gep2462, ptr noundef nonnull @c__1) #5
  %436 = fptrunc double %435 to float
  store i64 %410, ptr %16, align 8, !tbaa !5
  %437 = getelementptr float, ptr %35, i64 %.119602496
  %438 = getelementptr float, ptr %437, i64 %33
  %439 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %438, ptr noundef nonnull %10, ptr noundef %gep2464, ptr noundef nonnull @c__1) #5
  %440 = fptrunc double %439 to float
  %441 = getelementptr float, ptr %437, i64 %409
  %442 = load float, ptr %441, align 4, !tbaa !9
  %443 = call float @llvm.fmuladd.f32(float %101, float %440, float %436)
  %444 = fsub float %442, %443
  store float %444, ptr %19, align 16, !tbaa !9
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %445 = getelementptr float, ptr %29, i64 %.119602496
  %446 = getelementptr float, ptr %445, i64 %434
  %447 = load float, ptr %446, align 4, !tbaa !9
  %448 = load float, ptr %413, align 4, !tbaa !9
  %449 = call float @llvm.fmuladd.f32(float %101, float %448, float %447)
  %450 = fcmp oge float %449, 0.000000e+00
  %451 = fneg float %449
  %452 = select i1 %450, float %449, float %451
  %453 = load float, ptr %22, align 4, !tbaa !9
  %454 = fcmp ugt float %452, %453
  br i1 %454, label %456, label %455

455:                                              ; preds = %432
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %456

456:                                              ; preds = %455, %432
  %.11936 = phi float [ %453, %455 ], [ %449, %432 ]
  %.11932 = phi float [ %453, %455 ], [ %452, %432 ]
  %457 = fcmp oge float %444, 0.000000e+00
  %458 = fneg float %444
  %459 = select i1 %457, float %444, float %458
  %460 = fcmp olt float %.11932, 1.000000e+00
  %461 = fcmp ogt float %459, 1.000000e+00
  %or.cond7 = select i1 %460, i1 %461, i1 false
  br i1 %or.cond7, label %462, label %thread-pre-split2300.thread

462:                                              ; preds = %456
  %463 = load float, ptr %25, align 4, !tbaa !9
  %464 = fmul float %.11932, %463
  %465 = fcmp ogt float %459, %464
  br i1 %465, label %thread-pre-split2300, label %thread-pre-split2300.thread

thread-pre-split2300.thread:                      ; preds = %456, %462
  %466 = fdiv float %444, %.11936
  store float %466, ptr %18, align 16, !tbaa !9
  br label %480

thread-pre-split2300:                             ; preds = %462
  %467 = fdiv float 1.000000e+00, %459
  store float %467, ptr %24, align 4, !tbaa !9
  %468 = fmul float %444, %467
  %469 = fdiv float %468, %.11936
  store float %469, ptr %18, align 16, !tbaa !9
  %470 = fcmp une float %467, 1.000000e+00
  br i1 %470, label %471, label %480

471:                                              ; preds = %thread-pre-split2300
  %472 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %472, ptr %16, align 8, !tbaa !5
  %.not22282454 = icmp slt i64 %472, 1
  br i1 %.not22282454, label %._crit_edge2458, label %.lr.ph2457

.lr.ph2457:                                       ; preds = %471, %.lr.ph2457
  %.419672455 = phi i64 [ %475, %.lr.ph2457 ], [ 1, %471 ]
  %473 = mul nsw i64 %.419672455, %33
  %gep2453 = getelementptr float, ptr %invariant.gep2461, i64 %473
  %474 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2453, ptr noundef nonnull @c__1) #5
  %475 = add nuw nsw i64 %.419672455, 1
  %476 = load i64, ptr %16, align 8, !tbaa !5
  %.not2228.not = icmp slt i64 %.419672455, %476
  br i1 %.not2228.not, label %.lr.ph2457, label %._crit_edge2458.loopexit, !llvm.loop !18

._crit_edge2458.loopexit:                         ; preds = %.lr.ph2457
  %.pre2589 = load float, ptr %24, align 4, !tbaa !9
  %.pre2590.pre = load float, ptr %18, align 16, !tbaa !9
  br label %._crit_edge2458

._crit_edge2458:                                  ; preds = %._crit_edge2458.loopexit, %471
  %.pre2590 = phi float [ %.pre2590.pre, %._crit_edge2458.loopexit ], [ %469, %471 ]
  %477 = phi float [ %.pre2589, %._crit_edge2458.loopexit ], [ %467, %471 ]
  %478 = load float, ptr %11, align 4, !tbaa !9
  %479 = fmul float %477, %478
  store float %479, ptr %11, align 4, !tbaa !9
  br label %480

480:                                              ; preds = %thread-pre-split2300.thread, %._crit_edge2458, %thread-pre-split2300
  %481 = phi float [ %.pre2590, %._crit_edge2458 ], [ %469, %thread-pre-split2300 ], [ %466, %thread-pre-split2300.thread ]
  store float %481, ptr %441, align 4, !tbaa !9
  br label %638

482:                                              ; preds = %430
  %or.cond2270 = or i1 %431, %.not2269
  br i1 %or.cond2270, label %529, label %483

483:                                              ; preds = %482
  %484 = add nsw i64 %.119602496, -1
  store i64 %484, ptr %16, align 8, !tbaa !5
  %485 = mul nsw i64 %.119602496, %27
  %gep2460 = getelementptr float, ptr %invariant.gep2459, i64 %485
  %486 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %gep2460, ptr noundef nonnull @c__1, ptr noundef %gep2462, ptr noundef nonnull @c__1) #5
  %487 = fptrunc double %486 to float
  store i64 %410, ptr %16, align 8, !tbaa !5
  %488 = getelementptr float, ptr %35, i64 %.119602496
  %489 = getelementptr float, ptr %488, i64 %33
  %490 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %489, ptr noundef nonnull %10, ptr noundef %gep2464, ptr noundef nonnull @c__1) #5
  %491 = fptrunc double %490 to float
  %492 = getelementptr float, ptr %488, i64 %409
  %493 = load float, ptr %492, align 4, !tbaa !9
  %494 = call float @llvm.fmuladd.f32(float %101, float %491, float %487)
  %495 = fsub float %493, %494
  store float %495, ptr %19, align 16, !tbaa !9
  store i64 %484, ptr %16, align 8, !tbaa !5
  %496 = mul nsw i64 %.11948, %27
  %gep2466 = getelementptr float, ptr %invariant.gep2459, i64 %496
  %497 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %gep2466, ptr noundef nonnull @c__1, ptr noundef %gep2462, ptr noundef nonnull @c__1) #5
  %498 = fptrunc double %497 to float
  store i64 %410, ptr %16, align 8, !tbaa !5
  %499 = getelementptr float, ptr %35, i64 %.11948
  %500 = getelementptr float, ptr %499, i64 %33
  %501 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %500, ptr noundef nonnull %10, ptr noundef %gep2464, ptr noundef nonnull @c__1) #5
  %502 = fptrunc double %501 to float
  %503 = getelementptr float, ptr %499, i64 %409
  %504 = load float, ptr %503, align 4, !tbaa !9
  %505 = call float @llvm.fmuladd.f32(float %101, float %502, float %498)
  %506 = fsub float %504, %505
  store float %506, ptr %384, align 4, !tbaa !9
  %507 = load float, ptr %413, align 4, !tbaa !9
  %508 = fmul float %507, %385
  store float %508, ptr %17, align 4, !tbaa !9
  %509 = getelementptr float, ptr %29, i64 %.119602496
  %510 = getelementptr float, ptr %509, i64 %485
  %511 = call i32 @slaln2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef nonnull @c_b26, ptr noundef %510, ptr noundef nonnull %6, ptr noundef nonnull @c_b26, ptr noundef nonnull @c_b26, ptr noundef nonnull %19, ptr noundef nonnull @c__2, ptr noundef nonnull %17, ptr noundef nonnull @c_b30, ptr noundef nonnull %18, ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef nonnull %21) #5
  %512 = load i64, ptr %21, align 8, !tbaa !5
  %.not2226 = icmp eq i64 %512, 0
  br i1 %.not2226, label %514, label %513

513:                                              ; preds = %483
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %514

514:                                              ; preds = %513, %483
  %515 = load float, ptr %24, align 4, !tbaa !9
  %516 = fcmp une float %515, 1.000000e+00
  br i1 %516, label %517, label %526

517:                                              ; preds = %514
  %518 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %518, ptr %16, align 8, !tbaa !5
  %.not22272433 = icmp slt i64 %518, 1
  br i1 %.not22272433, label %._crit_edge2437, label %.lr.ph2436

.lr.ph2436:                                       ; preds = %517, %.lr.ph2436
  %.519682434 = phi i64 [ %521, %.lr.ph2436 ], [ 1, %517 ]
  %519 = mul nsw i64 %.519682434, %33
  %gep2432 = getelementptr float, ptr %invariant.gep2461, i64 %519
  %520 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2432, ptr noundef nonnull @c__1) #5
  %521 = add nuw nsw i64 %.519682434, 1
  %522 = load i64, ptr %16, align 8, !tbaa !5
  %.not2227.not = icmp slt i64 %.519682434, %522
  br i1 %.not2227.not, label %.lr.ph2436, label %._crit_edge2437.loopexit, !llvm.loop !19

._crit_edge2437.loopexit:                         ; preds = %.lr.ph2436
  %.pre2586 = load float, ptr %24, align 4, !tbaa !9
  br label %._crit_edge2437

._crit_edge2437:                                  ; preds = %._crit_edge2437.loopexit, %517
  %523 = phi float [ %.pre2586, %._crit_edge2437.loopexit ], [ %515, %517 ]
  %524 = load float, ptr %11, align 4, !tbaa !9
  %525 = fmul float %523, %524
  store float %525, ptr %11, align 4, !tbaa !9
  br label %526

526:                                              ; preds = %._crit_edge2437, %514
  %527 = load float, ptr %18, align 16, !tbaa !9
  store float %527, ptr %492, align 4, !tbaa !9
  %528 = load float, ptr %386, align 4, !tbaa !9
  store float %528, ptr %503, align 4, !tbaa !9
  br label %638

529:                                              ; preds = %482
  %or.cond2271 = and i1 %431, %.not2269
  br i1 %or.cond2271, label %530, label %575

530:                                              ; preds = %529
  %531 = add nsw i64 %.119602496, -1
  store i64 %531, ptr %16, align 8, !tbaa !5
  %532 = mul nsw i64 %.119602496, %27
  %gep2480 = getelementptr float, ptr %invariant.gep2459, i64 %532
  %533 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %gep2480, ptr noundef nonnull @c__1, ptr noundef %gep2462, ptr noundef nonnull @c__1) #5
  %534 = fptrunc double %533 to float
  store i64 %410, ptr %16, align 8, !tbaa !5
  %535 = getelementptr float, ptr %35, i64 %.119602496
  %536 = getelementptr float, ptr %535, i64 %33
  %537 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %536, ptr noundef nonnull %10, ptr noundef %gep2464, ptr noundef nonnull @c__1) #5
  %538 = fptrunc double %537 to float
  %539 = getelementptr float, ptr %535, i64 %409
  %540 = load float, ptr %539, align 4, !tbaa !9
  %541 = call float @llvm.fmuladd.f32(float %101, float %538, float %534)
  %542 = fsub float %540, %541
  %543 = fmul float %542, %101
  store float %543, ptr %19, align 16, !tbaa !9
  store i64 %531, ptr %16, align 8, !tbaa !5
  %544 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %gep2480, ptr noundef nonnull @c__1, ptr noundef %gep2474, ptr noundef nonnull @c__1) #5
  %545 = fptrunc double %544 to float
  store i64 %410, ptr %16, align 8, !tbaa !5
  %546 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %536, ptr noundef nonnull %10, ptr noundef %gep2476, ptr noundef nonnull @c__1) #5
  %547 = fptrunc double %546 to float
  %548 = getelementptr float, ptr %535, i64 %414
  %549 = load float, ptr %548, align 4, !tbaa !9
  %550 = call float @llvm.fmuladd.f32(float %101, float %547, float %545)
  %551 = fsub float %549, %550
  %552 = fmul float %551, %101
  store float %552, ptr %384, align 4, !tbaa !9
  %553 = getelementptr float, ptr %29, i64 %.119602496
  %554 = getelementptr float, ptr %553, i64 %532
  %555 = load float, ptr %554, align 4, !tbaa !9
  %556 = fmul float %555, %385
  store float %556, ptr %17, align 4, !tbaa !9
  %557 = call i32 @slaln2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef nonnull @c_b26, ptr noundef %413, ptr noundef nonnull %8, ptr noundef nonnull @c_b26, ptr noundef nonnull @c_b26, ptr noundef nonnull %19, ptr noundef nonnull @c__2, ptr noundef nonnull %17, ptr noundef nonnull @c_b30, ptr noundef nonnull %18, ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef nonnull %21) #5
  %558 = load i64, ptr %21, align 8, !tbaa !5
  %.not2224 = icmp eq i64 %558, 0
  br i1 %.not2224, label %560, label %559

559:                                              ; preds = %530
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %560

560:                                              ; preds = %559, %530
  %561 = load float, ptr %24, align 4, !tbaa !9
  %562 = fcmp une float %561, 1.000000e+00
  br i1 %562, label %563, label %572

563:                                              ; preds = %560
  %564 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %564, ptr %16, align 8, !tbaa !5
  %.not22252447 = icmp slt i64 %564, 1
  br i1 %.not22252447, label %._crit_edge2451, label %.lr.ph2450

.lr.ph2450:                                       ; preds = %563, %.lr.ph2450
  %.619692448 = phi i64 [ %567, %.lr.ph2450 ], [ 1, %563 ]
  %565 = mul nsw i64 %.619692448, %33
  %gep2446 = getelementptr float, ptr %invariant.gep2461, i64 %565
  %566 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2446, ptr noundef nonnull @c__1) #5
  %567 = add nuw nsw i64 %.619692448, 1
  %568 = load i64, ptr %16, align 8, !tbaa !5
  %.not2225.not = icmp slt i64 %.619692448, %568
  br i1 %.not2225.not, label %.lr.ph2450, label %._crit_edge2451.loopexit, !llvm.loop !20

._crit_edge2451.loopexit:                         ; preds = %.lr.ph2450
  %.pre2588 = load float, ptr %24, align 4, !tbaa !9
  br label %._crit_edge2451

._crit_edge2451:                                  ; preds = %._crit_edge2451.loopexit, %563
  %569 = phi float [ %.pre2588, %._crit_edge2451.loopexit ], [ %561, %563 ]
  %570 = load float, ptr %11, align 4, !tbaa !9
  %571 = fmul float %569, %570
  store float %571, ptr %11, align 4, !tbaa !9
  br label %572

572:                                              ; preds = %._crit_edge2451, %560
  %573 = load float, ptr %18, align 16, !tbaa !9
  store float %573, ptr %539, align 4, !tbaa !9
  %574 = load float, ptr %386, align 4, !tbaa !9
  store float %574, ptr %548, align 4, !tbaa !9
  br label %638

575:                                              ; preds = %529
  %or.cond2272 = or i1 %408, %431
  br i1 %or.cond2272, label %638, label %576

576:                                              ; preds = %575
  %577 = add nsw i64 %.119602496, -1
  store i64 %577, ptr %16, align 8, !tbaa !5
  %578 = mul nsw i64 %.119602496, %27
  %gep2468 = getelementptr float, ptr %invariant.gep2459, i64 %578
  %579 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %gep2468, ptr noundef nonnull @c__1, ptr noundef %gep2462, ptr noundef nonnull @c__1) #5
  %580 = fptrunc double %579 to float
  store i64 %410, ptr %16, align 8, !tbaa !5
  %581 = getelementptr float, ptr %35, i64 %.119602496
  %582 = getelementptr float, ptr %581, i64 %33
  %583 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %582, ptr noundef nonnull %10, ptr noundef %gep2464, ptr noundef nonnull @c__1) #5
  %584 = fptrunc double %583 to float
  %585 = getelementptr float, ptr %581, i64 %409
  %586 = load float, ptr %585, align 4, !tbaa !9
  %587 = call float @llvm.fmuladd.f32(float %101, float %584, float %580)
  %588 = fsub float %586, %587
  store float %588, ptr %19, align 16, !tbaa !9
  store i64 %577, ptr %16, align 8, !tbaa !5
  %589 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %gep2468, ptr noundef nonnull @c__1, ptr noundef %gep2474, ptr noundef nonnull @c__1) #5
  %590 = fptrunc double %589 to float
  store i64 %410, ptr %16, align 8, !tbaa !5
  %591 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %582, ptr noundef nonnull %10, ptr noundef %gep2476, ptr noundef nonnull @c__1) #5
  %592 = fptrunc double %591 to float
  %593 = getelementptr float, ptr %581, i64 %414
  %594 = load float, ptr %593, align 4, !tbaa !9
  %595 = call float @llvm.fmuladd.f32(float %101, float %592, float %590)
  %596 = fsub float %594, %595
  store float %596, ptr %387, align 8, !tbaa !9
  store i64 %577, ptr %16, align 8, !tbaa !5
  %597 = mul nsw i64 %.11948, %27
  %gep2478 = getelementptr float, ptr %invariant.gep2459, i64 %597
  %598 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %gep2478, ptr noundef nonnull @c__1, ptr noundef %gep2462, ptr noundef nonnull @c__1) #5
  %599 = fptrunc double %598 to float
  store i64 %410, ptr %16, align 8, !tbaa !5
  %600 = getelementptr float, ptr %35, i64 %.11948
  %601 = getelementptr float, ptr %600, i64 %33
  %602 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %601, ptr noundef nonnull %10, ptr noundef %gep2464, ptr noundef nonnull @c__1) #5
  %603 = fptrunc double %602 to float
  %604 = getelementptr float, ptr %600, i64 %409
  %605 = load float, ptr %604, align 4, !tbaa !9
  %606 = call float @llvm.fmuladd.f32(float %101, float %603, float %599)
  %607 = fsub float %605, %606
  store float %607, ptr %384, align 4, !tbaa !9
  store i64 %577, ptr %16, align 8, !tbaa !5
  %608 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %gep2478, ptr noundef nonnull @c__1, ptr noundef %gep2474, ptr noundef nonnull @c__1) #5
  %609 = fptrunc double %608 to float
  store i64 %410, ptr %16, align 8, !tbaa !5
  %610 = call double @f2c_sdot(ptr noundef nonnull %16, ptr noundef %601, ptr noundef nonnull %10, ptr noundef %gep2476, ptr noundef nonnull @c__1) #5
  %611 = fptrunc double %610 to float
  %612 = getelementptr float, ptr %600, i64 %414
  %613 = load float, ptr %612, align 4, !tbaa !9
  %614 = call float @llvm.fmuladd.f32(float %101, float %611, float %609)
  %615 = fsub float %613, %614
  store float %615, ptr %388, align 4, !tbaa !9
  %616 = getelementptr float, ptr %29, i64 %.119602496
  %617 = getelementptr float, ptr %616, i64 %578
  %618 = call i32 @slasy2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_false, ptr noundef nonnull %2, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef %617, ptr noundef nonnull %6, ptr noundef %413, ptr noundef nonnull %8, ptr noundef nonnull %19, ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull %18, ptr noundef nonnull @c__2, ptr noundef nonnull %23, ptr noundef nonnull %21) #5
  %619 = load i64, ptr %21, align 8, !tbaa !5
  %.not2222 = icmp eq i64 %619, 0
  br i1 %.not2222, label %621, label %620

620:                                              ; preds = %576
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %621

621:                                              ; preds = %620, %576
  %622 = load float, ptr %24, align 4, !tbaa !9
  %623 = fcmp une float %622, 1.000000e+00
  br i1 %623, label %624, label %633

624:                                              ; preds = %621
  %625 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %625, ptr %16, align 8, !tbaa !5
  %.not22232440 = icmp slt i64 %625, 1
  br i1 %.not22232440, label %._crit_edge2444, label %.lr.ph2443

.lr.ph2443:                                       ; preds = %624, %.lr.ph2443
  %.719702441 = phi i64 [ %628, %.lr.ph2443 ], [ 1, %624 ]
  %626 = mul nsw i64 %.719702441, %33
  %gep2439 = getelementptr float, ptr %invariant.gep2461, i64 %626
  %627 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2439, ptr noundef nonnull @c__1) #5
  %628 = add nuw nsw i64 %.719702441, 1
  %629 = load i64, ptr %16, align 8, !tbaa !5
  %.not2223.not = icmp slt i64 %.719702441, %629
  br i1 %.not2223.not, label %.lr.ph2443, label %._crit_edge2444.loopexit, !llvm.loop !21

._crit_edge2444.loopexit:                         ; preds = %.lr.ph2443
  %.pre2587 = load float, ptr %24, align 4, !tbaa !9
  br label %._crit_edge2444

._crit_edge2444:                                  ; preds = %._crit_edge2444.loopexit, %624
  %630 = phi float [ %.pre2587, %._crit_edge2444.loopexit ], [ %622, %624 ]
  %631 = load float, ptr %11, align 4, !tbaa !9
  %632 = fmul float %630, %631
  store float %632, ptr %11, align 4, !tbaa !9
  br label %633

633:                                              ; preds = %._crit_edge2444, %621
  %634 = load float, ptr %18, align 16, !tbaa !9
  store float %634, ptr %585, align 4, !tbaa !9
  %635 = load float, ptr %389, align 8, !tbaa !9
  store float %635, ptr %593, align 4, !tbaa !9
  %636 = load float, ptr %386, align 4, !tbaa !9
  store float %636, ptr %604, align 4, !tbaa !9
  %637 = load float, ptr %390, align 4, !tbaa !9
  store float %637, ptr %612, align 4, !tbaa !9
  br label %638

638:                                              ; preds = %416, %526, %575, %633, %572, %480
  %.51924 = phi i64 [ %.319222497, %416 ], [ %.41923, %480 ], [ %.41923, %526 ], [ %.41923, %572 ], [ %.41923, %633 ], [ %.41923, %575 ]
  %639 = add nuw nsw i64 %.119602496, 1
  %640 = load i64, ptr %15, align 8, !tbaa !5
  %.not2218.not = icmp slt i64 %.119602496, %640
  br i1 %.not2218.not, label %416, label %.loopexit2313.loopexit, !llvm.loop !22

.loopexit2313.loopexit:                           ; preds = %638
  %.pre2591 = load i64, ptr %14, align 8, !tbaa !5
  br label %.loopexit2313

.loopexit2313:                                    ; preds = %.loopexit2313.loopexit, %406, %391
  %641 = phi i64 [ %392, %391 ], [ %392, %406 ], [ %.pre2591, %.loopexit2313.loopexit ]
  %.5 = phi i64 [ %.32503, %391 ], [ %.4, %406 ], [ %.4, %.loopexit2313.loopexit ]
  %642 = add nuw nsw i64 %.119562501, 1
  %.not2217.not = icmp slt i64 %.119562501, %641
  br i1 %.not2217.not, label %391, label %.loopexit2312, !llvm.loop !23

643:                                              ; preds = %380
  %or.cond9 = select i1 %38, i1 true, i1 %102
  br i1 %or.cond9, label %959, label %644

644:                                              ; preds = %643
  %645 = load i64, ptr %4, align 8, !tbaa !5
  %646 = icmp sgt i64 %645, 0
  br i1 %646, label %.lr.ph2375, label %.loopexit2312

.lr.ph2375:                                       ; preds = %644
  %invariant.gep2342 = getelementptr i8, ptr %29, i64 4
  %invariant.gep2344 = getelementptr i8, ptr %35, i64 4
  %647 = getelementptr inbounds i8, ptr %19, i64 4
  %648 = fneg float %101
  %649 = add i64 %30, 1
  %650 = getelementptr inbounds i8, ptr %18, i64 4
  %651 = getelementptr inbounds i8, ptr %19, i64 8
  %652 = getelementptr inbounds i8, ptr %19, i64 12
  %653 = getelementptr inbounds i8, ptr %18, i64 8
  %654 = getelementptr inbounds i8, ptr %18, i64 12
  br label %655

655:                                              ; preds = %.lr.ph2375, %.loopexit2317
  %.62373 = phi i64 [ %645, %.lr.ph2375 ], [ %.8, %.loopexit2317 ]
  %.219572371 = phi i64 [ %645, %.lr.ph2375 ], [ %957, %.loopexit2317 ]
  %656 = icmp sgt i64 %.219572371, %.62373
  br i1 %656, label %.loopexit2317, label %657

657:                                              ; preds = %655
  %658 = icmp eq i64 %.219572371, 1
  br i1 %658, label %668, label %659

659:                                              ; preds = %657
  %660 = add nsw i64 %.219572371, -1
  %661 = mul nsw i64 %660, %30
  %662 = getelementptr float, ptr %32, i64 %.219572371
  %663 = getelementptr float, ptr %662, i64 %661
  %664 = load float, ptr %663, align 4, !tbaa !9
  %665 = fcmp une float %664, 0.000000e+00
  br i1 %665, label %666, label %668

666:                                              ; preds = %659
  %667 = add nsw i64 %.219572371, -2
  br label %668

668:                                              ; preds = %659, %657, %666
  %.21945 = phi i64 [ %660, %666 ], [ 1, %657 ], [ %.219572371, %659 ]
  %.7 = phi i64 [ %667, %666 ], [ %.62373, %657 ], [ %660, %659 ]
  %669 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %669, ptr %14, align 8, !tbaa !5
  %.not21422366 = icmp slt i64 %669, 1
  br i1 %.not21422366, label %.loopexit2317, label %.lr.ph2370

.lr.ph2370:                                       ; preds = %668
  %670 = icmp eq i64 %.21945, %.219572371
  %.not2275 = xor i1 %670, true
  %671 = mul nsw i64 %.21945, %33
  %gep2345 = getelementptr float, ptr %invariant.gep2344, i64 %671
  %672 = add nuw nsw i64 %.219572371, 1
  %673 = getelementptr float, ptr %32, i64 %.21945
  %674 = mul i64 %.21945, %649
  %675 = getelementptr inbounds float, ptr %32, i64 %674
  %676 = mul nsw i64 %.219572371, %33
  %gep2353 = getelementptr float, ptr %invariant.gep2344, i64 %676
  %677 = getelementptr float, ptr %32, i64 %.219572371
  %678 = add nuw nsw i64 %.21945, 1
  br label %679

679:                                              ; preds = %.lr.ph2370, %954
  %.619252368 = phi i64 [ 1, %.lr.ph2370 ], [ %.81927, %954 ]
  %.219612367 = phi i64 [ 1, %.lr.ph2370 ], [ %955, %954 ]
  %680 = icmp slt i64 %.219612367, %.619252368
  br i1 %680, label %954, label %681

681:                                              ; preds = %679
  %682 = load i64, ptr %3, align 8, !tbaa !5
  %683 = icmp eq i64 %.219612367, %682
  br i1 %683, label %693, label %684

684:                                              ; preds = %681
  %685 = add nuw nsw i64 %.219612367, 1
  %686 = mul nsw i64 %.219612367, %27
  %687 = getelementptr float, ptr %29, i64 %685
  %688 = getelementptr float, ptr %687, i64 %686
  %689 = load float, ptr %688, align 4, !tbaa !9
  %690 = fcmp une float %689, 0.000000e+00
  br i1 %690, label %691, label %693

691:                                              ; preds = %684
  %692 = add nuw nsw i64 %.219612367, 2
  br label %693

693:                                              ; preds = %684, %681, %691
  %.21949 = phi i64 [ %685, %691 ], [ %.219612367, %681 ], [ %.219612367, %684 ]
  %.71926 = phi i64 [ %692, %691 ], [ %.619252368, %681 ], [ %685, %684 ]
  %694 = icmp eq i64 %.219612367, %.21949
  %or.cond2273 = and i1 %670, %694
  br i1 %or.cond2273, label %695, label %750

695:                                              ; preds = %693
  %696 = add nsw i64 %.219612367, -1
  store i64 %696, ptr %15, align 8, !tbaa !5
  %697 = mul nsw i64 %.219612367, %27
  %gep2363 = getelementptr float, ptr %invariant.gep2342, i64 %697
  %698 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %gep2363, ptr noundef nonnull @c__1, ptr noundef %gep2345, ptr noundef nonnull @c__1) #5
  %699 = fptrunc double %698 to float
  %700 = load i64, ptr %4, align 8, !tbaa !5
  %701 = sub nsw i64 %700, %.219572371
  store i64 %701, ptr %15, align 8, !tbaa !5
  store i64 %678, ptr %16, align 8, !tbaa !5
  %.not2168.not = icmp slt i64 %.219572371, %700
  %.2274 = select i1 %.not2168.not, i64 %678, i64 %700
  %702 = mul nsw i64 %.2274, %33
  %703 = getelementptr float, ptr %35, i64 %.219612367
  %704 = getelementptr float, ptr %703, i64 %702
  %705 = mul nsw i64 %.2274, %30
  %706 = getelementptr float, ptr %673, i64 %705
  %707 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %704, ptr noundef nonnull %10, ptr noundef %706, ptr noundef nonnull %8) #5
  %708 = fptrunc double %707 to float
  %709 = getelementptr float, ptr %703, i64 %671
  %710 = load float, ptr %709, align 4, !tbaa !9
  %711 = call float @llvm.fmuladd.f32(float %101, float %708, float %699)
  %712 = fsub float %710, %711
  store float %712, ptr %19, align 16, !tbaa !9
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %713 = getelementptr float, ptr %29, i64 %.219612367
  %714 = getelementptr float, ptr %713, i64 %697
  %715 = load float, ptr %714, align 4, !tbaa !9
  %716 = load float, ptr %675, align 4, !tbaa !9
  %717 = call float @llvm.fmuladd.f32(float %101, float %716, float %715)
  %718 = fcmp oge float %717, 0.000000e+00
  %719 = fneg float %717
  %720 = select i1 %718, float %717, float %719
  %721 = load float, ptr %22, align 4, !tbaa !9
  %722 = fcmp ugt float %720, %721
  br i1 %722, label %724, label %723

723:                                              ; preds = %695
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %724

724:                                              ; preds = %723, %695
  %.21937 = phi float [ %721, %723 ], [ %717, %695 ]
  %.21933 = phi float [ %721, %723 ], [ %720, %695 ]
  %725 = fcmp oge float %712, 0.000000e+00
  %726 = fneg float %712
  %727 = select i1 %725, float %712, float %726
  %728 = fcmp olt float %.21933, 1.000000e+00
  %729 = fcmp ogt float %727, 1.000000e+00
  %or.cond11 = select i1 %728, i1 %729, i1 false
  br i1 %or.cond11, label %730, label %thread-pre-split2302.thread

730:                                              ; preds = %724
  %731 = load float, ptr %25, align 4, !tbaa !9
  %732 = fmul float %.21933, %731
  %733 = fcmp ogt float %727, %732
  br i1 %733, label %thread-pre-split2302, label %thread-pre-split2302.thread

thread-pre-split2302.thread:                      ; preds = %724, %730
  %734 = fdiv float %712, %.21937
  store float %734, ptr %18, align 16, !tbaa !9
  br label %748

thread-pre-split2302:                             ; preds = %730
  %735 = fdiv float 1.000000e+00, %727
  store float %735, ptr %24, align 4, !tbaa !9
  %736 = fmul float %712, %735
  %737 = fdiv float %736, %.21937
  store float %737, ptr %18, align 16, !tbaa !9
  %738 = fcmp une float %735, 1.000000e+00
  br i1 %738, label %739, label %748

739:                                              ; preds = %thread-pre-split2302
  %740 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %740, ptr %15, align 8, !tbaa !5
  %.not21702337 = icmp slt i64 %740, 1
  br i1 %.not21702337, label %._crit_edge2341, label %.lr.ph2340

.lr.ph2340:                                       ; preds = %739, %.lr.ph2340
  %.819712338 = phi i64 [ %743, %.lr.ph2340 ], [ 1, %739 ]
  %741 = mul nsw i64 %.819712338, %33
  %gep2336 = getelementptr float, ptr %invariant.gep2344, i64 %741
  %742 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2336, ptr noundef nonnull @c__1) #5
  %743 = add nuw nsw i64 %.819712338, 1
  %744 = load i64, ptr %15, align 8, !tbaa !5
  %.not2170.not = icmp slt i64 %.819712338, %744
  br i1 %.not2170.not, label %.lr.ph2340, label %._crit_edge2341.loopexit, !llvm.loop !24

._crit_edge2341.loopexit:                         ; preds = %.lr.ph2340
  %.pre2579 = load float, ptr %24, align 4, !tbaa !9
  %.pre2580.pre = load float, ptr %18, align 16, !tbaa !9
  br label %._crit_edge2341

._crit_edge2341:                                  ; preds = %._crit_edge2341.loopexit, %739
  %.pre2580 = phi float [ %.pre2580.pre, %._crit_edge2341.loopexit ], [ %737, %739 ]
  %745 = phi float [ %.pre2579, %._crit_edge2341.loopexit ], [ %735, %739 ]
  %746 = load float, ptr %11, align 4, !tbaa !9
  %747 = fmul float %745, %746
  store float %747, ptr %11, align 4, !tbaa !9
  br label %748

748:                                              ; preds = %thread-pre-split2302.thread, %._crit_edge2341, %thread-pre-split2302
  %749 = phi float [ %.pre2580, %._crit_edge2341 ], [ %737, %thread-pre-split2302 ], [ %734, %thread-pre-split2302.thread ]
  store float %749, ptr %709, align 4, !tbaa !9
  br label %954

750:                                              ; preds = %693
  %or.cond2276 = or i1 %694, %.not2275
  br i1 %or.cond2276, label %808, label %751

751:                                              ; preds = %750
  %752 = add nsw i64 %.219612367, -1
  store i64 %752, ptr %15, align 8, !tbaa !5
  %753 = mul nsw i64 %.219612367, %27
  %gep2343 = getelementptr float, ptr %invariant.gep2342, i64 %753
  %754 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %gep2343, ptr noundef nonnull @c__1, ptr noundef %gep2345, ptr noundef nonnull @c__1) #5
  %755 = fptrunc double %754 to float
  %756 = load i64, ptr %4, align 8, !tbaa !5
  %757 = sub nsw i64 %756, %.219572371
  store i64 %757, ptr %15, align 8, !tbaa !5
  %.not2162.not = icmp slt i64 %.219572371, %756
  %.2277 = select i1 %.not2162.not, i64 %672, i64 %756
  %758 = mul nsw i64 %.2277, %33
  %759 = getelementptr float, ptr %35, i64 %.219612367
  %760 = getelementptr float, ptr %759, i64 %758
  %761 = mul nsw i64 %.2277, %30
  %762 = getelementptr float, ptr %673, i64 %761
  %763 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %760, ptr noundef nonnull %10, ptr noundef %762, ptr noundef nonnull %8) #5
  %764 = fptrunc double %763 to float
  %765 = getelementptr float, ptr %759, i64 %671
  %766 = load float, ptr %765, align 4, !tbaa !9
  %767 = call float @llvm.fmuladd.f32(float %101, float %764, float %755)
  %768 = fsub float %766, %767
  store float %768, ptr %19, align 16, !tbaa !9
  store i64 %752, ptr %15, align 8, !tbaa !5
  %769 = mul nsw i64 %.21949, %27
  %gep2347 = getelementptr float, ptr %invariant.gep2342, i64 %769
  %770 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %gep2347, ptr noundef nonnull @c__1, ptr noundef %gep2345, ptr noundef nonnull @c__1) #5
  %771 = fptrunc double %770 to float
  %772 = load i64, ptr %4, align 8, !tbaa !5
  %773 = sub nsw i64 %772, %.219572371
  store i64 %773, ptr %15, align 8, !tbaa !5
  store i64 %672, ptr %16, align 8, !tbaa !5
  %.not2164.not = icmp slt i64 %.219572371, %772
  %774 = select i1 %.not2164.not, i64 %672, i64 %772
  %775 = mul nsw i64 %774, %33
  %776 = getelementptr float, ptr %35, i64 %.21949
  %777 = getelementptr float, ptr %776, i64 %775
  %778 = mul nsw i64 %774, %30
  %779 = getelementptr float, ptr %673, i64 %778
  %780 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %777, ptr noundef nonnull %10, ptr noundef %779, ptr noundef nonnull %8) #5
  %781 = fptrunc double %780 to float
  %782 = getelementptr float, ptr %776, i64 %671
  %783 = load float, ptr %782, align 4, !tbaa !9
  %784 = call float @llvm.fmuladd.f32(float %101, float %781, float %771)
  %785 = fsub float %783, %784
  store float %785, ptr %647, align 4, !tbaa !9
  %786 = load float, ptr %675, align 4, !tbaa !9
  %787 = fmul float %786, %648
  store float %787, ptr %17, align 4, !tbaa !9
  %788 = getelementptr float, ptr %29, i64 %.219612367
  %789 = getelementptr float, ptr %788, i64 %753
  %790 = call i32 @slaln2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef nonnull @c_b26, ptr noundef %789, ptr noundef nonnull %6, ptr noundef nonnull @c_b26, ptr noundef nonnull @c_b26, ptr noundef nonnull %19, ptr noundef nonnull @c__2, ptr noundef nonnull %17, ptr noundef nonnull @c_b30, ptr noundef nonnull %18, ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef nonnull %21) #5
  %791 = load i64, ptr %21, align 8, !tbaa !5
  %.not2166 = icmp eq i64 %791, 0
  br i1 %.not2166, label %793, label %792

792:                                              ; preds = %751
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %793

793:                                              ; preds = %792, %751
  %794 = load float, ptr %24, align 4, !tbaa !9
  %795 = fcmp une float %794, 1.000000e+00
  br i1 %795, label %796, label %805

796:                                              ; preds = %793
  %797 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %797, ptr %15, align 8, !tbaa !5
  %.not21672319 = icmp slt i64 %797, 1
  br i1 %.not21672319, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %796, %.lr.ph
  %.919722320 = phi i64 [ %800, %.lr.ph ], [ 1, %796 ]
  %798 = mul nsw i64 %.919722320, %33
  %gep = getelementptr float, ptr %invariant.gep2344, i64 %798
  %799 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep, ptr noundef nonnull @c__1) #5
  %800 = add nuw nsw i64 %.919722320, 1
  %801 = load i64, ptr %15, align 8, !tbaa !5
  %.not2167.not = icmp slt i64 %.919722320, %801
  br i1 %.not2167.not, label %.lr.ph, label %._crit_edge.loopexit, !llvm.loop !25

._crit_edge.loopexit:                             ; preds = %.lr.ph
  %.pre = load float, ptr %24, align 4, !tbaa !9
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %796
  %802 = phi float [ %.pre, %._crit_edge.loopexit ], [ %794, %796 ]
  %803 = load float, ptr %11, align 4, !tbaa !9
  %804 = fmul float %802, %803
  store float %804, ptr %11, align 4, !tbaa !9
  br label %805

805:                                              ; preds = %._crit_edge, %793
  %806 = load float, ptr %18, align 16, !tbaa !9
  store float %806, ptr %765, align 4, !tbaa !9
  %807 = load float, ptr %650, align 4, !tbaa !9
  store float %807, ptr %782, align 4, !tbaa !9
  br label %954

808:                                              ; preds = %750
  %or.cond2278 = and i1 %694, %.not2275
  br i1 %or.cond2278, label %809, label %866

809:                                              ; preds = %808
  %810 = add nsw i64 %.219612367, -1
  store i64 %810, ptr %15, align 8, !tbaa !5
  %811 = mul nsw i64 %.219612367, %27
  %gep2357 = getelementptr float, ptr %invariant.gep2342, i64 %811
  %812 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %gep2357, ptr noundef nonnull @c__1, ptr noundef %gep2345, ptr noundef nonnull @c__1) #5
  %813 = fptrunc double %812 to float
  %814 = load i64, ptr %4, align 8, !tbaa !5
  %815 = sub nsw i64 %814, %.219572371
  store i64 %815, ptr %15, align 8, !tbaa !5
  %.not2156.not = icmp slt i64 %.219572371, %814
  %.2279 = select i1 %.not2156.not, i64 %672, i64 %814
  %816 = mul nsw i64 %.2279, %33
  %817 = getelementptr float, ptr %35, i64 %.219612367
  %818 = getelementptr float, ptr %817, i64 %816
  %819 = mul nsw i64 %.2279, %30
  %820 = getelementptr float, ptr %673, i64 %819
  %821 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %818, ptr noundef nonnull %10, ptr noundef %820, ptr noundef nonnull %8) #5
  %822 = fptrunc double %821 to float
  %823 = getelementptr float, ptr %817, i64 %671
  %824 = load float, ptr %823, align 4, !tbaa !9
  %825 = call float @llvm.fmuladd.f32(float %101, float %822, float %813)
  %826 = fsub float %824, %825
  %827 = fmul float %826, %101
  store float %827, ptr %19, align 16, !tbaa !9
  store i64 %810, ptr %15, align 8, !tbaa !5
  %828 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %gep2357, ptr noundef nonnull @c__1, ptr noundef %gep2353, ptr noundef nonnull @c__1) #5
  %829 = fptrunc double %828 to float
  %830 = load i64, ptr %4, align 8, !tbaa !5
  %831 = sub nsw i64 %830, %.219572371
  store i64 %831, ptr %15, align 8, !tbaa !5
  store i64 %672, ptr %16, align 8, !tbaa !5
  %.not2158.not = icmp slt i64 %.219572371, %830
  %832 = select i1 %.not2158.not, i64 %672, i64 %830
  %833 = mul nsw i64 %832, %33
  %834 = getelementptr float, ptr %817, i64 %833
  %835 = mul nsw i64 %832, %30
  %836 = getelementptr float, ptr %677, i64 %835
  %837 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %834, ptr noundef nonnull %10, ptr noundef %836, ptr noundef nonnull %8) #5
  %838 = fptrunc double %837 to float
  %839 = getelementptr float, ptr %817, i64 %676
  %840 = load float, ptr %839, align 4, !tbaa !9
  %841 = call float @llvm.fmuladd.f32(float %101, float %838, float %829)
  %842 = fsub float %840, %841
  %843 = fmul float %842, %101
  store float %843, ptr %647, align 4, !tbaa !9
  %844 = getelementptr float, ptr %29, i64 %.219612367
  %845 = getelementptr float, ptr %844, i64 %811
  %846 = load float, ptr %845, align 4, !tbaa !9
  %847 = fmul float %846, %648
  store float %847, ptr %17, align 4, !tbaa !9
  %848 = call i32 @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef nonnull @c_b26, ptr noundef %675, ptr noundef nonnull %8, ptr noundef nonnull @c_b26, ptr noundef nonnull @c_b26, ptr noundef nonnull %19, ptr noundef nonnull @c__2, ptr noundef nonnull %17, ptr noundef nonnull @c_b30, ptr noundef nonnull %18, ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef nonnull %21) #5
  %849 = load i64, ptr %21, align 8, !tbaa !5
  %.not2160 = icmp eq i64 %849, 0
  br i1 %.not2160, label %851, label %850

850:                                              ; preds = %809
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %851

851:                                              ; preds = %850, %809
  %852 = load float, ptr %24, align 4, !tbaa !9
  %853 = fcmp une float %852, 1.000000e+00
  br i1 %853, label %854, label %863

854:                                              ; preds = %851
  %855 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %855, ptr %15, align 8, !tbaa !5
  %.not21612330 = icmp slt i64 %855, 1
  br i1 %.not21612330, label %._crit_edge2334, label %.lr.ph2333

.lr.ph2333:                                       ; preds = %854, %.lr.ph2333
  %.1019732331 = phi i64 [ %858, %.lr.ph2333 ], [ 1, %854 ]
  %856 = mul nsw i64 %.1019732331, %33
  %gep2329 = getelementptr float, ptr %invariant.gep2344, i64 %856
  %857 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2329, ptr noundef nonnull @c__1) #5
  %858 = add nuw nsw i64 %.1019732331, 1
  %859 = load i64, ptr %15, align 8, !tbaa !5
  %.not2161.not = icmp slt i64 %.1019732331, %859
  br i1 %.not2161.not, label %.lr.ph2333, label %._crit_edge2334.loopexit, !llvm.loop !26

._crit_edge2334.loopexit:                         ; preds = %.lr.ph2333
  %.pre2578 = load float, ptr %24, align 4, !tbaa !9
  br label %._crit_edge2334

._crit_edge2334:                                  ; preds = %._crit_edge2334.loopexit, %854
  %860 = phi float [ %.pre2578, %._crit_edge2334.loopexit ], [ %852, %854 ]
  %861 = load float, ptr %11, align 4, !tbaa !9
  %862 = fmul float %860, %861
  store float %862, ptr %11, align 4, !tbaa !9
  br label %863

863:                                              ; preds = %._crit_edge2334, %851
  %864 = load float, ptr %18, align 16, !tbaa !9
  store float %864, ptr %823, align 4, !tbaa !9
  %865 = load float, ptr %650, align 4, !tbaa !9
  store float %865, ptr %839, align 4, !tbaa !9
  br label %954

866:                                              ; preds = %808
  %or.cond2280 = or i1 %670, %694
  br i1 %or.cond2280, label %954, label %867

867:                                              ; preds = %866
  %868 = add nsw i64 %.219612367, -1
  store i64 %868, ptr %15, align 8, !tbaa !5
  %869 = mul nsw i64 %.219612367, %27
  %gep2349 = getelementptr float, ptr %invariant.gep2342, i64 %869
  %870 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %gep2349, ptr noundef nonnull @c__1, ptr noundef %gep2345, ptr noundef nonnull @c__1) #5
  %871 = fptrunc double %870 to float
  %872 = load i64, ptr %4, align 8, !tbaa !5
  %873 = sub nsw i64 %872, %.219572371
  store i64 %873, ptr %15, align 8, !tbaa !5
  %.not2146.not = icmp slt i64 %.219572371, %872
  %.2281 = select i1 %.not2146.not, i64 %672, i64 %872
  %874 = mul nsw i64 %.2281, %33
  %875 = getelementptr float, ptr %35, i64 %.219612367
  %876 = getelementptr float, ptr %875, i64 %874
  %877 = mul nsw i64 %.2281, %30
  %878 = getelementptr float, ptr %673, i64 %877
  %879 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %876, ptr noundef nonnull %10, ptr noundef %878, ptr noundef nonnull %8) #5
  %880 = fptrunc double %879 to float
  %881 = getelementptr float, ptr %875, i64 %671
  %882 = load float, ptr %881, align 4, !tbaa !9
  %883 = call float @llvm.fmuladd.f32(float %101, float %880, float %871)
  %884 = fsub float %882, %883
  store float %884, ptr %19, align 16, !tbaa !9
  store i64 %868, ptr %15, align 8, !tbaa !5
  %885 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %gep2349, ptr noundef nonnull @c__1, ptr noundef %gep2353, ptr noundef nonnull @c__1) #5
  %886 = fptrunc double %885 to float
  %887 = load i64, ptr %4, align 8, !tbaa !5
  %888 = sub nsw i64 %887, %.219572371
  store i64 %888, ptr %15, align 8, !tbaa !5
  %.not2148.not = icmp slt i64 %.219572371, %887
  %889 = select i1 %.not2148.not, i64 %672, i64 %887
  %890 = mul nsw i64 %889, %33
  %891 = getelementptr float, ptr %875, i64 %890
  %892 = mul nsw i64 %889, %30
  %893 = getelementptr float, ptr %677, i64 %892
  %894 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %891, ptr noundef nonnull %10, ptr noundef %893, ptr noundef nonnull %8) #5
  %895 = fptrunc double %894 to float
  %896 = getelementptr float, ptr %875, i64 %676
  %897 = load float, ptr %896, align 4, !tbaa !9
  %898 = call float @llvm.fmuladd.f32(float %101, float %895, float %886)
  %899 = fsub float %897, %898
  store float %899, ptr %651, align 8, !tbaa !9
  store i64 %868, ptr %15, align 8, !tbaa !5
  %900 = mul nsw i64 %.21949, %27
  %gep2355 = getelementptr float, ptr %invariant.gep2342, i64 %900
  %901 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %gep2355, ptr noundef nonnull @c__1, ptr noundef %gep2345, ptr noundef nonnull @c__1) #5
  %902 = fptrunc double %901 to float
  %903 = load i64, ptr %4, align 8, !tbaa !5
  %904 = sub nsw i64 %903, %.219572371
  store i64 %904, ptr %15, align 8, !tbaa !5
  %.not2150.not = icmp slt i64 %.219572371, %903
  %905 = select i1 %.not2150.not, i64 %672, i64 %903
  %906 = mul nsw i64 %905, %33
  %907 = getelementptr float, ptr %35, i64 %.21949
  %908 = getelementptr float, ptr %907, i64 %906
  %909 = mul nsw i64 %905, %30
  %910 = getelementptr float, ptr %673, i64 %909
  %911 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %908, ptr noundef nonnull %10, ptr noundef %910, ptr noundef nonnull %8) #5
  %912 = fptrunc double %911 to float
  %913 = getelementptr float, ptr %907, i64 %671
  %914 = load float, ptr %913, align 4, !tbaa !9
  %915 = call float @llvm.fmuladd.f32(float %101, float %912, float %902)
  %916 = fsub float %914, %915
  store float %916, ptr %647, align 4, !tbaa !9
  store i64 %868, ptr %15, align 8, !tbaa !5
  %917 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %gep2355, ptr noundef nonnull @c__1, ptr noundef %gep2353, ptr noundef nonnull @c__1) #5
  %918 = fptrunc double %917 to float
  %919 = load i64, ptr %4, align 8, !tbaa !5
  %920 = sub nsw i64 %919, %.219572371
  store i64 %920, ptr %15, align 8, !tbaa !5
  store i64 %672, ptr %16, align 8, !tbaa !5
  %.not2152.not = icmp slt i64 %.219572371, %919
  %921 = select i1 %.not2152.not, i64 %672, i64 %919
  %922 = mul nsw i64 %921, %33
  %923 = getelementptr float, ptr %907, i64 %922
  %924 = mul nsw i64 %921, %30
  %925 = getelementptr float, ptr %677, i64 %924
  %926 = call double @f2c_sdot(ptr noundef nonnull %15, ptr noundef %923, ptr noundef nonnull %10, ptr noundef %925, ptr noundef nonnull %8) #5
  %927 = fptrunc double %926 to float
  %928 = getelementptr float, ptr %907, i64 %676
  %929 = load float, ptr %928, align 4, !tbaa !9
  %930 = call float @llvm.fmuladd.f32(float %101, float %927, float %918)
  %931 = fsub float %929, %930
  store float %931, ptr %652, align 4, !tbaa !9
  %932 = getelementptr float, ptr %29, i64 %.219612367
  %933 = getelementptr float, ptr %932, i64 %869
  %934 = call i32 @slasy2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c_true, ptr noundef nonnull %2, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef %933, ptr noundef nonnull %6, ptr noundef %675, ptr noundef nonnull %8, ptr noundef nonnull %19, ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull %18, ptr noundef nonnull @c__2, ptr noundef nonnull %23, ptr noundef nonnull %21) #5
  %935 = load i64, ptr %21, align 8, !tbaa !5
  %.not2154 = icmp eq i64 %935, 0
  br i1 %.not2154, label %937, label %936

936:                                              ; preds = %867
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %937

937:                                              ; preds = %936, %867
  %938 = load float, ptr %24, align 4, !tbaa !9
  %939 = fcmp une float %938, 1.000000e+00
  br i1 %939, label %940, label %949

940:                                              ; preds = %937
  %941 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %941, ptr %15, align 8, !tbaa !5
  %.not21552323 = icmp slt i64 %941, 1
  br i1 %.not21552323, label %._crit_edge2327, label %.lr.ph2326

.lr.ph2326:                                       ; preds = %940, %.lr.ph2326
  %.1119742324 = phi i64 [ %944, %.lr.ph2326 ], [ 1, %940 ]
  %942 = mul nsw i64 %.1119742324, %33
  %gep2322 = getelementptr float, ptr %invariant.gep2344, i64 %942
  %943 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2322, ptr noundef nonnull @c__1) #5
  %944 = add nuw nsw i64 %.1119742324, 1
  %945 = load i64, ptr %15, align 8, !tbaa !5
  %.not2155.not = icmp slt i64 %.1119742324, %945
  br i1 %.not2155.not, label %.lr.ph2326, label %._crit_edge2327.loopexit, !llvm.loop !27

._crit_edge2327.loopexit:                         ; preds = %.lr.ph2326
  %.pre2577 = load float, ptr %24, align 4, !tbaa !9
  br label %._crit_edge2327

._crit_edge2327:                                  ; preds = %._crit_edge2327.loopexit, %940
  %946 = phi float [ %.pre2577, %._crit_edge2327.loopexit ], [ %938, %940 ]
  %947 = load float, ptr %11, align 4, !tbaa !9
  %948 = fmul float %946, %947
  store float %948, ptr %11, align 4, !tbaa !9
  br label %949

949:                                              ; preds = %._crit_edge2327, %937
  %950 = load float, ptr %18, align 16, !tbaa !9
  store float %950, ptr %881, align 4, !tbaa !9
  %951 = load float, ptr %653, align 8, !tbaa !9
  store float %951, ptr %896, align 4, !tbaa !9
  %952 = load float, ptr %650, align 4, !tbaa !9
  store float %952, ptr %913, align 4, !tbaa !9
  %953 = load float, ptr %654, align 4, !tbaa !9
  store float %953, ptr %928, align 4, !tbaa !9
  br label %954

954:                                              ; preds = %679, %805, %866, %949, %863, %748
  %.81927 = phi i64 [ %.619252368, %679 ], [ %.71926, %748 ], [ %.71926, %805 ], [ %.71926, %863 ], [ %.71926, %949 ], [ %.71926, %866 ]
  %955 = add nuw nsw i64 %.219612367, 1
  %956 = load i64, ptr %14, align 8, !tbaa !5
  %.not2142.not = icmp slt i64 %.219612367, %956
  br i1 %.not2142.not, label %679, label %.loopexit2317, !llvm.loop !28

.loopexit2317:                                    ; preds = %954, %668, %655
  %.8 = phi i64 [ %.62373, %655 ], [ %.7, %668 ], [ %.7, %954 ]
  %957 = add nsw i64 %.219572371, -1
  %958 = icmp sgt i64 %.219572371, 1
  br i1 %958, label %655, label %.loopexit2312, !llvm.loop !29

959:                                              ; preds = %643
  %or.cond13 = select i1 %381, i1 true, i1 %102
  br i1 %or.cond13, label %.loopexit2312, label %960

960:                                              ; preds = %959
  %961 = load i64, ptr %4, align 8, !tbaa !5
  %962 = icmp sgt i64 %961, 0
  br i1 %962, label %.lr.ph2430, label %.loopexit2312

.lr.ph2430:                                       ; preds = %960
  %963 = getelementptr inbounds i8, ptr %19, i64 4
  %964 = fneg float %101
  %965 = add i64 %30, 1
  %966 = add i64 %27, 1
  %invariant.gep2376 = getelementptr i8, ptr %35, i64 4
  %967 = getelementptr inbounds i8, ptr %18, i64 4
  %968 = getelementptr inbounds i8, ptr %19, i64 8
  %969 = getelementptr inbounds i8, ptr %19, i64 12
  %970 = getelementptr inbounds i8, ptr %18, i64 8
  %971 = getelementptr inbounds i8, ptr %18, i64 12
  br label %972

972:                                              ; preds = %.lr.ph2430, %.loopexit2315
  %.92428 = phi i64 [ %961, %.lr.ph2430 ], [ %.11, %.loopexit2315 ]
  %.319582426 = phi i64 [ %961, %.lr.ph2430 ], [ %1293, %.loopexit2315 ]
  %973 = icmp sgt i64 %.319582426, %.92428
  br i1 %973, label %.loopexit2315, label %974

974:                                              ; preds = %972
  %975 = icmp eq i64 %.319582426, 1
  br i1 %975, label %985, label %976

976:                                              ; preds = %974
  %977 = add nsw i64 %.319582426, -1
  %978 = mul nsw i64 %977, %30
  %979 = getelementptr float, ptr %32, i64 %.319582426
  %980 = getelementptr float, ptr %979, i64 %978
  %981 = load float, ptr %980, align 4, !tbaa !9
  %982 = fcmp une float %981, 0.000000e+00
  br i1 %982, label %983, label %985

983:                                              ; preds = %976
  %984 = add nsw i64 %.319582426, -2
  br label %985

985:                                              ; preds = %976, %974, %983
  %.31946 = phi i64 [ %977, %983 ], [ 1, %974 ], [ %.319582426, %976 ]
  %.10 = phi i64 [ %984, %983 ], [ %.92428, %974 ], [ %977, %976 ]
  %986 = load i64, ptr %3, align 8, !tbaa !5
  %987 = icmp sgt i64 %986, 0
  br i1 %987, label %.lr.ph2407, label %.loopexit2315

.lr.ph2407:                                       ; preds = %985
  %988 = icmp eq i64 %.31946, %.319582426
  %989 = mul nsw i64 %.31946, %33
  %invariant.gep2408 = getelementptr float, ptr %35, i64 %989
  %990 = add nuw nsw i64 %.319582426, 1
  %991 = getelementptr float, ptr %32, i64 %.31946
  %992 = mul i64 %.31946, %965
  %993 = getelementptr inbounds float, ptr %32, i64 %992
  %994 = mul nsw i64 %.319582426, %33
  %invariant.gep2414 = getelementptr float, ptr %35, i64 %994
  %995 = getelementptr float, ptr %32, i64 %.319582426
  %996 = add nuw nsw i64 %.31946, 1
  br label %997

997:                                              ; preds = %.lr.ph2407, %1290
  %.919282405 = phi i64 [ %986, %.lr.ph2407 ], [ %.111930, %1290 ]
  %.319622404 = phi i64 [ %986, %.lr.ph2407 ], [ %1291, %1290 ]
  %998 = icmp sgt i64 %.319622404, %.919282405
  br i1 %998, label %1290, label %999

999:                                              ; preds = %997
  %1000 = icmp eq i64 %.319622404, 1
  br i1 %1000, label %1008, label %1001

1001:                                             ; preds = %999
  %1002 = add nsw i64 %.319622404, -1
  %1003 = mul nsw i64 %1002, %27
  %1004 = getelementptr float, ptr %29, i64 %.319622404
  %1005 = getelementptr float, ptr %1004, i64 %1003
  %1006 = load float, ptr %1005, align 4, !tbaa !9
  %1007 = fcmp une float %1006, 0.000000e+00
  br i1 %1007, label %1071, label %1008

1008:                                             ; preds = %1001, %999
  %.101929 = phi i64 [ %.919282405, %999 ], [ %1002, %1001 ]
  %1009 = load i64, ptr %3, align 8, !tbaa !5
  %1010 = sub nsw i64 %1009, %.319622404
  store i64 %1010, ptr %14, align 8, !tbaa !5
  %1011 = add nuw nsw i64 %.319622404, 1
  store i64 %1011, ptr %15, align 8, !tbaa !5
  %.not2212.not = icmp slt i64 %.319622404, %1009
  %.2283 = select i1 %.not2212.not, i64 %1011, i64 %1009
  %1012 = mul nsw i64 %.2283, %27
  %1013 = getelementptr float, ptr %29, i64 %.319622404
  %1014 = getelementptr float, ptr %1013, i64 %1012
  %1015 = call i64 @llvm.smin.i64(i64 %1011, i64 %1009)
  %gep2425 = getelementptr float, ptr %invariant.gep2408, i64 %1015
  %1016 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1014, ptr noundef nonnull %6, ptr noundef %gep2425, ptr noundef nonnull @c__1) #5
  %1017 = fptrunc double %1016 to float
  %1018 = load i64, ptr %4, align 8, !tbaa !5
  %1019 = sub nsw i64 %1018, %.319582426
  store i64 %1019, ptr %14, align 8, !tbaa !5
  br i1 %988, label %1020, label %1143

1020:                                             ; preds = %1008
  store i64 %996, ptr %15, align 8, !tbaa !5
  store i64 %996, ptr %16, align 8, !tbaa !5
  %.not2214.not = icmp slt i64 %.319582426, %1018
  %1021 = select i1 %.not2214.not, i64 %996, i64 %1018
  %1022 = mul nsw i64 %1021, %33
  %1023 = getelementptr float, ptr %35, i64 %.319622404
  %1024 = getelementptr float, ptr %1023, i64 %1022
  %1025 = call i64 @llvm.smin.i64(i64 %996, i64 %1018)
  %1026 = mul nsw i64 %1025, %30
  %1027 = getelementptr float, ptr %991, i64 %1026
  %1028 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1024, ptr noundef nonnull %10, ptr noundef %1027, ptr noundef nonnull %8) #5
  %1029 = fptrunc double %1028 to float
  %1030 = getelementptr float, ptr %1023, i64 %989
  %1031 = load float, ptr %1030, align 4, !tbaa !9
  %1032 = call float @llvm.fmuladd.f32(float %101, float %1029, float %1017)
  %1033 = fsub float %1031, %1032
  store float %1033, ptr %19, align 16, !tbaa !9
  store float 1.000000e+00, ptr %24, align 4, !tbaa !9
  %1034 = mul i64 %.319622404, %966
  %1035 = getelementptr inbounds float, ptr %29, i64 %1034
  %1036 = load float, ptr %1035, align 4, !tbaa !9
  %1037 = load float, ptr %993, align 4, !tbaa !9
  %1038 = call float @llvm.fmuladd.f32(float %101, float %1037, float %1036)
  %1039 = fcmp oge float %1038, 0.000000e+00
  %1040 = fneg float %1038
  %1041 = select i1 %1039, float %1038, float %1040
  %1042 = load float, ptr %22, align 4, !tbaa !9
  %1043 = fcmp ugt float %1041, %1042
  br i1 %1043, label %1045, label %1044

1044:                                             ; preds = %1020
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %1045

1045:                                             ; preds = %1044, %1020
  %.31938 = phi float [ %1042, %1044 ], [ %1038, %1020 ]
  %.31934 = phi float [ %1042, %1044 ], [ %1041, %1020 ]
  %1046 = fcmp oge float %1033, 0.000000e+00
  %1047 = fneg float %1033
  %1048 = select i1 %1046, float %1033, float %1047
  %1049 = fcmp olt float %.31934, 1.000000e+00
  %1050 = fcmp ogt float %1048, 1.000000e+00
  %or.cond15 = select i1 %1049, i1 %1050, i1 false
  br i1 %or.cond15, label %1051, label %thread-pre-split2310.thread

1051:                                             ; preds = %1045
  %1052 = load float, ptr %25, align 4, !tbaa !9
  %1053 = fmul float %.31934, %1052
  %1054 = fcmp ogt float %1048, %1053
  br i1 %1054, label %thread-pre-split2310, label %thread-pre-split2310.thread

thread-pre-split2310.thread:                      ; preds = %1045, %1051
  %1055 = fdiv float %1033, %.31938
  store float %1055, ptr %18, align 16, !tbaa !9
  br label %1069

thread-pre-split2310:                             ; preds = %1051
  %1056 = fdiv float 1.000000e+00, %1048
  store float %1056, ptr %24, align 4, !tbaa !9
  %1057 = fmul float %1033, %1056
  %1058 = fdiv float %1057, %.31938
  store float %1058, ptr %18, align 16, !tbaa !9
  %1059 = fcmp une float %1056, 1.000000e+00
  br i1 %1059, label %1060, label %1069

1060:                                             ; preds = %thread-pre-split2310
  %1061 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %1061, ptr %14, align 8, !tbaa !5
  %.not22162399 = icmp slt i64 %1061, 1
  br i1 %.not22162399, label %._crit_edge2403, label %.lr.ph2402

.lr.ph2402:                                       ; preds = %1060, %.lr.ph2402
  %.122400 = phi i64 [ %1064, %.lr.ph2402 ], [ 1, %1060 ]
  %1062 = mul nsw i64 %.122400, %33
  %gep2398 = getelementptr float, ptr %invariant.gep2376, i64 %1062
  %1063 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2398, ptr noundef nonnull @c__1) #5
  %1064 = add nuw nsw i64 %.122400, 1
  %1065 = load i64, ptr %14, align 8, !tbaa !5
  %.not2216.not = icmp slt i64 %.122400, %1065
  br i1 %.not2216.not, label %.lr.ph2402, label %._crit_edge2403.loopexit, !llvm.loop !30

._crit_edge2403.loopexit:                         ; preds = %.lr.ph2402
  %.pre2584 = load float, ptr %24, align 4, !tbaa !9
  %.pre2585.pre = load float, ptr %18, align 16, !tbaa !9
  br label %._crit_edge2403

._crit_edge2403:                                  ; preds = %._crit_edge2403.loopexit, %1060
  %.pre2585 = phi float [ %.pre2585.pre, %._crit_edge2403.loopexit ], [ %1058, %1060 ]
  %1066 = phi float [ %.pre2584, %._crit_edge2403.loopexit ], [ %1056, %1060 ]
  %1067 = load float, ptr %11, align 4, !tbaa !9
  %1068 = fmul float %1066, %1067
  store float %1068, ptr %11, align 4, !tbaa !9
  br label %1069

1069:                                             ; preds = %thread-pre-split2310.thread, %._crit_edge2403, %thread-pre-split2310
  %1070 = phi float [ %.pre2585, %._crit_edge2403 ], [ %1058, %thread-pre-split2310 ], [ %1055, %thread-pre-split2310.thread ]
  store float %1070, ptr %1030, align 4, !tbaa !9
  br label %1290

1071:                                             ; preds = %1001
  %1072 = add nsw i64 %.319622404, -2
  %1073 = load i64, ptr %3, align 8, !tbaa !5
  %1074 = sub nsw i64 %1073, %.319622404
  store i64 %1074, ptr %14, align 8, !tbaa !5
  %1075 = add nuw nsw i64 %.319622404, 1
  store i64 %1075, ptr %15, align 8, !tbaa !5
  %.not2202.not = icmp slt i64 %.319622404, %1073
  %.2286 = select i1 %.not2202.not, i64 %1075, i64 %1073
  %1076 = mul nsw i64 %.2286, %27
  %1077 = getelementptr float, ptr %29, i64 %1002
  %1078 = getelementptr float, ptr %1077, i64 %1076
  %1079 = call i64 @llvm.smin.i64(i64 %1075, i64 %1073)
  %gep2409 = getelementptr float, ptr %invariant.gep2408, i64 %1079
  %1080 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1078, ptr noundef nonnull %6, ptr noundef %gep2409, ptr noundef nonnull @c__1) #5
  %1081 = fptrunc double %1080 to float
  %1082 = load i64, ptr %4, align 8, !tbaa !5
  %1083 = sub nsw i64 %1082, %.319582426
  store i64 %1083, ptr %14, align 8, !tbaa !5
  store i64 %990, ptr %15, align 8, !tbaa !5
  %.not2204.not = icmp slt i64 %.319582426, %1082
  %1084 = select i1 %.not2204.not, i64 %990, i64 %1082
  %1085 = mul nsw i64 %1084, %33
  %1086 = getelementptr float, ptr %35, i64 %1002
  %1087 = getelementptr float, ptr %1086, i64 %1085
  %1088 = call i64 @llvm.smin.i64(i64 %990, i64 %1082)
  %1089 = mul nsw i64 %1088, %30
  %1090 = getelementptr float, ptr %991, i64 %1089
  %1091 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1087, ptr noundef nonnull %10, ptr noundef %1090, ptr noundef nonnull %8) #5
  %1092 = fptrunc double %1091 to float
  %1093 = getelementptr float, ptr %1086, i64 %989
  %1094 = load float, ptr %1093, align 4, !tbaa !9
  %1095 = call float @llvm.fmuladd.f32(float %101, float %1092, float %1081)
  %1096 = fsub float %1094, %1095
  store float %1096, ptr %19, align 16, !tbaa !9
  %1097 = load i64, ptr %3, align 8, !tbaa !5
  %1098 = sub nsw i64 %1097, %.319622404
  store i64 %1098, ptr %14, align 8, !tbaa !5
  store i64 %1075, ptr %15, align 8, !tbaa !5
  %.not2206.not = icmp slt i64 %.319622404, %1097
  %1099 = select i1 %.not2206.not, i64 %1075, i64 %1097
  %1100 = mul nsw i64 %1099, %27
  br i1 %988, label %1101, label %1203

1101:                                             ; preds = %1071
  %1102 = getelementptr float, ptr %29, i64 %.319622404
  %1103 = getelementptr float, ptr %1102, i64 %1100
  %1104 = call i64 @llvm.smin.i64(i64 %1075, i64 %1097)
  %gep2411 = getelementptr float, ptr %invariant.gep2408, i64 %1104
  %1105 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1103, ptr noundef nonnull %6, ptr noundef %gep2411, ptr noundef nonnull @c__1) #5
  %1106 = fptrunc double %1105 to float
  %1107 = load i64, ptr %4, align 8, !tbaa !5
  %1108 = sub nsw i64 %1107, %.319582426
  store i64 %1108, ptr %14, align 8, !tbaa !5
  store i64 %990, ptr %15, align 8, !tbaa !5
  store i64 %990, ptr %16, align 8, !tbaa !5
  %.not2208.not = icmp slt i64 %.319582426, %1107
  %1109 = select i1 %.not2208.not, i64 %990, i64 %1107
  %1110 = mul nsw i64 %1109, %33
  %1111 = getelementptr float, ptr %35, i64 %.319622404
  %1112 = getelementptr float, ptr %1111, i64 %1110
  %1113 = call i64 @llvm.smin.i64(i64 %990, i64 %1107)
  %1114 = mul nsw i64 %1113, %30
  %1115 = getelementptr float, ptr %991, i64 %1114
  %1116 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1112, ptr noundef nonnull %10, ptr noundef %1115, ptr noundef nonnull %8) #5
  %1117 = fptrunc double %1116 to float
  %1118 = getelementptr float, ptr %1111, i64 %989
  %1119 = load float, ptr %1118, align 4, !tbaa !9
  %1120 = call float @llvm.fmuladd.f32(float %101, float %1117, float %1106)
  %1121 = fsub float %1119, %1120
  store float %1121, ptr %963, align 4, !tbaa !9
  %1122 = load float, ptr %993, align 4, !tbaa !9
  %1123 = fmul float %1122, %964
  store float %1123, ptr %17, align 4, !tbaa !9
  %1124 = mul i64 %1002, %966
  %1125 = getelementptr inbounds float, ptr %29, i64 %1124
  %1126 = call i32 @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef nonnull @c_b26, ptr noundef %1125, ptr noundef nonnull %6, ptr noundef nonnull @c_b26, ptr noundef nonnull @c_b26, ptr noundef nonnull %19, ptr noundef nonnull @c__2, ptr noundef nonnull %17, ptr noundef nonnull @c_b30, ptr noundef nonnull %18, ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef nonnull %21) #5
  %1127 = load i64, ptr %21, align 8, !tbaa !5
  %.not2210 = icmp eq i64 %1127, 0
  br i1 %.not2210, label %1129, label %1128

1128:                                             ; preds = %1101
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %1129

1129:                                             ; preds = %1128, %1101
  %1130 = load float, ptr %24, align 4, !tbaa !9
  %1131 = fcmp une float %1130, 1.000000e+00
  br i1 %1131, label %1132, label %1141

1132:                                             ; preds = %1129
  %1133 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %1133, ptr %14, align 8, !tbaa !5
  %.not22112378 = icmp slt i64 %1133, 1
  br i1 %.not22112378, label %._crit_edge2382, label %.lr.ph2381

.lr.ph2381:                                       ; preds = %1132, %.lr.ph2381
  %.132379 = phi i64 [ %1136, %.lr.ph2381 ], [ 1, %1132 ]
  %1134 = mul nsw i64 %.132379, %33
  %gep2377 = getelementptr float, ptr %invariant.gep2376, i64 %1134
  %1135 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2377, ptr noundef nonnull @c__1) #5
  %1136 = add nuw nsw i64 %.132379, 1
  %1137 = load i64, ptr %14, align 8, !tbaa !5
  %.not2211.not = icmp slt i64 %.132379, %1137
  br i1 %.not2211.not, label %.lr.ph2381, label %._crit_edge2382.loopexit, !llvm.loop !31

._crit_edge2382.loopexit:                         ; preds = %.lr.ph2381
  %.pre2581 = load float, ptr %24, align 4, !tbaa !9
  br label %._crit_edge2382

._crit_edge2382:                                  ; preds = %._crit_edge2382.loopexit, %1132
  %1138 = phi float [ %.pre2581, %._crit_edge2382.loopexit ], [ %1130, %1132 ]
  %1139 = load float, ptr %11, align 4, !tbaa !9
  %1140 = fmul float %1138, %1139
  store float %1140, ptr %11, align 4, !tbaa !9
  br label %1141

1141:                                             ; preds = %._crit_edge2382, %1129
  %1142 = load <2 x float>, ptr %18, align 16, !tbaa !9
  store <2 x float> %1142, ptr %1093, align 4, !tbaa !9
  br label %1290

1143:                                             ; preds = %1008
  store i64 %990, ptr %15, align 8, !tbaa !5
  %.not2194.not = icmp slt i64 %.319582426, %1018
  %1144 = select i1 %.not2194.not, i64 %990, i64 %1018
  %1145 = mul nsw i64 %1144, %33
  %1146 = getelementptr float, ptr %35, i64 %.319622404
  %1147 = getelementptr float, ptr %1146, i64 %1145
  %1148 = call i64 @llvm.smin.i64(i64 %990, i64 %1018)
  %1149 = mul nsw i64 %1148, %30
  %1150 = getelementptr float, ptr %991, i64 %1149
  %1151 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1147, ptr noundef nonnull %10, ptr noundef %1150, ptr noundef nonnull %8) #5
  %1152 = fptrunc double %1151 to float
  %1153 = getelementptr float, ptr %1146, i64 %989
  %1154 = load float, ptr %1153, align 4, !tbaa !9
  %1155 = call float @llvm.fmuladd.f32(float %101, float %1152, float %1017)
  %1156 = fsub float %1154, %1155
  %1157 = fmul float %1156, %101
  store float %1157, ptr %19, align 16, !tbaa !9
  %1158 = load i64, ptr %3, align 8, !tbaa !5
  %1159 = sub nsw i64 %1158, %.319622404
  store i64 %1159, ptr %14, align 8, !tbaa !5
  store i64 %1011, ptr %15, align 8, !tbaa !5
  %.not2196.not = icmp slt i64 %.319622404, %1158
  %1160 = select i1 %.not2196.not, i64 %1011, i64 %1158
  %1161 = mul nsw i64 %1160, %27
  %1162 = getelementptr float, ptr %1013, i64 %1161
  %1163 = call i64 @llvm.smin.i64(i64 %1011, i64 %1158)
  %gep2423 = getelementptr float, ptr %invariant.gep2414, i64 %1163
  %1164 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1162, ptr noundef nonnull %6, ptr noundef %gep2423, ptr noundef nonnull @c__1) #5
  %1165 = fptrunc double %1164 to float
  %1166 = load i64, ptr %4, align 8, !tbaa !5
  %1167 = sub nsw i64 %1166, %.319582426
  store i64 %1167, ptr %14, align 8, !tbaa !5
  store i64 %990, ptr %15, align 8, !tbaa !5
  store i64 %990, ptr %16, align 8, !tbaa !5
  %.not2198.not = icmp slt i64 %.319582426, %1166
  %1168 = select i1 %.not2198.not, i64 %990, i64 %1166
  %1169 = mul nsw i64 %1168, %33
  %1170 = getelementptr float, ptr %1146, i64 %1169
  %1171 = call i64 @llvm.smin.i64(i64 %990, i64 %1166)
  %1172 = mul nsw i64 %1171, %30
  %1173 = getelementptr float, ptr %995, i64 %1172
  %1174 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1170, ptr noundef nonnull %10, ptr noundef %1173, ptr noundef nonnull %8) #5
  %1175 = fptrunc double %1174 to float
  %1176 = getelementptr float, ptr %1146, i64 %994
  %1177 = load float, ptr %1176, align 4, !tbaa !9
  %1178 = call float @llvm.fmuladd.f32(float %101, float %1175, float %1165)
  %1179 = fsub float %1177, %1178
  %1180 = fmul float %1179, %101
  store float %1180, ptr %963, align 4, !tbaa !9
  %1181 = mul i64 %.319622404, %966
  %1182 = getelementptr inbounds float, ptr %29, i64 %1181
  %1183 = load float, ptr %1182, align 4, !tbaa !9
  %1184 = fmul float %1183, %964
  store float %1184, ptr %17, align 4, !tbaa !9
  %1185 = call i32 @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %22, ptr noundef nonnull @c_b26, ptr noundef %993, ptr noundef nonnull %8, ptr noundef nonnull @c_b26, ptr noundef nonnull @c_b26, ptr noundef nonnull %19, ptr noundef nonnull @c__2, ptr noundef nonnull %17, ptr noundef nonnull @c_b30, ptr noundef nonnull %18, ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull %23, ptr noundef nonnull %21) #5
  %1186 = load i64, ptr %21, align 8, !tbaa !5
  %.not2200 = icmp eq i64 %1186, 0
  br i1 %.not2200, label %1188, label %1187

1187:                                             ; preds = %1143
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %1188

1188:                                             ; preds = %1187, %1143
  %1189 = load float, ptr %24, align 4, !tbaa !9
  %1190 = fcmp une float %1189, 1.000000e+00
  br i1 %1190, label %1191, label %1200

1191:                                             ; preds = %1188
  %1192 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %1192, ptr %14, align 8, !tbaa !5
  %.not22012392 = icmp slt i64 %1192, 1
  br i1 %.not22012392, label %._crit_edge2396, label %.lr.ph2395

.lr.ph2395:                                       ; preds = %1191, %.lr.ph2395
  %.142393 = phi i64 [ %1195, %.lr.ph2395 ], [ 1, %1191 ]
  %1193 = mul nsw i64 %.142393, %33
  %gep2391 = getelementptr float, ptr %invariant.gep2376, i64 %1193
  %1194 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2391, ptr noundef nonnull @c__1) #5
  %1195 = add nuw nsw i64 %.142393, 1
  %1196 = load i64, ptr %14, align 8, !tbaa !5
  %.not2201.not = icmp slt i64 %.142393, %1196
  br i1 %.not2201.not, label %.lr.ph2395, label %._crit_edge2396.loopexit, !llvm.loop !32

._crit_edge2396.loopexit:                         ; preds = %.lr.ph2395
  %.pre2583 = load float, ptr %24, align 4, !tbaa !9
  br label %._crit_edge2396

._crit_edge2396:                                  ; preds = %._crit_edge2396.loopexit, %1191
  %1197 = phi float [ %.pre2583, %._crit_edge2396.loopexit ], [ %1189, %1191 ]
  %1198 = load float, ptr %11, align 4, !tbaa !9
  %1199 = fmul float %1197, %1198
  store float %1199, ptr %11, align 4, !tbaa !9
  br label %1200

1200:                                             ; preds = %._crit_edge2396, %1188
  %1201 = load float, ptr %18, align 16, !tbaa !9
  store float %1201, ptr %1153, align 4, !tbaa !9
  %1202 = load float, ptr %967, align 4, !tbaa !9
  store float %1202, ptr %1176, align 4, !tbaa !9
  br label %1290

1203:                                             ; preds = %1071
  %1204 = getelementptr float, ptr %1077, i64 %1100
  %1205 = call i64 @llvm.smin.i64(i64 %1075, i64 %1097)
  %gep2415 = getelementptr float, ptr %invariant.gep2414, i64 %1205
  %1206 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1204, ptr noundef nonnull %6, ptr noundef %gep2415, ptr noundef nonnull @c__1) #5
  %1207 = fptrunc double %1206 to float
  %1208 = load i64, ptr %4, align 8, !tbaa !5
  %1209 = sub nsw i64 %1208, %.319582426
  store i64 %1209, ptr %14, align 8, !tbaa !5
  store i64 %990, ptr %15, align 8, !tbaa !5
  %.not2180.not = icmp slt i64 %.319582426, %1208
  %1210 = select i1 %.not2180.not, i64 %990, i64 %1208
  %1211 = mul nsw i64 %1210, %33
  %1212 = getelementptr float, ptr %1086, i64 %1211
  %1213 = call i64 @llvm.smin.i64(i64 %990, i64 %1208)
  %1214 = mul nsw i64 %1213, %30
  %1215 = getelementptr float, ptr %995, i64 %1214
  %1216 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1212, ptr noundef nonnull %10, ptr noundef %1215, ptr noundef nonnull %8) #5
  %1217 = fptrunc double %1216 to float
  %1218 = getelementptr float, ptr %1086, i64 %994
  %1219 = load float, ptr %1218, align 4, !tbaa !9
  %1220 = call float @llvm.fmuladd.f32(float %101, float %1217, float %1207)
  %1221 = fsub float %1219, %1220
  store float %1221, ptr %968, align 8, !tbaa !9
  %1222 = load i64, ptr %3, align 8, !tbaa !5
  %1223 = sub nsw i64 %1222, %.319622404
  store i64 %1223, ptr %14, align 8, !tbaa !5
  store i64 %1075, ptr %15, align 8, !tbaa !5
  %.not2182.not = icmp slt i64 %.319622404, %1222
  %1224 = select i1 %.not2182.not, i64 %1075, i64 %1222
  %1225 = mul nsw i64 %1224, %27
  %1226 = getelementptr float, ptr %29, i64 %.319622404
  %1227 = getelementptr float, ptr %1226, i64 %1225
  %1228 = call i64 @llvm.smin.i64(i64 %1075, i64 %1222)
  %gep2417 = getelementptr float, ptr %invariant.gep2408, i64 %1228
  %1229 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1227, ptr noundef nonnull %6, ptr noundef %gep2417, ptr noundef nonnull @c__1) #5
  %1230 = fptrunc double %1229 to float
  %1231 = load i64, ptr %4, align 8, !tbaa !5
  %1232 = sub nsw i64 %1231, %.319582426
  store i64 %1232, ptr %14, align 8, !tbaa !5
  store i64 %990, ptr %15, align 8, !tbaa !5
  %.not2184.not = icmp slt i64 %.319582426, %1231
  %1233 = select i1 %.not2184.not, i64 %990, i64 %1231
  %1234 = mul nsw i64 %1233, %33
  %1235 = getelementptr float, ptr %35, i64 %.319622404
  %1236 = getelementptr float, ptr %1235, i64 %1234
  %1237 = call i64 @llvm.smin.i64(i64 %990, i64 %1231)
  %1238 = mul nsw i64 %1237, %30
  %1239 = getelementptr float, ptr %991, i64 %1238
  %1240 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1236, ptr noundef nonnull %10, ptr noundef %1239, ptr noundef nonnull %8) #5
  %1241 = fptrunc double %1240 to float
  %1242 = getelementptr float, ptr %1235, i64 %989
  %1243 = load float, ptr %1242, align 4, !tbaa !9
  %1244 = call float @llvm.fmuladd.f32(float %101, float %1241, float %1230)
  %1245 = fsub float %1243, %1244
  store float %1245, ptr %963, align 4, !tbaa !9
  %1246 = load i64, ptr %3, align 8, !tbaa !5
  %1247 = sub nsw i64 %1246, %.319622404
  store i64 %1247, ptr %14, align 8, !tbaa !5
  store i64 %1075, ptr %15, align 8, !tbaa !5
  %.not2186.not = icmp slt i64 %.319622404, %1246
  %1248 = select i1 %.not2186.not, i64 %1075, i64 %1246
  %1249 = mul nsw i64 %1248, %27
  %1250 = getelementptr float, ptr %1226, i64 %1249
  %1251 = call i64 @llvm.smin.i64(i64 %1075, i64 %1246)
  %gep2419 = getelementptr float, ptr %invariant.gep2414, i64 %1251
  %1252 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1250, ptr noundef nonnull %6, ptr noundef %gep2419, ptr noundef nonnull @c__1) #5
  %1253 = fptrunc double %1252 to float
  %1254 = load i64, ptr %4, align 8, !tbaa !5
  %1255 = sub nsw i64 %1254, %.319582426
  store i64 %1255, ptr %14, align 8, !tbaa !5
  store i64 %990, ptr %15, align 8, !tbaa !5
  store i64 %990, ptr %16, align 8, !tbaa !5
  %.not2188.not = icmp slt i64 %.319582426, %1254
  %1256 = select i1 %.not2188.not, i64 %990, i64 %1254
  %1257 = mul nsw i64 %1256, %33
  %1258 = getelementptr float, ptr %1235, i64 %1257
  %1259 = call i64 @llvm.smin.i64(i64 %990, i64 %1254)
  %1260 = mul nsw i64 %1259, %30
  %1261 = getelementptr float, ptr %995, i64 %1260
  %1262 = call double @f2c_sdot(ptr noundef nonnull %14, ptr noundef %1258, ptr noundef nonnull %10, ptr noundef %1261, ptr noundef nonnull %8) #5
  %1263 = fptrunc double %1262 to float
  %1264 = getelementptr float, ptr %1235, i64 %994
  %1265 = load float, ptr %1264, align 4, !tbaa !9
  %1266 = call float @llvm.fmuladd.f32(float %101, float %1263, float %1253)
  %1267 = fsub float %1265, %1266
  store float %1267, ptr %969, align 4, !tbaa !9
  %1268 = mul i64 %1002, %966
  %1269 = getelementptr inbounds float, ptr %29, i64 %1268
  %1270 = call i32 @slasy2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c_true, ptr noundef nonnull %2, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef %1269, ptr noundef nonnull %6, ptr noundef %993, ptr noundef nonnull %8, ptr noundef nonnull %19, ptr noundef nonnull @c__2, ptr noundef nonnull %24, ptr noundef nonnull %18, ptr noundef nonnull @c__2, ptr noundef nonnull %23, ptr noundef nonnull %21) #5
  %1271 = load i64, ptr %21, align 8, !tbaa !5
  %.not2190 = icmp eq i64 %1271, 0
  br i1 %.not2190, label %1273, label %1272

1272:                                             ; preds = %1203
  store i64 1, ptr %12, align 8, !tbaa !5
  br label %1273

1273:                                             ; preds = %1272, %1203
  %1274 = load float, ptr %24, align 4, !tbaa !9
  %1275 = fcmp une float %1274, 1.000000e+00
  br i1 %1275, label %1276, label %1285

1276:                                             ; preds = %1273
  %1277 = load i64, ptr %4, align 8, !tbaa !5
  store i64 %1277, ptr %14, align 8, !tbaa !5
  %.not21912385 = icmp slt i64 %1277, 1
  br i1 %.not21912385, label %._crit_edge2389, label %.lr.ph2388

.lr.ph2388:                                       ; preds = %1276, %.lr.ph2388
  %.152386 = phi i64 [ %1280, %.lr.ph2388 ], [ 1, %1276 ]
  %1278 = mul nsw i64 %.152386, %33
  %gep2384 = getelementptr float, ptr %invariant.gep2376, i64 %1278
  %1279 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %24, ptr noundef %gep2384, ptr noundef nonnull @c__1) #5
  %1280 = add nuw nsw i64 %.152386, 1
  %1281 = load i64, ptr %14, align 8, !tbaa !5
  %.not2191.not = icmp slt i64 %.152386, %1281
  br i1 %.not2191.not, label %.lr.ph2388, label %._crit_edge2389.loopexit, !llvm.loop !33

._crit_edge2389.loopexit:                         ; preds = %.lr.ph2388
  %.pre2582 = load float, ptr %24, align 4, !tbaa !9
  br label %._crit_edge2389

._crit_edge2389:                                  ; preds = %._crit_edge2389.loopexit, %1276
  %1282 = phi float [ %.pre2582, %._crit_edge2389.loopexit ], [ %1274, %1276 ]
  %1283 = load float, ptr %11, align 4, !tbaa !9
  %1284 = fmul float %1282, %1283
  store float %1284, ptr %11, align 4, !tbaa !9
  br label %1285

1285:                                             ; preds = %._crit_edge2389, %1273
  %1286 = load float, ptr %18, align 16, !tbaa !9
  store float %1286, ptr %1093, align 4, !tbaa !9
  %1287 = load float, ptr %970, align 8, !tbaa !9
  store float %1287, ptr %1218, align 4, !tbaa !9
  %1288 = load float, ptr %967, align 4, !tbaa !9
  store float %1288, ptr %1242, align 4, !tbaa !9
  %1289 = load float, ptr %971, align 4, !tbaa !9
  store float %1289, ptr %1264, align 4, !tbaa !9
  br label %1290

1290:                                             ; preds = %997, %1141, %1285, %1200, %1069
  %.111930 = phi i64 [ %.919282405, %997 ], [ %.101929, %1069 ], [ %1072, %1141 ], [ %.101929, %1200 ], [ %1072, %1285 ]
  %1291 = add nsw i64 %.319622404, -1
  %1292 = icmp sgt i64 %.319622404, 1
  br i1 %1292, label %997, label %.loopexit2315, !llvm.loop !34

.loopexit2315:                                    ; preds = %1290, %985, %972
  %.11 = phi i64 [ %.92428, %972 ], [ %.10, %985 ], [ %.10, %1290 ]
  %1293 = add nsw i64 %.319582426, -1
  %1294 = icmp sgt i64 %.319582426, 1
  br i1 %1294, label %972, label %.loopexit2312, !llvm.loop !35

.loopexit2312:                                    ; preds = %.loopexit2317, %.loopexit2315, %.loopexit2313, %.loopexit, %644, %960, %382, %103, %959, %69, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  ret i32 0
}

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

declare double @f2c_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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umax.i64(i64, i64) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.smin.i64(i64, i64) #4

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!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}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !12}
!26 = distinct !{!26, !12}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !12}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12}
!31 = distinct !{!31, !12}
!32 = distinct !{!32, !12}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = distinct !{!35, !12}


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