; LLVM IR from OpenMathLib/OpenBLAS :: lapack-netlib/SRC (strevc)

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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [10 x i8], align 1
@c_false = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4
@c_b22 = external hidden global float, align 4
@c_b25 = external hidden global float, align 4
@c__2 = external hidden global i32, align 4
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_true = external hidden global i32, align 4

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

118:                                              ; preds = %14
  %119 = load i32, ptr %60, align 4, !tbaa !9
  %120 = icmp ne i32 %119, 0
  br label %121

121:                                              ; preds = %118, %14
  %122 = phi i1 [ true, %14 ], [ %120, %118 ]
  %123 = zext i1 %122 to i32
  store i32 %123, ptr %74, align 4, !tbaa !9
  %124 = load ptr, ptr %15, align 8, !tbaa !5
  %125 = call i32 @lsame_(ptr noundef %124, ptr noundef @.str.2)
  %126 = icmp ne i32 %125, 0
  br i1 %126, label %130, label %127

127:                                              ; preds = %121
  %128 = load i32, ptr %60, align 4, !tbaa !9
  %129 = icmp ne i32 %128, 0
  br label %130

130:                                              ; preds = %127, %121
  %131 = phi i1 [ true, %121 ], [ %129, %127 ]
  %132 = zext i1 %131 to i32
  store i32 %132, ptr %59, align 4, !tbaa !9
  %133 = load ptr, ptr %16, align 8, !tbaa !5
  %134 = call i32 @lsame_(ptr noundef %133, ptr noundef @.str.3)
  store i32 %134, ptr %45, align 4, !tbaa !9
  %135 = load ptr, ptr %16, align 8, !tbaa !5
  %136 = call i32 @lsame_(ptr noundef %135, ptr noundef @.str)
  store i32 %136, ptr %50, align 4, !tbaa !9
  %137 = load ptr, ptr %16, align 8, !tbaa !5
  %138 = call i32 @lsame_(ptr noundef %137, ptr noundef @.str.4)
  store i32 %138, ptr %62, align 4, !tbaa !9
  %139 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 0, ptr %139, align 4, !tbaa !9
  %140 = load i32, ptr %74, align 4, !tbaa !9
  %141 = icmp ne i32 %140, 0
  br i1 %141, label %147, label %142

142:                                              ; preds = %130
  %143 = load i32, ptr %59, align 4, !tbaa !9
  %144 = icmp ne i32 %143, 0
  br i1 %144, label %147, label %145

145:                                              ; preds = %142
  %146 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -1, ptr %146, align 4, !tbaa !9
  br label %319

147:                                              ; preds = %142, %130
  %148 = load i32, ptr %45, align 4, !tbaa !9
  %149 = icmp ne i32 %148, 0
  br i1 %149, label %158, label %150

150:                                              ; preds = %147
  %151 = load i32, ptr %50, align 4, !tbaa !9
  %152 = icmp ne i32 %151, 0
  br i1 %152, label %158, label %153

153:                                              ; preds = %150
  %154 = load i32, ptr %62, align 4, !tbaa !9
  %155 = icmp ne i32 %154, 0
  br i1 %155, label %158, label %156

156:                                              ; preds = %153
  %157 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -2, ptr %157, align 4, !tbaa !9
  br label %318

158:                                              ; preds = %153, %150, %147
  %159 = load ptr, ptr %18, align 8, !tbaa !5
  %160 = load i32, ptr %159, align 4, !tbaa !9
  %161 = icmp slt i32 %160, 0
  br i1 %161, label %162, label %164

162:                                              ; preds = %158
  %163 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -4, ptr %163, align 4, !tbaa !9
  br label %317

164:                                              ; preds = %158
  %165 = load ptr, ptr %20, align 8, !tbaa !5
  %166 = load i32, ptr %165, align 4, !tbaa !9
  %167 = load ptr, ptr %18, align 8, !tbaa !5
  %168 = load i32, ptr %167, align 4, !tbaa !9
  %169 = icmp sge i32 1, %168
  br i1 %169, label %170, label %171

170:                                              ; preds = %164
  br label %174

171:                                              ; preds = %164
  %172 = load ptr, ptr %18, align 8, !tbaa !5
  %173 = load i32, ptr %172, align 4, !tbaa !9
  br label %174

174:                                              ; preds = %171, %170
  %175 = phi i32 [ 1, %170 ], [ %173, %171 ]
  %176 = icmp slt i32 %166, %175
  br i1 %176, label %177, label %179

177:                                              ; preds = %174
  %178 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -6, ptr %178, align 4, !tbaa !9
  br label %316

179:                                              ; preds = %174
  %180 = load ptr, ptr %22, align 8, !tbaa !5
  %181 = load i32, ptr %180, align 4, !tbaa !9
  %182 = icmp slt i32 %181, 1
  br i1 %182, label %192, label %183

183:                                              ; preds = %179
  %184 = load i32, ptr %59, align 4, !tbaa !9
  %185 = icmp ne i32 %184, 0
  br i1 %185, label %186, label %194

186:                                              ; preds = %183
  %187 = load ptr, ptr %22, align 8, !tbaa !5
  %188 = load i32, ptr %187, align 4, !tbaa !9
  %189 = load ptr, ptr %18, align 8, !tbaa !5
  %190 = load i32, ptr %189, align 4, !tbaa !9
  %191 = icmp slt i32 %188, %190
  br i1 %191, label %192, label %194

192:                                              ; preds = %186, %179
  %193 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -8, ptr %193, align 4, !tbaa !9
  br label %315

194:                                              ; preds = %186, %183
  %195 = load ptr, ptr %24, align 8, !tbaa !5
  %196 = load i32, ptr %195, align 4, !tbaa !9
  %197 = icmp slt i32 %196, 1
  br i1 %197, label %207, label %198

198:                                              ; preds = %194
  %199 = load i32, ptr %74, align 4, !tbaa !9
  %200 = icmp ne i32 %199, 0
  br i1 %200, label %201, label %209

201:                                              ; preds = %198
  %202 = load ptr, ptr %24, align 8, !tbaa !5
  %203 = load i32, ptr %202, align 4, !tbaa !9
  %204 = load ptr, ptr %18, align 8, !tbaa !5
  %205 = load i32, ptr %204, align 4, !tbaa !9
  %206 = icmp slt i32 %203, %205
  br i1 %206, label %207, label %209

207:                                              ; preds = %201, %194
  %208 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -10, ptr %208, align 4, !tbaa !9
  br label %314

209:                                              ; preds = %201, %198
  %210 = load i32, ptr %62, align 4, !tbaa !9
  %211 = icmp ne i32 %210, 0
  br i1 %211, label %212, label %301

212:                                              ; preds = %209
  %213 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 0, ptr %213, align 4, !tbaa !9
  store i32 0, ptr %44, align 4, !tbaa !9
  %214 = load ptr, ptr %18, align 8, !tbaa !5
  %215 = load i32, ptr %214, align 4, !tbaa !9
  store i32 %215, ptr %35, align 4, !tbaa !9
  store i32 1, ptr %54, align 4, !tbaa !9
  br label %216

216:                                              ; preds = %297, %212
  %217 = load i32, ptr %54, align 4, !tbaa !9
  %218 = load i32, ptr %35, align 4, !tbaa !9
  %219 = icmp sle i32 %217, %218
  br i1 %219, label %220, label %300

220:                                              ; preds = %216
  %221 = load i32, ptr %44, align 4, !tbaa !9
  %222 = icmp ne i32 %221, 0
  br i1 %222, label %223, label %228

223:                                              ; preds = %220
  store i32 0, ptr %44, align 4, !tbaa !9
  %224 = load ptr, ptr %17, align 8, !tbaa !5
  %225 = load i32, ptr %54, align 4, !tbaa !9
  %226 = sext i32 %225 to i64
  %227 = getelementptr inbounds i32, ptr %224, i64 %226
  store i32 0, ptr %227, align 4, !tbaa !9
  br label %296

228:                                              ; preds = %220
  %229 = load i32, ptr %54, align 4, !tbaa !9
  %230 = load ptr, ptr %18, align 8, !tbaa !5
  %231 = load i32, ptr %230, align 4, !tbaa !9
  %232 = icmp slt i32 %229, %231
  br i1 %232, label %233, label %282

233:                                              ; preds = %228
  %234 = load ptr, ptr %19, align 8, !tbaa !5
  %235 = load i32, ptr %54, align 4, !tbaa !9
  %236 = add nsw i32 %235, 1
  %237 = load i32, ptr %54, align 4, !tbaa !9
  %238 = load i32, ptr %29, align 4, !tbaa !9
  %239 = mul nsw i32 %237, %238
  %240 = add nsw i32 %236, %239
  %241 = sext i32 %240 to i64
  %242 = getelementptr inbounds float, ptr %234, i64 %241
  %243 = load float, ptr %242, align 4, !tbaa !11
  %244 = fcmp oeq float %243, 0.000000e+00
  br i1 %244, label %245, label %257

245:                                              ; preds = %233
  %246 = load ptr, ptr %17, align 8, !tbaa !5
  %247 = load i32, ptr %54, align 4, !tbaa !9
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds i32, ptr %246, i64 %248
  %250 = load i32, ptr %249, align 4, !tbaa !9
  %251 = icmp ne i32 %250, 0
  br i1 %251, label %252, label %256

252:                                              ; preds = %245
  %253 = load ptr, ptr %26, align 8, !tbaa !5
  %254 = load i32, ptr %253, align 4, !tbaa !9
  %255 = add nsw i32 %254, 1
  store i32 %255, ptr %253, align 4, !tbaa !9
  br label %256

256:                                              ; preds = %252, %245
  br label %281

257:                                              ; preds = %233
  store i32 1, ptr %44, align 4, !tbaa !9
  %258 = load ptr, ptr %17, align 8, !tbaa !5
  %259 = load i32, ptr %54, align 4, !tbaa !9
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds i32, ptr %258, i64 %260
  %262 = load i32, ptr %261, align 4, !tbaa !9
  %263 = icmp ne i32 %262, 0
  br i1 %263, label %272, label %264

264:                                              ; preds = %257
  %265 = load ptr, ptr %17, align 8, !tbaa !5
  %266 = load i32, ptr %54, align 4, !tbaa !9
  %267 = add nsw i32 %266, 1
  %268 = sext i32 %267 to i64
  %269 = getelementptr inbounds i32, ptr %265, i64 %268
  %270 = load i32, ptr %269, align 4, !tbaa !9
  %271 = icmp ne i32 %270, 0
  br i1 %271, label %272, label %280

272:                                              ; preds = %264, %257
  %273 = load ptr, ptr %17, align 8, !tbaa !5
  %274 = load i32, ptr %54, align 4, !tbaa !9
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds i32, ptr %273, i64 %275
  store i32 1, ptr %276, align 4, !tbaa !9
  %277 = load ptr, ptr %26, align 8, !tbaa !5
  %278 = load i32, ptr %277, align 4, !tbaa !9
  %279 = add nsw i32 %278, 2
  store i32 %279, ptr %277, align 4, !tbaa !9
  br label %280

280:                                              ; preds = %272, %264
  br label %281

281:                                              ; preds = %280, %256
  br label %295

282:                                              ; preds = %228
  %283 = load ptr, ptr %17, align 8, !tbaa !5
  %284 = load ptr, ptr %18, align 8, !tbaa !5
  %285 = load i32, ptr %284, align 4, !tbaa !9
  %286 = sext i32 %285 to i64
  %287 = getelementptr inbounds i32, ptr %283, i64 %286
  %288 = load i32, ptr %287, align 4, !tbaa !9
  %289 = icmp ne i32 %288, 0
  br i1 %289, label %290, label %294

290:                                              ; preds = %282
  %291 = load ptr, ptr %26, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = add nsw i32 %292, 1
  store i32 %293, ptr %291, align 4, !tbaa !9
  br label %294

294:                                              ; preds = %290, %282
  br label %295

295:                                              ; preds = %294, %281
  br label %296

296:                                              ; preds = %295, %223
  br label %297

297:                                              ; preds = %296
  %298 = load i32, ptr %54, align 4, !tbaa !9
  %299 = add nsw i32 %298, 1
  store i32 %299, ptr %54, align 4, !tbaa !9
  br label %216, !llvm.loop !13

300:                                              ; preds = %216
  br label %305

301:                                              ; preds = %209
  %302 = load ptr, ptr %18, align 8, !tbaa !5
  %303 = load i32, ptr %302, align 4, !tbaa !9
  %304 = load ptr, ptr %26, align 8, !tbaa !5
  store i32 %303, ptr %304, align 4, !tbaa !9
  br label %305

305:                                              ; preds = %301, %300
  %306 = load ptr, ptr %25, align 8, !tbaa !5
  %307 = load i32, ptr %306, align 4, !tbaa !9
  %308 = load ptr, ptr %26, align 8, !tbaa !5
  %309 = load i32, ptr %308, align 4, !tbaa !9
  %310 = icmp slt i32 %307, %309
  br i1 %310, label %311, label %313

311:                                              ; preds = %305
  %312 = load ptr, ptr %28, align 8, !tbaa !5
  store i32 -11, ptr %312, align 4, !tbaa !9
  br label %313

313:                                              ; preds = %311, %305
  br label %314

314:                                              ; preds = %313, %207
  br label %315

315:                                              ; preds = %314, %192
  br label %316

316:                                              ; preds = %315, %177
  br label %317

317:                                              ; preds = %316, %162
  br label %318

318:                                              ; preds = %317, %156
  br label %319

319:                                              ; preds = %318, %145
  %320 = load ptr, ptr %28, align 8, !tbaa !5
  %321 = load i32, ptr %320, align 4, !tbaa !9
  %322 = icmp ne i32 %321, 0
  br i1 %322, label %323, label %328

323:                                              ; preds = %319
  %324 = load ptr, ptr %28, align 8, !tbaa !5
  %325 = load i32, ptr %324, align 4, !tbaa !9
  %326 = sub nsw i32 0, %325
  store i32 %326, ptr %35, align 4, !tbaa !9
  %327 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %35, i32 noundef 6)
  store i32 1, ptr %78, align 4
  br label %3745

328:                                              ; preds = %319
  %329 = load ptr, ptr %18, align 8, !tbaa !5
  %330 = load i32, ptr %329, align 4, !tbaa !9
  %331 = icmp eq i32 %330, 0
  br i1 %331, label %332, label %333

332:                                              ; preds = %328
  store i32 1, ptr %78, align 4
  br label %3745

333:                                              ; preds = %328
  %334 = call float @slamch_(ptr noundef @.str.6)
  store float %334, ptr %47, align 4, !tbaa !11
  %335 = load float, ptr %47, align 4, !tbaa !11
  %336 = fdiv float 1.000000e+00, %335
  store float %336, ptr %48, align 4, !tbaa !11
  call void @slabad_(ptr noundef %47, ptr noundef %48)
  %337 = call float @slamch_(ptr noundef @.str.7)
  store float %337, ptr %77, align 4, !tbaa !11
  %338 = load float, ptr %47, align 4, !tbaa !11
  %339 = load ptr, ptr %18, align 8, !tbaa !5
  %340 = load i32, ptr %339, align 4, !tbaa !9
  %341 = sitofp i32 %340 to float
  %342 = load float, ptr %77, align 4, !tbaa !11
  %343 = fdiv float %341, %342
  %344 = fmul float %338, %343
  store float %344, ptr %75, align 4, !tbaa !11
  %345 = load float, ptr %77, align 4, !tbaa !11
  %346 = fsub float 1.000000e+00, %345
  %347 = load float, ptr %75, align 4, !tbaa !11
  %348 = fdiv float %346, %347
  store float %348, ptr %73, align 4, !tbaa !11
  %349 = load ptr, ptr %27, align 8, !tbaa !5
  %350 = getelementptr inbounds float, ptr %349, i64 1
  store float 0.000000e+00, ptr %350, align 4, !tbaa !11
  %351 = load ptr, ptr %18, align 8, !tbaa !5
  %352 = load i32, ptr %351, align 4, !tbaa !9
  store i32 %352, ptr %35, align 4, !tbaa !9
  store i32 2, ptr %54, align 4, !tbaa !9
  br label %353

353:                                              ; preds = %397, %333
  %354 = load i32, ptr %54, align 4, !tbaa !9
  %355 = load i32, ptr %35, align 4, !tbaa !9
  %356 = icmp sle i32 %354, %355
  br i1 %356, label %357, label %400

357:                                              ; preds = %353
  %358 = load ptr, ptr %27, align 8, !tbaa !5
  %359 = load i32, ptr %54, align 4, !tbaa !9
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds float, ptr %358, i64 %360
  store float 0.000000e+00, ptr %361, align 4, !tbaa !11
  %362 = load i32, ptr %54, align 4, !tbaa !9
  %363 = sub nsw i32 %362, 1
  store i32 %363, ptr %36, align 4, !tbaa !9
  store i32 1, ptr %53, align 4, !tbaa !9
  br label %364

364:                                              ; preds = %393, %357
  %365 = load i32, ptr %53, align 4, !tbaa !9
  %366 = load i32, ptr %36, align 4, !tbaa !9
  %367 = icmp sle i32 %365, %366
  br i1 %367, label %368, label %396

368:                                              ; preds = %364
  %369 = load ptr, ptr %19, align 8, !tbaa !5
  %370 = load i32, ptr %53, align 4, !tbaa !9
  %371 = load i32, ptr %54, align 4, !tbaa !9
  %372 = load i32, ptr %29, align 4, !tbaa !9
  %373 = mul nsw i32 %371, %372
  %374 = add nsw i32 %370, %373
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds float, ptr %369, i64 %375
  %377 = load float, ptr %376, align 4, !tbaa !11
  store float %377, ptr %38, align 4, !tbaa !11
  %378 = load float, ptr %38, align 4, !tbaa !11
  %379 = fcmp oge float %378, 0.000000e+00
  br i1 %379, label %380, label %382

380:                                              ; preds = %368
  %381 = load float, ptr %38, align 4, !tbaa !11
  br label %385

382:                                              ; preds = %368
  %383 = load float, ptr %38, align 4, !tbaa !11
  %384 = fneg float %383
  br label %385

385:                                              ; preds = %382, %380
  %386 = phi float [ %381, %380 ], [ %384, %382 ]
  %387 = load ptr, ptr %27, align 8, !tbaa !5
  %388 = load i32, ptr %54, align 4, !tbaa !9
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds float, ptr %387, i64 %389
  %391 = load float, ptr %390, align 4, !tbaa !11
  %392 = fadd float %391, %386
  store float %392, ptr %390, align 4, !tbaa !11
  br label %393

393:                                              ; preds = %385
  %394 = load i32, ptr %53, align 4, !tbaa !9
  %395 = add nsw i32 %394, 1
  store i32 %395, ptr %53, align 4, !tbaa !9
  br label %364, !llvm.loop !15

396:                                              ; preds = %364
  br label %397

397:                                              ; preds = %396
  %398 = load i32, ptr %54, align 4, !tbaa !9
  %399 = add nsw i32 %398, 1
  store i32 %399, ptr %54, align 4, !tbaa !9
  br label %353, !llvm.loop !16

400:                                              ; preds = %353
  %401 = load ptr, ptr %18, align 8, !tbaa !5
  %402 = load i32, ptr %401, align 4, !tbaa !9
  %403 = shl i32 %402, 1
  store i32 %403, ptr %65, align 4, !tbaa !9
  %404 = load i32, ptr %74, align 4, !tbaa !9
  %405 = icmp ne i32 %404, 0
  br i1 %405, label %406, label %1841

406:                                              ; preds = %400
  store i32 0, ptr %69, align 4, !tbaa !9
  %407 = load ptr, ptr %26, align 8, !tbaa !5
  %408 = load i32, ptr %407, align 4, !tbaa !9
  store i32 %408, ptr %70, align 4, !tbaa !9
  %409 = load ptr, ptr %18, align 8, !tbaa !5
  %410 = load i32, ptr %409, align 4, !tbaa !9
  store i32 %410, ptr %68, align 4, !tbaa !9
  br label %411

411:                                              ; preds = %1837, %406
  %412 = load i32, ptr %68, align 4, !tbaa !9
  %413 = icmp sge i32 %412, 1
  br i1 %413, label %414, label %1840

414:                                              ; preds = %411
  %415 = load i32, ptr %69, align 4, !tbaa !9
  %416 = icmp eq i32 %415, 1
  br i1 %416, label %417, label %418

417:                                              ; preds = %414
  br label %1828

418:                                              ; preds = %414
  %419 = load i32, ptr %68, align 4, !tbaa !9
  %420 = icmp eq i32 %419, 1
  br i1 %420, label %421, label %422

421:                                              ; preds = %418
  br label %436

422:                                              ; preds = %418
  %423 = load ptr, ptr %19, align 8, !tbaa !5
  %424 = load i32, ptr %68, align 4, !tbaa !9
  %425 = load i32, ptr %68, align 4, !tbaa !9
  %426 = sub nsw i32 %425, 1
  %427 = load i32, ptr %29, align 4, !tbaa !9
  %428 = mul nsw i32 %426, %427
  %429 = add nsw i32 %424, %428
  %430 = sext i32 %429 to i64
  %431 = getelementptr inbounds float, ptr %423, i64 %430
  %432 = load float, ptr %431, align 4, !tbaa !11
  %433 = fcmp oeq float %432, 0.000000e+00
  br i1 %433, label %434, label %435

434:                                              ; preds = %422
  br label %436

435:                                              ; preds = %422
  store i32 -1, ptr %69, align 4, !tbaa !9
  br label %436

436:                                              ; preds = %435, %434, %421
  %437 = load i32, ptr %62, align 4, !tbaa !9
  %438 = icmp ne i32 %437, 0
  br i1 %438, label %439, label %462

439:                                              ; preds = %436
  %440 = load i32, ptr %69, align 4, !tbaa !9
  %441 = icmp eq i32 %440, 0
  br i1 %441, label %442, label %451

442:                                              ; preds = %439
  %443 = load ptr, ptr %17, align 8, !tbaa !5
  %444 = load i32, ptr %68, align 4, !tbaa !9
  %445 = sext i32 %444 to i64
  %446 = getelementptr inbounds i32, ptr %443, i64 %445
  %447 = load i32, ptr %446, align 4, !tbaa !9
  %448 = icmp ne i32 %447, 0
  br i1 %448, label %450, label %449

449:                                              ; preds = %442
  br label %1828

450:                                              ; preds = %442
  br label %461

451:                                              ; preds = %439
  %452 = load ptr, ptr %17, align 8, !tbaa !5
  %453 = load i32, ptr %68, align 4, !tbaa !9
  %454 = sub nsw i32 %453, 1
  %455 = sext i32 %454 to i64
  %456 = getelementptr inbounds i32, ptr %452, i64 %455
  %457 = load i32, ptr %456, align 4, !tbaa !9
  %458 = icmp ne i32 %457, 0
  br i1 %458, label %460, label %459

459:                                              ; preds = %451
  br label %1828

460:                                              ; preds = %451
  br label %461

461:                                              ; preds = %460, %450
  br label %462

462:                                              ; preds = %461, %436
  %463 = load ptr, ptr %19, align 8, !tbaa !5
  %464 = load i32, ptr %68, align 4, !tbaa !9
  %465 = load i32, ptr %68, align 4, !tbaa !9
  %466 = load i32, ptr %29, align 4, !tbaa !9
  %467 = mul nsw i32 %465, %466
  %468 = add nsw i32 %464, %467
  %469 = sext i32 %468 to i64
  %470 = getelementptr inbounds float, ptr %463, i64 %469
  %471 = load float, ptr %470, align 4, !tbaa !11
  store float %471, ptr %72, align 4, !tbaa !11
  store float 0.000000e+00, ptr %71, align 4, !tbaa !11
  %472 = load i32, ptr %69, align 4, !tbaa !9
  %473 = icmp ne i32 %472, 0
  br i1 %473, label %474, label %519

474:                                              ; preds = %462
  %475 = load ptr, ptr %19, align 8, !tbaa !5
  %476 = load i32, ptr %68, align 4, !tbaa !9
  %477 = load i32, ptr %68, align 4, !tbaa !9
  %478 = sub nsw i32 %477, 1
  %479 = load i32, ptr %29, align 4, !tbaa !9
  %480 = mul nsw i32 %478, %479
  %481 = add nsw i32 %476, %480
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds float, ptr %475, i64 %482
  %484 = load float, ptr %483, align 4, !tbaa !11
  store float %484, ptr %38, align 4, !tbaa !11
  %485 = load float, ptr %38, align 4, !tbaa !11
  %486 = fcmp oge float %485, 0.000000e+00
  br i1 %486, label %487, label %489

487:                                              ; preds = %474
  %488 = load float, ptr %38, align 4, !tbaa !11
  br label %492

489:                                              ; preds = %474
  %490 = load float, ptr %38, align 4, !tbaa !11
  %491 = fneg float %490
  br label %492

492:                                              ; preds = %489, %487
  %493 = phi float [ %488, %487 ], [ %491, %489 ]
  %494 = fpext float %493 to double
  %495 = call double @sqrt(double noundef %494) #4
  %496 = load ptr, ptr %19, align 8, !tbaa !5
  %497 = load i32, ptr %68, align 4, !tbaa !9
  %498 = sub nsw i32 %497, 1
  %499 = load i32, ptr %68, align 4, !tbaa !9
  %500 = load i32, ptr %29, align 4, !tbaa !9
  %501 = mul nsw i32 %499, %500
  %502 = add nsw i32 %498, %501
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds float, ptr %496, i64 %503
  %505 = load float, ptr %504, align 4, !tbaa !11
  store float %505, ptr %39, align 4, !tbaa !11
  %506 = load float, ptr %39, align 4, !tbaa !11
  %507 = fcmp oge float %506, 0.000000e+00
  br i1 %507, label %508, label %510

508:                                              ; preds = %492
  %509 = load float, ptr %39, align 4, !tbaa !11
  br label %513

510:                                              ; preds = %492
  %511 = load float, ptr %39, align 4, !tbaa !11
  %512 = fneg float %511
  br label %513

513:                                              ; preds = %510, %508
  %514 = phi float [ %509, %508 ], [ %512, %510 ]
  %515 = fpext float %514 to double
  %516 = call double @sqrt(double noundef %515) #4
  %517 = fmul double %495, %516
  %518 = fptrunc double %517 to float
  store float %518, ptr %71, align 4, !tbaa !11
  br label %519

519:                                              ; preds = %513, %462
  %520 = load float, ptr %77, align 4, !tbaa !11
  %521 = load float, ptr %72, align 4, !tbaa !11
  %522 = fcmp oge float %521, 0.000000e+00
  br i1 %522, label %523, label %525

523:                                              ; preds = %519
  %524 = load float, ptr %72, align 4, !tbaa !11
  br label %528

525:                                              ; preds = %519
  %526 = load float, ptr %72, align 4, !tbaa !11
  %527 = fneg float %526
  br label %528

528:                                              ; preds = %525, %523
  %529 = phi float [ %524, %523 ], [ %527, %525 ]
  %530 = load float, ptr %71, align 4, !tbaa !11
  %531 = fcmp oge float %530, 0.000000e+00
  br i1 %531, label %532, label %534

532:                                              ; preds = %528
  %533 = load float, ptr %71, align 4, !tbaa !11
  br label %537

534:                                              ; preds = %528
  %535 = load float, ptr %71, align 4, !tbaa !11
  %536 = fneg float %535
  br label %537

537:                                              ; preds = %534, %532
  %538 = phi float [ %533, %532 ], [ %536, %534 ]
  %539 = fadd float %529, %538
  %540 = fmul float %520, %539
  store float %540, ptr %38, align 4, !tbaa !11
  %541 = load float, ptr %38, align 4, !tbaa !11
  %542 = load float, ptr %75, align 4, !tbaa !11
  %543 = fcmp oge float %541, %542
  br i1 %543, label %544, label %546

544:                                              ; preds = %537
  %545 = load float, ptr %38, align 4, !tbaa !11
  br label %548

546:                                              ; preds = %537
  %547 = load float, ptr %75, align 4, !tbaa !11
  br label %548

548:                                              ; preds = %546, %544
  %549 = phi float [ %545, %544 ], [ %547, %546 ]
  store float %549, ptr %49, align 4, !tbaa !11
  %550 = load i32, ptr %69, align 4, !tbaa !9
  %551 = icmp eq i32 %550, 0
  br i1 %551, label %552, label %984

552:                                              ; preds = %548
  %553 = load ptr, ptr %27, align 8, !tbaa !5
  %554 = load i32, ptr %68, align 4, !tbaa !9
  %555 = load ptr, ptr %18, align 8, !tbaa !5
  %556 = load i32, ptr %555, align 4, !tbaa !9
  %557 = add nsw i32 %554, %556
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds float, ptr %553, i64 %558
  store float 1.000000e+00, ptr %559, align 4, !tbaa !11
  %560 = load i32, ptr %68, align 4, !tbaa !9
  %561 = sub nsw i32 %560, 1
  store i32 %561, ptr %35, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %562

562:                                              ; preds = %584, %552
  %563 = load i32, ptr %55, align 4, !tbaa !9
  %564 = load i32, ptr %35, align 4, !tbaa !9
  %565 = icmp sle i32 %563, %564
  br i1 %565, label %566, label %587

566:                                              ; preds = %562
  %567 = load ptr, ptr %19, align 8, !tbaa !5
  %568 = load i32, ptr %55, align 4, !tbaa !9
  %569 = load i32, ptr %68, align 4, !tbaa !9
  %570 = load i32, ptr %29, align 4, !tbaa !9
  %571 = mul nsw i32 %569, %570
  %572 = add nsw i32 %568, %571
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds float, ptr %567, i64 %573
  %575 = load float, ptr %574, align 4, !tbaa !11
  %576 = fneg float %575
  %577 = load ptr, ptr %27, align 8, !tbaa !5
  %578 = load i32, ptr %55, align 4, !tbaa !9
  %579 = load ptr, ptr %18, align 8, !tbaa !5
  %580 = load i32, ptr %579, align 4, !tbaa !9
  %581 = add nsw i32 %578, %580
  %582 = sext i32 %581 to i64
  %583 = getelementptr inbounds float, ptr %577, i64 %582
  store float %576, ptr %583, align 4, !tbaa !11
  br label %584

584:                                              ; preds = %566
  %585 = load i32, ptr %55, align 4, !tbaa !9
  %586 = add nsw i32 %585, 1
  store i32 %586, ptr %55, align 4, !tbaa !9
  br label %562, !llvm.loop !17

587:                                              ; preds = %562
  %588 = load i32, ptr %68, align 4, !tbaa !9
  %589 = sub nsw i32 %588, 1
  store i32 %589, ptr %52, align 4, !tbaa !9
  %590 = load i32, ptr %68, align 4, !tbaa !9
  %591 = sub nsw i32 %590, 1
  store i32 %591, ptr %54, align 4, !tbaa !9
  br label %592

592:                                              ; preds = %839, %587
  %593 = load i32, ptr %54, align 4, !tbaa !9
  %594 = icmp sge i32 %593, 1
  br i1 %594, label %595, label %842

595:                                              ; preds = %592
  %596 = load i32, ptr %54, align 4, !tbaa !9
  %597 = load i32, ptr %52, align 4, !tbaa !9
  %598 = icmp sgt i32 %596, %597
  br i1 %598, label %599, label %600

599:                                              ; preds = %595
  br label %838

600:                                              ; preds = %595
  %601 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %601, ptr %63, align 4, !tbaa !9
  %602 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %602, ptr %64, align 4, !tbaa !9
  %603 = load i32, ptr %54, align 4, !tbaa !9
  %604 = sub nsw i32 %603, 1
  store i32 %604, ptr %52, align 4, !tbaa !9
  %605 = load i32, ptr %54, align 4, !tbaa !9
  %606 = icmp sgt i32 %605, 1
  br i1 %606, label %607, label %625

607:                                              ; preds = %600
  %608 = load ptr, ptr %19, align 8, !tbaa !5
  %609 = load i32, ptr %54, align 4, !tbaa !9
  %610 = load i32, ptr %54, align 4, !tbaa !9
  %611 = sub nsw i32 %610, 1
  %612 = load i32, ptr %29, align 4, !tbaa !9
  %613 = mul nsw i32 %611, %612
  %614 = add nsw i32 %609, %613
  %615 = sext i32 %614 to i64
  %616 = getelementptr inbounds float, ptr %608, i64 %615
  %617 = load float, ptr %616, align 4, !tbaa !11
  %618 = fcmp une float %617, 0.000000e+00
  br i1 %618, label %619, label %624

619:                                              ; preds = %607
  %620 = load i32, ptr %54, align 4, !tbaa !9
  %621 = sub nsw i32 %620, 1
  store i32 %621, ptr %63, align 4, !tbaa !9
  %622 = load i32, ptr %54, align 4, !tbaa !9
  %623 = sub nsw i32 %622, 2
  store i32 %623, ptr %52, align 4, !tbaa !9
  br label %624

624:                                              ; preds = %619, %607
  br label %625

625:                                              ; preds = %624, %600
  %626 = load i32, ptr %63, align 4, !tbaa !9
  %627 = load i32, ptr %64, align 4, !tbaa !9
  %628 = icmp eq i32 %626, %627
  br i1 %628, label %629, label %707

629:                                              ; preds = %625
  %630 = load ptr, ptr %19, align 8, !tbaa !5
  %631 = load i32, ptr %54, align 4, !tbaa !9
  %632 = load i32, ptr %54, align 4, !tbaa !9
  %633 = load i32, ptr %29, align 4, !tbaa !9
  %634 = mul nsw i32 %632, %633
  %635 = add nsw i32 %631, %634
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds float, ptr %630, i64 %636
  %638 = load ptr, ptr %20, align 8, !tbaa !5
  %639 = load ptr, ptr %27, align 8, !tbaa !5
  %640 = load i32, ptr %54, align 4, !tbaa !9
  %641 = load ptr, ptr %18, align 8, !tbaa !5
  %642 = load i32, ptr %641, align 4, !tbaa !9
  %643 = add nsw i32 %640, %642
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds float, ptr %639, i64 %644
  %646 = load ptr, ptr %18, align 8, !tbaa !5
  %647 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_false, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %49, ptr noundef @c_b22, ptr noundef %637, ptr noundef %638, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %645, ptr noundef %646, ptr noundef %72, ptr noundef @c_b25, ptr noundef %647, ptr noundef @c__2, ptr noundef %56, ptr noundef %66, ptr noundef %46)
  %648 = load float, ptr %66, align 4, !tbaa !11
  %649 = fcmp ogt float %648, 1.000000e+00
  br i1 %649, label %650, label %669

650:                                              ; preds = %629
  %651 = load ptr, ptr %27, align 8, !tbaa !5
  %652 = load i32, ptr %54, align 4, !tbaa !9
  %653 = sext i32 %652 to i64
  %654 = getelementptr inbounds float, ptr %651, i64 %653
  %655 = load float, ptr %654, align 4, !tbaa !11
  %656 = load float, ptr %73, align 4, !tbaa !11
  %657 = load float, ptr %66, align 4, !tbaa !11
  %658 = fdiv float %656, %657
  %659 = fcmp ogt float %655, %658
  br i1 %659, label %660, label %668

660:                                              ; preds = %650
  %661 = load float, ptr %66, align 4, !tbaa !11
  %662 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %663 = load float, ptr %662, align 16, !tbaa !11
  %664 = fdiv float %663, %661
  store float %664, ptr %662, align 16, !tbaa !11
  %665 = load float, ptr %66, align 4, !tbaa !11
  %666 = load float, ptr %56, align 4, !tbaa !11
  %667 = fdiv float %666, %665
  store float %667, ptr %56, align 4, !tbaa !11
  br label %668

668:                                              ; preds = %660, %650
  br label %669

669:                                              ; preds = %668, %629
  %670 = load float, ptr %56, align 4, !tbaa !11
  %671 = fcmp une float %670, 1.000000e+00
  br i1 %671, label %672, label %679

672:                                              ; preds = %669
  %673 = load ptr, ptr %27, align 8, !tbaa !5
  %674 = load ptr, ptr %18, align 8, !tbaa !5
  %675 = load i32, ptr %674, align 4, !tbaa !9
  %676 = add nsw i32 %675, 1
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds float, ptr %673, i64 %677
  call void @sscal_(ptr noundef %68, ptr noundef %56, ptr noundef %678, ptr noundef @c__1)
  br label %679

679:                                              ; preds = %672, %669
  %680 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %681 = load float, ptr %680, align 16, !tbaa !11
  %682 = load ptr, ptr %27, align 8, !tbaa !5
  %683 = load i32, ptr %54, align 4, !tbaa !9
  %684 = load ptr, ptr %18, align 8, !tbaa !5
  %685 = load i32, ptr %684, align 4, !tbaa !9
  %686 = add nsw i32 %683, %685
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds float, ptr %682, i64 %687
  store float %681, ptr %688, align 4, !tbaa !11
  %689 = load i32, ptr %54, align 4, !tbaa !9
  %690 = sub nsw i32 %689, 1
  store i32 %690, ptr %35, align 4, !tbaa !9
  %691 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %692 = load float, ptr %691, align 16, !tbaa !11
  %693 = fneg float %692
  store float %693, ptr %38, align 4, !tbaa !11
  %694 = load ptr, ptr %19, align 8, !tbaa !5
  %695 = load i32, ptr %54, align 4, !tbaa !9
  %696 = load i32, ptr %29, align 4, !tbaa !9
  %697 = mul nsw i32 %695, %696
  %698 = add nsw i32 %697, 1
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds float, ptr %694, i64 %699
  %701 = load ptr, ptr %27, align 8, !tbaa !5
  %702 = load ptr, ptr %18, align 8, !tbaa !5
  %703 = load i32, ptr %702, align 4, !tbaa !9
  %704 = add nsw i32 %703, 1
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds float, ptr %701, i64 %705
  call void @saxpy_(ptr noundef %35, ptr noundef %38, ptr noundef %700, ptr noundef @c__1, ptr noundef %706, ptr noundef @c__1)
  br label %837

707:                                              ; preds = %625
  %708 = load ptr, ptr %19, align 8, !tbaa !5
  %709 = load i32, ptr %54, align 4, !tbaa !9
  %710 = sub nsw i32 %709, 1
  %711 = load i32, ptr %54, align 4, !tbaa !9
  %712 = sub nsw i32 %711, 1
  %713 = load i32, ptr %29, align 4, !tbaa !9
  %714 = mul nsw i32 %712, %713
  %715 = add nsw i32 %710, %714
  %716 = sext i32 %715 to i64
  %717 = getelementptr inbounds float, ptr %708, i64 %716
  %718 = load ptr, ptr %20, align 8, !tbaa !5
  %719 = load ptr, ptr %27, align 8, !tbaa !5
  %720 = load i32, ptr %54, align 4, !tbaa !9
  %721 = sub nsw i32 %720, 1
  %722 = load ptr, ptr %18, align 8, !tbaa !5
  %723 = load i32, ptr %722, align 4, !tbaa !9
  %724 = add nsw i32 %721, %723
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds float, ptr %719, i64 %725
  %727 = load ptr, ptr %18, align 8, !tbaa !5
  %728 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_false, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %49, ptr noundef @c_b22, ptr noundef %717, ptr noundef %718, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %726, ptr noundef %727, ptr noundef %72, ptr noundef @c_b25, ptr noundef %728, ptr noundef @c__2, ptr noundef %56, ptr noundef %66, ptr noundef %46)
  %729 = load float, ptr %66, align 4, !tbaa !11
  %730 = fcmp ogt float %729, 1.000000e+00
  br i1 %730, label %731, label %770

731:                                              ; preds = %707
  %732 = load ptr, ptr %27, align 8, !tbaa !5
  %733 = load i32, ptr %54, align 4, !tbaa !9
  %734 = sub nsw i32 %733, 1
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds float, ptr %732, i64 %735
  %737 = load float, ptr %736, align 4, !tbaa !11
  store float %737, ptr %38, align 4, !tbaa !11
  %738 = load ptr, ptr %27, align 8, !tbaa !5
  %739 = load i32, ptr %54, align 4, !tbaa !9
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds float, ptr %738, i64 %740
  %742 = load float, ptr %741, align 4, !tbaa !11
  store float %742, ptr %39, align 4, !tbaa !11
  %743 = load float, ptr %38, align 4, !tbaa !11
  %744 = load float, ptr %39, align 4, !tbaa !11
  %745 = fcmp oge float %743, %744
  br i1 %745, label %746, label %748

746:                                              ; preds = %731
  %747 = load float, ptr %38, align 4, !tbaa !11
  br label %750

748:                                              ; preds = %731
  %749 = load float, ptr %39, align 4, !tbaa !11
  br label %750

750:                                              ; preds = %748, %746
  %751 = phi float [ %747, %746 ], [ %749, %748 ]
  store float %751, ptr %42, align 4, !tbaa !11
  %752 = load float, ptr %42, align 4, !tbaa !11
  %753 = load float, ptr %73, align 4, !tbaa !11
  %754 = load float, ptr %66, align 4, !tbaa !11
  %755 = fdiv float %753, %754
  %756 = fcmp ogt float %752, %755
  br i1 %756, label %757, label %769

757:                                              ; preds = %750
  %758 = load float, ptr %66, align 4, !tbaa !11
  %759 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %760 = load float, ptr %759, align 16, !tbaa !11
  %761 = fdiv float %760, %758
  store float %761, ptr %759, align 16, !tbaa !11
  %762 = load float, ptr %66, align 4, !tbaa !11
  %763 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 1
  %764 = load float, ptr %763, align 4, !tbaa !11
  %765 = fdiv float %764, %762
  store float %765, ptr %763, align 4, !tbaa !11
  %766 = load float, ptr %66, align 4, !tbaa !11
  %767 = load float, ptr %56, align 4, !tbaa !11
  %768 = fdiv float %767, %766
  store float %768, ptr %56, align 4, !tbaa !11
  br label %769

769:                                              ; preds = %757, %750
  br label %770

770:                                              ; preds = %769, %707
  %771 = load float, ptr %56, align 4, !tbaa !11
  %772 = fcmp une float %771, 1.000000e+00
  br i1 %772, label %773, label %780

773:                                              ; preds = %770
  %774 = load ptr, ptr %27, align 8, !tbaa !5
  %775 = load ptr, ptr %18, align 8, !tbaa !5
  %776 = load i32, ptr %775, align 4, !tbaa !9
  %777 = add nsw i32 %776, 1
  %778 = sext i32 %777 to i64
  %779 = getelementptr inbounds float, ptr %774, i64 %778
  call void @sscal_(ptr noundef %68, ptr noundef %56, ptr noundef %779, ptr noundef @c__1)
  br label %780

780:                                              ; preds = %773, %770
  %781 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %782 = load float, ptr %781, align 16, !tbaa !11
  %783 = load ptr, ptr %27, align 8, !tbaa !5
  %784 = load i32, ptr %54, align 4, !tbaa !9
  %785 = sub nsw i32 %784, 1
  %786 = load ptr, ptr %18, align 8, !tbaa !5
  %787 = load i32, ptr %786, align 4, !tbaa !9
  %788 = add nsw i32 %785, %787
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds float, ptr %783, i64 %789
  store float %782, ptr %790, align 4, !tbaa !11
  %791 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 1
  %792 = load float, ptr %791, align 4, !tbaa !11
  %793 = load ptr, ptr %27, align 8, !tbaa !5
  %794 = load i32, ptr %54, align 4, !tbaa !9
  %795 = load ptr, ptr %18, align 8, !tbaa !5
  %796 = load i32, ptr %795, align 4, !tbaa !9
  %797 = add nsw i32 %794, %796
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds float, ptr %793, i64 %798
  store float %792, ptr %799, align 4, !tbaa !11
  %800 = load i32, ptr %54, align 4, !tbaa !9
  %801 = sub nsw i32 %800, 2
  store i32 %801, ptr %35, align 4, !tbaa !9
  %802 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %803 = load float, ptr %802, align 16, !tbaa !11
  %804 = fneg float %803
  store float %804, ptr %38, align 4, !tbaa !11
  %805 = load ptr, ptr %19, align 8, !tbaa !5
  %806 = load i32, ptr %54, align 4, !tbaa !9
  %807 = sub nsw i32 %806, 1
  %808 = load i32, ptr %29, align 4, !tbaa !9
  %809 = mul nsw i32 %807, %808
  %810 = add nsw i32 %809, 1
  %811 = sext i32 %810 to i64
  %812 = getelementptr inbounds float, ptr %805, i64 %811
  %813 = load ptr, ptr %27, align 8, !tbaa !5
  %814 = load ptr, ptr %18, align 8, !tbaa !5
  %815 = load i32, ptr %814, align 4, !tbaa !9
  %816 = add nsw i32 %815, 1
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds float, ptr %813, i64 %817
  call void @saxpy_(ptr noundef %35, ptr noundef %38, ptr noundef %812, ptr noundef @c__1, ptr noundef %818, ptr noundef @c__1)
  %819 = load i32, ptr %54, align 4, !tbaa !9
  %820 = sub nsw i32 %819, 2
  store i32 %820, ptr %35, align 4, !tbaa !9
  %821 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 1
  %822 = load float, ptr %821, align 4, !tbaa !11
  %823 = fneg float %822
  store float %823, ptr %38, align 4, !tbaa !11
  %824 = load ptr, ptr %19, align 8, !tbaa !5
  %825 = load i32, ptr %54, align 4, !tbaa !9
  %826 = load i32, ptr %29, align 4, !tbaa !9
  %827 = mul nsw i32 %825, %826
  %828 = add nsw i32 %827, 1
  %829 = sext i32 %828 to i64
  %830 = getelementptr inbounds float, ptr %824, i64 %829
  %831 = load ptr, ptr %27, align 8, !tbaa !5
  %832 = load ptr, ptr %18, align 8, !tbaa !5
  %833 = load i32, ptr %832, align 4, !tbaa !9
  %834 = add nsw i32 %833, 1
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds float, ptr %831, i64 %835
  call void @saxpy_(ptr noundef %35, ptr noundef %38, ptr noundef %830, ptr noundef @c__1, ptr noundef %836, ptr noundef @c__1)
  br label %837

837:                                              ; preds = %780, %679
  br label %838

838:                                              ; preds = %837, %599
  br label %839

839:                                              ; preds = %838
  %840 = load i32, ptr %54, align 4, !tbaa !9
  %841 = add nsw i32 %840, -1
  store i32 %841, ptr %54, align 4, !tbaa !9
  br label %592, !llvm.loop !18

842:                                              ; preds = %592
  %843 = load i32, ptr %50, align 4, !tbaa !9
  %844 = icmp ne i32 %843, 0
  br i1 %844, label %914, label %845

845:                                              ; preds = %842
  %846 = load ptr, ptr %27, align 8, !tbaa !5
  %847 = load ptr, ptr %18, align 8, !tbaa !5
  %848 = load i32, ptr %847, align 4, !tbaa !9
  %849 = add nsw i32 %848, 1
  %850 = sext i32 %849 to i64
  %851 = getelementptr inbounds float, ptr %846, i64 %850
  %852 = load ptr, ptr %23, align 8, !tbaa !5
  %853 = load i32, ptr %70, align 4, !tbaa !9
  %854 = load i32, ptr %33, align 4, !tbaa !9
  %855 = mul nsw i32 %853, %854
  %856 = add nsw i32 %855, 1
  %857 = sext i32 %856 to i64
  %858 = getelementptr inbounds float, ptr %852, i64 %857
  call void @scopy_(ptr noundef %68, ptr noundef %851, ptr noundef @c__1, ptr noundef %858, ptr noundef @c__1)
  %859 = load ptr, ptr %23, align 8, !tbaa !5
  %860 = load i32, ptr %70, align 4, !tbaa !9
  %861 = load i32, ptr %33, align 4, !tbaa !9
  %862 = mul nsw i32 %860, %861
  %863 = add nsw i32 %862, 1
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds float, ptr %859, i64 %864
  %866 = call i32 @isamax_(ptr noundef %68, ptr noundef %865, ptr noundef @c__1)
  store i32 %866, ptr %67, align 4, !tbaa !9
  %867 = load ptr, ptr %23, align 8, !tbaa !5
  %868 = load i32, ptr %67, align 4, !tbaa !9
  %869 = load i32, ptr %70, align 4, !tbaa !9
  %870 = load i32, ptr %33, align 4, !tbaa !9
  %871 = mul nsw i32 %869, %870
  %872 = add nsw i32 %868, %871
  %873 = sext i32 %872 to i64
  %874 = getelementptr inbounds float, ptr %867, i64 %873
  %875 = load float, ptr %874, align 4, !tbaa !11
  store float %875, ptr %38, align 4, !tbaa !11
  %876 = load float, ptr %38, align 4, !tbaa !11
  %877 = fcmp oge float %876, 0.000000e+00
  br i1 %877, label %878, label %880

878:                                              ; preds = %845
  %879 = load float, ptr %38, align 4, !tbaa !11
  br label %883

880:                                              ; preds = %845
  %881 = load float, ptr %38, align 4, !tbaa !11
  %882 = fneg float %881
  br label %883

883:                                              ; preds = %880, %878
  %884 = phi float [ %879, %878 ], [ %882, %880 ]
  %885 = fdiv float 1.000000e+00, %884
  store float %885, ptr %58, align 4, !tbaa !11
  %886 = load ptr, ptr %23, align 8, !tbaa !5
  %887 = load i32, ptr %70, align 4, !tbaa !9
  %888 = load i32, ptr %33, align 4, !tbaa !9
  %889 = mul nsw i32 %887, %888
  %890 = add nsw i32 %889, 1
  %891 = sext i32 %890 to i64
  %892 = getelementptr inbounds float, ptr %886, i64 %891
  call void @sscal_(ptr noundef %68, ptr noundef %58, ptr noundef %892, ptr noundef @c__1)
  %893 = load ptr, ptr %18, align 8, !tbaa !5
  %894 = load i32, ptr %893, align 4, !tbaa !9
  store i32 %894, ptr %35, align 4, !tbaa !9
  %895 = load i32, ptr %68, align 4, !tbaa !9
  %896 = add nsw i32 %895, 1
  store i32 %896, ptr %55, align 4, !tbaa !9
  br label %897

897:                                              ; preds = %910, %883
  %898 = load i32, ptr %55, align 4, !tbaa !9
  %899 = load i32, ptr %35, align 4, !tbaa !9
  %900 = icmp sle i32 %898, %899
  br i1 %900, label %901, label %913

901:                                              ; preds = %897
  %902 = load ptr, ptr %23, align 8, !tbaa !5
  %903 = load i32, ptr %55, align 4, !tbaa !9
  %904 = load i32, ptr %70, align 4, !tbaa !9
  %905 = load i32, ptr %33, align 4, !tbaa !9
  %906 = mul nsw i32 %904, %905
  %907 = add nsw i32 %903, %906
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds float, ptr %902, i64 %908
  store float 0.000000e+00, ptr %909, align 4, !tbaa !11
  br label %910

910:                                              ; preds = %901
  %911 = load i32, ptr %55, align 4, !tbaa !9
  %912 = add nsw i32 %911, 1
  store i32 %912, ptr %55, align 4, !tbaa !9
  br label %897, !llvm.loop !19

913:                                              ; preds = %897
  br label %983

914:                                              ; preds = %842
  %915 = load i32, ptr %68, align 4, !tbaa !9
  %916 = icmp sgt i32 %915, 1
  br i1 %916, label %917, label %946

917:                                              ; preds = %914
  %918 = load i32, ptr %68, align 4, !tbaa !9
  %919 = sub nsw i32 %918, 1
  store i32 %919, ptr %35, align 4, !tbaa !9
  %920 = load ptr, ptr %18, align 8, !tbaa !5
  %921 = load ptr, ptr %23, align 8, !tbaa !5
  %922 = load i32, ptr %34, align 4, !tbaa !9
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds float, ptr %921, i64 %923
  %925 = load ptr, ptr %24, align 8, !tbaa !5
  %926 = load ptr, ptr %27, align 8, !tbaa !5
  %927 = load ptr, ptr %18, align 8, !tbaa !5
  %928 = load i32, ptr %927, align 4, !tbaa !9
  %929 = add nsw i32 %928, 1
  %930 = sext i32 %929 to i64
  %931 = getelementptr inbounds float, ptr %926, i64 %930
  %932 = load ptr, ptr %27, align 8, !tbaa !5
  %933 = load i32, ptr %68, align 4, !tbaa !9
  %934 = load ptr, ptr %18, align 8, !tbaa !5
  %935 = load i32, ptr %934, align 4, !tbaa !9
  %936 = add nsw i32 %933, %935
  %937 = sext i32 %936 to i64
  %938 = getelementptr inbounds float, ptr %932, i64 %937
  %939 = load ptr, ptr %23, align 8, !tbaa !5
  %940 = load i32, ptr %68, align 4, !tbaa !9
  %941 = load i32, ptr %33, align 4, !tbaa !9
  %942 = mul nsw i32 %940, %941
  %943 = add nsw i32 %942, 1
  %944 = sext i32 %943 to i64
  %945 = getelementptr inbounds float, ptr %939, i64 %944
  call void @sgemv_(ptr noundef @.str.8, ptr noundef %920, ptr noundef %35, ptr noundef @c_b22, ptr noundef %924, ptr noundef %925, ptr noundef %931, ptr noundef @c__1, ptr noundef %938, ptr noundef %945, ptr noundef @c__1)
  br label %946

946:                                              ; preds = %917, %914
  %947 = load ptr, ptr %18, align 8, !tbaa !5
  %948 = load ptr, ptr %23, align 8, !tbaa !5
  %949 = load i32, ptr %68, align 4, !tbaa !9
  %950 = load i32, ptr %33, align 4, !tbaa !9
  %951 = mul nsw i32 %949, %950
  %952 = add nsw i32 %951, 1
  %953 = sext i32 %952 to i64
  %954 = getelementptr inbounds float, ptr %948, i64 %953
  %955 = call i32 @isamax_(ptr noundef %947, ptr noundef %954, ptr noundef @c__1)
  store i32 %955, ptr %67, align 4, !tbaa !9
  %956 = load ptr, ptr %23, align 8, !tbaa !5
  %957 = load i32, ptr %67, align 4, !tbaa !9
  %958 = load i32, ptr %68, align 4, !tbaa !9
  %959 = load i32, ptr %33, align 4, !tbaa !9
  %960 = mul nsw i32 %958, %959
  %961 = add nsw i32 %957, %960
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds float, ptr %956, i64 %962
  %964 = load float, ptr %963, align 4, !tbaa !11
  store float %964, ptr %38, align 4, !tbaa !11
  %965 = load float, ptr %38, align 4, !tbaa !11
  %966 = fcmp oge float %965, 0.000000e+00
  br i1 %966, label %967, label %969

967:                                              ; preds = %946
  %968 = load float, ptr %38, align 4, !tbaa !11
  br label %972

969:                                              ; preds = %946
  %970 = load float, ptr %38, align 4, !tbaa !11
  %971 = fneg float %970
  br label %972

972:                                              ; preds = %969, %967
  %973 = phi float [ %968, %967 ], [ %971, %969 ]
  %974 = fdiv float 1.000000e+00, %973
  store float %974, ptr %58, align 4, !tbaa !11
  %975 = load ptr, ptr %18, align 8, !tbaa !5
  %976 = load ptr, ptr %23, align 8, !tbaa !5
  %977 = load i32, ptr %68, align 4, !tbaa !9
  %978 = load i32, ptr %33, align 4, !tbaa !9
  %979 = mul nsw i32 %977, %978
  %980 = add nsw i32 %979, 1
  %981 = sext i32 %980 to i64
  %982 = getelementptr inbounds float, ptr %976, i64 %981
  call void @sscal_(ptr noundef %975, ptr noundef %58, ptr noundef %982, ptr noundef @c__1)
  br label %983

983:                                              ; preds = %972, %913
  br label %1819

984:                                              ; preds = %548
  %985 = load ptr, ptr %19, align 8, !tbaa !5
  %986 = load i32, ptr %68, align 4, !tbaa !9
  %987 = sub nsw i32 %986, 1
  %988 = load i32, ptr %68, align 4, !tbaa !9
  %989 = load i32, ptr %29, align 4, !tbaa !9
  %990 = mul nsw i32 %988, %989
  %991 = add nsw i32 %987, %990
  %992 = sext i32 %991 to i64
  %993 = getelementptr inbounds float, ptr %985, i64 %992
  %994 = load float, ptr %993, align 4, !tbaa !11
  store float %994, ptr %38, align 4, !tbaa !11
  %995 = load float, ptr %38, align 4, !tbaa !11
  %996 = fcmp oge float %995, 0.000000e+00
  br i1 %996, label %997, label %999

997:                                              ; preds = %984
  %998 = load float, ptr %38, align 4, !tbaa !11
  br label %1002

999:                                              ; preds = %984
  %1000 = load float, ptr %38, align 4, !tbaa !11
  %1001 = fneg float %1000
  br label %1002

1002:                                             ; preds = %999, %997
  %1003 = phi float [ %998, %997 ], [ %1001, %999 ]
  %1004 = load ptr, ptr %19, align 8, !tbaa !5
  %1005 = load i32, ptr %68, align 4, !tbaa !9
  %1006 = load i32, ptr %68, align 4, !tbaa !9
  %1007 = sub nsw i32 %1006, 1
  %1008 = load i32, ptr %29, align 4, !tbaa !9
  %1009 = mul nsw i32 %1007, %1008
  %1010 = add nsw i32 %1005, %1009
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds float, ptr %1004, i64 %1011
  %1013 = load float, ptr %1012, align 4, !tbaa !11
  store float %1013, ptr %39, align 4, !tbaa !11
  %1014 = load float, ptr %39, align 4, !tbaa !11
  %1015 = fcmp oge float %1014, 0.000000e+00
  br i1 %1015, label %1016, label %1018

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

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

1021:                                             ; preds = %1018, %1016
  %1022 = phi float [ %1017, %1016 ], [ %1020, %1018 ]
  %1023 = fcmp oge float %1003, %1022
  br i1 %1023, label %1024, label %1051

1024:                                             ; preds = %1021
  %1025 = load ptr, ptr %27, align 8, !tbaa !5
  %1026 = load i32, ptr %68, align 4, !tbaa !9
  %1027 = sub nsw i32 %1026, 1
  %1028 = load ptr, ptr %18, align 8, !tbaa !5
  %1029 = load i32, ptr %1028, align 4, !tbaa !9
  %1030 = add nsw i32 %1027, %1029
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds float, ptr %1025, i64 %1031
  store float 1.000000e+00, ptr %1032, align 4, !tbaa !11
  %1033 = load float, ptr %71, align 4, !tbaa !11
  %1034 = load ptr, ptr %19, align 8, !tbaa !5
  %1035 = load i32, ptr %68, align 4, !tbaa !9
  %1036 = sub nsw i32 %1035, 1
  %1037 = load i32, ptr %68, align 4, !tbaa !9
  %1038 = load i32, ptr %29, align 4, !tbaa !9
  %1039 = mul nsw i32 %1037, %1038
  %1040 = add nsw i32 %1036, %1039
  %1041 = sext i32 %1040 to i64
  %1042 = getelementptr inbounds float, ptr %1034, i64 %1041
  %1043 = load float, ptr %1042, align 4, !tbaa !11
  %1044 = fdiv float %1033, %1043
  %1045 = load ptr, ptr %27, align 8, !tbaa !5
  %1046 = load i32, ptr %68, align 4, !tbaa !9
  %1047 = load i32, ptr %65, align 4, !tbaa !9
  %1048 = add nsw i32 %1046, %1047
  %1049 = sext i32 %1048 to i64
  %1050 = getelementptr inbounds float, ptr %1045, i64 %1049
  store float %1044, ptr %1050, align 4, !tbaa !11
  br label %1079

1051:                                             ; preds = %1021
  %1052 = load float, ptr %71, align 4, !tbaa !11
  %1053 = fneg float %1052
  %1054 = load ptr, ptr %19, align 8, !tbaa !5
  %1055 = load i32, ptr %68, align 4, !tbaa !9
  %1056 = load i32, ptr %68, align 4, !tbaa !9
  %1057 = sub nsw i32 %1056, 1
  %1058 = load i32, ptr %29, align 4, !tbaa !9
  %1059 = mul nsw i32 %1057, %1058
  %1060 = add nsw i32 %1055, %1059
  %1061 = sext i32 %1060 to i64
  %1062 = getelementptr inbounds float, ptr %1054, i64 %1061
  %1063 = load float, ptr %1062, align 4, !tbaa !11
  %1064 = fdiv float %1053, %1063
  %1065 = load ptr, ptr %27, align 8, !tbaa !5
  %1066 = load i32, ptr %68, align 4, !tbaa !9
  %1067 = sub nsw i32 %1066, 1
  %1068 = load ptr, ptr %18, align 8, !tbaa !5
  %1069 = load i32, ptr %1068, align 4, !tbaa !9
  %1070 = add nsw i32 %1067, %1069
  %1071 = sext i32 %1070 to i64
  %1072 = getelementptr inbounds float, ptr %1065, i64 %1071
  store float %1064, ptr %1072, align 4, !tbaa !11
  %1073 = load ptr, ptr %27, align 8, !tbaa !5
  %1074 = load i32, ptr %68, align 4, !tbaa !9
  %1075 = load i32, ptr %65, align 4, !tbaa !9
  %1076 = add nsw i32 %1074, %1075
  %1077 = sext i32 %1076 to i64
  %1078 = getelementptr inbounds float, ptr %1073, i64 %1077
  store float 1.000000e+00, ptr %1078, align 4, !tbaa !11
  br label %1079

1079:                                             ; preds = %1051, %1024
  %1080 = load ptr, ptr %27, align 8, !tbaa !5
  %1081 = load i32, ptr %68, align 4, !tbaa !9
  %1082 = load ptr, ptr %18, align 8, !tbaa !5
  %1083 = load i32, ptr %1082, align 4, !tbaa !9
  %1084 = add nsw i32 %1081, %1083
  %1085 = sext i32 %1084 to i64
  %1086 = getelementptr inbounds float, ptr %1080, i64 %1085
  store float 0.000000e+00, ptr %1086, align 4, !tbaa !11
  %1087 = load ptr, ptr %27, align 8, !tbaa !5
  %1088 = load i32, ptr %68, align 4, !tbaa !9
  %1089 = sub nsw i32 %1088, 1
  %1090 = load i32, ptr %65, align 4, !tbaa !9
  %1091 = add nsw i32 %1089, %1090
  %1092 = sext i32 %1091 to i64
  %1093 = getelementptr inbounds float, ptr %1087, i64 %1092
  store float 0.000000e+00, ptr %1093, align 4, !tbaa !11
  %1094 = load i32, ptr %68, align 4, !tbaa !9
  %1095 = sub nsw i32 %1094, 2
  store i32 %1095, ptr %35, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %1096

1096:                                             ; preds = %1153, %1079
  %1097 = load i32, ptr %55, align 4, !tbaa !9
  %1098 = load i32, ptr %35, align 4, !tbaa !9
  %1099 = icmp sle i32 %1097, %1098
  br i1 %1099, label %1100, label %1156

1100:                                             ; preds = %1096
  %1101 = load ptr, ptr %27, align 8, !tbaa !5
  %1102 = load i32, ptr %68, align 4, !tbaa !9
  %1103 = sub nsw i32 %1102, 1
  %1104 = load ptr, ptr %18, align 8, !tbaa !5
  %1105 = load i32, ptr %1104, align 4, !tbaa !9
  %1106 = add nsw i32 %1103, %1105
  %1107 = sext i32 %1106 to i64
  %1108 = getelementptr inbounds float, ptr %1101, i64 %1107
  %1109 = load float, ptr %1108, align 4, !tbaa !11
  %1110 = fneg float %1109
  %1111 = load ptr, ptr %19, align 8, !tbaa !5
  %1112 = load i32, ptr %55, align 4, !tbaa !9
  %1113 = load i32, ptr %68, align 4, !tbaa !9
  %1114 = sub nsw i32 %1113, 1
  %1115 = load i32, ptr %29, align 4, !tbaa !9
  %1116 = mul nsw i32 %1114, %1115
  %1117 = add nsw i32 %1112, %1116
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds float, ptr %1111, i64 %1118
  %1120 = load float, ptr %1119, align 4, !tbaa !11
  %1121 = fmul float %1110, %1120
  %1122 = load ptr, ptr %27, align 8, !tbaa !5
  %1123 = load i32, ptr %55, align 4, !tbaa !9
  %1124 = load ptr, ptr %18, align 8, !tbaa !5
  %1125 = load i32, ptr %1124, align 4, !tbaa !9
  %1126 = add nsw i32 %1123, %1125
  %1127 = sext i32 %1126 to i64
  %1128 = getelementptr inbounds float, ptr %1122, i64 %1127
  store float %1121, ptr %1128, align 4, !tbaa !11
  %1129 = load ptr, ptr %27, align 8, !tbaa !5
  %1130 = load i32, ptr %68, align 4, !tbaa !9
  %1131 = load i32, ptr %65, align 4, !tbaa !9
  %1132 = add nsw i32 %1130, %1131
  %1133 = sext i32 %1132 to i64
  %1134 = getelementptr inbounds float, ptr %1129, i64 %1133
  %1135 = load float, ptr %1134, align 4, !tbaa !11
  %1136 = fneg float %1135
  %1137 = load ptr, ptr %19, align 8, !tbaa !5
  %1138 = load i32, ptr %55, align 4, !tbaa !9
  %1139 = load i32, ptr %68, align 4, !tbaa !9
  %1140 = load i32, ptr %29, align 4, !tbaa !9
  %1141 = mul nsw i32 %1139, %1140
  %1142 = add nsw i32 %1138, %1141
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds float, ptr %1137, i64 %1143
  %1145 = load float, ptr %1144, align 4, !tbaa !11
  %1146 = fmul float %1136, %1145
  %1147 = load ptr, ptr %27, align 8, !tbaa !5
  %1148 = load i32, ptr %55, align 4, !tbaa !9
  %1149 = load i32, ptr %65, align 4, !tbaa !9
  %1150 = add nsw i32 %1148, %1149
  %1151 = sext i32 %1150 to i64
  %1152 = getelementptr inbounds float, ptr %1147, i64 %1151
  store float %1146, ptr %1152, align 4, !tbaa !11
  br label %1153

1153:                                             ; preds = %1100
  %1154 = load i32, ptr %55, align 4, !tbaa !9
  %1155 = add nsw i32 %1154, 1
  store i32 %1155, ptr %55, align 4, !tbaa !9
  br label %1096, !llvm.loop !20

1156:                                             ; preds = %1096
  %1157 = load i32, ptr %68, align 4, !tbaa !9
  %1158 = sub nsw i32 %1157, 2
  store i32 %1158, ptr %52, align 4, !tbaa !9
  %1159 = load i32, ptr %68, align 4, !tbaa !9
  %1160 = sub nsw i32 %1159, 2
  store i32 %1160, ptr %54, align 4, !tbaa !9
  br label %1161

1161:                                             ; preds = %1509, %1156
  %1162 = load i32, ptr %54, align 4, !tbaa !9
  %1163 = icmp sge i32 %1162, 1
  br i1 %1163, label %1164, label %1512

1164:                                             ; preds = %1161
  %1165 = load i32, ptr %54, align 4, !tbaa !9
  %1166 = load i32, ptr %52, align 4, !tbaa !9
  %1167 = icmp sgt i32 %1165, %1166
  br i1 %1167, label %1168, label %1169

1168:                                             ; preds = %1164
  br label %1508

1169:                                             ; preds = %1164
  %1170 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1170, ptr %63, align 4, !tbaa !9
  %1171 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %1171, ptr %64, align 4, !tbaa !9
  %1172 = load i32, ptr %54, align 4, !tbaa !9
  %1173 = sub nsw i32 %1172, 1
  store i32 %1173, ptr %52, align 4, !tbaa !9
  %1174 = load i32, ptr %54, align 4, !tbaa !9
  %1175 = icmp sgt i32 %1174, 1
  br i1 %1175, label %1176, label %1194

1176:                                             ; preds = %1169
  %1177 = load ptr, ptr %19, align 8, !tbaa !5
  %1178 = load i32, ptr %54, align 4, !tbaa !9
  %1179 = load i32, ptr %54, align 4, !tbaa !9
  %1180 = sub nsw i32 %1179, 1
  %1181 = load i32, ptr %29, align 4, !tbaa !9
  %1182 = mul nsw i32 %1180, %1181
  %1183 = add nsw i32 %1178, %1182
  %1184 = sext i32 %1183 to i64
  %1185 = getelementptr inbounds float, ptr %1177, i64 %1184
  %1186 = load float, ptr %1185, align 4, !tbaa !11
  %1187 = fcmp une float %1186, 0.000000e+00
  br i1 %1187, label %1188, label %1193

1188:                                             ; preds = %1176
  %1189 = load i32, ptr %54, align 4, !tbaa !9
  %1190 = sub nsw i32 %1189, 1
  store i32 %1190, ptr %63, align 4, !tbaa !9
  %1191 = load i32, ptr %54, align 4, !tbaa !9
  %1192 = sub nsw i32 %1191, 2
  store i32 %1192, ptr %52, align 4, !tbaa !9
  br label %1193

1193:                                             ; preds = %1188, %1176
  br label %1194

1194:                                             ; preds = %1193, %1169
  %1195 = load i32, ptr %63, align 4, !tbaa !9
  %1196 = load i32, ptr %64, align 4, !tbaa !9
  %1197 = icmp eq i32 %1195, %1196
  br i1 %1197, label %1198, label %1310

1198:                                             ; preds = %1194
  %1199 = load ptr, ptr %19, align 8, !tbaa !5
  %1200 = load i32, ptr %54, align 4, !tbaa !9
  %1201 = load i32, ptr %54, align 4, !tbaa !9
  %1202 = load i32, ptr %29, align 4, !tbaa !9
  %1203 = mul nsw i32 %1201, %1202
  %1204 = add nsw i32 %1200, %1203
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds float, ptr %1199, i64 %1205
  %1207 = load ptr, ptr %20, align 8, !tbaa !5
  %1208 = load ptr, ptr %27, align 8, !tbaa !5
  %1209 = load i32, ptr %54, align 4, !tbaa !9
  %1210 = load ptr, ptr %18, align 8, !tbaa !5
  %1211 = load i32, ptr %1210, align 4, !tbaa !9
  %1212 = add nsw i32 %1209, %1211
  %1213 = sext i32 %1212 to i64
  %1214 = getelementptr inbounds float, ptr %1208, i64 %1213
  %1215 = load ptr, ptr %18, align 8, !tbaa !5
  %1216 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_false, ptr noundef @c__1, ptr noundef @c__2, ptr noundef %49, ptr noundef @c_b22, ptr noundef %1206, ptr noundef %1207, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %1214, ptr noundef %1215, ptr noundef %72, ptr noundef %71, ptr noundef %1216, ptr noundef @c__2, ptr noundef %56, ptr noundef %66, ptr noundef %46)
  %1217 = load float, ptr %66, align 4, !tbaa !11
  %1218 = fcmp ogt float %1217, 1.000000e+00
  br i1 %1218, label %1219, label %1242

1219:                                             ; preds = %1198
  %1220 = load ptr, ptr %27, align 8, !tbaa !5
  %1221 = load i32, ptr %54, align 4, !tbaa !9
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds float, ptr %1220, i64 %1222
  %1224 = load float, ptr %1223, align 4, !tbaa !11
  %1225 = load float, ptr %73, align 4, !tbaa !11
  %1226 = load float, ptr %66, align 4, !tbaa !11
  %1227 = fdiv float %1225, %1226
  %1228 = fcmp ogt float %1224, %1227
  br i1 %1228, label %1229, label %1241

1229:                                             ; preds = %1219
  %1230 = load float, ptr %66, align 4, !tbaa !11
  %1231 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %1232 = load float, ptr %1231, align 16, !tbaa !11
  %1233 = fdiv float %1232, %1230
  store float %1233, ptr %1231, align 16, !tbaa !11
  %1234 = load float, ptr %66, align 4, !tbaa !11
  %1235 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 2
  %1236 = load float, ptr %1235, align 8, !tbaa !11
  %1237 = fdiv float %1236, %1234
  store float %1237, ptr %1235, align 8, !tbaa !11
  %1238 = load float, ptr %66, align 4, !tbaa !11
  %1239 = load float, ptr %56, align 4, !tbaa !11
  %1240 = fdiv float %1239, %1238
  store float %1240, ptr %56, align 4, !tbaa !11
  br label %1241

1241:                                             ; preds = %1229, %1219
  br label %1242

1242:                                             ; preds = %1241, %1198
  %1243 = load float, ptr %56, align 4, !tbaa !11
  %1244 = fcmp une float %1243, 1.000000e+00
  br i1 %1244, label %1245, label %1257

1245:                                             ; preds = %1242
  %1246 = load ptr, ptr %27, align 8, !tbaa !5
  %1247 = load ptr, ptr %18, align 8, !tbaa !5
  %1248 = load i32, ptr %1247, align 4, !tbaa !9
  %1249 = add nsw i32 %1248, 1
  %1250 = sext i32 %1249 to i64
  %1251 = getelementptr inbounds float, ptr %1246, i64 %1250
  call void @sscal_(ptr noundef %68, ptr noundef %56, ptr noundef %1251, ptr noundef @c__1)
  %1252 = load ptr, ptr %27, align 8, !tbaa !5
  %1253 = load i32, ptr %65, align 4, !tbaa !9
  %1254 = add nsw i32 %1253, 1
  %1255 = sext i32 %1254 to i64
  %1256 = getelementptr inbounds float, ptr %1252, i64 %1255
  call void @sscal_(ptr noundef %68, ptr noundef %56, ptr noundef %1256, ptr noundef @c__1)
  br label %1257

1257:                                             ; preds = %1245, %1242
  %1258 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %1259 = load float, ptr %1258, align 16, !tbaa !11
  %1260 = load ptr, ptr %27, align 8, !tbaa !5
  %1261 = load i32, ptr %54, align 4, !tbaa !9
  %1262 = load ptr, ptr %18, align 8, !tbaa !5
  %1263 = load i32, ptr %1262, align 4, !tbaa !9
  %1264 = add nsw i32 %1261, %1263
  %1265 = sext i32 %1264 to i64
  %1266 = getelementptr inbounds float, ptr %1260, i64 %1265
  store float %1259, ptr %1266, align 4, !tbaa !11
  %1267 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 2
  %1268 = load float, ptr %1267, align 8, !tbaa !11
  %1269 = load ptr, ptr %27, align 8, !tbaa !5
  %1270 = load i32, ptr %54, align 4, !tbaa !9
  %1271 = load i32, ptr %65, align 4, !tbaa !9
  %1272 = add nsw i32 %1270, %1271
  %1273 = sext i32 %1272 to i64
  %1274 = getelementptr inbounds float, ptr %1269, i64 %1273
  store float %1268, ptr %1274, align 4, !tbaa !11
  %1275 = load i32, ptr %54, align 4, !tbaa !9
  %1276 = sub nsw i32 %1275, 1
  store i32 %1276, ptr %35, align 4, !tbaa !9
  %1277 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %1278 = load float, ptr %1277, align 16, !tbaa !11
  %1279 = fneg float %1278
  store float %1279, ptr %38, align 4, !tbaa !11
  %1280 = load ptr, ptr %19, align 8, !tbaa !5
  %1281 = load i32, ptr %54, align 4, !tbaa !9
  %1282 = load i32, ptr %29, align 4, !tbaa !9
  %1283 = mul nsw i32 %1281, %1282
  %1284 = add nsw i32 %1283, 1
  %1285 = sext i32 %1284 to i64
  %1286 = getelementptr inbounds float, ptr %1280, i64 %1285
  %1287 = load ptr, ptr %27, align 8, !tbaa !5
  %1288 = load ptr, ptr %18, align 8, !tbaa !5
  %1289 = load i32, ptr %1288, align 4, !tbaa !9
  %1290 = add nsw i32 %1289, 1
  %1291 = sext i32 %1290 to i64
  %1292 = getelementptr inbounds float, ptr %1287, i64 %1291
  call void @saxpy_(ptr noundef %35, ptr noundef %38, ptr noundef %1286, ptr noundef @c__1, ptr noundef %1292, ptr noundef @c__1)
  %1293 = load i32, ptr %54, align 4, !tbaa !9
  %1294 = sub nsw i32 %1293, 1
  store i32 %1294, ptr %35, align 4, !tbaa !9
  %1295 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 2
  %1296 = load float, ptr %1295, align 8, !tbaa !11
  %1297 = fneg float %1296
  store float %1297, ptr %38, align 4, !tbaa !11
  %1298 = load ptr, ptr %19, align 8, !tbaa !5
  %1299 = load i32, ptr %54, align 4, !tbaa !9
  %1300 = load i32, ptr %29, align 4, !tbaa !9
  %1301 = mul nsw i32 %1299, %1300
  %1302 = add nsw i32 %1301, 1
  %1303 = sext i32 %1302 to i64
  %1304 = getelementptr inbounds float, ptr %1298, i64 %1303
  %1305 = load ptr, ptr %27, align 8, !tbaa !5
  %1306 = load i32, ptr %65, align 4, !tbaa !9
  %1307 = add nsw i32 %1306, 1
  %1308 = sext i32 %1307 to i64
  %1309 = getelementptr inbounds float, ptr %1305, i64 %1308
  call void @saxpy_(ptr noundef %35, ptr noundef %38, ptr noundef %1304, ptr noundef @c__1, ptr noundef %1309, ptr noundef @c__1)
  br label %1507

1310:                                             ; preds = %1194
  %1311 = load ptr, ptr %19, align 8, !tbaa !5
  %1312 = load i32, ptr %54, align 4, !tbaa !9
  %1313 = sub nsw i32 %1312, 1
  %1314 = load i32, ptr %54, align 4, !tbaa !9
  %1315 = sub nsw i32 %1314, 1
  %1316 = load i32, ptr %29, align 4, !tbaa !9
  %1317 = mul nsw i32 %1315, %1316
  %1318 = add nsw i32 %1313, %1317
  %1319 = sext i32 %1318 to i64
  %1320 = getelementptr inbounds float, ptr %1311, i64 %1319
  %1321 = load ptr, ptr %20, align 8, !tbaa !5
  %1322 = load ptr, ptr %27, align 8, !tbaa !5
  %1323 = load i32, ptr %54, align 4, !tbaa !9
  %1324 = sub nsw i32 %1323, 1
  %1325 = load ptr, ptr %18, align 8, !tbaa !5
  %1326 = load i32, ptr %1325, align 4, !tbaa !9
  %1327 = add nsw i32 %1324, %1326
  %1328 = sext i32 %1327 to i64
  %1329 = getelementptr inbounds float, ptr %1322, i64 %1328
  %1330 = load ptr, ptr %18, align 8, !tbaa !5
  %1331 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_false, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %49, ptr noundef @c_b22, ptr noundef %1320, ptr noundef %1321, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %1329, ptr noundef %1330, ptr noundef %72, ptr noundef %71, ptr noundef %1331, ptr noundef @c__2, ptr noundef %56, ptr noundef %66, ptr noundef %46)
  %1332 = load float, ptr %66, align 4, !tbaa !11
  %1333 = fcmp ogt float %1332, 1.000000e+00
  br i1 %1333, label %1334, label %1383

1334:                                             ; preds = %1310
  %1335 = load ptr, ptr %27, align 8, !tbaa !5
  %1336 = load i32, ptr %54, align 4, !tbaa !9
  %1337 = sub nsw i32 %1336, 1
  %1338 = sext i32 %1337 to i64
  %1339 = getelementptr inbounds float, ptr %1335, i64 %1338
  %1340 = load float, ptr %1339, align 4, !tbaa !11
  store float %1340, ptr %38, align 4, !tbaa !11
  %1341 = load ptr, ptr %27, align 8, !tbaa !5
  %1342 = load i32, ptr %54, align 4, !tbaa !9
  %1343 = sext i32 %1342 to i64
  %1344 = getelementptr inbounds float, ptr %1341, i64 %1343
  %1345 = load float, ptr %1344, align 4, !tbaa !11
  store float %1345, ptr %39, align 4, !tbaa !11
  %1346 = load float, ptr %38, align 4, !tbaa !11
  %1347 = load float, ptr %39, align 4, !tbaa !11
  %1348 = fcmp oge float %1346, %1347
  br i1 %1348, label %1349, label %1351

1349:                                             ; preds = %1334
  %1350 = load float, ptr %38, align 4, !tbaa !11
  br label %1353

1351:                                             ; preds = %1334
  %1352 = load float, ptr %39, align 4, !tbaa !11
  br label %1353

1353:                                             ; preds = %1351, %1349
  %1354 = phi float [ %1350, %1349 ], [ %1352, %1351 ]
  store float %1354, ptr %42, align 4, !tbaa !11
  %1355 = load float, ptr %42, align 4, !tbaa !11
  %1356 = load float, ptr %73, align 4, !tbaa !11
  %1357 = load float, ptr %66, align 4, !tbaa !11
  %1358 = fdiv float %1356, %1357
  %1359 = fcmp ogt float %1355, %1358
  br i1 %1359, label %1360, label %1382

1360:                                             ; preds = %1353
  %1361 = load float, ptr %66, align 4, !tbaa !11
  %1362 = fdiv float 1.000000e+00, %1361
  store float %1362, ptr %76, align 4, !tbaa !11
  %1363 = load float, ptr %76, align 4, !tbaa !11
  %1364 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %1365 = load float, ptr %1364, align 16, !tbaa !11
  %1366 = fmul float %1365, %1363
  store float %1366, ptr %1364, align 16, !tbaa !11
  %1367 = load float, ptr %76, align 4, !tbaa !11
  %1368 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 2
  %1369 = load float, ptr %1368, align 8, !tbaa !11
  %1370 = fmul float %1369, %1367
  store float %1370, ptr %1368, align 8, !tbaa !11
  %1371 = load float, ptr %76, align 4, !tbaa !11
  %1372 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 1
  %1373 = load float, ptr %1372, align 4, !tbaa !11
  %1374 = fmul float %1373, %1371
  store float %1374, ptr %1372, align 4, !tbaa !11
  %1375 = load float, ptr %76, align 4, !tbaa !11
  %1376 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 3
  %1377 = load float, ptr %1376, align 4, !tbaa !11
  %1378 = fmul float %1377, %1375
  store float %1378, ptr %1376, align 4, !tbaa !11
  %1379 = load float, ptr %76, align 4, !tbaa !11
  %1380 = load float, ptr %56, align 4, !tbaa !11
  %1381 = fmul float %1380, %1379
  store float %1381, ptr %56, align 4, !tbaa !11
  br label %1382

1382:                                             ; preds = %1360, %1353
  br label %1383

1383:                                             ; preds = %1382, %1310
  %1384 = load float, ptr %56, align 4, !tbaa !11
  %1385 = fcmp une float %1384, 1.000000e+00
  br i1 %1385, label %1386, label %1398

1386:                                             ; preds = %1383
  %1387 = load ptr, ptr %27, align 8, !tbaa !5
  %1388 = load ptr, ptr %18, align 8, !tbaa !5
  %1389 = load i32, ptr %1388, align 4, !tbaa !9
  %1390 = add nsw i32 %1389, 1
  %1391 = sext i32 %1390 to i64
  %1392 = getelementptr inbounds float, ptr %1387, i64 %1391
  call void @sscal_(ptr noundef %68, ptr noundef %56, ptr noundef %1392, ptr noundef @c__1)
  %1393 = load ptr, ptr %27, align 8, !tbaa !5
  %1394 = load i32, ptr %65, align 4, !tbaa !9
  %1395 = add nsw i32 %1394, 1
  %1396 = sext i32 %1395 to i64
  %1397 = getelementptr inbounds float, ptr %1393, i64 %1396
  call void @sscal_(ptr noundef %68, ptr noundef %56, ptr noundef %1397, ptr noundef @c__1)
  br label %1398

1398:                                             ; preds = %1386, %1383
  %1399 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %1400 = load float, ptr %1399, align 16, !tbaa !11
  %1401 = load ptr, ptr %27, align 8, !tbaa !5
  %1402 = load i32, ptr %54, align 4, !tbaa !9
  %1403 = sub nsw i32 %1402, 1
  %1404 = load ptr, ptr %18, align 8, !tbaa !5
  %1405 = load i32, ptr %1404, align 4, !tbaa !9
  %1406 = add nsw i32 %1403, %1405
  %1407 = sext i32 %1406 to i64
  %1408 = getelementptr inbounds float, ptr %1401, i64 %1407
  store float %1400, ptr %1408, align 4, !tbaa !11
  %1409 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 1
  %1410 = load float, ptr %1409, align 4, !tbaa !11
  %1411 = load ptr, ptr %27, align 8, !tbaa !5
  %1412 = load i32, ptr %54, align 4, !tbaa !9
  %1413 = load ptr, ptr %18, align 8, !tbaa !5
  %1414 = load i32, ptr %1413, align 4, !tbaa !9
  %1415 = add nsw i32 %1412, %1414
  %1416 = sext i32 %1415 to i64
  %1417 = getelementptr inbounds float, ptr %1411, i64 %1416
  store float %1410, ptr %1417, align 4, !tbaa !11
  %1418 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 2
  %1419 = load float, ptr %1418, align 8, !tbaa !11
  %1420 = load ptr, ptr %27, align 8, !tbaa !5
  %1421 = load i32, ptr %54, align 4, !tbaa !9
  %1422 = sub nsw i32 %1421, 1
  %1423 = load i32, ptr %65, align 4, !tbaa !9
  %1424 = add nsw i32 %1422, %1423
  %1425 = sext i32 %1424 to i64
  %1426 = getelementptr inbounds float, ptr %1420, i64 %1425
  store float %1419, ptr %1426, align 4, !tbaa !11
  %1427 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 3
  %1428 = load float, ptr %1427, align 4, !tbaa !11
  %1429 = load ptr, ptr %27, align 8, !tbaa !5
  %1430 = load i32, ptr %54, align 4, !tbaa !9
  %1431 = load i32, ptr %65, align 4, !tbaa !9
  %1432 = add nsw i32 %1430, %1431
  %1433 = sext i32 %1432 to i64
  %1434 = getelementptr inbounds float, ptr %1429, i64 %1433
  store float %1428, ptr %1434, align 4, !tbaa !11
  %1435 = load i32, ptr %54, align 4, !tbaa !9
  %1436 = sub nsw i32 %1435, 2
  store i32 %1436, ptr %35, align 4, !tbaa !9
  %1437 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %1438 = load float, ptr %1437, align 16, !tbaa !11
  %1439 = fneg float %1438
  store float %1439, ptr %38, align 4, !tbaa !11
  %1440 = load ptr, ptr %19, align 8, !tbaa !5
  %1441 = load i32, ptr %54, align 4, !tbaa !9
  %1442 = sub nsw i32 %1441, 1
  %1443 = load i32, ptr %29, align 4, !tbaa !9
  %1444 = mul nsw i32 %1442, %1443
  %1445 = add nsw i32 %1444, 1
  %1446 = sext i32 %1445 to i64
  %1447 = getelementptr inbounds float, ptr %1440, i64 %1446
  %1448 = load ptr, ptr %27, align 8, !tbaa !5
  %1449 = load ptr, ptr %18, align 8, !tbaa !5
  %1450 = load i32, ptr %1449, align 4, !tbaa !9
  %1451 = add nsw i32 %1450, 1
  %1452 = sext i32 %1451 to i64
  %1453 = getelementptr inbounds float, ptr %1448, i64 %1452
  call void @saxpy_(ptr noundef %35, ptr noundef %38, ptr noundef %1447, ptr noundef @c__1, ptr noundef %1453, ptr noundef @c__1)
  %1454 = load i32, ptr %54, align 4, !tbaa !9
  %1455 = sub nsw i32 %1454, 2
  store i32 %1455, ptr %35, align 4, !tbaa !9
  %1456 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 1
  %1457 = load float, ptr %1456, align 4, !tbaa !11
  %1458 = fneg float %1457
  store float %1458, ptr %38, align 4, !tbaa !11
  %1459 = load ptr, ptr %19, align 8, !tbaa !5
  %1460 = load i32, ptr %54, align 4, !tbaa !9
  %1461 = load i32, ptr %29, align 4, !tbaa !9
  %1462 = mul nsw i32 %1460, %1461
  %1463 = add nsw i32 %1462, 1
  %1464 = sext i32 %1463 to i64
  %1465 = getelementptr inbounds float, ptr %1459, i64 %1464
  %1466 = load ptr, ptr %27, align 8, !tbaa !5
  %1467 = load ptr, ptr %18, align 8, !tbaa !5
  %1468 = load i32, ptr %1467, align 4, !tbaa !9
  %1469 = add nsw i32 %1468, 1
  %1470 = sext i32 %1469 to i64
  %1471 = getelementptr inbounds float, ptr %1466, i64 %1470
  call void @saxpy_(ptr noundef %35, ptr noundef %38, ptr noundef %1465, ptr noundef @c__1, ptr noundef %1471, ptr noundef @c__1)
  %1472 = load i32, ptr %54, align 4, !tbaa !9
  %1473 = sub nsw i32 %1472, 2
  store i32 %1473, ptr %35, align 4, !tbaa !9
  %1474 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 2
  %1475 = load float, ptr %1474, align 8, !tbaa !11
  %1476 = fneg float %1475
  store float %1476, ptr %38, align 4, !tbaa !11
  %1477 = load ptr, ptr %19, align 8, !tbaa !5
  %1478 = load i32, ptr %54, align 4, !tbaa !9
  %1479 = sub nsw i32 %1478, 1
  %1480 = load i32, ptr %29, align 4, !tbaa !9
  %1481 = mul nsw i32 %1479, %1480
  %1482 = add nsw i32 %1481, 1
  %1483 = sext i32 %1482 to i64
  %1484 = getelementptr inbounds float, ptr %1477, i64 %1483
  %1485 = load ptr, ptr %27, align 8, !tbaa !5
  %1486 = load i32, ptr %65, align 4, !tbaa !9
  %1487 = add nsw i32 %1486, 1
  %1488 = sext i32 %1487 to i64
  %1489 = getelementptr inbounds float, ptr %1485, i64 %1488
  call void @saxpy_(ptr noundef %35, ptr noundef %38, ptr noundef %1484, ptr noundef @c__1, ptr noundef %1489, ptr noundef @c__1)
  %1490 = load i32, ptr %54, align 4, !tbaa !9
  %1491 = sub nsw i32 %1490, 2
  store i32 %1491, ptr %35, align 4, !tbaa !9
  %1492 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 3
  %1493 = load float, ptr %1492, align 4, !tbaa !11
  %1494 = fneg float %1493
  store float %1494, ptr %38, align 4, !tbaa !11
  %1495 = load ptr, ptr %19, align 8, !tbaa !5
  %1496 = load i32, ptr %54, align 4, !tbaa !9
  %1497 = load i32, ptr %29, align 4, !tbaa !9
  %1498 = mul nsw i32 %1496, %1497
  %1499 = add nsw i32 %1498, 1
  %1500 = sext i32 %1499 to i64
  %1501 = getelementptr inbounds float, ptr %1495, i64 %1500
  %1502 = load ptr, ptr %27, align 8, !tbaa !5
  %1503 = load i32, ptr %65, align 4, !tbaa !9
  %1504 = add nsw i32 %1503, 1
  %1505 = sext i32 %1504 to i64
  %1506 = getelementptr inbounds float, ptr %1502, i64 %1505
  call void @saxpy_(ptr noundef %35, ptr noundef %38, ptr noundef %1501, ptr noundef @c__1, ptr noundef %1506, ptr noundef @c__1)
  br label %1507

1507:                                             ; preds = %1398, %1257
  br label %1508

1508:                                             ; preds = %1507, %1168
  br label %1509

1509:                                             ; preds = %1508
  %1510 = load i32, ptr %54, align 4, !tbaa !9
  %1511 = add nsw i32 %1510, -1
  store i32 %1511, ptr %54, align 4, !tbaa !9
  br label %1161, !llvm.loop !21

1512:                                             ; preds = %1161
  %1513 = load i32, ptr %50, align 4, !tbaa !9
  %1514 = icmp ne i32 %1513, 0
  br i1 %1514, label %1647, label %1515

1515:                                             ; preds = %1512
  %1516 = load ptr, ptr %27, align 8, !tbaa !5
  %1517 = load ptr, ptr %18, align 8, !tbaa !5
  %1518 = load i32, ptr %1517, align 4, !tbaa !9
  %1519 = add nsw i32 %1518, 1
  %1520 = sext i32 %1519 to i64
  %1521 = getelementptr inbounds float, ptr %1516, i64 %1520
  %1522 = load ptr, ptr %23, align 8, !tbaa !5
  %1523 = load i32, ptr %70, align 4, !tbaa !9
  %1524 = sub nsw i32 %1523, 1
  %1525 = load i32, ptr %33, align 4, !tbaa !9
  %1526 = mul nsw i32 %1524, %1525
  %1527 = add nsw i32 %1526, 1
  %1528 = sext i32 %1527 to i64
  %1529 = getelementptr inbounds float, ptr %1522, i64 %1528
  call void @scopy_(ptr noundef %68, ptr noundef %1521, ptr noundef @c__1, ptr noundef %1529, ptr noundef @c__1)
  %1530 = load ptr, ptr %27, align 8, !tbaa !5
  %1531 = load i32, ptr %65, align 4, !tbaa !9
  %1532 = add nsw i32 %1531, 1
  %1533 = sext i32 %1532 to i64
  %1534 = getelementptr inbounds float, ptr %1530, i64 %1533
  %1535 = load ptr, ptr %23, align 8, !tbaa !5
  %1536 = load i32, ptr %70, align 4, !tbaa !9
  %1537 = load i32, ptr %33, align 4, !tbaa !9
  %1538 = mul nsw i32 %1536, %1537
  %1539 = add nsw i32 %1538, 1
  %1540 = sext i32 %1539 to i64
  %1541 = getelementptr inbounds float, ptr %1535, i64 %1540
  call void @scopy_(ptr noundef %68, ptr noundef %1534, ptr noundef @c__1, ptr noundef %1541, ptr noundef @c__1)
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %1542 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %1542, ptr %35, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %1543

1543:                                             ; preds = %1596, %1515
  %1544 = load i32, ptr %55, align 4, !tbaa !9
  %1545 = load i32, ptr %35, align 4, !tbaa !9
  %1546 = icmp sle i32 %1544, %1545
  br i1 %1546, label %1547, label %1599

1547:                                             ; preds = %1543
  %1548 = load float, ptr %43, align 4, !tbaa !11
  store float %1548, ptr %40, align 4, !tbaa !11
  %1549 = load ptr, ptr %23, align 8, !tbaa !5
  %1550 = load i32, ptr %55, align 4, !tbaa !9
  %1551 = load i32, ptr %70, align 4, !tbaa !9
  %1552 = sub nsw i32 %1551, 1
  %1553 = load i32, ptr %33, align 4, !tbaa !9
  %1554 = mul nsw i32 %1552, %1553
  %1555 = add nsw i32 %1550, %1554
  %1556 = sext i32 %1555 to i64
  %1557 = getelementptr inbounds float, ptr %1549, i64 %1556
  %1558 = load float, ptr %1557, align 4, !tbaa !11
  store float %1558, ptr %38, align 4, !tbaa !11
  %1559 = load float, ptr %38, align 4, !tbaa !11
  %1560 = fcmp oge float %1559, 0.000000e+00
  br i1 %1560, label %1561, label %1563

1561:                                             ; preds = %1547
  %1562 = load float, ptr %38, align 4, !tbaa !11
  br label %1566

1563:                                             ; preds = %1547
  %1564 = load float, ptr %38, align 4, !tbaa !11
  %1565 = fneg float %1564
  br label %1566

1566:                                             ; preds = %1563, %1561
  %1567 = phi float [ %1562, %1561 ], [ %1565, %1563 ]
  %1568 = load ptr, ptr %23, align 8, !tbaa !5
  %1569 = load i32, ptr %55, align 4, !tbaa !9
  %1570 = load i32, ptr %70, align 4, !tbaa !9
  %1571 = load i32, ptr %33, align 4, !tbaa !9
  %1572 = mul nsw i32 %1570, %1571
  %1573 = add nsw i32 %1569, %1572
  %1574 = sext i32 %1573 to i64
  %1575 = getelementptr inbounds float, ptr %1568, i64 %1574
  %1576 = load float, ptr %1575, align 4, !tbaa !11
  store float %1576, ptr %39, align 4, !tbaa !11
  %1577 = load float, ptr %39, align 4, !tbaa !11
  %1578 = fcmp oge float %1577, 0.000000e+00
  br i1 %1578, label %1579, label %1581

1579:                                             ; preds = %1566
  %1580 = load float, ptr %39, align 4, !tbaa !11
  br label %1584

1581:                                             ; preds = %1566
  %1582 = load float, ptr %39, align 4, !tbaa !11
  %1583 = fneg float %1582
  br label %1584

1584:                                             ; preds = %1581, %1579
  %1585 = phi float [ %1580, %1579 ], [ %1583, %1581 ]
  %1586 = fadd float %1567, %1585
  store float %1586, ptr %41, align 4, !tbaa !11
  %1587 = load float, ptr %40, align 4, !tbaa !11
  %1588 = load float, ptr %41, align 4, !tbaa !11
  %1589 = fcmp oge float %1587, %1588
  br i1 %1589, label %1590, label %1592

1590:                                             ; preds = %1584
  %1591 = load float, ptr %40, align 4, !tbaa !11
  br label %1594

1592:                                             ; preds = %1584
  %1593 = load float, ptr %41, align 4, !tbaa !11
  br label %1594

1594:                                             ; preds = %1592, %1590
  %1595 = phi float [ %1591, %1590 ], [ %1593, %1592 ]
  store float %1595, ptr %43, align 4, !tbaa !11
  br label %1596

1596:                                             ; preds = %1594
  %1597 = load i32, ptr %55, align 4, !tbaa !9
  %1598 = add nsw i32 %1597, 1
  store i32 %1598, ptr %55, align 4, !tbaa !9
  br label %1543, !llvm.loop !22

1599:                                             ; preds = %1543
  %1600 = load float, ptr %43, align 4, !tbaa !11
  %1601 = fdiv float 1.000000e+00, %1600
  store float %1601, ptr %58, align 4, !tbaa !11
  %1602 = load ptr, ptr %23, align 8, !tbaa !5
  %1603 = load i32, ptr %70, align 4, !tbaa !9
  %1604 = sub nsw i32 %1603, 1
  %1605 = load i32, ptr %33, align 4, !tbaa !9
  %1606 = mul nsw i32 %1604, %1605
  %1607 = add nsw i32 %1606, 1
  %1608 = sext i32 %1607 to i64
  %1609 = getelementptr inbounds float, ptr %1602, i64 %1608
  call void @sscal_(ptr noundef %68, ptr noundef %58, ptr noundef %1609, ptr noundef @c__1)
  %1610 = load ptr, ptr %23, align 8, !tbaa !5
  %1611 = load i32, ptr %70, align 4, !tbaa !9
  %1612 = load i32, ptr %33, align 4, !tbaa !9
  %1613 = mul nsw i32 %1611, %1612
  %1614 = add nsw i32 %1613, 1
  %1615 = sext i32 %1614 to i64
  %1616 = getelementptr inbounds float, ptr %1610, i64 %1615
  call void @sscal_(ptr noundef %68, ptr noundef %58, ptr noundef %1616, ptr noundef @c__1)
  %1617 = load ptr, ptr %18, align 8, !tbaa !5
  %1618 = load i32, ptr %1617, align 4, !tbaa !9
  store i32 %1618, ptr %35, align 4, !tbaa !9
  %1619 = load i32, ptr %68, align 4, !tbaa !9
  %1620 = add nsw i32 %1619, 1
  store i32 %1620, ptr %55, align 4, !tbaa !9
  br label %1621

1621:                                             ; preds = %1643, %1599
  %1622 = load i32, ptr %55, align 4, !tbaa !9
  %1623 = load i32, ptr %35, align 4, !tbaa !9
  %1624 = icmp sle i32 %1622, %1623
  br i1 %1624, label %1625, label %1646

1625:                                             ; preds = %1621
  %1626 = load ptr, ptr %23, align 8, !tbaa !5
  %1627 = load i32, ptr %55, align 4, !tbaa !9
  %1628 = load i32, ptr %70, align 4, !tbaa !9
  %1629 = sub nsw i32 %1628, 1
  %1630 = load i32, ptr %33, align 4, !tbaa !9
  %1631 = mul nsw i32 %1629, %1630
  %1632 = add nsw i32 %1627, %1631
  %1633 = sext i32 %1632 to i64
  %1634 = getelementptr inbounds float, ptr %1626, i64 %1633
  store float 0.000000e+00, ptr %1634, align 4, !tbaa !11
  %1635 = load ptr, ptr %23, align 8, !tbaa !5
  %1636 = load i32, ptr %55, align 4, !tbaa !9
  %1637 = load i32, ptr %70, align 4, !tbaa !9
  %1638 = load i32, ptr %33, align 4, !tbaa !9
  %1639 = mul nsw i32 %1637, %1638
  %1640 = add nsw i32 %1636, %1639
  %1641 = sext i32 %1640 to i64
  %1642 = getelementptr inbounds float, ptr %1635, i64 %1641
  store float 0.000000e+00, ptr %1642, align 4, !tbaa !11
  br label %1643

1643:                                             ; preds = %1625
  %1644 = load i32, ptr %55, align 4, !tbaa !9
  %1645 = add nsw i32 %1644, 1
  store i32 %1645, ptr %55, align 4, !tbaa !9
  br label %1621, !llvm.loop !23

1646:                                             ; preds = %1621
  br label %1818

1647:                                             ; preds = %1512
  %1648 = load i32, ptr %68, align 4, !tbaa !9
  %1649 = icmp sgt i32 %1648, 2
  br i1 %1649, label %1650, label %1707

1650:                                             ; preds = %1647
  %1651 = load i32, ptr %68, align 4, !tbaa !9
  %1652 = sub nsw i32 %1651, 2
  store i32 %1652, ptr %35, align 4, !tbaa !9
  %1653 = load ptr, ptr %18, align 8, !tbaa !5
  %1654 = load ptr, ptr %23, align 8, !tbaa !5
  %1655 = load i32, ptr %34, align 4, !tbaa !9
  %1656 = sext i32 %1655 to i64
  %1657 = getelementptr inbounds float, ptr %1654, i64 %1656
  %1658 = load ptr, ptr %24, align 8, !tbaa !5
  %1659 = load ptr, ptr %27, align 8, !tbaa !5
  %1660 = load ptr, ptr %18, align 8, !tbaa !5
  %1661 = load i32, ptr %1660, align 4, !tbaa !9
  %1662 = add nsw i32 %1661, 1
  %1663 = sext i32 %1662 to i64
  %1664 = getelementptr inbounds float, ptr %1659, i64 %1663
  %1665 = load ptr, ptr %27, align 8, !tbaa !5
  %1666 = load i32, ptr %68, align 4, !tbaa !9
  %1667 = sub nsw i32 %1666, 1
  %1668 = load ptr, ptr %18, align 8, !tbaa !5
  %1669 = load i32, ptr %1668, align 4, !tbaa !9
  %1670 = add nsw i32 %1667, %1669
  %1671 = sext i32 %1670 to i64
  %1672 = getelementptr inbounds float, ptr %1665, i64 %1671
  %1673 = load ptr, ptr %23, align 8, !tbaa !5
  %1674 = load i32, ptr %68, align 4, !tbaa !9
  %1675 = sub nsw i32 %1674, 1
  %1676 = load i32, ptr %33, align 4, !tbaa !9
  %1677 = mul nsw i32 %1675, %1676
  %1678 = add nsw i32 %1677, 1
  %1679 = sext i32 %1678 to i64
  %1680 = getelementptr inbounds float, ptr %1673, i64 %1679
  call void @sgemv_(ptr noundef @.str.8, ptr noundef %1653, ptr noundef %35, ptr noundef @c_b22, ptr noundef %1657, ptr noundef %1658, ptr noundef %1664, ptr noundef @c__1, ptr noundef %1672, ptr noundef %1680, ptr noundef @c__1)
  %1681 = load i32, ptr %68, align 4, !tbaa !9
  %1682 = sub nsw i32 %1681, 2
  store i32 %1682, ptr %35, align 4, !tbaa !9
  %1683 = load ptr, ptr %18, align 8, !tbaa !5
  %1684 = load ptr, ptr %23, align 8, !tbaa !5
  %1685 = load i32, ptr %34, align 4, !tbaa !9
  %1686 = sext i32 %1685 to i64
  %1687 = getelementptr inbounds float, ptr %1684, i64 %1686
  %1688 = load ptr, ptr %24, align 8, !tbaa !5
  %1689 = load ptr, ptr %27, align 8, !tbaa !5
  %1690 = load i32, ptr %65, align 4, !tbaa !9
  %1691 = add nsw i32 %1690, 1
  %1692 = sext i32 %1691 to i64
  %1693 = getelementptr inbounds float, ptr %1689, i64 %1692
  %1694 = load ptr, ptr %27, align 8, !tbaa !5
  %1695 = load i32, ptr %68, align 4, !tbaa !9
  %1696 = load i32, ptr %65, align 4, !tbaa !9
  %1697 = add nsw i32 %1695, %1696
  %1698 = sext i32 %1697 to i64
  %1699 = getelementptr inbounds float, ptr %1694, i64 %1698
  %1700 = load ptr, ptr %23, align 8, !tbaa !5
  %1701 = load i32, ptr %68, align 4, !tbaa !9
  %1702 = load i32, ptr %33, align 4, !tbaa !9
  %1703 = mul nsw i32 %1701, %1702
  %1704 = add nsw i32 %1703, 1
  %1705 = sext i32 %1704 to i64
  %1706 = getelementptr inbounds float, ptr %1700, i64 %1705
  call void @sgemv_(ptr noundef @.str.8, ptr noundef %1683, ptr noundef %35, ptr noundef @c_b22, ptr noundef %1687, ptr noundef %1688, ptr noundef %1693, ptr noundef @c__1, ptr noundef %1699, ptr noundef %1706, ptr noundef @c__1)
  br label %1739

1707:                                             ; preds = %1647
  %1708 = load ptr, ptr %18, align 8, !tbaa !5
  %1709 = load ptr, ptr %27, align 8, !tbaa !5
  %1710 = load i32, ptr %68, align 4, !tbaa !9
  %1711 = sub nsw i32 %1710, 1
  %1712 = load ptr, ptr %18, align 8, !tbaa !5
  %1713 = load i32, ptr %1712, align 4, !tbaa !9
  %1714 = add nsw i32 %1711, %1713
  %1715 = sext i32 %1714 to i64
  %1716 = getelementptr inbounds float, ptr %1709, i64 %1715
  %1717 = load ptr, ptr %23, align 8, !tbaa !5
  %1718 = load i32, ptr %68, align 4, !tbaa !9
  %1719 = sub nsw i32 %1718, 1
  %1720 = load i32, ptr %33, align 4, !tbaa !9
  %1721 = mul nsw i32 %1719, %1720
  %1722 = add nsw i32 %1721, 1
  %1723 = sext i32 %1722 to i64
  %1724 = getelementptr inbounds float, ptr %1717, i64 %1723
  call void @sscal_(ptr noundef %1708, ptr noundef %1716, ptr noundef %1724, ptr noundef @c__1)
  %1725 = load ptr, ptr %18, align 8, !tbaa !5
  %1726 = load ptr, ptr %27, align 8, !tbaa !5
  %1727 = load i32, ptr %68, align 4, !tbaa !9
  %1728 = load i32, ptr %65, align 4, !tbaa !9
  %1729 = add nsw i32 %1727, %1728
  %1730 = sext i32 %1729 to i64
  %1731 = getelementptr inbounds float, ptr %1726, i64 %1730
  %1732 = load ptr, ptr %23, align 8, !tbaa !5
  %1733 = load i32, ptr %68, align 4, !tbaa !9
  %1734 = load i32, ptr %33, align 4, !tbaa !9
  %1735 = mul nsw i32 %1733, %1734
  %1736 = add nsw i32 %1735, 1
  %1737 = sext i32 %1736 to i64
  %1738 = getelementptr inbounds float, ptr %1732, i64 %1737
  call void @sscal_(ptr noundef %1725, ptr noundef %1731, ptr noundef %1738, ptr noundef @c__1)
  br label %1739

1739:                                             ; preds = %1707, %1650
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %1740 = load ptr, ptr %18, align 8, !tbaa !5
  %1741 = load i32, ptr %1740, align 4, !tbaa !9
  store i32 %1741, ptr %35, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %1742

1742:                                             ; preds = %1795, %1739
  %1743 = load i32, ptr %55, align 4, !tbaa !9
  %1744 = load i32, ptr %35, align 4, !tbaa !9
  %1745 = icmp sle i32 %1743, %1744
  br i1 %1745, label %1746, label %1798

1746:                                             ; preds = %1742
  %1747 = load float, ptr %43, align 4, !tbaa !11
  store float %1747, ptr %40, align 4, !tbaa !11
  %1748 = load ptr, ptr %23, align 8, !tbaa !5
  %1749 = load i32, ptr %55, align 4, !tbaa !9
  %1750 = load i32, ptr %68, align 4, !tbaa !9
  %1751 = sub nsw i32 %1750, 1
  %1752 = load i32, ptr %33, align 4, !tbaa !9
  %1753 = mul nsw i32 %1751, %1752
  %1754 = add nsw i32 %1749, %1753
  %1755 = sext i32 %1754 to i64
  %1756 = getelementptr inbounds float, ptr %1748, i64 %1755
  %1757 = load float, ptr %1756, align 4, !tbaa !11
  store float %1757, ptr %38, align 4, !tbaa !11
  %1758 = load float, ptr %38, align 4, !tbaa !11
  %1759 = fcmp oge float %1758, 0.000000e+00
  br i1 %1759, label %1760, label %1762

1760:                                             ; preds = %1746
  %1761 = load float, ptr %38, align 4, !tbaa !11
  br label %1765

1762:                                             ; preds = %1746
  %1763 = load float, ptr %38, align 4, !tbaa !11
  %1764 = fneg float %1763
  br label %1765

1765:                                             ; preds = %1762, %1760
  %1766 = phi float [ %1761, %1760 ], [ %1764, %1762 ]
  %1767 = load ptr, ptr %23, align 8, !tbaa !5
  %1768 = load i32, ptr %55, align 4, !tbaa !9
  %1769 = load i32, ptr %68, align 4, !tbaa !9
  %1770 = load i32, ptr %33, align 4, !tbaa !9
  %1771 = mul nsw i32 %1769, %1770
  %1772 = add nsw i32 %1768, %1771
  %1773 = sext i32 %1772 to i64
  %1774 = getelementptr inbounds float, ptr %1767, i64 %1773
  %1775 = load float, ptr %1774, align 4, !tbaa !11
  store float %1775, ptr %39, align 4, !tbaa !11
  %1776 = load float, ptr %39, align 4, !tbaa !11
  %1777 = fcmp oge float %1776, 0.000000e+00
  br i1 %1777, label %1778, label %1780

1778:                                             ; preds = %1765
  %1779 = load float, ptr %39, align 4, !tbaa !11
  br label %1783

1780:                                             ; preds = %1765
  %1781 = load float, ptr %39, align 4, !tbaa !11
  %1782 = fneg float %1781
  br label %1783

1783:                                             ; preds = %1780, %1778
  %1784 = phi float [ %1779, %1778 ], [ %1782, %1780 ]
  %1785 = fadd float %1766, %1784
  store float %1785, ptr %41, align 4, !tbaa !11
  %1786 = load float, ptr %40, align 4, !tbaa !11
  %1787 = load float, ptr %41, align 4, !tbaa !11
  %1788 = fcmp oge float %1786, %1787
  br i1 %1788, label %1789, label %1791

1789:                                             ; preds = %1783
  %1790 = load float, ptr %40, align 4, !tbaa !11
  br label %1793

1791:                                             ; preds = %1783
  %1792 = load float, ptr %41, align 4, !tbaa !11
  br label %1793

1793:                                             ; preds = %1791, %1789
  %1794 = phi float [ %1790, %1789 ], [ %1792, %1791 ]
  store float %1794, ptr %43, align 4, !tbaa !11
  br label %1795

1795:                                             ; preds = %1793
  %1796 = load i32, ptr %55, align 4, !tbaa !9
  %1797 = add nsw i32 %1796, 1
  store i32 %1797, ptr %55, align 4, !tbaa !9
  br label %1742, !llvm.loop !24

1798:                                             ; preds = %1742
  %1799 = load float, ptr %43, align 4, !tbaa !11
  %1800 = fdiv float 1.000000e+00, %1799
  store float %1800, ptr %58, align 4, !tbaa !11
  %1801 = load ptr, ptr %18, align 8, !tbaa !5
  %1802 = load ptr, ptr %23, align 8, !tbaa !5
  %1803 = load i32, ptr %68, align 4, !tbaa !9
  %1804 = sub nsw i32 %1803, 1
  %1805 = load i32, ptr %33, align 4, !tbaa !9
  %1806 = mul nsw i32 %1804, %1805
  %1807 = add nsw i32 %1806, 1
  %1808 = sext i32 %1807 to i64
  %1809 = getelementptr inbounds float, ptr %1802, i64 %1808
  call void @sscal_(ptr noundef %1801, ptr noundef %58, ptr noundef %1809, ptr noundef @c__1)
  %1810 = load ptr, ptr %18, align 8, !tbaa !5
  %1811 = load ptr, ptr %23, align 8, !tbaa !5
  %1812 = load i32, ptr %68, align 4, !tbaa !9
  %1813 = load i32, ptr %33, align 4, !tbaa !9
  %1814 = mul nsw i32 %1812, %1813
  %1815 = add nsw i32 %1814, 1
  %1816 = sext i32 %1815 to i64
  %1817 = getelementptr inbounds float, ptr %1811, i64 %1816
  call void @sscal_(ptr noundef %1810, ptr noundef %58, ptr noundef %1817, ptr noundef @c__1)
  br label %1818

1818:                                             ; preds = %1798, %1646
  br label %1819

1819:                                             ; preds = %1818, %983
  %1820 = load i32, ptr %70, align 4, !tbaa !9
  %1821 = add nsw i32 %1820, -1
  store i32 %1821, ptr %70, align 4, !tbaa !9
  %1822 = load i32, ptr %69, align 4, !tbaa !9
  %1823 = icmp ne i32 %1822, 0
  br i1 %1823, label %1824, label %1827

1824:                                             ; preds = %1819
  %1825 = load i32, ptr %70, align 4, !tbaa !9
  %1826 = add nsw i32 %1825, -1
  store i32 %1826, ptr %70, align 4, !tbaa !9
  br label %1827

1827:                                             ; preds = %1824, %1819
  br label %1828

1828:                                             ; preds = %1827, %459, %449, %417
  %1829 = load i32, ptr %69, align 4, !tbaa !9
  %1830 = icmp eq i32 %1829, 1
  br i1 %1830, label %1831, label %1832

1831:                                             ; preds = %1828
  store i32 0, ptr %69, align 4, !tbaa !9
  br label %1832

1832:                                             ; preds = %1831, %1828
  %1833 = load i32, ptr %69, align 4, !tbaa !9
  %1834 = icmp eq i32 %1833, -1
  br i1 %1834, label %1835, label %1836

1835:                                             ; preds = %1832
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1836

1836:                                             ; preds = %1835, %1832
  br label %1837

1837:                                             ; preds = %1836
  %1838 = load i32, ptr %68, align 4, !tbaa !9
  %1839 = add nsw i32 %1838, -1
  store i32 %1839, ptr %68, align 4, !tbaa !9
  br label %411, !llvm.loop !25

1840:                                             ; preds = %411
  br label %1841

1841:                                             ; preds = %1840, %400
  %1842 = load i32, ptr %59, align 4, !tbaa !9
  %1843 = icmp ne i32 %1842, 0
  br i1 %1843, label %1844, label %3744

1844:                                             ; preds = %1841
  store i32 0, ptr %69, align 4, !tbaa !9
  store i32 1, ptr %70, align 4, !tbaa !9
  %1845 = load ptr, ptr %18, align 8, !tbaa !5
  %1846 = load i32, ptr %1845, align 4, !tbaa !9
  store i32 %1846, ptr %35, align 4, !tbaa !9
  store i32 1, ptr %68, align 4, !tbaa !9
  br label %1847

1847:                                             ; preds = %3740, %1844
  %1848 = load i32, ptr %68, align 4, !tbaa !9
  %1849 = load i32, ptr %35, align 4, !tbaa !9
  %1850 = icmp sle i32 %1848, %1849
  br i1 %1850, label %1851, label %3743

1851:                                             ; preds = %1847
  %1852 = load i32, ptr %69, align 4, !tbaa !9
  %1853 = icmp eq i32 %1852, -1
  br i1 %1853, label %1854, label %1855

1854:                                             ; preds = %1851
  br label %3731

1855:                                             ; preds = %1851
  %1856 = load i32, ptr %68, align 4, !tbaa !9
  %1857 = load ptr, ptr %18, align 8, !tbaa !5
  %1858 = load i32, ptr %1857, align 4, !tbaa !9
  %1859 = icmp eq i32 %1856, %1858
  br i1 %1859, label %1860, label %1861

1860:                                             ; preds = %1855
  br label %1875

1861:                                             ; preds = %1855
  %1862 = load ptr, ptr %19, align 8, !tbaa !5
  %1863 = load i32, ptr %68, align 4, !tbaa !9
  %1864 = add nsw i32 %1863, 1
  %1865 = load i32, ptr %68, align 4, !tbaa !9
  %1866 = load i32, ptr %29, align 4, !tbaa !9
  %1867 = mul nsw i32 %1865, %1866
  %1868 = add nsw i32 %1864, %1867
  %1869 = sext i32 %1868 to i64
  %1870 = getelementptr inbounds float, ptr %1862, i64 %1869
  %1871 = load float, ptr %1870, align 4, !tbaa !11
  %1872 = fcmp oeq float %1871, 0.000000e+00
  br i1 %1872, label %1873, label %1874

1873:                                             ; preds = %1861
  br label %1875

1874:                                             ; preds = %1861
  store i32 1, ptr %69, align 4, !tbaa !9
  br label %1875

1875:                                             ; preds = %1874, %1873, %1860
  %1876 = load i32, ptr %62, align 4, !tbaa !9
  %1877 = icmp ne i32 %1876, 0
  br i1 %1877, label %1878, label %1887

1878:                                             ; preds = %1875
  %1879 = load ptr, ptr %17, align 8, !tbaa !5
  %1880 = load i32, ptr %68, align 4, !tbaa !9
  %1881 = sext i32 %1880 to i64
  %1882 = getelementptr inbounds i32, ptr %1879, i64 %1881
  %1883 = load i32, ptr %1882, align 4, !tbaa !9
  %1884 = icmp ne i32 %1883, 0
  br i1 %1884, label %1886, label %1885

1885:                                             ; preds = %1878
  br label %3731

1886:                                             ; preds = %1878
  br label %1887

1887:                                             ; preds = %1886, %1875
  %1888 = load ptr, ptr %19, align 8, !tbaa !5
  %1889 = load i32, ptr %68, align 4, !tbaa !9
  %1890 = load i32, ptr %68, align 4, !tbaa !9
  %1891 = load i32, ptr %29, align 4, !tbaa !9
  %1892 = mul nsw i32 %1890, %1891
  %1893 = add nsw i32 %1889, %1892
  %1894 = sext i32 %1893 to i64
  %1895 = getelementptr inbounds float, ptr %1888, i64 %1894
  %1896 = load float, ptr %1895, align 4, !tbaa !11
  store float %1896, ptr %72, align 4, !tbaa !11
  store float 0.000000e+00, ptr %71, align 4, !tbaa !11
  %1897 = load i32, ptr %69, align 4, !tbaa !9
  %1898 = icmp ne i32 %1897, 0
  br i1 %1898, label %1899, label %1944

1899:                                             ; preds = %1887
  %1900 = load ptr, ptr %19, align 8, !tbaa !5
  %1901 = load i32, ptr %68, align 4, !tbaa !9
  %1902 = load i32, ptr %68, align 4, !tbaa !9
  %1903 = add nsw i32 %1902, 1
  %1904 = load i32, ptr %29, align 4, !tbaa !9
  %1905 = mul nsw i32 %1903, %1904
  %1906 = add nsw i32 %1901, %1905
  %1907 = sext i32 %1906 to i64
  %1908 = getelementptr inbounds float, ptr %1900, i64 %1907
  %1909 = load float, ptr %1908, align 4, !tbaa !11
  store float %1909, ptr %38, align 4, !tbaa !11
  %1910 = load float, ptr %38, align 4, !tbaa !11
  %1911 = fcmp oge float %1910, 0.000000e+00
  br i1 %1911, label %1912, label %1914

1912:                                             ; preds = %1899
  %1913 = load float, ptr %38, align 4, !tbaa !11
  br label %1917

1914:                                             ; preds = %1899
  %1915 = load float, ptr %38, align 4, !tbaa !11
  %1916 = fneg float %1915
  br label %1917

1917:                                             ; preds = %1914, %1912
  %1918 = phi float [ %1913, %1912 ], [ %1916, %1914 ]
  %1919 = fpext float %1918 to double
  %1920 = call double @sqrt(double noundef %1919) #4
  %1921 = load ptr, ptr %19, align 8, !tbaa !5
  %1922 = load i32, ptr %68, align 4, !tbaa !9
  %1923 = add nsw i32 %1922, 1
  %1924 = load i32, ptr %68, align 4, !tbaa !9
  %1925 = load i32, ptr %29, align 4, !tbaa !9
  %1926 = mul nsw i32 %1924, %1925
  %1927 = add nsw i32 %1923, %1926
  %1928 = sext i32 %1927 to i64
  %1929 = getelementptr inbounds float, ptr %1921, i64 %1928
  %1930 = load float, ptr %1929, align 4, !tbaa !11
  store float %1930, ptr %39, align 4, !tbaa !11
  %1931 = load float, ptr %39, align 4, !tbaa !11
  %1932 = fcmp oge float %1931, 0.000000e+00
  br i1 %1932, label %1933, label %1935

1933:                                             ; preds = %1917
  %1934 = load float, ptr %39, align 4, !tbaa !11
  br label %1938

1935:                                             ; preds = %1917
  %1936 = load float, ptr %39, align 4, !tbaa !11
  %1937 = fneg float %1936
  br label %1938

1938:                                             ; preds = %1935, %1933
  %1939 = phi float [ %1934, %1933 ], [ %1937, %1935 ]
  %1940 = fpext float %1939 to double
  %1941 = call double @sqrt(double noundef %1940) #4
  %1942 = fmul double %1920, %1941
  %1943 = fptrunc double %1942 to float
  store float %1943, ptr %71, align 4, !tbaa !11
  br label %1944

1944:                                             ; preds = %1938, %1887
  %1945 = load float, ptr %77, align 4, !tbaa !11
  %1946 = load float, ptr %72, align 4, !tbaa !11
  %1947 = fcmp oge float %1946, 0.000000e+00
  br i1 %1947, label %1948, label %1950

1948:                                             ; preds = %1944
  %1949 = load float, ptr %72, align 4, !tbaa !11
  br label %1953

1950:                                             ; preds = %1944
  %1951 = load float, ptr %72, align 4, !tbaa !11
  %1952 = fneg float %1951
  br label %1953

1953:                                             ; preds = %1950, %1948
  %1954 = phi float [ %1949, %1948 ], [ %1952, %1950 ]
  %1955 = load float, ptr %71, align 4, !tbaa !11
  %1956 = fcmp oge float %1955, 0.000000e+00
  br i1 %1956, label %1957, label %1959

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

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

1962:                                             ; preds = %1959, %1957
  %1963 = phi float [ %1958, %1957 ], [ %1961, %1959 ]
  %1964 = fadd float %1954, %1963
  %1965 = fmul float %1945, %1964
  store float %1965, ptr %38, align 4, !tbaa !11
  %1966 = load float, ptr %38, align 4, !tbaa !11
  %1967 = load float, ptr %75, align 4, !tbaa !11
  %1968 = fcmp oge float %1966, %1967
  br i1 %1968, label %1969, label %1971

1969:                                             ; preds = %1962
  %1970 = load float, ptr %38, align 4, !tbaa !11
  br label %1973

1971:                                             ; preds = %1962
  %1972 = load float, ptr %75, align 4, !tbaa !11
  br label %1973

1973:                                             ; preds = %1971, %1969
  %1974 = phi float [ %1970, %1969 ], [ %1972, %1971 ]
  store float %1974, ptr %49, align 4, !tbaa !11
  %1975 = load i32, ptr %69, align 4, !tbaa !9
  %1976 = icmp eq i32 %1975, 0
  br i1 %1976, label %1977, label %2581

1977:                                             ; preds = %1973
  %1978 = load ptr, ptr %27, align 8, !tbaa !5
  %1979 = load i32, ptr %68, align 4, !tbaa !9
  %1980 = load ptr, ptr %18, align 8, !tbaa !5
  %1981 = load i32, ptr %1980, align 4, !tbaa !9
  %1982 = add nsw i32 %1979, %1981
  %1983 = sext i32 %1982 to i64
  %1984 = getelementptr inbounds float, ptr %1978, i64 %1983
  store float 1.000000e+00, ptr %1984, align 4, !tbaa !11
  %1985 = load ptr, ptr %18, align 8, !tbaa !5
  %1986 = load i32, ptr %1985, align 4, !tbaa !9
  store i32 %1986, ptr %36, align 4, !tbaa !9
  %1987 = load i32, ptr %68, align 4, !tbaa !9
  %1988 = add nsw i32 %1987, 1
  store i32 %1988, ptr %55, align 4, !tbaa !9
  br label %1989

1989:                                             ; preds = %2011, %1977
  %1990 = load i32, ptr %55, align 4, !tbaa !9
  %1991 = load i32, ptr %36, align 4, !tbaa !9
  %1992 = icmp sle i32 %1990, %1991
  br i1 %1992, label %1993, label %2014

1993:                                             ; preds = %1989
  %1994 = load ptr, ptr %19, align 8, !tbaa !5
  %1995 = load i32, ptr %68, align 4, !tbaa !9
  %1996 = load i32, ptr %55, align 4, !tbaa !9
  %1997 = load i32, ptr %29, align 4, !tbaa !9
  %1998 = mul nsw i32 %1996, %1997
  %1999 = add nsw i32 %1995, %1998
  %2000 = sext i32 %1999 to i64
  %2001 = getelementptr inbounds float, ptr %1994, i64 %2000
  %2002 = load float, ptr %2001, align 4, !tbaa !11
  %2003 = fneg float %2002
  %2004 = load ptr, ptr %27, align 8, !tbaa !5
  %2005 = load i32, ptr %55, align 4, !tbaa !9
  %2006 = load ptr, ptr %18, align 8, !tbaa !5
  %2007 = load i32, ptr %2006, align 4, !tbaa !9
  %2008 = add nsw i32 %2005, %2007
  %2009 = sext i32 %2008 to i64
  %2010 = getelementptr inbounds float, ptr %2004, i64 %2009
  store float %2003, ptr %2010, align 4, !tbaa !11
  br label %2011

2011:                                             ; preds = %1993
  %2012 = load i32, ptr %55, align 4, !tbaa !9
  %2013 = add nsw i32 %2012, 1
  store i32 %2013, ptr %55, align 4, !tbaa !9
  br label %1989, !llvm.loop !26

2014:                                             ; preds = %1989
  store float 1.000000e+00, ptr %51, align 4, !tbaa !11
  %2015 = load float, ptr %73, align 4, !tbaa !11
  store float %2015, ptr %61, align 4, !tbaa !11
  %2016 = load i32, ptr %68, align 4, !tbaa !9
  %2017 = add nsw i32 %2016, 1
  store i32 %2017, ptr %52, align 4, !tbaa !9
  %2018 = load ptr, ptr %18, align 8, !tbaa !5
  %2019 = load i32, ptr %2018, align 4, !tbaa !9
  store i32 %2019, ptr %36, align 4, !tbaa !9
  %2020 = load i32, ptr %68, align 4, !tbaa !9
  %2021 = add nsw i32 %2020, 1
  store i32 %2021, ptr %54, align 4, !tbaa !9
  br label %2022

2022:                                             ; preds = %2406, %2014
  %2023 = load i32, ptr %54, align 4, !tbaa !9
  %2024 = load i32, ptr %36, align 4, !tbaa !9
  %2025 = icmp sle i32 %2023, %2024
  br i1 %2025, label %2026, label %2409

2026:                                             ; preds = %2022
  %2027 = load i32, ptr %54, align 4, !tbaa !9
  %2028 = load i32, ptr %52, align 4, !tbaa !9
  %2029 = icmp slt i32 %2027, %2028
  br i1 %2029, label %2030, label %2031

2030:                                             ; preds = %2026
  br label %2405

2031:                                             ; preds = %2026
  %2032 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %2032, ptr %63, align 4, !tbaa !9
  %2033 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %2033, ptr %64, align 4, !tbaa !9
  %2034 = load i32, ptr %54, align 4, !tbaa !9
  %2035 = add nsw i32 %2034, 1
  store i32 %2035, ptr %52, align 4, !tbaa !9
  %2036 = load i32, ptr %54, align 4, !tbaa !9
  %2037 = load ptr, ptr %18, align 8, !tbaa !5
  %2038 = load i32, ptr %2037, align 4, !tbaa !9
  %2039 = icmp slt i32 %2036, %2038
  br i1 %2039, label %2040, label %2058

2040:                                             ; preds = %2031
  %2041 = load ptr, ptr %19, align 8, !tbaa !5
  %2042 = load i32, ptr %54, align 4, !tbaa !9
  %2043 = add nsw i32 %2042, 1
  %2044 = load i32, ptr %54, align 4, !tbaa !9
  %2045 = load i32, ptr %29, align 4, !tbaa !9
  %2046 = mul nsw i32 %2044, %2045
  %2047 = add nsw i32 %2043, %2046
  %2048 = sext i32 %2047 to i64
  %2049 = getelementptr inbounds float, ptr %2041, i64 %2048
  %2050 = load float, ptr %2049, align 4, !tbaa !11
  %2051 = fcmp une float %2050, 0.000000e+00
  br i1 %2051, label %2052, label %2057

2052:                                             ; preds = %2040
  %2053 = load i32, ptr %54, align 4, !tbaa !9
  %2054 = add nsw i32 %2053, 1
  store i32 %2054, ptr %64, align 4, !tbaa !9
  %2055 = load i32, ptr %54, align 4, !tbaa !9
  %2056 = add nsw i32 %2055, 2
  store i32 %2056, ptr %52, align 4, !tbaa !9
  br label %2057

2057:                                             ; preds = %2052, %2040
  br label %2058

2058:                                             ; preds = %2057, %2031
  %2059 = load i32, ptr %63, align 4, !tbaa !9
  %2060 = load i32, ptr %64, align 4, !tbaa !9
  %2061 = icmp eq i32 %2059, %2060
  br i1 %2061, label %2062, label %2190

2062:                                             ; preds = %2058
  %2063 = load ptr, ptr %27, align 8, !tbaa !5
  %2064 = load i32, ptr %54, align 4, !tbaa !9
  %2065 = sext i32 %2064 to i64
  %2066 = getelementptr inbounds float, ptr %2063, i64 %2065
  %2067 = load float, ptr %2066, align 4, !tbaa !11
  %2068 = load float, ptr %61, align 4, !tbaa !11
  %2069 = fcmp ogt float %2067, %2068
  br i1 %2069, label %2070, label %2086

2070:                                             ; preds = %2062
  %2071 = load float, ptr %51, align 4, !tbaa !11
  %2072 = fdiv float 1.000000e+00, %2071
  store float %2072, ptr %76, align 4, !tbaa !11
  %2073 = load ptr, ptr %18, align 8, !tbaa !5
  %2074 = load i32, ptr %2073, align 4, !tbaa !9
  %2075 = load i32, ptr %68, align 4, !tbaa !9
  %2076 = sub nsw i32 %2074, %2075
  %2077 = add nsw i32 %2076, 1
  store i32 %2077, ptr %37, align 4, !tbaa !9
  %2078 = load ptr, ptr %27, align 8, !tbaa !5
  %2079 = load i32, ptr %68, align 4, !tbaa !9
  %2080 = load ptr, ptr %18, align 8, !tbaa !5
  %2081 = load i32, ptr %2080, align 4, !tbaa !9
  %2082 = add nsw i32 %2079, %2081
  %2083 = sext i32 %2082 to i64
  %2084 = getelementptr inbounds float, ptr %2078, i64 %2083
  call void @sscal_(ptr noundef %37, ptr noundef %76, ptr noundef %2084, ptr noundef @c__1)
  store float 1.000000e+00, ptr %51, align 4, !tbaa !11
  %2085 = load float, ptr %73, align 4, !tbaa !11
  store float %2085, ptr %61, align 4, !tbaa !11
  br label %2086

2086:                                             ; preds = %2070, %2062
  %2087 = load i32, ptr %54, align 4, !tbaa !9
  %2088 = load i32, ptr %68, align 4, !tbaa !9
  %2089 = sub nsw i32 %2087, %2088
  %2090 = sub nsw i32 %2089, 1
  store i32 %2090, ptr %37, align 4, !tbaa !9
  %2091 = load ptr, ptr %19, align 8, !tbaa !5
  %2092 = load i32, ptr %68, align 4, !tbaa !9
  %2093 = add nsw i32 %2092, 1
  %2094 = load i32, ptr %54, align 4, !tbaa !9
  %2095 = load i32, ptr %29, align 4, !tbaa !9
  %2096 = mul nsw i32 %2094, %2095
  %2097 = add nsw i32 %2093, %2096
  %2098 = sext i32 %2097 to i64
  %2099 = getelementptr inbounds float, ptr %2091, i64 %2098
  %2100 = load ptr, ptr %27, align 8, !tbaa !5
  %2101 = load i32, ptr %68, align 4, !tbaa !9
  %2102 = add nsw i32 %2101, 1
  %2103 = load ptr, ptr %18, align 8, !tbaa !5
  %2104 = load i32, ptr %2103, align 4, !tbaa !9
  %2105 = add nsw i32 %2102, %2104
  %2106 = sext i32 %2105 to i64
  %2107 = getelementptr inbounds float, ptr %2100, i64 %2106
  %2108 = call float @sdot_(ptr noundef %37, ptr noundef %2099, ptr noundef @c__1, ptr noundef %2107, ptr noundef @c__1)
  %2109 = load ptr, ptr %27, align 8, !tbaa !5
  %2110 = load i32, ptr %54, align 4, !tbaa !9
  %2111 = load ptr, ptr %18, align 8, !tbaa !5
  %2112 = load i32, ptr %2111, align 4, !tbaa !9
  %2113 = add nsw i32 %2110, %2112
  %2114 = sext i32 %2113 to i64
  %2115 = getelementptr inbounds float, ptr %2109, i64 %2114
  %2116 = load float, ptr %2115, align 4, !tbaa !11
  %2117 = fsub float %2116, %2108
  store float %2117, ptr %2115, align 4, !tbaa !11
  %2118 = load ptr, ptr %19, align 8, !tbaa !5
  %2119 = load i32, ptr %54, align 4, !tbaa !9
  %2120 = load i32, ptr %54, align 4, !tbaa !9
  %2121 = load i32, ptr %29, align 4, !tbaa !9
  %2122 = mul nsw i32 %2120, %2121
  %2123 = add nsw i32 %2119, %2122
  %2124 = sext i32 %2123 to i64
  %2125 = getelementptr inbounds float, ptr %2118, i64 %2124
  %2126 = load ptr, ptr %20, align 8, !tbaa !5
  %2127 = load ptr, ptr %27, align 8, !tbaa !5
  %2128 = load i32, ptr %54, align 4, !tbaa !9
  %2129 = load ptr, ptr %18, align 8, !tbaa !5
  %2130 = load i32, ptr %2129, align 4, !tbaa !9
  %2131 = add nsw i32 %2128, %2130
  %2132 = sext i32 %2131 to i64
  %2133 = getelementptr inbounds float, ptr %2127, i64 %2132
  %2134 = load ptr, ptr %18, align 8, !tbaa !5
  %2135 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_false, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %49, ptr noundef @c_b22, ptr noundef %2125, ptr noundef %2126, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %2133, ptr noundef %2134, ptr noundef %72, ptr noundef @c_b25, ptr noundef %2135, ptr noundef @c__2, ptr noundef %56, ptr noundef %66, ptr noundef %46)
  %2136 = load float, ptr %56, align 4, !tbaa !11
  %2137 = fcmp une float %2136, 1.000000e+00
  br i1 %2137, label %2138, label %2151

2138:                                             ; preds = %2086
  %2139 = load ptr, ptr %18, align 8, !tbaa !5
  %2140 = load i32, ptr %2139, align 4, !tbaa !9
  %2141 = load i32, ptr %68, align 4, !tbaa !9
  %2142 = sub nsw i32 %2140, %2141
  %2143 = add nsw i32 %2142, 1
  store i32 %2143, ptr %37, align 4, !tbaa !9
  %2144 = load ptr, ptr %27, align 8, !tbaa !5
  %2145 = load i32, ptr %68, align 4, !tbaa !9
  %2146 = load ptr, ptr %18, align 8, !tbaa !5
  %2147 = load i32, ptr %2146, align 4, !tbaa !9
  %2148 = add nsw i32 %2145, %2147
  %2149 = sext i32 %2148 to i64
  %2150 = getelementptr inbounds float, ptr %2144, i64 %2149
  call void @sscal_(ptr noundef %37, ptr noundef %56, ptr noundef %2150, ptr noundef @c__1)
  br label %2151

2151:                                             ; preds = %2138, %2086
  %2152 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %2153 = load float, ptr %2152, align 16, !tbaa !11
  %2154 = load ptr, ptr %27, align 8, !tbaa !5
  %2155 = load i32, ptr %54, align 4, !tbaa !9
  %2156 = load ptr, ptr %18, align 8, !tbaa !5
  %2157 = load i32, ptr %2156, align 4, !tbaa !9
  %2158 = add nsw i32 %2155, %2157
  %2159 = sext i32 %2158 to i64
  %2160 = getelementptr inbounds float, ptr %2154, i64 %2159
  store float %2153, ptr %2160, align 4, !tbaa !11
  %2161 = load ptr, ptr %27, align 8, !tbaa !5
  %2162 = load i32, ptr %54, align 4, !tbaa !9
  %2163 = load ptr, ptr %18, align 8, !tbaa !5
  %2164 = load i32, ptr %2163, align 4, !tbaa !9
  %2165 = add nsw i32 %2162, %2164
  %2166 = sext i32 %2165 to i64
  %2167 = getelementptr inbounds float, ptr %2161, i64 %2166
  %2168 = load float, ptr %2167, align 4, !tbaa !11
  store float %2168, ptr %38, align 4, !tbaa !11
  %2169 = load float, ptr %38, align 4, !tbaa !11
  %2170 = fcmp oge float %2169, 0.000000e+00
  br i1 %2170, label %2171, label %2173

2171:                                             ; preds = %2151
  %2172 = load float, ptr %38, align 4, !tbaa !11
  br label %2176

2173:                                             ; preds = %2151
  %2174 = load float, ptr %38, align 4, !tbaa !11
  %2175 = fneg float %2174
  br label %2176

2176:                                             ; preds = %2173, %2171
  %2177 = phi float [ %2172, %2171 ], [ %2175, %2173 ]
  store float %2177, ptr %39, align 4, !tbaa !11
  %2178 = load float, ptr %39, align 4, !tbaa !11
  %2179 = load float, ptr %51, align 4, !tbaa !11
  %2180 = fcmp oge float %2178, %2179
  br i1 %2180, label %2181, label %2183

2181:                                             ; preds = %2176
  %2182 = load float, ptr %39, align 4, !tbaa !11
  br label %2185

2183:                                             ; preds = %2176
  %2184 = load float, ptr %51, align 4, !tbaa !11
  br label %2185

2185:                                             ; preds = %2183, %2181
  %2186 = phi float [ %2182, %2181 ], [ %2184, %2183 ]
  store float %2186, ptr %51, align 4, !tbaa !11
  %2187 = load float, ptr %73, align 4, !tbaa !11
  %2188 = load float, ptr %51, align 4, !tbaa !11
  %2189 = fdiv float %2187, %2188
  store float %2189, ptr %61, align 4, !tbaa !11
  br label %2404

2190:                                             ; preds = %2058
  %2191 = load ptr, ptr %27, align 8, !tbaa !5
  %2192 = load i32, ptr %54, align 4, !tbaa !9
  %2193 = sext i32 %2192 to i64
  %2194 = getelementptr inbounds float, ptr %2191, i64 %2193
  %2195 = load float, ptr %2194, align 4, !tbaa !11
  store float %2195, ptr %38, align 4, !tbaa !11
  %2196 = load ptr, ptr %27, align 8, !tbaa !5
  %2197 = load i32, ptr %54, align 4, !tbaa !9
  %2198 = add nsw i32 %2197, 1
  %2199 = sext i32 %2198 to i64
  %2200 = getelementptr inbounds float, ptr %2196, i64 %2199
  %2201 = load float, ptr %2200, align 4, !tbaa !11
  store float %2201, ptr %39, align 4, !tbaa !11
  %2202 = load float, ptr %38, align 4, !tbaa !11
  %2203 = load float, ptr %39, align 4, !tbaa !11
  %2204 = fcmp oge float %2202, %2203
  br i1 %2204, label %2205, label %2207

2205:                                             ; preds = %2190
  %2206 = load float, ptr %38, align 4, !tbaa !11
  br label %2209

2207:                                             ; preds = %2190
  %2208 = load float, ptr %39, align 4, !tbaa !11
  br label %2209

2209:                                             ; preds = %2207, %2205
  %2210 = phi float [ %2206, %2205 ], [ %2208, %2207 ]
  store float %2210, ptr %42, align 4, !tbaa !11
  %2211 = load float, ptr %42, align 4, !tbaa !11
  %2212 = load float, ptr %61, align 4, !tbaa !11
  %2213 = fcmp ogt float %2211, %2212
  br i1 %2213, label %2214, label %2230

2214:                                             ; preds = %2209
  %2215 = load float, ptr %51, align 4, !tbaa !11
  %2216 = fdiv float 1.000000e+00, %2215
  store float %2216, ptr %76, align 4, !tbaa !11
  %2217 = load ptr, ptr %18, align 8, !tbaa !5
  %2218 = load i32, ptr %2217, align 4, !tbaa !9
  %2219 = load i32, ptr %68, align 4, !tbaa !9
  %2220 = sub nsw i32 %2218, %2219
  %2221 = add nsw i32 %2220, 1
  store i32 %2221, ptr %37, align 4, !tbaa !9
  %2222 = load ptr, ptr %27, align 8, !tbaa !5
  %2223 = load i32, ptr %68, align 4, !tbaa !9
  %2224 = load ptr, ptr %18, align 8, !tbaa !5
  %2225 = load i32, ptr %2224, align 4, !tbaa !9
  %2226 = add nsw i32 %2223, %2225
  %2227 = sext i32 %2226 to i64
  %2228 = getelementptr inbounds float, ptr %2222, i64 %2227
  call void @sscal_(ptr noundef %37, ptr noundef %76, ptr noundef %2228, ptr noundef @c__1)
  store float 1.000000e+00, ptr %51, align 4, !tbaa !11
  %2229 = load float, ptr %73, align 4, !tbaa !11
  store float %2229, ptr %61, align 4, !tbaa !11
  br label %2230

2230:                                             ; preds = %2214, %2209
  %2231 = load i32, ptr %54, align 4, !tbaa !9
  %2232 = load i32, ptr %68, align 4, !tbaa !9
  %2233 = sub nsw i32 %2231, %2232
  %2234 = sub nsw i32 %2233, 1
  store i32 %2234, ptr %37, align 4, !tbaa !9
  %2235 = load ptr, ptr %19, align 8, !tbaa !5
  %2236 = load i32, ptr %68, align 4, !tbaa !9
  %2237 = add nsw i32 %2236, 1
  %2238 = load i32, ptr %54, align 4, !tbaa !9
  %2239 = load i32, ptr %29, align 4, !tbaa !9
  %2240 = mul nsw i32 %2238, %2239
  %2241 = add nsw i32 %2237, %2240
  %2242 = sext i32 %2241 to i64
  %2243 = getelementptr inbounds float, ptr %2235, i64 %2242
  %2244 = load ptr, ptr %27, align 8, !tbaa !5
  %2245 = load i32, ptr %68, align 4, !tbaa !9
  %2246 = add nsw i32 %2245, 1
  %2247 = load ptr, ptr %18, align 8, !tbaa !5
  %2248 = load i32, ptr %2247, align 4, !tbaa !9
  %2249 = add nsw i32 %2246, %2248
  %2250 = sext i32 %2249 to i64
  %2251 = getelementptr inbounds float, ptr %2244, i64 %2250
  %2252 = call float @sdot_(ptr noundef %37, ptr noundef %2243, ptr noundef @c__1, ptr noundef %2251, ptr noundef @c__1)
  %2253 = load ptr, ptr %27, align 8, !tbaa !5
  %2254 = load i32, ptr %54, align 4, !tbaa !9
  %2255 = load ptr, ptr %18, align 8, !tbaa !5
  %2256 = load i32, ptr %2255, align 4, !tbaa !9
  %2257 = add nsw i32 %2254, %2256
  %2258 = sext i32 %2257 to i64
  %2259 = getelementptr inbounds float, ptr %2253, i64 %2258
  %2260 = load float, ptr %2259, align 4, !tbaa !11
  %2261 = fsub float %2260, %2252
  store float %2261, ptr %2259, align 4, !tbaa !11
  %2262 = load i32, ptr %54, align 4, !tbaa !9
  %2263 = load i32, ptr %68, align 4, !tbaa !9
  %2264 = sub nsw i32 %2262, %2263
  %2265 = sub nsw i32 %2264, 1
  store i32 %2265, ptr %37, align 4, !tbaa !9
  %2266 = load ptr, ptr %19, align 8, !tbaa !5
  %2267 = load i32, ptr %68, align 4, !tbaa !9
  %2268 = add nsw i32 %2267, 1
  %2269 = load i32, ptr %54, align 4, !tbaa !9
  %2270 = add nsw i32 %2269, 1
  %2271 = load i32, ptr %29, align 4, !tbaa !9
  %2272 = mul nsw i32 %2270, %2271
  %2273 = add nsw i32 %2268, %2272
  %2274 = sext i32 %2273 to i64
  %2275 = getelementptr inbounds float, ptr %2266, i64 %2274
  %2276 = load ptr, ptr %27, align 8, !tbaa !5
  %2277 = load i32, ptr %68, align 4, !tbaa !9
  %2278 = add nsw i32 %2277, 1
  %2279 = load ptr, ptr %18, align 8, !tbaa !5
  %2280 = load i32, ptr %2279, align 4, !tbaa !9
  %2281 = add nsw i32 %2278, %2280
  %2282 = sext i32 %2281 to i64
  %2283 = getelementptr inbounds float, ptr %2276, i64 %2282
  %2284 = call float @sdot_(ptr noundef %37, ptr noundef %2275, ptr noundef @c__1, ptr noundef %2283, ptr noundef @c__1)
  %2285 = load ptr, ptr %27, align 8, !tbaa !5
  %2286 = load i32, ptr %54, align 4, !tbaa !9
  %2287 = add nsw i32 %2286, 1
  %2288 = load ptr, ptr %18, align 8, !tbaa !5
  %2289 = load i32, ptr %2288, align 4, !tbaa !9
  %2290 = add nsw i32 %2287, %2289
  %2291 = sext i32 %2290 to i64
  %2292 = getelementptr inbounds float, ptr %2285, i64 %2291
  %2293 = load float, ptr %2292, align 4, !tbaa !11
  %2294 = fsub float %2293, %2284
  store float %2294, ptr %2292, align 4, !tbaa !11
  %2295 = load ptr, ptr %19, align 8, !tbaa !5
  %2296 = load i32, ptr %54, align 4, !tbaa !9
  %2297 = load i32, ptr %54, align 4, !tbaa !9
  %2298 = load i32, ptr %29, align 4, !tbaa !9
  %2299 = mul nsw i32 %2297, %2298
  %2300 = add nsw i32 %2296, %2299
  %2301 = sext i32 %2300 to i64
  %2302 = getelementptr inbounds float, ptr %2295, i64 %2301
  %2303 = load ptr, ptr %20, align 8, !tbaa !5
  %2304 = load ptr, ptr %27, align 8, !tbaa !5
  %2305 = load i32, ptr %54, align 4, !tbaa !9
  %2306 = load ptr, ptr %18, align 8, !tbaa !5
  %2307 = load i32, ptr %2306, align 4, !tbaa !9
  %2308 = add nsw i32 %2305, %2307
  %2309 = sext i32 %2308 to i64
  %2310 = getelementptr inbounds float, ptr %2304, i64 %2309
  %2311 = load ptr, ptr %18, align 8, !tbaa !5
  %2312 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_true, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %49, ptr noundef @c_b22, ptr noundef %2302, ptr noundef %2303, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %2310, ptr noundef %2311, ptr noundef %72, ptr noundef @c_b25, ptr noundef %2312, ptr noundef @c__2, ptr noundef %56, ptr noundef %66, ptr noundef %46)
  %2313 = load float, ptr %56, align 4, !tbaa !11
  %2314 = fcmp une float %2313, 1.000000e+00
  br i1 %2314, label %2315, label %2328

2315:                                             ; preds = %2230
  %2316 = load ptr, ptr %18, align 8, !tbaa !5
  %2317 = load i32, ptr %2316, align 4, !tbaa !9
  %2318 = load i32, ptr %68, align 4, !tbaa !9
  %2319 = sub nsw i32 %2317, %2318
  %2320 = add nsw i32 %2319, 1
  store i32 %2320, ptr %37, align 4, !tbaa !9
  %2321 = load ptr, ptr %27, align 8, !tbaa !5
  %2322 = load i32, ptr %68, align 4, !tbaa !9
  %2323 = load ptr, ptr %18, align 8, !tbaa !5
  %2324 = load i32, ptr %2323, align 4, !tbaa !9
  %2325 = add nsw i32 %2322, %2324
  %2326 = sext i32 %2325 to i64
  %2327 = getelementptr inbounds float, ptr %2321, i64 %2326
  call void @sscal_(ptr noundef %37, ptr noundef %56, ptr noundef %2327, ptr noundef @c__1)
  br label %2328

2328:                                             ; preds = %2315, %2230
  %2329 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %2330 = load float, ptr %2329, align 16, !tbaa !11
  %2331 = load ptr, ptr %27, align 8, !tbaa !5
  %2332 = load i32, ptr %54, align 4, !tbaa !9
  %2333 = load ptr, ptr %18, align 8, !tbaa !5
  %2334 = load i32, ptr %2333, align 4, !tbaa !9
  %2335 = add nsw i32 %2332, %2334
  %2336 = sext i32 %2335 to i64
  %2337 = getelementptr inbounds float, ptr %2331, i64 %2336
  store float %2330, ptr %2337, align 4, !tbaa !11
  %2338 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 1
  %2339 = load float, ptr %2338, align 4, !tbaa !11
  %2340 = load ptr, ptr %27, align 8, !tbaa !5
  %2341 = load i32, ptr %54, align 4, !tbaa !9
  %2342 = add nsw i32 %2341, 1
  %2343 = load ptr, ptr %18, align 8, !tbaa !5
  %2344 = load i32, ptr %2343, align 4, !tbaa !9
  %2345 = add nsw i32 %2342, %2344
  %2346 = sext i32 %2345 to i64
  %2347 = getelementptr inbounds float, ptr %2340, i64 %2346
  store float %2339, ptr %2347, align 4, !tbaa !11
  %2348 = load ptr, ptr %27, align 8, !tbaa !5
  %2349 = load i32, ptr %54, align 4, !tbaa !9
  %2350 = load ptr, ptr %18, align 8, !tbaa !5
  %2351 = load i32, ptr %2350, align 4, !tbaa !9
  %2352 = add nsw i32 %2349, %2351
  %2353 = sext i32 %2352 to i64
  %2354 = getelementptr inbounds float, ptr %2348, i64 %2353
  %2355 = load float, ptr %2354, align 4, !tbaa !11
  store float %2355, ptr %38, align 4, !tbaa !11
  %2356 = load float, ptr %38, align 4, !tbaa !11
  %2357 = fcmp oge float %2356, 0.000000e+00
  br i1 %2357, label %2358, label %2360

2358:                                             ; preds = %2328
  %2359 = load float, ptr %38, align 4, !tbaa !11
  br label %2363

2360:                                             ; preds = %2328
  %2361 = load float, ptr %38, align 4, !tbaa !11
  %2362 = fneg float %2361
  br label %2363

2363:                                             ; preds = %2360, %2358
  %2364 = phi float [ %2359, %2358 ], [ %2362, %2360 ]
  store float %2364, ptr %40, align 4, !tbaa !11
  %2365 = load ptr, ptr %27, align 8, !tbaa !5
  %2366 = load i32, ptr %54, align 4, !tbaa !9
  %2367 = add nsw i32 %2366, 1
  %2368 = load ptr, ptr %18, align 8, !tbaa !5
  %2369 = load i32, ptr %2368, align 4, !tbaa !9
  %2370 = add nsw i32 %2367, %2369
  %2371 = sext i32 %2370 to i64
  %2372 = getelementptr inbounds float, ptr %2365, i64 %2371
  %2373 = load float, ptr %2372, align 4, !tbaa !11
  store float %2373, ptr %39, align 4, !tbaa !11
  %2374 = load float, ptr %39, align 4, !tbaa !11
  %2375 = fcmp oge float %2374, 0.000000e+00
  br i1 %2375, label %2376, label %2378

2376:                                             ; preds = %2363
  %2377 = load float, ptr %39, align 4, !tbaa !11
  br label %2381

2378:                                             ; preds = %2363
  %2379 = load float, ptr %39, align 4, !tbaa !11
  %2380 = fneg float %2379
  br label %2381

2381:                                             ; preds = %2378, %2376
  %2382 = phi float [ %2377, %2376 ], [ %2380, %2378 ]
  store float %2382, ptr %41, align 4, !tbaa !11
  %2383 = load float, ptr %40, align 4, !tbaa !11
  %2384 = load float, ptr %41, align 4, !tbaa !11
  %2385 = fcmp oge float %2383, %2384
  br i1 %2385, label %2386, label %2388

2386:                                             ; preds = %2381
  %2387 = load float, ptr %40, align 4, !tbaa !11
  br label %2390

2388:                                             ; preds = %2381
  %2389 = load float, ptr %41, align 4, !tbaa !11
  br label %2390

2390:                                             ; preds = %2388, %2386
  %2391 = phi float [ %2387, %2386 ], [ %2389, %2388 ]
  store float %2391, ptr %40, align 4, !tbaa !11
  %2392 = load float, ptr %40, align 4, !tbaa !11
  %2393 = load float, ptr %51, align 4, !tbaa !11
  %2394 = fcmp oge float %2392, %2393
  br i1 %2394, label %2395, label %2397

2395:                                             ; preds = %2390
  %2396 = load float, ptr %40, align 4, !tbaa !11
  br label %2399

2397:                                             ; preds = %2390
  %2398 = load float, ptr %51, align 4, !tbaa !11
  br label %2399

2399:                                             ; preds = %2397, %2395
  %2400 = phi float [ %2396, %2395 ], [ %2398, %2397 ]
  store float %2400, ptr %51, align 4, !tbaa !11
  %2401 = load float, ptr %73, align 4, !tbaa !11
  %2402 = load float, ptr %51, align 4, !tbaa !11
  %2403 = fdiv float %2401, %2402
  store float %2403, ptr %61, align 4, !tbaa !11
  br label %2404

2404:                                             ; preds = %2399, %2185
  br label %2405

2405:                                             ; preds = %2404, %2030
  br label %2406

2406:                                             ; preds = %2405
  %2407 = load i32, ptr %54, align 4, !tbaa !9
  %2408 = add nsw i32 %2407, 1
  store i32 %2408, ptr %54, align 4, !tbaa !9
  br label %2022, !llvm.loop !27

2409:                                             ; preds = %2022
  %2410 = load i32, ptr %50, align 4, !tbaa !9
  %2411 = icmp ne i32 %2410, 0
  br i1 %2411, label %2501, label %2412

2412:                                             ; preds = %2409
  %2413 = load ptr, ptr %18, align 8, !tbaa !5
  %2414 = load i32, ptr %2413, align 4, !tbaa !9
  %2415 = load i32, ptr %68, align 4, !tbaa !9
  %2416 = sub nsw i32 %2414, %2415
  %2417 = add nsw i32 %2416, 1
  store i32 %2417, ptr %36, align 4, !tbaa !9
  %2418 = load ptr, ptr %27, align 8, !tbaa !5
  %2419 = load i32, ptr %68, align 4, !tbaa !9
  %2420 = load ptr, ptr %18, align 8, !tbaa !5
  %2421 = load i32, ptr %2420, align 4, !tbaa !9
  %2422 = add nsw i32 %2419, %2421
  %2423 = sext i32 %2422 to i64
  %2424 = getelementptr inbounds float, ptr %2418, i64 %2423
  %2425 = load ptr, ptr %21, align 8, !tbaa !5
  %2426 = load i32, ptr %68, align 4, !tbaa !9
  %2427 = load i32, ptr %70, align 4, !tbaa !9
  %2428 = load i32, ptr %31, align 4, !tbaa !9
  %2429 = mul nsw i32 %2427, %2428
  %2430 = add nsw i32 %2426, %2429
  %2431 = sext i32 %2430 to i64
  %2432 = getelementptr inbounds float, ptr %2425, i64 %2431
  call void @scopy_(ptr noundef %36, ptr noundef %2424, ptr noundef @c__1, ptr noundef %2432, ptr noundef @c__1)
  %2433 = load ptr, ptr %18, align 8, !tbaa !5
  %2434 = load i32, ptr %2433, align 4, !tbaa !9
  %2435 = load i32, ptr %68, align 4, !tbaa !9
  %2436 = sub nsw i32 %2434, %2435
  %2437 = add nsw i32 %2436, 1
  store i32 %2437, ptr %36, align 4, !tbaa !9
  %2438 = load ptr, ptr %21, align 8, !tbaa !5
  %2439 = load i32, ptr %68, align 4, !tbaa !9
  %2440 = load i32, ptr %70, align 4, !tbaa !9
  %2441 = load i32, ptr %31, align 4, !tbaa !9
  %2442 = mul nsw i32 %2440, %2441
  %2443 = add nsw i32 %2439, %2442
  %2444 = sext i32 %2443 to i64
  %2445 = getelementptr inbounds float, ptr %2438, i64 %2444
  %2446 = call i32 @isamax_(ptr noundef %36, ptr noundef %2445, ptr noundef @c__1)
  %2447 = load i32, ptr %68, align 4, !tbaa !9
  %2448 = add nsw i32 %2446, %2447
  %2449 = sub nsw i32 %2448, 1
  store i32 %2449, ptr %67, align 4, !tbaa !9
  %2450 = load ptr, ptr %21, align 8, !tbaa !5
  %2451 = load i32, ptr %67, align 4, !tbaa !9
  %2452 = load i32, ptr %70, align 4, !tbaa !9
  %2453 = load i32, ptr %31, align 4, !tbaa !9
  %2454 = mul nsw i32 %2452, %2453
  %2455 = add nsw i32 %2451, %2454
  %2456 = sext i32 %2455 to i64
  %2457 = getelementptr inbounds float, ptr %2450, i64 %2456
  %2458 = load float, ptr %2457, align 4, !tbaa !11
  store float %2458, ptr %38, align 4, !tbaa !11
  %2459 = load float, ptr %38, align 4, !tbaa !11
  %2460 = fcmp oge float %2459, 0.000000e+00
  br i1 %2460, label %2461, label %2463

2461:                                             ; preds = %2412
  %2462 = load float, ptr %38, align 4, !tbaa !11
  br label %2466

2463:                                             ; preds = %2412
  %2464 = load float, ptr %38, align 4, !tbaa !11
  %2465 = fneg float %2464
  br label %2466

2466:                                             ; preds = %2463, %2461
  %2467 = phi float [ %2462, %2461 ], [ %2465, %2463 ]
  %2468 = fdiv float 1.000000e+00, %2467
  store float %2468, ptr %58, align 4, !tbaa !11
  %2469 = load ptr, ptr %18, align 8, !tbaa !5
  %2470 = load i32, ptr %2469, align 4, !tbaa !9
  %2471 = load i32, ptr %68, align 4, !tbaa !9
  %2472 = sub nsw i32 %2470, %2471
  %2473 = add nsw i32 %2472, 1
  store i32 %2473, ptr %36, align 4, !tbaa !9
  %2474 = load ptr, ptr %21, align 8, !tbaa !5
  %2475 = load i32, ptr %68, align 4, !tbaa !9
  %2476 = load i32, ptr %70, align 4, !tbaa !9
  %2477 = load i32, ptr %31, align 4, !tbaa !9
  %2478 = mul nsw i32 %2476, %2477
  %2479 = add nsw i32 %2475, %2478
  %2480 = sext i32 %2479 to i64
  %2481 = getelementptr inbounds float, ptr %2474, i64 %2480
  call void @sscal_(ptr noundef %36, ptr noundef %58, ptr noundef %2481, ptr noundef @c__1)
  %2482 = load i32, ptr %68, align 4, !tbaa !9
  %2483 = sub nsw i32 %2482, 1
  store i32 %2483, ptr %36, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %2484

2484:                                             ; preds = %2497, %2466
  %2485 = load i32, ptr %55, align 4, !tbaa !9
  %2486 = load i32, ptr %36, align 4, !tbaa !9
  %2487 = icmp sle i32 %2485, %2486
  br i1 %2487, label %2488, label %2500

2488:                                             ; preds = %2484
  %2489 = load ptr, ptr %21, align 8, !tbaa !5
  %2490 = load i32, ptr %55, align 4, !tbaa !9
  %2491 = load i32, ptr %70, align 4, !tbaa !9
  %2492 = load i32, ptr %31, align 4, !tbaa !9
  %2493 = mul nsw i32 %2491, %2492
  %2494 = add nsw i32 %2490, %2493
  %2495 = sext i32 %2494 to i64
  %2496 = getelementptr inbounds float, ptr %2489, i64 %2495
  store float 0.000000e+00, ptr %2496, align 4, !tbaa !11
  br label %2497

2497:                                             ; preds = %2488
  %2498 = load i32, ptr %55, align 4, !tbaa !9
  %2499 = add nsw i32 %2498, 1
  store i32 %2499, ptr %55, align 4, !tbaa !9
  br label %2484, !llvm.loop !28

2500:                                             ; preds = %2484
  br label %2580

2501:                                             ; preds = %2409
  %2502 = load i32, ptr %68, align 4, !tbaa !9
  %2503 = load ptr, ptr %18, align 8, !tbaa !5
  %2504 = load i32, ptr %2503, align 4, !tbaa !9
  %2505 = icmp slt i32 %2502, %2504
  br i1 %2505, label %2506, label %2543

2506:                                             ; preds = %2501
  %2507 = load ptr, ptr %18, align 8, !tbaa !5
  %2508 = load i32, ptr %2507, align 4, !tbaa !9
  %2509 = load i32, ptr %68, align 4, !tbaa !9
  %2510 = sub nsw i32 %2508, %2509
  store i32 %2510, ptr %36, align 4, !tbaa !9
  %2511 = load ptr, ptr %18, align 8, !tbaa !5
  %2512 = load ptr, ptr %21, align 8, !tbaa !5
  %2513 = load i32, ptr %68, align 4, !tbaa !9
  %2514 = add nsw i32 %2513, 1
  %2515 = load i32, ptr %31, align 4, !tbaa !9
  %2516 = mul nsw i32 %2514, %2515
  %2517 = add nsw i32 %2516, 1
  %2518 = sext i32 %2517 to i64
  %2519 = getelementptr inbounds float, ptr %2512, i64 %2518
  %2520 = load ptr, ptr %22, align 8, !tbaa !5
  %2521 = load ptr, ptr %27, align 8, !tbaa !5
  %2522 = load i32, ptr %68, align 4, !tbaa !9
  %2523 = add nsw i32 %2522, 1
  %2524 = load ptr, ptr %18, align 8, !tbaa !5
  %2525 = load i32, ptr %2524, align 4, !tbaa !9
  %2526 = add nsw i32 %2523, %2525
  %2527 = sext i32 %2526 to i64
  %2528 = getelementptr inbounds float, ptr %2521, i64 %2527
  %2529 = load ptr, ptr %27, align 8, !tbaa !5
  %2530 = load i32, ptr %68, align 4, !tbaa !9
  %2531 = load ptr, ptr %18, align 8, !tbaa !5
  %2532 = load i32, ptr %2531, align 4, !tbaa !9
  %2533 = add nsw i32 %2530, %2532
  %2534 = sext i32 %2533 to i64
  %2535 = getelementptr inbounds float, ptr %2529, i64 %2534
  %2536 = load ptr, ptr %21, align 8, !tbaa !5
  %2537 = load i32, ptr %68, align 4, !tbaa !9
  %2538 = load i32, ptr %31, align 4, !tbaa !9
  %2539 = mul nsw i32 %2537, %2538
  %2540 = add nsw i32 %2539, 1
  %2541 = sext i32 %2540 to i64
  %2542 = getelementptr inbounds float, ptr %2536, i64 %2541
  call void @sgemv_(ptr noundef @.str.8, ptr noundef %2511, ptr noundef %36, ptr noundef @c_b22, ptr noundef %2519, ptr noundef %2520, ptr noundef %2528, ptr noundef @c__1, ptr noundef %2535, ptr noundef %2542, ptr noundef @c__1)
  br label %2543

2543:                                             ; preds = %2506, %2501
  %2544 = load ptr, ptr %18, align 8, !tbaa !5
  %2545 = load ptr, ptr %21, align 8, !tbaa !5
  %2546 = load i32, ptr %68, align 4, !tbaa !9
  %2547 = load i32, ptr %31, align 4, !tbaa !9
  %2548 = mul nsw i32 %2546, %2547
  %2549 = add nsw i32 %2548, 1
  %2550 = sext i32 %2549 to i64
  %2551 = getelementptr inbounds float, ptr %2545, i64 %2550
  %2552 = call i32 @isamax_(ptr noundef %2544, ptr noundef %2551, ptr noundef @c__1)
  store i32 %2552, ptr %67, align 4, !tbaa !9
  %2553 = load ptr, ptr %21, align 8, !tbaa !5
  %2554 = load i32, ptr %67, align 4, !tbaa !9
  %2555 = load i32, ptr %68, align 4, !tbaa !9
  %2556 = load i32, ptr %31, align 4, !tbaa !9
  %2557 = mul nsw i32 %2555, %2556
  %2558 = add nsw i32 %2554, %2557
  %2559 = sext i32 %2558 to i64
  %2560 = getelementptr inbounds float, ptr %2553, i64 %2559
  %2561 = load float, ptr %2560, align 4, !tbaa !11
  store float %2561, ptr %38, align 4, !tbaa !11
  %2562 = load float, ptr %38, align 4, !tbaa !11
  %2563 = fcmp oge float %2562, 0.000000e+00
  br i1 %2563, label %2564, label %2566

2564:                                             ; preds = %2543
  %2565 = load float, ptr %38, align 4, !tbaa !11
  br label %2569

2566:                                             ; preds = %2543
  %2567 = load float, ptr %38, align 4, !tbaa !11
  %2568 = fneg float %2567
  br label %2569

2569:                                             ; preds = %2566, %2564
  %2570 = phi float [ %2565, %2564 ], [ %2568, %2566 ]
  %2571 = fdiv float 1.000000e+00, %2570
  store float %2571, ptr %58, align 4, !tbaa !11
  %2572 = load ptr, ptr %18, align 8, !tbaa !5
  %2573 = load ptr, ptr %21, align 8, !tbaa !5
  %2574 = load i32, ptr %68, align 4, !tbaa !9
  %2575 = load i32, ptr %31, align 4, !tbaa !9
  %2576 = mul nsw i32 %2574, %2575
  %2577 = add nsw i32 %2576, 1
  %2578 = sext i32 %2577 to i64
  %2579 = getelementptr inbounds float, ptr %2573, i64 %2578
  call void @sscal_(ptr noundef %2572, ptr noundef %58, ptr noundef %2579, ptr noundef @c__1)
  br label %2580

2580:                                             ; preds = %2569, %2500
  br label %3722

2581:                                             ; preds = %1973
  %2582 = load ptr, ptr %19, align 8, !tbaa !5
  %2583 = load i32, ptr %68, align 4, !tbaa !9
  %2584 = load i32, ptr %68, align 4, !tbaa !9
  %2585 = add nsw i32 %2584, 1
  %2586 = load i32, ptr %29, align 4, !tbaa !9
  %2587 = mul nsw i32 %2585, %2586
  %2588 = add nsw i32 %2583, %2587
  %2589 = sext i32 %2588 to i64
  %2590 = getelementptr inbounds float, ptr %2582, i64 %2589
  %2591 = load float, ptr %2590, align 4, !tbaa !11
  store float %2591, ptr %38, align 4, !tbaa !11
  %2592 = load float, ptr %38, align 4, !tbaa !11
  %2593 = fcmp oge float %2592, 0.000000e+00
  br i1 %2593, label %2594, label %2596

2594:                                             ; preds = %2581
  %2595 = load float, ptr %38, align 4, !tbaa !11
  br label %2599

2596:                                             ; preds = %2581
  %2597 = load float, ptr %38, align 4, !tbaa !11
  %2598 = fneg float %2597
  br label %2599

2599:                                             ; preds = %2596, %2594
  %2600 = phi float [ %2595, %2594 ], [ %2598, %2596 ]
  %2601 = load ptr, ptr %19, align 8, !tbaa !5
  %2602 = load i32, ptr %68, align 4, !tbaa !9
  %2603 = add nsw i32 %2602, 1
  %2604 = load i32, ptr %68, align 4, !tbaa !9
  %2605 = load i32, ptr %29, align 4, !tbaa !9
  %2606 = mul nsw i32 %2604, %2605
  %2607 = add nsw i32 %2603, %2606
  %2608 = sext i32 %2607 to i64
  %2609 = getelementptr inbounds float, ptr %2601, i64 %2608
  %2610 = load float, ptr %2609, align 4, !tbaa !11
  store float %2610, ptr %39, align 4, !tbaa !11
  %2611 = load float, ptr %39, align 4, !tbaa !11
  %2612 = fcmp oge float %2611, 0.000000e+00
  br i1 %2612, label %2613, label %2615

2613:                                             ; preds = %2599
  %2614 = load float, ptr %39, align 4, !tbaa !11
  br label %2618

2615:                                             ; preds = %2599
  %2616 = load float, ptr %39, align 4, !tbaa !11
  %2617 = fneg float %2616
  br label %2618

2618:                                             ; preds = %2615, %2613
  %2619 = phi float [ %2614, %2613 ], [ %2617, %2615 ]
  %2620 = fcmp oge float %2600, %2619
  br i1 %2620, label %2621, label %2648

2621:                                             ; preds = %2618
  %2622 = load float, ptr %71, align 4, !tbaa !11
  %2623 = load ptr, ptr %19, align 8, !tbaa !5
  %2624 = load i32, ptr %68, align 4, !tbaa !9
  %2625 = load i32, ptr %68, align 4, !tbaa !9
  %2626 = add nsw i32 %2625, 1
  %2627 = load i32, ptr %29, align 4, !tbaa !9
  %2628 = mul nsw i32 %2626, %2627
  %2629 = add nsw i32 %2624, %2628
  %2630 = sext i32 %2629 to i64
  %2631 = getelementptr inbounds float, ptr %2623, i64 %2630
  %2632 = load float, ptr %2631, align 4, !tbaa !11
  %2633 = fdiv float %2622, %2632
  %2634 = load ptr, ptr %27, align 8, !tbaa !5
  %2635 = load i32, ptr %68, align 4, !tbaa !9
  %2636 = load ptr, ptr %18, align 8, !tbaa !5
  %2637 = load i32, ptr %2636, align 4, !tbaa !9
  %2638 = add nsw i32 %2635, %2637
  %2639 = sext i32 %2638 to i64
  %2640 = getelementptr inbounds float, ptr %2634, i64 %2639
  store float %2633, ptr %2640, align 4, !tbaa !11
  %2641 = load ptr, ptr %27, align 8, !tbaa !5
  %2642 = load i32, ptr %68, align 4, !tbaa !9
  %2643 = add nsw i32 %2642, 1
  %2644 = load i32, ptr %65, align 4, !tbaa !9
  %2645 = add nsw i32 %2643, %2644
  %2646 = sext i32 %2645 to i64
  %2647 = getelementptr inbounds float, ptr %2641, i64 %2646
  store float 1.000000e+00, ptr %2647, align 4, !tbaa !11
  br label %2676

2648:                                             ; preds = %2618
  %2649 = load ptr, ptr %27, align 8, !tbaa !5
  %2650 = load i32, ptr %68, align 4, !tbaa !9
  %2651 = load ptr, ptr %18, align 8, !tbaa !5
  %2652 = load i32, ptr %2651, align 4, !tbaa !9
  %2653 = add nsw i32 %2650, %2652
  %2654 = sext i32 %2653 to i64
  %2655 = getelementptr inbounds float, ptr %2649, i64 %2654
  store float 1.000000e+00, ptr %2655, align 4, !tbaa !11
  %2656 = load float, ptr %71, align 4, !tbaa !11
  %2657 = fneg float %2656
  %2658 = load ptr, ptr %19, align 8, !tbaa !5
  %2659 = load i32, ptr %68, align 4, !tbaa !9
  %2660 = add nsw i32 %2659, 1
  %2661 = load i32, ptr %68, align 4, !tbaa !9
  %2662 = load i32, ptr %29, align 4, !tbaa !9
  %2663 = mul nsw i32 %2661, %2662
  %2664 = add nsw i32 %2660, %2663
  %2665 = sext i32 %2664 to i64
  %2666 = getelementptr inbounds float, ptr %2658, i64 %2665
  %2667 = load float, ptr %2666, align 4, !tbaa !11
  %2668 = fdiv float %2657, %2667
  %2669 = load ptr, ptr %27, align 8, !tbaa !5
  %2670 = load i32, ptr %68, align 4, !tbaa !9
  %2671 = add nsw i32 %2670, 1
  %2672 = load i32, ptr %65, align 4, !tbaa !9
  %2673 = add nsw i32 %2671, %2672
  %2674 = sext i32 %2673 to i64
  %2675 = getelementptr inbounds float, ptr %2669, i64 %2674
  store float %2668, ptr %2675, align 4, !tbaa !11
  br label %2676

2676:                                             ; preds = %2648, %2621
  %2677 = load ptr, ptr %27, align 8, !tbaa !5
  %2678 = load i32, ptr %68, align 4, !tbaa !9
  %2679 = add nsw i32 %2678, 1
  %2680 = load ptr, ptr %18, align 8, !tbaa !5
  %2681 = load i32, ptr %2680, align 4, !tbaa !9
  %2682 = add nsw i32 %2679, %2681
  %2683 = sext i32 %2682 to i64
  %2684 = getelementptr inbounds float, ptr %2677, i64 %2683
  store float 0.000000e+00, ptr %2684, align 4, !tbaa !11
  %2685 = load ptr, ptr %27, align 8, !tbaa !5
  %2686 = load i32, ptr %68, align 4, !tbaa !9
  %2687 = load i32, ptr %65, align 4, !tbaa !9
  %2688 = add nsw i32 %2686, %2687
  %2689 = sext i32 %2688 to i64
  %2690 = getelementptr inbounds float, ptr %2685, i64 %2689
  store float 0.000000e+00, ptr %2690, align 4, !tbaa !11
  %2691 = load ptr, ptr %18, align 8, !tbaa !5
  %2692 = load i32, ptr %2691, align 4, !tbaa !9
  store i32 %2692, ptr %36, align 4, !tbaa !9
  %2693 = load i32, ptr %68, align 4, !tbaa !9
  %2694 = add nsw i32 %2693, 2
  store i32 %2694, ptr %55, align 4, !tbaa !9
  br label %2695

2695:                                             ; preds = %2752, %2676
  %2696 = load i32, ptr %55, align 4, !tbaa !9
  %2697 = load i32, ptr %36, align 4, !tbaa !9
  %2698 = icmp sle i32 %2696, %2697
  br i1 %2698, label %2699, label %2755

2699:                                             ; preds = %2695
  %2700 = load ptr, ptr %27, align 8, !tbaa !5
  %2701 = load i32, ptr %68, align 4, !tbaa !9
  %2702 = load ptr, ptr %18, align 8, !tbaa !5
  %2703 = load i32, ptr %2702, align 4, !tbaa !9
  %2704 = add nsw i32 %2701, %2703
  %2705 = sext i32 %2704 to i64
  %2706 = getelementptr inbounds float, ptr %2700, i64 %2705
  %2707 = load float, ptr %2706, align 4, !tbaa !11
  %2708 = fneg float %2707
  %2709 = load ptr, ptr %19, align 8, !tbaa !5
  %2710 = load i32, ptr %68, align 4, !tbaa !9
  %2711 = load i32, ptr %55, align 4, !tbaa !9
  %2712 = load i32, ptr %29, align 4, !tbaa !9
  %2713 = mul nsw i32 %2711, %2712
  %2714 = add nsw i32 %2710, %2713
  %2715 = sext i32 %2714 to i64
  %2716 = getelementptr inbounds float, ptr %2709, i64 %2715
  %2717 = load float, ptr %2716, align 4, !tbaa !11
  %2718 = fmul float %2708, %2717
  %2719 = load ptr, ptr %27, align 8, !tbaa !5
  %2720 = load i32, ptr %55, align 4, !tbaa !9
  %2721 = load ptr, ptr %18, align 8, !tbaa !5
  %2722 = load i32, ptr %2721, align 4, !tbaa !9
  %2723 = add nsw i32 %2720, %2722
  %2724 = sext i32 %2723 to i64
  %2725 = getelementptr inbounds float, ptr %2719, i64 %2724
  store float %2718, ptr %2725, align 4, !tbaa !11
  %2726 = load ptr, ptr %27, align 8, !tbaa !5
  %2727 = load i32, ptr %68, align 4, !tbaa !9
  %2728 = add nsw i32 %2727, 1
  %2729 = load i32, ptr %65, align 4, !tbaa !9
  %2730 = add nsw i32 %2728, %2729
  %2731 = sext i32 %2730 to i64
  %2732 = getelementptr inbounds float, ptr %2726, i64 %2731
  %2733 = load float, ptr %2732, align 4, !tbaa !11
  %2734 = fneg float %2733
  %2735 = load ptr, ptr %19, align 8, !tbaa !5
  %2736 = load i32, ptr %68, align 4, !tbaa !9
  %2737 = add nsw i32 %2736, 1
  %2738 = load i32, ptr %55, align 4, !tbaa !9
  %2739 = load i32, ptr %29, align 4, !tbaa !9
  %2740 = mul nsw i32 %2738, %2739
  %2741 = add nsw i32 %2737, %2740
  %2742 = sext i32 %2741 to i64
  %2743 = getelementptr inbounds float, ptr %2735, i64 %2742
  %2744 = load float, ptr %2743, align 4, !tbaa !11
  %2745 = fmul float %2734, %2744
  %2746 = load ptr, ptr %27, align 8, !tbaa !5
  %2747 = load i32, ptr %55, align 4, !tbaa !9
  %2748 = load i32, ptr %65, align 4, !tbaa !9
  %2749 = add nsw i32 %2747, %2748
  %2750 = sext i32 %2749 to i64
  %2751 = getelementptr inbounds float, ptr %2746, i64 %2750
  store float %2745, ptr %2751, align 4, !tbaa !11
  br label %2752

2752:                                             ; preds = %2699
  %2753 = load i32, ptr %55, align 4, !tbaa !9
  %2754 = add nsw i32 %2753, 1
  store i32 %2754, ptr %55, align 4, !tbaa !9
  br label %2695, !llvm.loop !29

2755:                                             ; preds = %2695
  store float 1.000000e+00, ptr %51, align 4, !tbaa !11
  %2756 = load float, ptr %73, align 4, !tbaa !11
  store float %2756, ptr %61, align 4, !tbaa !11
  %2757 = load i32, ptr %68, align 4, !tbaa !9
  %2758 = add nsw i32 %2757, 2
  store i32 %2758, ptr %52, align 4, !tbaa !9
  %2759 = load ptr, ptr %18, align 8, !tbaa !5
  %2760 = load i32, ptr %2759, align 4, !tbaa !9
  store i32 %2760, ptr %36, align 4, !tbaa !9
  %2761 = load i32, ptr %68, align 4, !tbaa !9
  %2762 = add nsw i32 %2761, 2
  store i32 %2762, ptr %54, align 4, !tbaa !9
  br label %2763

2763:                                             ; preds = %3365, %2755
  %2764 = load i32, ptr %54, align 4, !tbaa !9
  %2765 = load i32, ptr %36, align 4, !tbaa !9
  %2766 = icmp sle i32 %2764, %2765
  br i1 %2766, label %2767, label %3368

2767:                                             ; preds = %2763
  %2768 = load i32, ptr %54, align 4, !tbaa !9
  %2769 = load i32, ptr %52, align 4, !tbaa !9
  %2770 = icmp slt i32 %2768, %2769
  br i1 %2770, label %2771, label %2772

2771:                                             ; preds = %2767
  br label %3364

2772:                                             ; preds = %2767
  %2773 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %2773, ptr %63, align 4, !tbaa !9
  %2774 = load i32, ptr %54, align 4, !tbaa !9
  store i32 %2774, ptr %64, align 4, !tbaa !9
  %2775 = load i32, ptr %54, align 4, !tbaa !9
  %2776 = add nsw i32 %2775, 1
  store i32 %2776, ptr %52, align 4, !tbaa !9
  %2777 = load i32, ptr %54, align 4, !tbaa !9
  %2778 = load ptr, ptr %18, align 8, !tbaa !5
  %2779 = load i32, ptr %2778, align 4, !tbaa !9
  %2780 = icmp slt i32 %2777, %2779
  br i1 %2780, label %2781, label %2799

2781:                                             ; preds = %2772
  %2782 = load ptr, ptr %19, align 8, !tbaa !5
  %2783 = load i32, ptr %54, align 4, !tbaa !9
  %2784 = add nsw i32 %2783, 1
  %2785 = load i32, ptr %54, align 4, !tbaa !9
  %2786 = load i32, ptr %29, align 4, !tbaa !9
  %2787 = mul nsw i32 %2785, %2786
  %2788 = add nsw i32 %2784, %2787
  %2789 = sext i32 %2788 to i64
  %2790 = getelementptr inbounds float, ptr %2782, i64 %2789
  %2791 = load float, ptr %2790, align 4, !tbaa !11
  %2792 = fcmp une float %2791, 0.000000e+00
  br i1 %2792, label %2793, label %2798

2793:                                             ; preds = %2781
  %2794 = load i32, ptr %54, align 4, !tbaa !9
  %2795 = add nsw i32 %2794, 1
  store i32 %2795, ptr %64, align 4, !tbaa !9
  %2796 = load i32, ptr %54, align 4, !tbaa !9
  %2797 = add nsw i32 %2796, 2
  store i32 %2797, ptr %52, align 4, !tbaa !9
  br label %2798

2798:                                             ; preds = %2793, %2781
  br label %2799

2799:                                             ; preds = %2798, %2772
  %2800 = load i32, ptr %63, align 4, !tbaa !9
  %2801 = load i32, ptr %64, align 4, !tbaa !9
  %2802 = icmp eq i32 %2800, %2801
  br i1 %2802, label %2803, label %3017

2803:                                             ; preds = %2799
  %2804 = load ptr, ptr %27, align 8, !tbaa !5
  %2805 = load i32, ptr %54, align 4, !tbaa !9
  %2806 = sext i32 %2805 to i64
  %2807 = getelementptr inbounds float, ptr %2804, i64 %2806
  %2808 = load float, ptr %2807, align 4, !tbaa !11
  %2809 = load float, ptr %61, align 4, !tbaa !11
  %2810 = fcmp ogt float %2808, %2809
  br i1 %2810, label %2811, label %2838

2811:                                             ; preds = %2803
  %2812 = load float, ptr %51, align 4, !tbaa !11
  %2813 = fdiv float 1.000000e+00, %2812
  store float %2813, ptr %76, align 4, !tbaa !11
  %2814 = load ptr, ptr %18, align 8, !tbaa !5
  %2815 = load i32, ptr %2814, align 4, !tbaa !9
  %2816 = load i32, ptr %68, align 4, !tbaa !9
  %2817 = sub nsw i32 %2815, %2816
  %2818 = add nsw i32 %2817, 1
  store i32 %2818, ptr %37, align 4, !tbaa !9
  %2819 = load ptr, ptr %27, align 8, !tbaa !5
  %2820 = load i32, ptr %68, align 4, !tbaa !9
  %2821 = load ptr, ptr %18, align 8, !tbaa !5
  %2822 = load i32, ptr %2821, align 4, !tbaa !9
  %2823 = add nsw i32 %2820, %2822
  %2824 = sext i32 %2823 to i64
  %2825 = getelementptr inbounds float, ptr %2819, i64 %2824
  call void @sscal_(ptr noundef %37, ptr noundef %76, ptr noundef %2825, ptr noundef @c__1)
  %2826 = load ptr, ptr %18, align 8, !tbaa !5
  %2827 = load i32, ptr %2826, align 4, !tbaa !9
  %2828 = load i32, ptr %68, align 4, !tbaa !9
  %2829 = sub nsw i32 %2827, %2828
  %2830 = add nsw i32 %2829, 1
  store i32 %2830, ptr %37, align 4, !tbaa !9
  %2831 = load ptr, ptr %27, align 8, !tbaa !5
  %2832 = load i32, ptr %68, align 4, !tbaa !9
  %2833 = load i32, ptr %65, align 4, !tbaa !9
  %2834 = add nsw i32 %2832, %2833
  %2835 = sext i32 %2834 to i64
  %2836 = getelementptr inbounds float, ptr %2831, i64 %2835
  call void @sscal_(ptr noundef %37, ptr noundef %76, ptr noundef %2836, ptr noundef @c__1)
  store float 1.000000e+00, ptr %51, align 4, !tbaa !11
  %2837 = load float, ptr %73, align 4, !tbaa !11
  store float %2837, ptr %61, align 4, !tbaa !11
  br label %2838

2838:                                             ; preds = %2811, %2803
  %2839 = load i32, ptr %54, align 4, !tbaa !9
  %2840 = load i32, ptr %68, align 4, !tbaa !9
  %2841 = sub nsw i32 %2839, %2840
  %2842 = sub nsw i32 %2841, 2
  store i32 %2842, ptr %37, align 4, !tbaa !9
  %2843 = load ptr, ptr %19, align 8, !tbaa !5
  %2844 = load i32, ptr %68, align 4, !tbaa !9
  %2845 = add nsw i32 %2844, 2
  %2846 = load i32, ptr %54, align 4, !tbaa !9
  %2847 = load i32, ptr %29, align 4, !tbaa !9
  %2848 = mul nsw i32 %2846, %2847
  %2849 = add nsw i32 %2845, %2848
  %2850 = sext i32 %2849 to i64
  %2851 = getelementptr inbounds float, ptr %2843, i64 %2850
  %2852 = load ptr, ptr %27, align 8, !tbaa !5
  %2853 = load i32, ptr %68, align 4, !tbaa !9
  %2854 = add nsw i32 %2853, 2
  %2855 = load ptr, ptr %18, align 8, !tbaa !5
  %2856 = load i32, ptr %2855, align 4, !tbaa !9
  %2857 = add nsw i32 %2854, %2856
  %2858 = sext i32 %2857 to i64
  %2859 = getelementptr inbounds float, ptr %2852, i64 %2858
  %2860 = call float @sdot_(ptr noundef %37, ptr noundef %2851, ptr noundef @c__1, ptr noundef %2859, ptr noundef @c__1)
  %2861 = load ptr, ptr %27, align 8, !tbaa !5
  %2862 = load i32, ptr %54, align 4, !tbaa !9
  %2863 = load ptr, ptr %18, align 8, !tbaa !5
  %2864 = load i32, ptr %2863, align 4, !tbaa !9
  %2865 = add nsw i32 %2862, %2864
  %2866 = sext i32 %2865 to i64
  %2867 = getelementptr inbounds float, ptr %2861, i64 %2866
  %2868 = load float, ptr %2867, align 4, !tbaa !11
  %2869 = fsub float %2868, %2860
  store float %2869, ptr %2867, align 4, !tbaa !11
  %2870 = load i32, ptr %54, align 4, !tbaa !9
  %2871 = load i32, ptr %68, align 4, !tbaa !9
  %2872 = sub nsw i32 %2870, %2871
  %2873 = sub nsw i32 %2872, 2
  store i32 %2873, ptr %37, align 4, !tbaa !9
  %2874 = load ptr, ptr %19, align 8, !tbaa !5
  %2875 = load i32, ptr %68, align 4, !tbaa !9
  %2876 = add nsw i32 %2875, 2
  %2877 = load i32, ptr %54, align 4, !tbaa !9
  %2878 = load i32, ptr %29, align 4, !tbaa !9
  %2879 = mul nsw i32 %2877, %2878
  %2880 = add nsw i32 %2876, %2879
  %2881 = sext i32 %2880 to i64
  %2882 = getelementptr inbounds float, ptr %2874, i64 %2881
  %2883 = load ptr, ptr %27, align 8, !tbaa !5
  %2884 = load i32, ptr %68, align 4, !tbaa !9
  %2885 = add nsw i32 %2884, 2
  %2886 = load i32, ptr %65, align 4, !tbaa !9
  %2887 = add nsw i32 %2885, %2886
  %2888 = sext i32 %2887 to i64
  %2889 = getelementptr inbounds float, ptr %2883, i64 %2888
  %2890 = call float @sdot_(ptr noundef %37, ptr noundef %2882, ptr noundef @c__1, ptr noundef %2889, ptr noundef @c__1)
  %2891 = load ptr, ptr %27, align 8, !tbaa !5
  %2892 = load i32, ptr %54, align 4, !tbaa !9
  %2893 = load i32, ptr %65, align 4, !tbaa !9
  %2894 = add nsw i32 %2892, %2893
  %2895 = sext i32 %2894 to i64
  %2896 = getelementptr inbounds float, ptr %2891, i64 %2895
  %2897 = load float, ptr %2896, align 4, !tbaa !11
  %2898 = fsub float %2897, %2890
  store float %2898, ptr %2896, align 4, !tbaa !11
  %2899 = load float, ptr %71, align 4, !tbaa !11
  %2900 = fneg float %2899
  store float %2900, ptr %38, align 4, !tbaa !11
  %2901 = load ptr, ptr %19, align 8, !tbaa !5
  %2902 = load i32, ptr %54, align 4, !tbaa !9
  %2903 = load i32, ptr %54, align 4, !tbaa !9
  %2904 = load i32, ptr %29, align 4, !tbaa !9
  %2905 = mul nsw i32 %2903, %2904
  %2906 = add nsw i32 %2902, %2905
  %2907 = sext i32 %2906 to i64
  %2908 = getelementptr inbounds float, ptr %2901, i64 %2907
  %2909 = load ptr, ptr %20, align 8, !tbaa !5
  %2910 = load ptr, ptr %27, align 8, !tbaa !5
  %2911 = load i32, ptr %54, align 4, !tbaa !9
  %2912 = load ptr, ptr %18, align 8, !tbaa !5
  %2913 = load i32, ptr %2912, align 4, !tbaa !9
  %2914 = add nsw i32 %2911, %2913
  %2915 = sext i32 %2914 to i64
  %2916 = getelementptr inbounds float, ptr %2910, i64 %2915
  %2917 = load ptr, ptr %18, align 8, !tbaa !5
  %2918 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_false, ptr noundef @c__1, ptr noundef @c__2, ptr noundef %49, ptr noundef @c_b22, ptr noundef %2908, ptr noundef %2909, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %2916, ptr noundef %2917, ptr noundef %72, ptr noundef %38, ptr noundef %2918, ptr noundef @c__2, ptr noundef %56, ptr noundef %66, ptr noundef %46)
  %2919 = load float, ptr %56, align 4, !tbaa !11
  %2920 = fcmp une float %2919, 1.000000e+00
  br i1 %2920, label %2921, label %2945

2921:                                             ; preds = %2838
  %2922 = load ptr, ptr %18, align 8, !tbaa !5
  %2923 = load i32, ptr %2922, align 4, !tbaa !9
  %2924 = load i32, ptr %68, align 4, !tbaa !9
  %2925 = sub nsw i32 %2923, %2924
  %2926 = add nsw i32 %2925, 1
  store i32 %2926, ptr %37, align 4, !tbaa !9
  %2927 = load ptr, ptr %27, align 8, !tbaa !5
  %2928 = load i32, ptr %68, align 4, !tbaa !9
  %2929 = load ptr, ptr %18, align 8, !tbaa !5
  %2930 = load i32, ptr %2929, align 4, !tbaa !9
  %2931 = add nsw i32 %2928, %2930
  %2932 = sext i32 %2931 to i64
  %2933 = getelementptr inbounds float, ptr %2927, i64 %2932
  call void @sscal_(ptr noundef %37, ptr noundef %56, ptr noundef %2933, ptr noundef @c__1)
  %2934 = load ptr, ptr %18, align 8, !tbaa !5
  %2935 = load i32, ptr %2934, align 4, !tbaa !9
  %2936 = load i32, ptr %68, align 4, !tbaa !9
  %2937 = sub nsw i32 %2935, %2936
  %2938 = add nsw i32 %2937, 1
  store i32 %2938, ptr %37, align 4, !tbaa !9
  %2939 = load ptr, ptr %27, align 8, !tbaa !5
  %2940 = load i32, ptr %68, align 4, !tbaa !9
  %2941 = load i32, ptr %65, align 4, !tbaa !9
  %2942 = add nsw i32 %2940, %2941
  %2943 = sext i32 %2942 to i64
  %2944 = getelementptr inbounds float, ptr %2939, i64 %2943
  call void @sscal_(ptr noundef %37, ptr noundef %56, ptr noundef %2944, ptr noundef @c__1)
  br label %2945

2945:                                             ; preds = %2921, %2838
  %2946 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %2947 = load float, ptr %2946, align 16, !tbaa !11
  %2948 = load ptr, ptr %27, align 8, !tbaa !5
  %2949 = load i32, ptr %54, align 4, !tbaa !9
  %2950 = load ptr, ptr %18, align 8, !tbaa !5
  %2951 = load i32, ptr %2950, align 4, !tbaa !9
  %2952 = add nsw i32 %2949, %2951
  %2953 = sext i32 %2952 to i64
  %2954 = getelementptr inbounds float, ptr %2948, i64 %2953
  store float %2947, ptr %2954, align 4, !tbaa !11
  %2955 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 2
  %2956 = load float, ptr %2955, align 8, !tbaa !11
  %2957 = load ptr, ptr %27, align 8, !tbaa !5
  %2958 = load i32, ptr %54, align 4, !tbaa !9
  %2959 = load i32, ptr %65, align 4, !tbaa !9
  %2960 = add nsw i32 %2958, %2959
  %2961 = sext i32 %2960 to i64
  %2962 = getelementptr inbounds float, ptr %2957, i64 %2961
  store float %2956, ptr %2962, align 4, !tbaa !11
  %2963 = load ptr, ptr %27, align 8, !tbaa !5
  %2964 = load i32, ptr %54, align 4, !tbaa !9
  %2965 = load ptr, ptr %18, align 8, !tbaa !5
  %2966 = load i32, ptr %2965, align 4, !tbaa !9
  %2967 = add nsw i32 %2964, %2966
  %2968 = sext i32 %2967 to i64
  %2969 = getelementptr inbounds float, ptr %2963, i64 %2968
  %2970 = load float, ptr %2969, align 4, !tbaa !11
  store float %2970, ptr %38, align 4, !tbaa !11
  %2971 = load float, ptr %38, align 4, !tbaa !11
  %2972 = fcmp oge float %2971, 0.000000e+00
  br i1 %2972, label %2973, label %2975

2973:                                             ; preds = %2945
  %2974 = load float, ptr %38, align 4, !tbaa !11
  br label %2978

2975:                                             ; preds = %2945
  %2976 = load float, ptr %38, align 4, !tbaa !11
  %2977 = fneg float %2976
  br label %2978

2978:                                             ; preds = %2975, %2973
  %2979 = phi float [ %2974, %2973 ], [ %2977, %2975 ]
  store float %2979, ptr %40, align 4, !tbaa !11
  %2980 = load ptr, ptr %27, align 8, !tbaa !5
  %2981 = load i32, ptr %54, align 4, !tbaa !9
  %2982 = load i32, ptr %65, align 4, !tbaa !9
  %2983 = add nsw i32 %2981, %2982
  %2984 = sext i32 %2983 to i64
  %2985 = getelementptr inbounds float, ptr %2980, i64 %2984
  %2986 = load float, ptr %2985, align 4, !tbaa !11
  store float %2986, ptr %39, align 4, !tbaa !11
  %2987 = load float, ptr %39, align 4, !tbaa !11
  %2988 = fcmp oge float %2987, 0.000000e+00
  br i1 %2988, label %2989, label %2991

2989:                                             ; preds = %2978
  %2990 = load float, ptr %39, align 4, !tbaa !11
  br label %2994

2991:                                             ; preds = %2978
  %2992 = load float, ptr %39, align 4, !tbaa !11
  %2993 = fneg float %2992
  br label %2994

2994:                                             ; preds = %2991, %2989
  %2995 = phi float [ %2990, %2989 ], [ %2993, %2991 ]
  store float %2995, ptr %41, align 4, !tbaa !11
  %2996 = load float, ptr %40, align 4, !tbaa !11
  %2997 = load float, ptr %41, align 4, !tbaa !11
  %2998 = fcmp oge float %2996, %2997
  br i1 %2998, label %2999, label %3001

2999:                                             ; preds = %2994
  %3000 = load float, ptr %40, align 4, !tbaa !11
  br label %3003

3001:                                             ; preds = %2994
  %3002 = load float, ptr %41, align 4, !tbaa !11
  br label %3003

3003:                                             ; preds = %3001, %2999
  %3004 = phi float [ %3000, %2999 ], [ %3002, %3001 ]
  store float %3004, ptr %40, align 4, !tbaa !11
  %3005 = load float, ptr %40, align 4, !tbaa !11
  %3006 = load float, ptr %51, align 4, !tbaa !11
  %3007 = fcmp oge float %3005, %3006
  br i1 %3007, label %3008, label %3010

3008:                                             ; preds = %3003
  %3009 = load float, ptr %40, align 4, !tbaa !11
  br label %3012

3010:                                             ; preds = %3003
  %3011 = load float, ptr %51, align 4, !tbaa !11
  br label %3012

3012:                                             ; preds = %3010, %3008
  %3013 = phi float [ %3009, %3008 ], [ %3011, %3010 ]
  store float %3013, ptr %51, align 4, !tbaa !11
  %3014 = load float, ptr %73, align 4, !tbaa !11
  %3015 = load float, ptr %51, align 4, !tbaa !11
  %3016 = fdiv float %3014, %3015
  store float %3016, ptr %61, align 4, !tbaa !11
  br label %3363

3017:                                             ; preds = %2799
  %3018 = load ptr, ptr %27, align 8, !tbaa !5
  %3019 = load i32, ptr %54, align 4, !tbaa !9
  %3020 = sext i32 %3019 to i64
  %3021 = getelementptr inbounds float, ptr %3018, i64 %3020
  %3022 = load float, ptr %3021, align 4, !tbaa !11
  store float %3022, ptr %38, align 4, !tbaa !11
  %3023 = load ptr, ptr %27, align 8, !tbaa !5
  %3024 = load i32, ptr %54, align 4, !tbaa !9
  %3025 = add nsw i32 %3024, 1
  %3026 = sext i32 %3025 to i64
  %3027 = getelementptr inbounds float, ptr %3023, i64 %3026
  %3028 = load float, ptr %3027, align 4, !tbaa !11
  store float %3028, ptr %39, align 4, !tbaa !11
  %3029 = load float, ptr %38, align 4, !tbaa !11
  %3030 = load float, ptr %39, align 4, !tbaa !11
  %3031 = fcmp oge float %3029, %3030
  br i1 %3031, label %3032, label %3034

3032:                                             ; preds = %3017
  %3033 = load float, ptr %38, align 4, !tbaa !11
  br label %3036

3034:                                             ; preds = %3017
  %3035 = load float, ptr %39, align 4, !tbaa !11
  br label %3036

3036:                                             ; preds = %3034, %3032
  %3037 = phi float [ %3033, %3032 ], [ %3035, %3034 ]
  store float %3037, ptr %42, align 4, !tbaa !11
  %3038 = load float, ptr %42, align 4, !tbaa !11
  %3039 = load float, ptr %61, align 4, !tbaa !11
  %3040 = fcmp ogt float %3038, %3039
  br i1 %3040, label %3041, label %3068

3041:                                             ; preds = %3036
  %3042 = load float, ptr %51, align 4, !tbaa !11
  %3043 = fdiv float 1.000000e+00, %3042
  store float %3043, ptr %76, align 4, !tbaa !11
  %3044 = load ptr, ptr %18, align 8, !tbaa !5
  %3045 = load i32, ptr %3044, align 4, !tbaa !9
  %3046 = load i32, ptr %68, align 4, !tbaa !9
  %3047 = sub nsw i32 %3045, %3046
  %3048 = add nsw i32 %3047, 1
  store i32 %3048, ptr %37, align 4, !tbaa !9
  %3049 = load ptr, ptr %27, align 8, !tbaa !5
  %3050 = load i32, ptr %68, align 4, !tbaa !9
  %3051 = load ptr, ptr %18, align 8, !tbaa !5
  %3052 = load i32, ptr %3051, align 4, !tbaa !9
  %3053 = add nsw i32 %3050, %3052
  %3054 = sext i32 %3053 to i64
  %3055 = getelementptr inbounds float, ptr %3049, i64 %3054
  call void @sscal_(ptr noundef %37, ptr noundef %76, ptr noundef %3055, ptr noundef @c__1)
  %3056 = load ptr, ptr %18, align 8, !tbaa !5
  %3057 = load i32, ptr %3056, align 4, !tbaa !9
  %3058 = load i32, ptr %68, align 4, !tbaa !9
  %3059 = sub nsw i32 %3057, %3058
  %3060 = add nsw i32 %3059, 1
  store i32 %3060, ptr %37, align 4, !tbaa !9
  %3061 = load ptr, ptr %27, align 8, !tbaa !5
  %3062 = load i32, ptr %68, align 4, !tbaa !9
  %3063 = load i32, ptr %65, align 4, !tbaa !9
  %3064 = add nsw i32 %3062, %3063
  %3065 = sext i32 %3064 to i64
  %3066 = getelementptr inbounds float, ptr %3061, i64 %3065
  call void @sscal_(ptr noundef %37, ptr noundef %76, ptr noundef %3066, ptr noundef @c__1)
  store float 1.000000e+00, ptr %51, align 4, !tbaa !11
  %3067 = load float, ptr %73, align 4, !tbaa !11
  store float %3067, ptr %61, align 4, !tbaa !11
  br label %3068

3068:                                             ; preds = %3041, %3036
  %3069 = load i32, ptr %54, align 4, !tbaa !9
  %3070 = load i32, ptr %68, align 4, !tbaa !9
  %3071 = sub nsw i32 %3069, %3070
  %3072 = sub nsw i32 %3071, 2
  store i32 %3072, ptr %37, align 4, !tbaa !9
  %3073 = load ptr, ptr %19, align 8, !tbaa !5
  %3074 = load i32, ptr %68, align 4, !tbaa !9
  %3075 = add nsw i32 %3074, 2
  %3076 = load i32, ptr %54, align 4, !tbaa !9
  %3077 = load i32, ptr %29, align 4, !tbaa !9
  %3078 = mul nsw i32 %3076, %3077
  %3079 = add nsw i32 %3075, %3078
  %3080 = sext i32 %3079 to i64
  %3081 = getelementptr inbounds float, ptr %3073, i64 %3080
  %3082 = load ptr, ptr %27, align 8, !tbaa !5
  %3083 = load i32, ptr %68, align 4, !tbaa !9
  %3084 = add nsw i32 %3083, 2
  %3085 = load ptr, ptr %18, align 8, !tbaa !5
  %3086 = load i32, ptr %3085, align 4, !tbaa !9
  %3087 = add nsw i32 %3084, %3086
  %3088 = sext i32 %3087 to i64
  %3089 = getelementptr inbounds float, ptr %3082, i64 %3088
  %3090 = call float @sdot_(ptr noundef %37, ptr noundef %3081, ptr noundef @c__1, ptr noundef %3089, ptr noundef @c__1)
  %3091 = load ptr, ptr %27, align 8, !tbaa !5
  %3092 = load i32, ptr %54, align 4, !tbaa !9
  %3093 = load ptr, ptr %18, align 8, !tbaa !5
  %3094 = load i32, ptr %3093, align 4, !tbaa !9
  %3095 = add nsw i32 %3092, %3094
  %3096 = sext i32 %3095 to i64
  %3097 = getelementptr inbounds float, ptr %3091, i64 %3096
  %3098 = load float, ptr %3097, align 4, !tbaa !11
  %3099 = fsub float %3098, %3090
  store float %3099, ptr %3097, align 4, !tbaa !11
  %3100 = load i32, ptr %54, align 4, !tbaa !9
  %3101 = load i32, ptr %68, align 4, !tbaa !9
  %3102 = sub nsw i32 %3100, %3101
  %3103 = sub nsw i32 %3102, 2
  store i32 %3103, ptr %37, align 4, !tbaa !9
  %3104 = load ptr, ptr %19, align 8, !tbaa !5
  %3105 = load i32, ptr %68, align 4, !tbaa !9
  %3106 = add nsw i32 %3105, 2
  %3107 = load i32, ptr %54, align 4, !tbaa !9
  %3108 = load i32, ptr %29, align 4, !tbaa !9
  %3109 = mul nsw i32 %3107, %3108
  %3110 = add nsw i32 %3106, %3109
  %3111 = sext i32 %3110 to i64
  %3112 = getelementptr inbounds float, ptr %3104, i64 %3111
  %3113 = load ptr, ptr %27, align 8, !tbaa !5
  %3114 = load i32, ptr %68, align 4, !tbaa !9
  %3115 = add nsw i32 %3114, 2
  %3116 = load i32, ptr %65, align 4, !tbaa !9
  %3117 = add nsw i32 %3115, %3116
  %3118 = sext i32 %3117 to i64
  %3119 = getelementptr inbounds float, ptr %3113, i64 %3118
  %3120 = call float @sdot_(ptr noundef %37, ptr noundef %3112, ptr noundef @c__1, ptr noundef %3119, ptr noundef @c__1)
  %3121 = load ptr, ptr %27, align 8, !tbaa !5
  %3122 = load i32, ptr %54, align 4, !tbaa !9
  %3123 = load i32, ptr %65, align 4, !tbaa !9
  %3124 = add nsw i32 %3122, %3123
  %3125 = sext i32 %3124 to i64
  %3126 = getelementptr inbounds float, ptr %3121, i64 %3125
  %3127 = load float, ptr %3126, align 4, !tbaa !11
  %3128 = fsub float %3127, %3120
  store float %3128, ptr %3126, align 4, !tbaa !11
  %3129 = load i32, ptr %54, align 4, !tbaa !9
  %3130 = load i32, ptr %68, align 4, !tbaa !9
  %3131 = sub nsw i32 %3129, %3130
  %3132 = sub nsw i32 %3131, 2
  store i32 %3132, ptr %37, align 4, !tbaa !9
  %3133 = load ptr, ptr %19, align 8, !tbaa !5
  %3134 = load i32, ptr %68, align 4, !tbaa !9
  %3135 = add nsw i32 %3134, 2
  %3136 = load i32, ptr %54, align 4, !tbaa !9
  %3137 = add nsw i32 %3136, 1
  %3138 = load i32, ptr %29, align 4, !tbaa !9
  %3139 = mul nsw i32 %3137, %3138
  %3140 = add nsw i32 %3135, %3139
  %3141 = sext i32 %3140 to i64
  %3142 = getelementptr inbounds float, ptr %3133, i64 %3141
  %3143 = load ptr, ptr %27, align 8, !tbaa !5
  %3144 = load i32, ptr %68, align 4, !tbaa !9
  %3145 = add nsw i32 %3144, 2
  %3146 = load ptr, ptr %18, align 8, !tbaa !5
  %3147 = load i32, ptr %3146, align 4, !tbaa !9
  %3148 = add nsw i32 %3145, %3147
  %3149 = sext i32 %3148 to i64
  %3150 = getelementptr inbounds float, ptr %3143, i64 %3149
  %3151 = call float @sdot_(ptr noundef %37, ptr noundef %3142, ptr noundef @c__1, ptr noundef %3150, ptr noundef @c__1)
  %3152 = load ptr, ptr %27, align 8, !tbaa !5
  %3153 = load i32, ptr %54, align 4, !tbaa !9
  %3154 = add nsw i32 %3153, 1
  %3155 = load ptr, ptr %18, align 8, !tbaa !5
  %3156 = load i32, ptr %3155, align 4, !tbaa !9
  %3157 = add nsw i32 %3154, %3156
  %3158 = sext i32 %3157 to i64
  %3159 = getelementptr inbounds float, ptr %3152, i64 %3158
  %3160 = load float, ptr %3159, align 4, !tbaa !11
  %3161 = fsub float %3160, %3151
  store float %3161, ptr %3159, align 4, !tbaa !11
  %3162 = load i32, ptr %54, align 4, !tbaa !9
  %3163 = load i32, ptr %68, align 4, !tbaa !9
  %3164 = sub nsw i32 %3162, %3163
  %3165 = sub nsw i32 %3164, 2
  store i32 %3165, ptr %37, align 4, !tbaa !9
  %3166 = load ptr, ptr %19, align 8, !tbaa !5
  %3167 = load i32, ptr %68, align 4, !tbaa !9
  %3168 = add nsw i32 %3167, 2
  %3169 = load i32, ptr %54, align 4, !tbaa !9
  %3170 = add nsw i32 %3169, 1
  %3171 = load i32, ptr %29, align 4, !tbaa !9
  %3172 = mul nsw i32 %3170, %3171
  %3173 = add nsw i32 %3168, %3172
  %3174 = sext i32 %3173 to i64
  %3175 = getelementptr inbounds float, ptr %3166, i64 %3174
  %3176 = load ptr, ptr %27, align 8, !tbaa !5
  %3177 = load i32, ptr %68, align 4, !tbaa !9
  %3178 = add nsw i32 %3177, 2
  %3179 = load i32, ptr %65, align 4, !tbaa !9
  %3180 = add nsw i32 %3178, %3179
  %3181 = sext i32 %3180 to i64
  %3182 = getelementptr inbounds float, ptr %3176, i64 %3181
  %3183 = call float @sdot_(ptr noundef %37, ptr noundef %3175, ptr noundef @c__1, ptr noundef %3182, ptr noundef @c__1)
  %3184 = load ptr, ptr %27, align 8, !tbaa !5
  %3185 = load i32, ptr %54, align 4, !tbaa !9
  %3186 = add nsw i32 %3185, 1
  %3187 = load i32, ptr %65, align 4, !tbaa !9
  %3188 = add nsw i32 %3186, %3187
  %3189 = sext i32 %3188 to i64
  %3190 = getelementptr inbounds float, ptr %3184, i64 %3189
  %3191 = load float, ptr %3190, align 4, !tbaa !11
  %3192 = fsub float %3191, %3183
  store float %3192, ptr %3190, align 4, !tbaa !11
  %3193 = load float, ptr %71, align 4, !tbaa !11
  %3194 = fneg float %3193
  store float %3194, ptr %38, align 4, !tbaa !11
  %3195 = load ptr, ptr %19, align 8, !tbaa !5
  %3196 = load i32, ptr %54, align 4, !tbaa !9
  %3197 = load i32, ptr %54, align 4, !tbaa !9
  %3198 = load i32, ptr %29, align 4, !tbaa !9
  %3199 = mul nsw i32 %3197, %3198
  %3200 = add nsw i32 %3196, %3199
  %3201 = sext i32 %3200 to i64
  %3202 = getelementptr inbounds float, ptr %3195, i64 %3201
  %3203 = load ptr, ptr %20, align 8, !tbaa !5
  %3204 = load ptr, ptr %27, align 8, !tbaa !5
  %3205 = load i32, ptr %54, align 4, !tbaa !9
  %3206 = load ptr, ptr %18, align 8, !tbaa !5
  %3207 = load i32, ptr %3206, align 4, !tbaa !9
  %3208 = add nsw i32 %3205, %3207
  %3209 = sext i32 %3208 to i64
  %3210 = getelementptr inbounds float, ptr %3204, i64 %3209
  %3211 = load ptr, ptr %18, align 8, !tbaa !5
  %3212 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_true, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %49, ptr noundef @c_b22, ptr noundef %3202, ptr noundef %3203, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %3210, ptr noundef %3211, ptr noundef %72, ptr noundef %38, ptr noundef %3212, ptr noundef @c__2, ptr noundef %56, ptr noundef %66, ptr noundef %46)
  %3213 = load float, ptr %56, align 4, !tbaa !11
  %3214 = fcmp une float %3213, 1.000000e+00
  br i1 %3214, label %3215, label %3239

3215:                                             ; preds = %3068
  %3216 = load ptr, ptr %18, align 8, !tbaa !5
  %3217 = load i32, ptr %3216, align 4, !tbaa !9
  %3218 = load i32, ptr %68, align 4, !tbaa !9
  %3219 = sub nsw i32 %3217, %3218
  %3220 = add nsw i32 %3219, 1
  store i32 %3220, ptr %37, align 4, !tbaa !9
  %3221 = load ptr, ptr %27, align 8, !tbaa !5
  %3222 = load i32, ptr %68, align 4, !tbaa !9
  %3223 = load ptr, ptr %18, align 8, !tbaa !5
  %3224 = load i32, ptr %3223, align 4, !tbaa !9
  %3225 = add nsw i32 %3222, %3224
  %3226 = sext i32 %3225 to i64
  %3227 = getelementptr inbounds float, ptr %3221, i64 %3226
  call void @sscal_(ptr noundef %37, ptr noundef %56, ptr noundef %3227, ptr noundef @c__1)
  %3228 = load ptr, ptr %18, align 8, !tbaa !5
  %3229 = load i32, ptr %3228, align 4, !tbaa !9
  %3230 = load i32, ptr %68, align 4, !tbaa !9
  %3231 = sub nsw i32 %3229, %3230
  %3232 = add nsw i32 %3231, 1
  store i32 %3232, ptr %37, align 4, !tbaa !9
  %3233 = load ptr, ptr %27, align 8, !tbaa !5
  %3234 = load i32, ptr %68, align 4, !tbaa !9
  %3235 = load i32, ptr %65, align 4, !tbaa !9
  %3236 = add nsw i32 %3234, %3235
  %3237 = sext i32 %3236 to i64
  %3238 = getelementptr inbounds float, ptr %3233, i64 %3237
  call void @sscal_(ptr noundef %37, ptr noundef %56, ptr noundef %3238, ptr noundef @c__1)
  br label %3239

3239:                                             ; preds = %3215, %3068
  %3240 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %3241 = load float, ptr %3240, align 16, !tbaa !11
  %3242 = load ptr, ptr %27, align 8, !tbaa !5
  %3243 = load i32, ptr %54, align 4, !tbaa !9
  %3244 = load ptr, ptr %18, align 8, !tbaa !5
  %3245 = load i32, ptr %3244, align 4, !tbaa !9
  %3246 = add nsw i32 %3243, %3245
  %3247 = sext i32 %3246 to i64
  %3248 = getelementptr inbounds float, ptr %3242, i64 %3247
  store float %3241, ptr %3248, align 4, !tbaa !11
  %3249 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 2
  %3250 = load float, ptr %3249, align 8, !tbaa !11
  %3251 = load ptr, ptr %27, align 8, !tbaa !5
  %3252 = load i32, ptr %54, align 4, !tbaa !9
  %3253 = load i32, ptr %65, align 4, !tbaa !9
  %3254 = add nsw i32 %3252, %3253
  %3255 = sext i32 %3254 to i64
  %3256 = getelementptr inbounds float, ptr %3251, i64 %3255
  store float %3250, ptr %3256, align 4, !tbaa !11
  %3257 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 1
  %3258 = load float, ptr %3257, align 4, !tbaa !11
  %3259 = load ptr, ptr %27, align 8, !tbaa !5
  %3260 = load i32, ptr %54, align 4, !tbaa !9
  %3261 = add nsw i32 %3260, 1
  %3262 = load ptr, ptr %18, align 8, !tbaa !5
  %3263 = load i32, ptr %3262, align 4, !tbaa !9
  %3264 = add nsw i32 %3261, %3263
  %3265 = sext i32 %3264 to i64
  %3266 = getelementptr inbounds float, ptr %3259, i64 %3265
  store float %3258, ptr %3266, align 4, !tbaa !11
  %3267 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 3
  %3268 = load float, ptr %3267, align 4, !tbaa !11
  %3269 = load ptr, ptr %27, align 8, !tbaa !5
  %3270 = load i32, ptr %54, align 4, !tbaa !9
  %3271 = add nsw i32 %3270, 1
  %3272 = load i32, ptr %65, align 4, !tbaa !9
  %3273 = add nsw i32 %3271, %3272
  %3274 = sext i32 %3273 to i64
  %3275 = getelementptr inbounds float, ptr %3269, i64 %3274
  store float %3268, ptr %3275, align 4, !tbaa !11
  %3276 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %3277 = load float, ptr %3276, align 16, !tbaa !11
  %3278 = fcmp oge float %3277, 0.000000e+00
  br i1 %3278, label %3279, label %3282

3279:                                             ; preds = %3239
  %3280 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %3281 = load float, ptr %3280, align 16, !tbaa !11
  br label %3286

3282:                                             ; preds = %3239
  %3283 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 0
  %3284 = load float, ptr %3283, align 16, !tbaa !11
  %3285 = fneg float %3284
  br label %3286

3286:                                             ; preds = %3282, %3279
  %3287 = phi float [ %3281, %3279 ], [ %3285, %3282 ]
  store float %3287, ptr %38, align 4, !tbaa !11
  %3288 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 2
  %3289 = load float, ptr %3288, align 8, !tbaa !11
  %3290 = fcmp oge float %3289, 0.000000e+00
  br i1 %3290, label %3291, label %3294

3291:                                             ; preds = %3286
  %3292 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 2
  %3293 = load float, ptr %3292, align 8, !tbaa !11
  br label %3298

3294:                                             ; preds = %3286
  %3295 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 2
  %3296 = load float, ptr %3295, align 8, !tbaa !11
  %3297 = fneg float %3296
  br label %3298

3298:                                             ; preds = %3294, %3291
  %3299 = phi float [ %3293, %3291 ], [ %3297, %3294 ]
  store float %3299, ptr %39, align 4, !tbaa !11
  %3300 = load float, ptr %38, align 4, !tbaa !11
  %3301 = load float, ptr %39, align 4, !tbaa !11
  %3302 = fcmp oge float %3300, %3301
  br i1 %3302, label %3303, label %3305

3303:                                             ; preds = %3298
  %3304 = load float, ptr %38, align 4, !tbaa !11
  br label %3307

3305:                                             ; preds = %3298
  %3306 = load float, ptr %39, align 4, !tbaa !11
  br label %3307

3307:                                             ; preds = %3305, %3303
  %3308 = phi float [ %3304, %3303 ], [ %3306, %3305 ]
  store float %3308, ptr %38, align 4, !tbaa !11
  %3309 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 1
  %3310 = load float, ptr %3309, align 4, !tbaa !11
  %3311 = fcmp oge float %3310, 0.000000e+00
  br i1 %3311, label %3312, label %3315

3312:                                             ; preds = %3307
  %3313 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 1
  %3314 = load float, ptr %3313, align 4, !tbaa !11
  br label %3319

3315:                                             ; preds = %3307
  %3316 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 1
  %3317 = load float, ptr %3316, align 4, !tbaa !11
  %3318 = fneg float %3317
  br label %3319

3319:                                             ; preds = %3315, %3312
  %3320 = phi float [ %3314, %3312 ], [ %3318, %3315 ]
  store float %3320, ptr %39, align 4, !tbaa !11
  %3321 = load float, ptr %38, align 4, !tbaa !11
  %3322 = load float, ptr %39, align 4, !tbaa !11
  %3323 = fcmp oge float %3321, %3322
  br i1 %3323, label %3324, label %3326

3324:                                             ; preds = %3319
  %3325 = load float, ptr %38, align 4, !tbaa !11
  br label %3328

3326:                                             ; preds = %3319
  %3327 = load float, ptr %39, align 4, !tbaa !11
  br label %3328

3328:                                             ; preds = %3326, %3324
  %3329 = phi float [ %3325, %3324 ], [ %3327, %3326 ]
  store float %3329, ptr %38, align 4, !tbaa !11
  %3330 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 3
  %3331 = load float, ptr %3330, align 4, !tbaa !11
  %3332 = fcmp oge float %3331, 0.000000e+00
  br i1 %3332, label %3333, label %3336

3333:                                             ; preds = %3328
  %3334 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 3
  %3335 = load float, ptr %3334, align 4, !tbaa !11
  br label %3340

3336:                                             ; preds = %3328
  %3337 = getelementptr inbounds [4 x float], ptr %57, i64 0, i64 3
  %3338 = load float, ptr %3337, align 4, !tbaa !11
  %3339 = fneg float %3338
  br label %3340

3340:                                             ; preds = %3336, %3333
  %3341 = phi float [ %3335, %3333 ], [ %3339, %3336 ]
  store float %3341, ptr %39, align 4, !tbaa !11
  %3342 = load float, ptr %38, align 4, !tbaa !11
  %3343 = load float, ptr %39, align 4, !tbaa !11
  %3344 = fcmp oge float %3342, %3343
  br i1 %3344, label %3345, label %3347

3345:                                             ; preds = %3340
  %3346 = load float, ptr %38, align 4, !tbaa !11
  br label %3349

3347:                                             ; preds = %3340
  %3348 = load float, ptr %39, align 4, !tbaa !11
  br label %3349

3349:                                             ; preds = %3347, %3345
  %3350 = phi float [ %3346, %3345 ], [ %3348, %3347 ]
  store float %3350, ptr %38, align 4, !tbaa !11
  %3351 = load float, ptr %38, align 4, !tbaa !11
  %3352 = load float, ptr %51, align 4, !tbaa !11
  %3353 = fcmp oge float %3351, %3352
  br i1 %3353, label %3354, label %3356

3354:                                             ; preds = %3349
  %3355 = load float, ptr %38, align 4, !tbaa !11
  br label %3358

3356:                                             ; preds = %3349
  %3357 = load float, ptr %51, align 4, !tbaa !11
  br label %3358

3358:                                             ; preds = %3356, %3354
  %3359 = phi float [ %3355, %3354 ], [ %3357, %3356 ]
  store float %3359, ptr %51, align 4, !tbaa !11
  %3360 = load float, ptr %73, align 4, !tbaa !11
  %3361 = load float, ptr %51, align 4, !tbaa !11
  %3362 = fdiv float %3360, %3361
  store float %3362, ptr %61, align 4, !tbaa !11
  br label %3363

3363:                                             ; preds = %3358, %3012
  br label %3364

3364:                                             ; preds = %3363, %2771
  br label %3365

3365:                                             ; preds = %3364
  %3366 = load i32, ptr %54, align 4, !tbaa !9
  %3367 = add nsw i32 %3366, 1
  store i32 %3367, ptr %54, align 4, !tbaa !9
  br label %2763, !llvm.loop !30

3368:                                             ; preds = %2763
  %3369 = load i32, ptr %50, align 4, !tbaa !9
  %3370 = icmp ne i32 %3369, 0
  br i1 %3370, label %3529, label %3371

3371:                                             ; preds = %3368
  %3372 = load ptr, ptr %18, align 8, !tbaa !5
  %3373 = load i32, ptr %3372, align 4, !tbaa !9
  %3374 = load i32, ptr %68, align 4, !tbaa !9
  %3375 = sub nsw i32 %3373, %3374
  %3376 = add nsw i32 %3375, 1
  store i32 %3376, ptr %36, align 4, !tbaa !9
  %3377 = load ptr, ptr %27, align 8, !tbaa !5
  %3378 = load i32, ptr %68, align 4, !tbaa !9
  %3379 = load ptr, ptr %18, align 8, !tbaa !5
  %3380 = load i32, ptr %3379, align 4, !tbaa !9
  %3381 = add nsw i32 %3378, %3380
  %3382 = sext i32 %3381 to i64
  %3383 = getelementptr inbounds float, ptr %3377, i64 %3382
  %3384 = load ptr, ptr %21, align 8, !tbaa !5
  %3385 = load i32, ptr %68, align 4, !tbaa !9
  %3386 = load i32, ptr %70, align 4, !tbaa !9
  %3387 = load i32, ptr %31, align 4, !tbaa !9
  %3388 = mul nsw i32 %3386, %3387
  %3389 = add nsw i32 %3385, %3388
  %3390 = sext i32 %3389 to i64
  %3391 = getelementptr inbounds float, ptr %3384, i64 %3390
  call void @scopy_(ptr noundef %36, ptr noundef %3383, ptr noundef @c__1, ptr noundef %3391, ptr noundef @c__1)
  %3392 = load ptr, ptr %18, align 8, !tbaa !5
  %3393 = load i32, ptr %3392, align 4, !tbaa !9
  %3394 = load i32, ptr %68, align 4, !tbaa !9
  %3395 = sub nsw i32 %3393, %3394
  %3396 = add nsw i32 %3395, 1
  store i32 %3396, ptr %36, align 4, !tbaa !9
  %3397 = load ptr, ptr %27, align 8, !tbaa !5
  %3398 = load i32, ptr %68, align 4, !tbaa !9
  %3399 = load i32, ptr %65, align 4, !tbaa !9
  %3400 = add nsw i32 %3398, %3399
  %3401 = sext i32 %3400 to i64
  %3402 = getelementptr inbounds float, ptr %3397, i64 %3401
  %3403 = load ptr, ptr %21, align 8, !tbaa !5
  %3404 = load i32, ptr %68, align 4, !tbaa !9
  %3405 = load i32, ptr %70, align 4, !tbaa !9
  %3406 = add nsw i32 %3405, 1
  %3407 = load i32, ptr %31, align 4, !tbaa !9
  %3408 = mul nsw i32 %3406, %3407
  %3409 = add nsw i32 %3404, %3408
  %3410 = sext i32 %3409 to i64
  %3411 = getelementptr inbounds float, ptr %3403, i64 %3410
  call void @scopy_(ptr noundef %36, ptr noundef %3402, ptr noundef @c__1, ptr noundef %3411, ptr noundef @c__1)
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %3412 = load ptr, ptr %18, align 8, !tbaa !5
  %3413 = load i32, ptr %3412, align 4, !tbaa !9
  store i32 %3413, ptr %36, align 4, !tbaa !9
  %3414 = load i32, ptr %68, align 4, !tbaa !9
  store i32 %3414, ptr %55, align 4, !tbaa !9
  br label %3415

3415:                                             ; preds = %3468, %3371
  %3416 = load i32, ptr %55, align 4, !tbaa !9
  %3417 = load i32, ptr %36, align 4, !tbaa !9
  %3418 = icmp sle i32 %3416, %3417
  br i1 %3418, label %3419, label %3471

3419:                                             ; preds = %3415
  %3420 = load float, ptr %43, align 4, !tbaa !11
  store float %3420, ptr %40, align 4, !tbaa !11
  %3421 = load ptr, ptr %21, align 8, !tbaa !5
  %3422 = load i32, ptr %55, align 4, !tbaa !9
  %3423 = load i32, ptr %70, align 4, !tbaa !9
  %3424 = load i32, ptr %31, align 4, !tbaa !9
  %3425 = mul nsw i32 %3423, %3424
  %3426 = add nsw i32 %3422, %3425
  %3427 = sext i32 %3426 to i64
  %3428 = getelementptr inbounds float, ptr %3421, i64 %3427
  %3429 = load float, ptr %3428, align 4, !tbaa !11
  store float %3429, ptr %38, align 4, !tbaa !11
  %3430 = load float, ptr %38, align 4, !tbaa !11
  %3431 = fcmp oge float %3430, 0.000000e+00
  br i1 %3431, label %3432, label %3434

3432:                                             ; preds = %3419
  %3433 = load float, ptr %38, align 4, !tbaa !11
  br label %3437

3434:                                             ; preds = %3419
  %3435 = load float, ptr %38, align 4, !tbaa !11
  %3436 = fneg float %3435
  br label %3437

3437:                                             ; preds = %3434, %3432
  %3438 = phi float [ %3433, %3432 ], [ %3436, %3434 ]
  %3439 = load ptr, ptr %21, align 8, !tbaa !5
  %3440 = load i32, ptr %55, align 4, !tbaa !9
  %3441 = load i32, ptr %70, align 4, !tbaa !9
  %3442 = add nsw i32 %3441, 1
  %3443 = load i32, ptr %31, align 4, !tbaa !9
  %3444 = mul nsw i32 %3442, %3443
  %3445 = add nsw i32 %3440, %3444
  %3446 = sext i32 %3445 to i64
  %3447 = getelementptr inbounds float, ptr %3439, i64 %3446
  %3448 = load float, ptr %3447, align 4, !tbaa !11
  store float %3448, ptr %39, align 4, !tbaa !11
  %3449 = load float, ptr %39, align 4, !tbaa !11
  %3450 = fcmp oge float %3449, 0.000000e+00
  br i1 %3450, label %3451, label %3453

3451:                                             ; preds = %3437
  %3452 = load float, ptr %39, align 4, !tbaa !11
  br label %3456

3453:                                             ; preds = %3437
  %3454 = load float, ptr %39, align 4, !tbaa !11
  %3455 = fneg float %3454
  br label %3456

3456:                                             ; preds = %3453, %3451
  %3457 = phi float [ %3452, %3451 ], [ %3455, %3453 ]
  %3458 = fadd float %3438, %3457
  store float %3458, ptr %41, align 4, !tbaa !11
  %3459 = load float, ptr %40, align 4, !tbaa !11
  %3460 = load float, ptr %41, align 4, !tbaa !11
  %3461 = fcmp oge float %3459, %3460
  br i1 %3461, label %3462, label %3464

3462:                                             ; preds = %3456
  %3463 = load float, ptr %40, align 4, !tbaa !11
  br label %3466

3464:                                             ; preds = %3456
  %3465 = load float, ptr %41, align 4, !tbaa !11
  br label %3466

3466:                                             ; preds = %3464, %3462
  %3467 = phi float [ %3463, %3462 ], [ %3465, %3464 ]
  store float %3467, ptr %43, align 4, !tbaa !11
  br label %3468

3468:                                             ; preds = %3466
  %3469 = load i32, ptr %55, align 4, !tbaa !9
  %3470 = add nsw i32 %3469, 1
  store i32 %3470, ptr %55, align 4, !tbaa !9
  br label %3415, !llvm.loop !31

3471:                                             ; preds = %3415
  %3472 = load float, ptr %43, align 4, !tbaa !11
  %3473 = fdiv float 1.000000e+00, %3472
  store float %3473, ptr %58, align 4, !tbaa !11
  %3474 = load ptr, ptr %18, align 8, !tbaa !5
  %3475 = load i32, ptr %3474, align 4, !tbaa !9
  %3476 = load i32, ptr %68, align 4, !tbaa !9
  %3477 = sub nsw i32 %3475, %3476
  %3478 = add nsw i32 %3477, 1
  store i32 %3478, ptr %36, align 4, !tbaa !9
  %3479 = load ptr, ptr %21, align 8, !tbaa !5
  %3480 = load i32, ptr %68, align 4, !tbaa !9
  %3481 = load i32, ptr %70, align 4, !tbaa !9
  %3482 = load i32, ptr %31, align 4, !tbaa !9
  %3483 = mul nsw i32 %3481, %3482
  %3484 = add nsw i32 %3480, %3483
  %3485 = sext i32 %3484 to i64
  %3486 = getelementptr inbounds float, ptr %3479, i64 %3485
  call void @sscal_(ptr noundef %36, ptr noundef %58, ptr noundef %3486, ptr noundef @c__1)
  %3487 = load ptr, ptr %18, align 8, !tbaa !5
  %3488 = load i32, ptr %3487, align 4, !tbaa !9
  %3489 = load i32, ptr %68, align 4, !tbaa !9
  %3490 = sub nsw i32 %3488, %3489
  %3491 = add nsw i32 %3490, 1
  store i32 %3491, ptr %36, align 4, !tbaa !9
  %3492 = load ptr, ptr %21, align 8, !tbaa !5
  %3493 = load i32, ptr %68, align 4, !tbaa !9
  %3494 = load i32, ptr %70, align 4, !tbaa !9
  %3495 = add nsw i32 %3494, 1
  %3496 = load i32, ptr %31, align 4, !tbaa !9
  %3497 = mul nsw i32 %3495, %3496
  %3498 = add nsw i32 %3493, %3497
  %3499 = sext i32 %3498 to i64
  %3500 = getelementptr inbounds float, ptr %3492, i64 %3499
  call void @sscal_(ptr noundef %36, ptr noundef %58, ptr noundef %3500, ptr noundef @c__1)
  %3501 = load i32, ptr %68, align 4, !tbaa !9
  %3502 = sub nsw i32 %3501, 1
  store i32 %3502, ptr %36, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %3503

3503:                                             ; preds = %3525, %3471
  %3504 = load i32, ptr %55, align 4, !tbaa !9
  %3505 = load i32, ptr %36, align 4, !tbaa !9
  %3506 = icmp sle i32 %3504, %3505
  br i1 %3506, label %3507, label %3528

3507:                                             ; preds = %3503
  %3508 = load ptr, ptr %21, align 8, !tbaa !5
  %3509 = load i32, ptr %55, align 4, !tbaa !9
  %3510 = load i32, ptr %70, align 4, !tbaa !9
  %3511 = load i32, ptr %31, align 4, !tbaa !9
  %3512 = mul nsw i32 %3510, %3511
  %3513 = add nsw i32 %3509, %3512
  %3514 = sext i32 %3513 to i64
  %3515 = getelementptr inbounds float, ptr %3508, i64 %3514
  store float 0.000000e+00, ptr %3515, align 4, !tbaa !11
  %3516 = load ptr, ptr %21, align 8, !tbaa !5
  %3517 = load i32, ptr %55, align 4, !tbaa !9
  %3518 = load i32, ptr %70, align 4, !tbaa !9
  %3519 = add nsw i32 %3518, 1
  %3520 = load i32, ptr %31, align 4, !tbaa !9
  %3521 = mul nsw i32 %3519, %3520
  %3522 = add nsw i32 %3517, %3521
  %3523 = sext i32 %3522 to i64
  %3524 = getelementptr inbounds float, ptr %3516, i64 %3523
  store float 0.000000e+00, ptr %3524, align 4, !tbaa !11
  br label %3525

3525:                                             ; preds = %3507
  %3526 = load i32, ptr %55, align 4, !tbaa !9
  %3527 = add nsw i32 %3526, 1
  store i32 %3527, ptr %55, align 4, !tbaa !9
  br label %3503, !llvm.loop !32

3528:                                             ; preds = %3503
  br label %3721

3529:                                             ; preds = %3368
  %3530 = load i32, ptr %68, align 4, !tbaa !9
  %3531 = load ptr, ptr %18, align 8, !tbaa !5
  %3532 = load i32, ptr %3531, align 4, !tbaa !9
  %3533 = sub nsw i32 %3532, 1
  %3534 = icmp slt i32 %3530, %3533
  br i1 %3534, label %3535, label %3610

3535:                                             ; preds = %3529
  %3536 = load ptr, ptr %18, align 8, !tbaa !5
  %3537 = load i32, ptr %3536, align 4, !tbaa !9
  %3538 = load i32, ptr %68, align 4, !tbaa !9
  %3539 = sub nsw i32 %3537, %3538
  %3540 = sub nsw i32 %3539, 1
  store i32 %3540, ptr %36, align 4, !tbaa !9
  %3541 = load ptr, ptr %18, align 8, !tbaa !5
  %3542 = load ptr, ptr %21, align 8, !tbaa !5
  %3543 = load i32, ptr %68, align 4, !tbaa !9
  %3544 = add nsw i32 %3543, 2
  %3545 = load i32, ptr %31, align 4, !tbaa !9
  %3546 = mul nsw i32 %3544, %3545
  %3547 = add nsw i32 %3546, 1
  %3548 = sext i32 %3547 to i64
  %3549 = getelementptr inbounds float, ptr %3542, i64 %3548
  %3550 = load ptr, ptr %22, align 8, !tbaa !5
  %3551 = load ptr, ptr %27, align 8, !tbaa !5
  %3552 = load i32, ptr %68, align 4, !tbaa !9
  %3553 = add nsw i32 %3552, 2
  %3554 = load ptr, ptr %18, align 8, !tbaa !5
  %3555 = load i32, ptr %3554, align 4, !tbaa !9
  %3556 = add nsw i32 %3553, %3555
  %3557 = sext i32 %3556 to i64
  %3558 = getelementptr inbounds float, ptr %3551, i64 %3557
  %3559 = load ptr, ptr %27, align 8, !tbaa !5
  %3560 = load i32, ptr %68, align 4, !tbaa !9
  %3561 = load ptr, ptr %18, align 8, !tbaa !5
  %3562 = load i32, ptr %3561, align 4, !tbaa !9
  %3563 = add nsw i32 %3560, %3562
  %3564 = sext i32 %3563 to i64
  %3565 = getelementptr inbounds float, ptr %3559, i64 %3564
  %3566 = load ptr, ptr %21, align 8, !tbaa !5
  %3567 = load i32, ptr %68, align 4, !tbaa !9
  %3568 = load i32, ptr %31, align 4, !tbaa !9
  %3569 = mul nsw i32 %3567, %3568
  %3570 = add nsw i32 %3569, 1
  %3571 = sext i32 %3570 to i64
  %3572 = getelementptr inbounds float, ptr %3566, i64 %3571
  call void @sgemv_(ptr noundef @.str.8, ptr noundef %3541, ptr noundef %36, ptr noundef @c_b22, ptr noundef %3549, ptr noundef %3550, ptr noundef %3558, ptr noundef @c__1, ptr noundef %3565, ptr noundef %3572, ptr noundef @c__1)
  %3573 = load ptr, ptr %18, align 8, !tbaa !5
  %3574 = load i32, ptr %3573, align 4, !tbaa !9
  %3575 = load i32, ptr %68, align 4, !tbaa !9
  %3576 = sub nsw i32 %3574, %3575
  %3577 = sub nsw i32 %3576, 1
  store i32 %3577, ptr %36, align 4, !tbaa !9
  %3578 = load ptr, ptr %18, align 8, !tbaa !5
  %3579 = load ptr, ptr %21, align 8, !tbaa !5
  %3580 = load i32, ptr %68, align 4, !tbaa !9
  %3581 = add nsw i32 %3580, 2
  %3582 = load i32, ptr %31, align 4, !tbaa !9
  %3583 = mul nsw i32 %3581, %3582
  %3584 = add nsw i32 %3583, 1
  %3585 = sext i32 %3584 to i64
  %3586 = getelementptr inbounds float, ptr %3579, i64 %3585
  %3587 = load ptr, ptr %22, align 8, !tbaa !5
  %3588 = load ptr, ptr %27, align 8, !tbaa !5
  %3589 = load i32, ptr %68, align 4, !tbaa !9
  %3590 = add nsw i32 %3589, 2
  %3591 = load i32, ptr %65, align 4, !tbaa !9
  %3592 = add nsw i32 %3590, %3591
  %3593 = sext i32 %3592 to i64
  %3594 = getelementptr inbounds float, ptr %3588, i64 %3593
  %3595 = load ptr, ptr %27, align 8, !tbaa !5
  %3596 = load i32, ptr %68, align 4, !tbaa !9
  %3597 = add nsw i32 %3596, 1
  %3598 = load i32, ptr %65, align 4, !tbaa !9
  %3599 = add nsw i32 %3597, %3598
  %3600 = sext i32 %3599 to i64
  %3601 = getelementptr inbounds float, ptr %3595, i64 %3600
  %3602 = load ptr, ptr %21, align 8, !tbaa !5
  %3603 = load i32, ptr %68, align 4, !tbaa !9
  %3604 = add nsw i32 %3603, 1
  %3605 = load i32, ptr %31, align 4, !tbaa !9
  %3606 = mul nsw i32 %3604, %3605
  %3607 = add nsw i32 %3606, 1
  %3608 = sext i32 %3607 to i64
  %3609 = getelementptr inbounds float, ptr %3602, i64 %3608
  call void @sgemv_(ptr noundef @.str.8, ptr noundef %3578, ptr noundef %36, ptr noundef @c_b22, ptr noundef %3586, ptr noundef %3587, ptr noundef %3594, ptr noundef @c__1, ptr noundef %3601, ptr noundef %3609, ptr noundef @c__1)
  br label %3642

3610:                                             ; preds = %3529
  %3611 = load ptr, ptr %18, align 8, !tbaa !5
  %3612 = load ptr, ptr %27, align 8, !tbaa !5
  %3613 = load i32, ptr %68, align 4, !tbaa !9
  %3614 = load ptr, ptr %18, align 8, !tbaa !5
  %3615 = load i32, ptr %3614, align 4, !tbaa !9
  %3616 = add nsw i32 %3613, %3615
  %3617 = sext i32 %3616 to i64
  %3618 = getelementptr inbounds float, ptr %3612, i64 %3617
  %3619 = load ptr, ptr %21, align 8, !tbaa !5
  %3620 = load i32, ptr %68, align 4, !tbaa !9
  %3621 = load i32, ptr %31, align 4, !tbaa !9
  %3622 = mul nsw i32 %3620, %3621
  %3623 = add nsw i32 %3622, 1
  %3624 = sext i32 %3623 to i64
  %3625 = getelementptr inbounds float, ptr %3619, i64 %3624
  call void @sscal_(ptr noundef %3611, ptr noundef %3618, ptr noundef %3625, ptr noundef @c__1)
  %3626 = load ptr, ptr %18, align 8, !tbaa !5
  %3627 = load ptr, ptr %27, align 8, !tbaa !5
  %3628 = load i32, ptr %68, align 4, !tbaa !9
  %3629 = add nsw i32 %3628, 1
  %3630 = load i32, ptr %65, align 4, !tbaa !9
  %3631 = add nsw i32 %3629, %3630
  %3632 = sext i32 %3631 to i64
  %3633 = getelementptr inbounds float, ptr %3627, i64 %3632
  %3634 = load ptr, ptr %21, align 8, !tbaa !5
  %3635 = load i32, ptr %68, align 4, !tbaa !9
  %3636 = add nsw i32 %3635, 1
  %3637 = load i32, ptr %31, align 4, !tbaa !9
  %3638 = mul nsw i32 %3636, %3637
  %3639 = add nsw i32 %3638, 1
  %3640 = sext i32 %3639 to i64
  %3641 = getelementptr inbounds float, ptr %3634, i64 %3640
  call void @sscal_(ptr noundef %3626, ptr noundef %3633, ptr noundef %3641, ptr noundef @c__1)
  br label %3642

3642:                                             ; preds = %3610, %3535
  store float 0.000000e+00, ptr %43, align 4, !tbaa !11
  %3643 = load ptr, ptr %18, align 8, !tbaa !5
  %3644 = load i32, ptr %3643, align 4, !tbaa !9
  store i32 %3644, ptr %36, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %3645

3645:                                             ; preds = %3698, %3642
  %3646 = load i32, ptr %55, align 4, !tbaa !9
  %3647 = load i32, ptr %36, align 4, !tbaa !9
  %3648 = icmp sle i32 %3646, %3647
  br i1 %3648, label %3649, label %3701

3649:                                             ; preds = %3645
  %3650 = load float, ptr %43, align 4, !tbaa !11
  store float %3650, ptr %40, align 4, !tbaa !11
  %3651 = load ptr, ptr %21, align 8, !tbaa !5
  %3652 = load i32, ptr %55, align 4, !tbaa !9
  %3653 = load i32, ptr %68, align 4, !tbaa !9
  %3654 = load i32, ptr %31, align 4, !tbaa !9
  %3655 = mul nsw i32 %3653, %3654
  %3656 = add nsw i32 %3652, %3655
  %3657 = sext i32 %3656 to i64
  %3658 = getelementptr inbounds float, ptr %3651, i64 %3657
  %3659 = load float, ptr %3658, align 4, !tbaa !11
  store float %3659, ptr %38, align 4, !tbaa !11
  %3660 = load float, ptr %38, align 4, !tbaa !11
  %3661 = fcmp oge float %3660, 0.000000e+00
  br i1 %3661, label %3662, label %3664

3662:                                             ; preds = %3649
  %3663 = load float, ptr %38, align 4, !tbaa !11
  br label %3667

3664:                                             ; preds = %3649
  %3665 = load float, ptr %38, align 4, !tbaa !11
  %3666 = fneg float %3665
  br label %3667

3667:                                             ; preds = %3664, %3662
  %3668 = phi float [ %3663, %3662 ], [ %3666, %3664 ]
  %3669 = load ptr, ptr %21, align 8, !tbaa !5
  %3670 = load i32, ptr %55, align 4, !tbaa !9
  %3671 = load i32, ptr %68, align 4, !tbaa !9
  %3672 = add nsw i32 %3671, 1
  %3673 = load i32, ptr %31, align 4, !tbaa !9
  %3674 = mul nsw i32 %3672, %3673
  %3675 = add nsw i32 %3670, %3674
  %3676 = sext i32 %3675 to i64
  %3677 = getelementptr inbounds float, ptr %3669, i64 %3676
  %3678 = load float, ptr %3677, align 4, !tbaa !11
  store float %3678, ptr %39, align 4, !tbaa !11
  %3679 = load float, ptr %39, align 4, !tbaa !11
  %3680 = fcmp oge float %3679, 0.000000e+00
  br i1 %3680, label %3681, label %3683

3681:                                             ; preds = %3667
  %3682 = load float, ptr %39, align 4, !tbaa !11
  br label %3686

3683:                                             ; preds = %3667
  %3684 = load float, ptr %39, align 4, !tbaa !11
  %3685 = fneg float %3684
  br label %3686

3686:                                             ; preds = %3683, %3681
  %3687 = phi float [ %3682, %3681 ], [ %3685, %3683 ]
  %3688 = fadd float %3668, %3687
  store float %3688, ptr %41, align 4, !tbaa !11
  %3689 = load float, ptr %40, align 4, !tbaa !11
  %3690 = load float, ptr %41, align 4, !tbaa !11
  %3691 = fcmp oge float %3689, %3690
  br i1 %3691, label %3692, label %3694

3692:                                             ; preds = %3686
  %3693 = load float, ptr %40, align 4, !tbaa !11
  br label %3696

3694:                                             ; preds = %3686
  %3695 = load float, ptr %41, align 4, !tbaa !11
  br label %3696

3696:                                             ; preds = %3694, %3692
  %3697 = phi float [ %3693, %3692 ], [ %3695, %3694 ]
  store float %3697, ptr %43, align 4, !tbaa !11
  br label %3698

3698:                                             ; preds = %3696
  %3699 = load i32, ptr %55, align 4, !tbaa !9
  %3700 = add nsw i32 %3699, 1
  store i32 %3700, ptr %55, align 4, !tbaa !9
  br label %3645, !llvm.loop !33

3701:                                             ; preds = %3645
  %3702 = load float, ptr %43, align 4, !tbaa !11
  %3703 = fdiv float 1.000000e+00, %3702
  store float %3703, ptr %58, align 4, !tbaa !11
  %3704 = load ptr, ptr %18, align 8, !tbaa !5
  %3705 = load ptr, ptr %21, align 8, !tbaa !5
  %3706 = load i32, ptr %68, align 4, !tbaa !9
  %3707 = load i32, ptr %31, align 4, !tbaa !9
  %3708 = mul nsw i32 %3706, %3707
  %3709 = add nsw i32 %3708, 1
  %3710 = sext i32 %3709 to i64
  %3711 = getelementptr inbounds float, ptr %3705, i64 %3710
  call void @sscal_(ptr noundef %3704, ptr noundef %58, ptr noundef %3711, ptr noundef @c__1)
  %3712 = load ptr, ptr %18, align 8, !tbaa !5
  %3713 = load ptr, ptr %21, align 8, !tbaa !5
  %3714 = load i32, ptr %68, align 4, !tbaa !9
  %3715 = add nsw i32 %3714, 1
  %3716 = load i32, ptr %31, align 4, !tbaa !9
  %3717 = mul nsw i32 %3715, %3716
  %3718 = add nsw i32 %3717, 1
  %3719 = sext i32 %3718 to i64
  %3720 = getelementptr inbounds float, ptr %3713, i64 %3719
  call void @sscal_(ptr noundef %3712, ptr noundef %58, ptr noundef %3720, ptr noundef @c__1)
  br label %3721

3721:                                             ; preds = %3701, %3528
  br label %3722

3722:                                             ; preds = %3721, %2580
  %3723 = load i32, ptr %70, align 4, !tbaa !9
  %3724 = add nsw i32 %3723, 1
  store i32 %3724, ptr %70, align 4, !tbaa !9
  %3725 = load i32, ptr %69, align 4, !tbaa !9
  %3726 = icmp ne i32 %3725, 0
  br i1 %3726, label %3727, label %3730

3727:                                             ; preds = %3722
  %3728 = load i32, ptr %70, align 4, !tbaa !9
  %3729 = add nsw i32 %3728, 1
  store i32 %3729, ptr %70, align 4, !tbaa !9
  br label %3730

3730:                                             ; preds = %3727, %3722
  br label %3731

3731:                                             ; preds = %3730, %1885, %1854
  %3732 = load i32, ptr %69, align 4, !tbaa !9
  %3733 = icmp eq i32 %3732, -1
  br i1 %3733, label %3734, label %3735

3734:                                             ; preds = %3731
  store i32 0, ptr %69, align 4, !tbaa !9
  br label %3735

3735:                                             ; preds = %3734, %3731
  %3736 = load i32, ptr %69, align 4, !tbaa !9
  %3737 = icmp eq i32 %3736, 1
  br i1 %3737, label %3738, label %3739

3738:                                             ; preds = %3735
  store i32 -1, ptr %69, align 4, !tbaa !9
  br label %3739

3739:                                             ; preds = %3738, %3735
  br label %3740

3740:                                             ; preds = %3739
  %3741 = load i32, ptr %68, align 4, !tbaa !9
  %3742 = add nsw i32 %3741, 1
  store i32 %3742, ptr %68, align 4, !tbaa !9
  br label %1847, !llvm.loop !34

3743:                                             ; preds = %1847
  br label %3744

3744:                                             ; preds = %3743, %1841
  store i32 1, ptr %78, align 4
  br label %3745

3745:                                             ; preds = %3744, %332, %323
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 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 4, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  ret void
}

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

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

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

declare float @slamch_(ptr noundef) #2

declare void @slabad_(ptr noundef, ptr noundef) #2

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

declare void @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 void @sscal_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @saxpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @scopy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

declare void @sgemv_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare float @sdot_(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 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !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}


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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [10 x i8], align 1
@c_false = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4
@c_b22 = external hidden global float, align 4
@c_b25 = external hidden global float, align 4
@c__2 = external hidden global i32, align 4
@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@c_true = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @strevc_(ptr noundef %0, ptr noundef %1, ptr nocapture noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr nocapture noundef readonly %10, ptr nocapture noundef %11, ptr noundef %12, ptr nocapture noundef %13) local_unnamed_addr #0 {
  %15 = ptrtoint ptr %4 to i64
  %16 = ptrtoint ptr %12 to i64
  %17 = ptrtoint ptr %4 to i64
  %18 = ptrtoint ptr %12 to i64
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca float, align 4
  %23 = alloca i32, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca float, align 4
  %28 = alloca [4 x float], align 16
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca i32, align 4
  %32 = alloca float, align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  %35 = getelementptr inbounds i8, ptr %2, i64 -4
  %36 = load i32, ptr %5, align 4, !tbaa !5
  %narrow = xor i32 %36, -1
  %37 = sext i32 %narrow to i64
  %38 = getelementptr inbounds float, ptr %4, i64 %37
  %39 = load i32, ptr %7, align 4, !tbaa !5
  %narrow1120 = xor i32 %39, -1
  %40 = sext i32 %narrow1120 to i64
  %41 = getelementptr inbounds float, ptr %6, i64 %40
  %42 = load i32, ptr %9, align 4, !tbaa !5
  %narrow1156 = xor i32 %42, -1
  %43 = sext i32 %narrow1156 to i64
  %44 = getelementptr inbounds float, ptr %8, i64 %43
  %45 = getelementptr i8, ptr %12, i64 -4
  %46 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %47 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %48 = icmp ne i32 %47, 0
  %49 = icmp ne i32 %46, 0
  %50 = select i1 %48, i1 true, i1 %49
  %51 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  %52 = icmp ne i32 %51, 0
  %53 = select i1 %52, i1 true, i1 %49
  %54 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %55 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #6
  %56 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #6
  store i32 0, ptr %13, align 4, !tbaa !5
  %or.cond = select i1 %50, i1 true, i1 %53
  br i1 %or.cond, label %57, label %.thread.sink.split

57:                                               ; preds = %14
  %58 = icmp ne i32 %54, 0
  %59 = icmp ne i32 %55, 0
  %or.cond3 = select i1 %58, i1 true, i1 %59
  %60 = icmp ne i32 %56, 0
  %or.cond5 = select i1 %or.cond3, i1 true, i1 %60
  br i1 %or.cond5, label %61, label %.thread.sink.split

61:                                               ; preds = %57
  %62 = load i32, ptr %3, align 4, !tbaa !5
  %63 = icmp slt i32 %62, 0
  br i1 %63, label %.thread.sink.split, label %64

64:                                               ; preds = %61
  %65 = load i32, ptr %5, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %62, i32 1)
  %66 = icmp slt i32 %65, %spec.select
  br i1 %66, label %.thread.sink.split, label %67

67:                                               ; preds = %64
  %68 = load i32, ptr %7, align 4, !tbaa !5
  %69 = icmp slt i32 %68, 1
  %70 = icmp ult i32 %68, %62
  %or.cond1237 = and i1 %53, %70
  %or.cond1241 = select i1 %69, i1 true, i1 %or.cond1237
  br i1 %or.cond1241, label %.thread.sink.split, label %71

71:                                               ; preds = %67
  %72 = load i32, ptr %9, align 4, !tbaa !5
  %73 = icmp slt i32 %72, 1
  %74 = icmp ult i32 %72, %62
  %or.cond1238 = and i1 %50, %74
  %or.cond1242 = select i1 %73, i1 true, i1 %or.cond1238
  br i1 %or.cond1242, label %.thread.sink.split, label %75

75:                                               ; preds = %71
  br i1 %60, label %76, label %111

76:                                               ; preds = %75
  store i32 0, ptr %11, align 4, !tbaa !5
  %77 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %77, ptr %19, align 4, !tbaa !5
  %.not1274 = icmp slt i32 %77, 1
  br i1 %.not1274, label %.loopexit1273, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %76
  %78 = sext i32 %36 to i64
  %79 = add nuw i32 %77, 1
  %wide.trip.count = zext i32 %79 to i64
  %invariant.gep = getelementptr i8, ptr %38, i64 4
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %110
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %110 ]
  %.011021275 = phi i32 [ 0, %.lr.ph.preheader ], [ %.11103, %110 ]
  %.not1121 = icmp eq i32 %.011021275, 0
  br i1 %.not1121, label %82, label %80

80:                                               ; preds = %.lr.ph
  %81 = getelementptr inbounds i32, ptr %35, i64 %indvars.iv
  store i32 0, ptr %81, align 4, !tbaa !5
  br label %110

82:                                               ; preds = %.lr.ph
  %83 = load i32, ptr %3, align 4, !tbaa !5
  %84 = sext i32 %83 to i64
  %85 = icmp slt i64 %indvars.iv, %84
  br i1 %85, label %86, label %104

86:                                               ; preds = %82
  %87 = mul nsw i64 %indvars.iv, %78
  %gep1638 = getelementptr float, ptr %invariant.gep, i64 %indvars.iv
  %88 = getelementptr float, ptr %gep1638, i64 %87
  %89 = load float, ptr %88, align 4, !tbaa !9
  %90 = fcmp oeq float %89, 0.000000e+00
  %91 = getelementptr inbounds i32, ptr %35, i64 %indvars.iv
  %92 = load i32, ptr %91, align 4, !tbaa !5
  %.not1125 = icmp eq i32 %92, 0
  br i1 %90, label %93, label %97

93:                                               ; preds = %86
  br i1 %.not1125, label %110, label %94

94:                                               ; preds = %93
  %95 = load i32, ptr %11, align 4, !tbaa !5
  %96 = add nsw i32 %95, 1
  store i32 %96, ptr %11, align 4, !tbaa !5
  br label %110

97:                                               ; preds = %86
  br i1 %.not1125, label %98, label %101

98:                                               ; preds = %97
  %99 = getelementptr i32, ptr %2, i64 %indvars.iv
  %100 = load i32, ptr %99, align 4, !tbaa !5
  %.not1124 = icmp eq i32 %100, 0
  br i1 %.not1124, label %110, label %101

101:                                              ; preds = %98, %97
  store i32 1, ptr %91, align 4, !tbaa !5
  %102 = load i32, ptr %11, align 4, !tbaa !5
  %103 = add nsw i32 %102, 2
  store i32 %103, ptr %11, align 4, !tbaa !5
  br label %110

104:                                              ; preds = %82
  %105 = getelementptr inbounds i32, ptr %35, i64 %84
  %106 = load i32, ptr %105, align 4, !tbaa !5
  %.not1122 = icmp eq i32 %106, 0
  br i1 %.not1122, label %110, label %107

107:                                              ; preds = %104
  %108 = load i32, ptr %11, align 4, !tbaa !5
  %109 = add nsw i32 %108, 1
  store i32 %109, ptr %11, align 4, !tbaa !5
  br label %110

110:                                              ; preds = %80, %104, %107, %94, %93, %101, %98
  %.11103 = phi i32 [ 0, %80 ], [ 0, %94 ], [ 0, %93 ], [ 1, %101 ], [ 1, %98 ], [ 0, %107 ], [ 0, %104 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %.loopexit1273.loopexit, label %.lr.ph, !llvm.loop !11

111:                                              ; preds = %75
  store i32 %62, ptr %11, align 4, !tbaa !5
  br label %.loopexit1273

.loopexit1273.loopexit:                           ; preds = %110
  %.pre = load i32, ptr %11, align 4, !tbaa !5
  br label %.loopexit1273

.loopexit1273:                                    ; preds = %.loopexit1273.loopexit, %76, %111
  %112 = phi i32 [ %.pre, %.loopexit1273.loopexit ], [ 0, %76 ], [ %62, %111 ]
  %113 = load i32, ptr %10, align 4, !tbaa !5
  %114 = icmp slt i32 %113, %112
  br i1 %114, label %.thread.sink.split, label %115

115:                                              ; preds = %.loopexit1273
  %.pr = load i32, ptr %13, align 4, !tbaa !5
  %.not1126 = icmp eq i32 %.pr, 0
  br i1 %.not1126, label %119, label %.thread

.thread.sink.split:                               ; preds = %.loopexit1273, %71, %67, %64, %61, %57, %14
  %.sink = phi i32 [ -1, %14 ], [ -2, %57 ], [ -4, %61 ], [ -6, %64 ], [ -8, %67 ], [ -10, %71 ], [ -11, %.loopexit1273 ]
  store i32 %.sink, ptr %13, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %115
  %116 = phi i32 [ %.pr, %115 ], [ %.sink, %.thread.sink.split ]
  %117 = sub nsw i32 0, %116
  store i32 %117, ptr %19, align 4, !tbaa !5
  %118 = call i32 @xerbla_(ptr noundef nonnull @.str.5, ptr noundef nonnull %19, i32 noundef 6) #6
  br label %.loopexit1268

119:                                              ; preds = %115
  %120 = load i32, ptr %3, align 4, !tbaa !5
  %121 = icmp eq i32 %120, 0
  br i1 %121, label %.loopexit1268, label %122

122:                                              ; preds = %119
  %123 = tail call float @slamch_(ptr noundef nonnull @.str.6) #6
  store float %123, ptr %24, align 4, !tbaa !9
  %124 = fdiv float 1.000000e+00, %123
  store float %124, ptr %25, align 4, !tbaa !9
  call void @slabad_(ptr noundef nonnull %24, ptr noundef nonnull %25) #6
  %125 = call float @slamch_(ptr noundef nonnull @.str.7) #6
  %126 = load float, ptr %24, align 4, !tbaa !9
  %127 = load i32, ptr %3, align 4, !tbaa !5
  %128 = sitofp i32 %127 to float
  %129 = fdiv float %128, %125
  %130 = fmul float %126, %129
  %131 = fsub float 1.000000e+00, %125
  %132 = fdiv float %131, %130
  store float 0.000000e+00, ptr %12, align 4, !tbaa !9
  %.not11271278 = icmp slt i32 %127, 2
  br i1 %.not11271278, label %159, label %.lr.ph1280.preheader

.lr.ph1280.preheader:                             ; preds = %122
  %133 = sext i32 %36 to i64
  %134 = add nuw i32 %127, 1
  %wide.trip.count1492 = zext i32 %134 to i64
  br label %.lr.ph1280

.lr.ph1280:                                       ; preds = %.lr.ph1280.preheader, %157
  %indvar = phi i64 [ 0, %.lr.ph1280.preheader ], [ %indvar.next, %157 ]
  %indvars.iv1489 = phi i64 [ 2, %.lr.ph1280.preheader ], [ %indvars.iv.next1490, %157 ]
  %135 = getelementptr inbounds float, ptr %45, i64 %indvars.iv1489
  store float 0.000000e+00, ptr %135, align 4, !tbaa !9
  %136 = mul nsw i64 %indvars.iv1489, %133
  %invariant.gep1639 = getelementptr float, ptr %38, i64 %136
  %137 = icmp eq i64 %indvar, 0
  br i1 %137, label %.unr-lcssa, label %.lr.ph1280.new

.lr.ph1280.new:                                   ; preds = %.lr.ph1280
  %138 = add i64 %indvar, 1
  %unroll_iter = and i64 %138, -2
  %invariant.gep1948 = getelementptr i8, ptr %invariant.gep1639, i64 4
  br label %139

139:                                              ; preds = %139, %.lr.ph1280.new
  %indvars.iv1484 = phi i64 [ 1, %.lr.ph1280.new ], [ %indvars.iv.next1485.1, %139 ]
  %140 = phi float [ 0.000000e+00, %.lr.ph1280.new ], [ %150, %139 ]
  %niter = phi i64 [ 0, %.lr.ph1280.new ], [ %niter.next.1, %139 ]
  %gep1640 = getelementptr float, ptr %invariant.gep1639, i64 %indvars.iv1484
  %141 = load float, ptr %gep1640, align 4, !tbaa !9
  %142 = fcmp oge float %141, 0.000000e+00
  %143 = fneg float %141
  %144 = select i1 %142, float %141, float %143
  %145 = fadd float %140, %144
  store float %145, ptr %135, align 4, !tbaa !9
  %gep1949 = getelementptr float, ptr %invariant.gep1948, i64 %indvars.iv1484
  %146 = load float, ptr %gep1949, align 4, !tbaa !9
  %147 = fcmp oge float %146, 0.000000e+00
  %148 = fneg float %146
  %149 = select i1 %147, float %146, float %148
  %150 = fadd float %145, %149
  store float %150, ptr %135, align 4, !tbaa !9
  %indvars.iv.next1485.1 = add nuw nsw i64 %indvars.iv1484, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %.unr-lcssa, label %139, !llvm.loop !13

.unr-lcssa:                                       ; preds = %139, %.lr.ph1280
  %.lcssa1922.ph = phi float [ poison, %.lr.ph1280 ], [ %146, %139 ]
  %indvars.iv1484.unr = phi i64 [ 1, %.lr.ph1280 ], [ %indvars.iv.next1485.1, %139 ]
  %.unr = phi float [ 0.000000e+00, %.lr.ph1280 ], [ %150, %139 ]
  %151 = and i64 %indvar, 1
  %lcmp.mod.not.not = icmp eq i64 %151, 0
  br i1 %lcmp.mod.not.not, label %.epilog-lcssa, label %157

.epilog-lcssa:                                    ; preds = %.unr-lcssa
  %gep1640.epil = getelementptr float, ptr %invariant.gep1639, i64 %indvars.iv1484.unr
  %152 = load float, ptr %gep1640.epil, align 4, !tbaa !9
  %153 = fcmp oge float %152, 0.000000e+00
  %154 = fneg float %152
  %155 = select i1 %153, float %152, float %154
  %156 = fadd float %.unr, %155
  store float %156, ptr %135, align 4, !tbaa !9
  br label %157

157:                                              ; preds = %.unr-lcssa, %.epilog-lcssa
  %.lcssa1922 = phi float [ %.lcssa1922.ph, %.unr-lcssa ], [ %152, %.epilog-lcssa ]
  %indvars.iv.next1490 = add nuw nsw i64 %indvars.iv1489, 1
  %exitcond1493.not = icmp eq i64 %indvars.iv.next1490, %wide.trip.count1492
  %indvar.next = add i64 %indvar, 1
  br i1 %exitcond1493.not, label %._crit_edge, label %.lr.ph1280, !llvm.loop !14

._crit_edge:                                      ; preds = %157
  %158 = add nsw i32 %127, -1
  store i32 %158, ptr %20, align 4, !tbaa !5
  store float %.lcssa1922, ptr %22, align 4, !tbaa !9
  br label %159

159:                                              ; preds = %._crit_edge, %122
  %160 = shl i32 %127, 1
  br i1 %50, label %161, label %.loopexit1272

161:                                              ; preds = %159
  %162 = load i32, ptr %11, align 4, !tbaa !5
  %invariant.gep1351 = getelementptr i8, ptr %2, i64 -8
  %invariant.gep1353 = getelementptr i8, ptr %44, i64 4
  store i32 %127, ptr %31, align 4, !tbaa !5
  %163 = icmp sgt i32 %127, 0
  br i1 %163, label %.lr.ph1389, label %.loopexit1272

.lr.ph1389:                                       ; preds = %161
  %.not11431166 = icmp eq i32 %56, 0
  %164 = add i32 %36, 1
  %invariant.gep1286 = getelementptr i8, ptr %38, i64 4
  %165 = getelementptr inbounds i8, ptr %28, i64 8
  %166 = getelementptr inbounds i8, ptr %28, i64 4
  %167 = getelementptr inbounds i8, ptr %28, i64 12
  %168 = or disjoint i32 %160, 1
  %169 = sext i32 %168 to i64
  %170 = getelementptr inbounds float, ptr %45, i64 %169
  %.not1148 = icmp eq i32 %55, 0
  %171 = sext i32 %160 to i64
  %172 = sext i32 %36 to i64
  %173 = shl nsw i64 %43, 2
  %scevgep = getelementptr i8, ptr %8, i64 %173
  %invariant.gep1647 = getelementptr float, ptr %45, i64 %171
  %invariant.gep1649 = getelementptr float, ptr %45, i64 %171
  %invariant.gep1653 = getelementptr float, ptr %45, i64 %171
  %174 = add i64 %18, -4
  %scevgep1738 = getelementptr i8, ptr %12, i64 -4
  %175 = shl nsw i64 %171, 2
  %scevgep1740 = getelementptr i8, ptr %12, i64 %175
  %176 = getelementptr i8, ptr %12, i64 %175
  %scevgep1741 = getelementptr i8, ptr %176, i64 -4
  %177 = shl nsw i64 %37, 2
  %178 = add nsw i64 %177, 4
  %scevgep1744 = getelementptr i8, ptr %4, i64 %178
  %scevgep1746 = getelementptr i8, ptr %4, i64 %177
  %scevgep1749 = getelementptr i8, ptr %4, i64 %178
  %scevgep1751 = getelementptr i8, ptr %4, i64 %177
  br label %179

179:                                              ; preds = %.lr.ph1389, %.thread1209
  %.01387 = phi i32 [ %162, %.lr.ph1389 ], [ %.112011212, %.thread1209 ]
  %.010531386 = phi i32 [ 0, %.lr.ph1389 ], [ %737, %.thread1209 ]
  %storemerge1385 = phi i32 [ %127, %.lr.ph1389 ], [ %739, %.thread1209 ]
  %180 = icmp eq i32 %.010531386, 1
  br i1 %180, label %.thread1209, label %181

181:                                              ; preds = %179
  %182 = icmp eq i32 %storemerge1385, 1
  br i1 %182, label %191, label %183

183:                                              ; preds = %181
  %184 = add nsw i32 %storemerge1385, -1
  %185 = mul nsw i32 %184, %36
  %186 = add nsw i32 %185, %storemerge1385
  %187 = sext i32 %186 to i64
  %188 = getelementptr inbounds float, ptr %38, i64 %187
  %189 = load float, ptr %188, align 4, !tbaa !9
  %190 = fcmp oeq float %189, 0.000000e+00
  br i1 %190, label %191, label %.thread1164

191:                                              ; preds = %183, %181
  br i1 %.not11431166, label %208, label %196

.thread1164:                                      ; preds = %183
  br i1 %.not11431166, label %.thread1618, label %.thread1169

.thread1618:                                      ; preds = %.thread1164
  %192 = mul i32 %storemerge1385, %164
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds float, ptr %38, i64 %193
  %195 = load float, ptr %194, align 4, !tbaa !9
  store float %195, ptr %33, align 4, !tbaa !9
  br label %213

196:                                              ; preds = %191
  %197 = icmp eq i32 %.010531386, 0
  br i1 %197, label %198, label %.thread1169

198:                                              ; preds = %196
  %199 = zext nneg i32 %storemerge1385 to i64
  %200 = getelementptr inbounds i32, ptr %35, i64 %199
  %201 = load i32, ptr %200, align 4, !tbaa !5
  %.not1145 = icmp eq i32 %201, 0
  br i1 %.not1145, label %.thread1209, label %.thread1612

.thread1612:                                      ; preds = %198
  %202 = mul i32 %storemerge1385, %164
  %203 = sext i32 %202 to i64
  %204 = getelementptr inbounds float, ptr %38, i64 %203
  %205 = load float, ptr %204, align 4, !tbaa !9
  store float %205, ptr %33, align 4, !tbaa !9
  store float 0.000000e+00, ptr %32, align 4, !tbaa !9
  br label %239

.thread1169:                                      ; preds = %.thread1164, %196
  %.1105411671171 = phi i32 [ %.010531386, %196 ], [ -1, %.thread1164 ]
  %206 = zext nneg i32 %storemerge1385 to i64
  %gep1352 = getelementptr i32, ptr %invariant.gep1351, i64 %206
  %207 = load i32, ptr %gep1352, align 4, !tbaa !5
  %.not1144 = icmp eq i32 %207, 0
  br i1 %.not1144, label %.thread1197, label %208

208:                                              ; preds = %.thread1169, %191
  %.110541168 = phi i32 [ %.1105411671171, %.thread1169 ], [ %.010531386, %191 ]
  %.110541168.fr = freeze i32 %.110541168
  %209 = mul i32 %storemerge1385, %164
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds float, ptr %38, i64 %210
  %212 = load float, ptr %211, align 4, !tbaa !9
  store float %212, ptr %33, align 4, !tbaa !9
  store float 0.000000e+00, ptr %32, align 4, !tbaa !9
  %.not1146 = icmp eq i32 %.110541168.fr, 0
  br i1 %.not1146, label %239, label %213

213:                                              ; preds = %.thread1618, %208
  %.110541168.fr1622 = phi i32 [ -1, %.thread1618 ], [ %.110541168.fr, %208 ]
  %214 = add nsw i32 %storemerge1385, -1
  %215 = mul nsw i32 %214, %36
  %216 = add nsw i32 %215, %storemerge1385
  %217 = sext i32 %216 to i64
  %218 = getelementptr inbounds float, ptr %38, i64 %217
  %219 = load float, ptr %218, align 4, !tbaa !9
  %220 = fcmp oge float %219, 0.000000e+00
  %221 = fneg float %219
  %222 = select i1 %220, float %219, float %221
  %223 = fpext float %222 to double
  %224 = call double @sqrt(double noundef %223) #6
  %225 = load i32, ptr %31, align 4, !tbaa !5
  %226 = add nsw i32 %225, -1
  %227 = mul nsw i32 %225, %36
  %228 = add nsw i32 %226, %227
  %229 = sext i32 %228 to i64
  %230 = getelementptr inbounds float, ptr %38, i64 %229
  %231 = load float, ptr %230, align 4, !tbaa !9
  %232 = fcmp oge float %231, 0.000000e+00
  %233 = fneg float %231
  %234 = select i1 %232, float %231, float %233
  %235 = fpext float %234 to double
  %236 = call double @sqrt(double noundef %235) #6
  %237 = fmul double %224, %236
  %238 = fptrunc double %237 to float
  store float %238, ptr %32, align 4, !tbaa !9
  %.pre1571 = load float, ptr %33, align 4
  br label %239

239:                                              ; preds = %.thread1612, %213, %208
  %.not11461617 = phi i1 [ false, %213 ], [ true, %208 ], [ true, %.thread1612 ]
  %.110541168.fr1616 = phi i32 [ %.110541168.fr1622, %213 ], [ 0, %208 ], [ 0, %.thread1612 ]
  %240 = phi float [ %238, %213 ], [ 0.000000e+00, %208 ], [ 0.000000e+00, %.thread1612 ]
  %241 = phi float [ %.pre1571, %213 ], [ %212, %208 ], [ %205, %.thread1612 ]
  %242 = fcmp oge float %241, 0.000000e+00
  %243 = fneg float %241
  %244 = select i1 %242, float %241, float %243
  %245 = fcmp oge float %240, 0.000000e+00
  %246 = fneg float %240
  %247 = select i1 %245, float %240, float %246
  %248 = fadd float %244, %247
  %249 = fmul float %125, %248
  store float %249, ptr %22, align 4, !tbaa !9
  %250 = fcmp oge float %249, %130
  %251 = select i1 %250, float %249, float %130
  store float %251, ptr %26, align 4, !tbaa !9
  %252 = load i32, ptr %31, align 4, !tbaa !5
  br i1 %.not11461617, label %253, label %435

253:                                              ; preds = %239
  %254 = load i32, ptr %3, align 4, !tbaa !5
  %255 = add nsw i32 %254, %252
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds float, ptr %45, i64 %256
  store float 1.000000e+00, ptr %257, align 4, !tbaa !9
  %258 = add nsw i32 %252, -1
  store i32 %258, ptr %19, align 4, !tbaa !5
  %.not1153.not1323 = icmp sgt i32 %252, 1
  br i1 %.not1153.not1323, label %.lr.ph1326, label %._crit_edge1346

.lr.ph1326:                                       ; preds = %253
  %259 = mul nsw i32 %252, %36
  %260 = sext i32 %259 to i64
  %261 = sext i32 %254 to i64
  %wide.trip.count1522 = zext nneg i32 %252 to i64
  %invariant.gep1667 = getelementptr float, ptr %38, i64 %260
  %invariant.gep1669 = getelementptr float, ptr %45, i64 %261
  %262 = add nsw i64 %wide.trip.count1522, -1
  %min.iters.check = icmp ult i32 %252, 9
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.memcheck

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %.lr.ph1326
  %indvars.iv1519.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph1326 ], [ %ind.end, %middle.block ]
  %263 = sub nsw i64 %wide.trip.count1522, %indvars.iv1519.ph
  %xtraiter1928 = and i64 %263, 3
  %lcmp.mod1929.not = icmp eq i64 %xtraiter1928, 0
  br i1 %lcmp.mod1929.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.preheader, %scalar.ph.prol
  %indvars.iv1519.prol = phi i64 [ %indvars.iv.next1520.prol, %scalar.ph.prol ], [ %indvars.iv1519.ph, %scalar.ph.preheader ]
  %prol.iter1930 = phi i64 [ %prol.iter1930.next, %scalar.ph.prol ], [ 0, %scalar.ph.preheader ]
  %gep1668.prol = getelementptr float, ptr %invariant.gep1667, i64 %indvars.iv1519.prol
  %264 = load float, ptr %gep1668.prol, align 4, !tbaa !9
  %265 = fneg float %264
  %gep1670.prol = getelementptr float, ptr %invariant.gep1669, i64 %indvars.iv1519.prol
  store float %265, ptr %gep1670.prol, align 4, !tbaa !9
  %indvars.iv.next1520.prol = add nuw nsw i64 %indvars.iv1519.prol, 1
  %prol.iter1930.next = add i64 %prol.iter1930, 1
  %prol.iter1930.cmp.not = icmp eq i64 %prol.iter1930.next, %xtraiter1928
  br i1 %prol.iter1930.cmp.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol, !llvm.loop !15

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %indvars.iv1519.unr = phi i64 [ %indvars.iv1519.ph, %scalar.ph.preheader ], [ %indvars.iv.next1520.prol, %scalar.ph.prol ]
  %266 = sub nsw i64 %indvars.iv1519.ph, %wide.trip.count1522
  %267 = icmp ugt i64 %266, -4
  br i1 %267, label %.preheader, label %scalar.ph

vector.memcheck:                                  ; preds = %.lr.ph1326
  %268 = shl nsw i64 %261, 2
  %269 = add i64 %174, %268
  %270 = add nsw i64 %37, %260
  %271 = shl nsw i64 %270, 2
  %272 = add i64 %271, %17
  %273 = sub i64 %269, %272
  %diff.check = icmp ult i64 %273, 32
  br i1 %diff.check, label %scalar.ph.preheader, label %vector.ph

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

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %274 = getelementptr float, ptr %invariant.gep1667, i64 %offset.idx
  %275 = getelementptr i8, ptr %274, i64 16
  %wide.load = load <4 x float>, ptr %274, align 4, !tbaa !9
  %wide.load1720 = load <4 x float>, ptr %275, align 4, !tbaa !9
  %276 = fneg <4 x float> %wide.load
  %277 = fneg <4 x float> %wide.load1720
  %278 = getelementptr float, ptr %invariant.gep1669, i64 %offset.idx
  %279 = getelementptr i8, ptr %278, i64 16
  store <4 x float> %276, ptr %278, align 4, !tbaa !9
  store <4 x float> %277, ptr %279, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %280 = icmp eq i64 %index.next, %n.vec
  br i1 %280, label %middle.block, label %vector.body, !llvm.loop !17

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %262, %n.vec
  br i1 %cmp.n, label %.preheader, label %scalar.ph.preheader

.preheader:                                       ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block
  br i1 %.not1153.not1323, label %.lr.ph1345.preheader, label %._crit_edge1346

.lr.ph1345.preheader:                             ; preds = %.preheader
  %281 = zext nneg i32 %252 to i64
  %282 = add nsw i64 %281, -1
  br label %.lr.ph1345

scalar.ph:                                        ; preds = %scalar.ph.prol.loopexit, %scalar.ph
  %indvars.iv1519 = phi i64 [ %indvars.iv.next1520.3, %scalar.ph ], [ %indvars.iv1519.unr, %scalar.ph.prol.loopexit ]
  %gep1668 = getelementptr float, ptr %invariant.gep1667, i64 %indvars.iv1519
  %283 = load float, ptr %gep1668, align 4, !tbaa !9
  %284 = fneg float %283
  %gep1670 = getelementptr float, ptr %invariant.gep1669, i64 %indvars.iv1519
  store float %284, ptr %gep1670, align 4, !tbaa !9
  %indvars.iv.next1520 = add nuw nsw i64 %indvars.iv1519, 1
  %gep1668.1 = getelementptr float, ptr %invariant.gep1667, i64 %indvars.iv.next1520
  %285 = load float, ptr %gep1668.1, align 4, !tbaa !9
  %286 = fneg float %285
  %gep1670.1 = getelementptr float, ptr %invariant.gep1669, i64 %indvars.iv.next1520
  store float %286, ptr %gep1670.1, align 4, !tbaa !9
  %indvars.iv.next1520.1 = add nuw nsw i64 %indvars.iv1519, 2
  %gep1668.2 = getelementptr float, ptr %invariant.gep1667, i64 %indvars.iv.next1520.1
  %287 = load float, ptr %gep1668.2, align 4, !tbaa !9
  %288 = fneg float %287
  %gep1670.2 = getelementptr float, ptr %invariant.gep1669, i64 %indvars.iv.next1520.1
  store float %288, ptr %gep1670.2, align 4, !tbaa !9
  %indvars.iv.next1520.2 = add nuw nsw i64 %indvars.iv1519, 3
  %gep1668.3 = getelementptr float, ptr %invariant.gep1667, i64 %indvars.iv.next1520.2
  %289 = load float, ptr %gep1668.3, align 4, !tbaa !9
  %290 = fneg float %289
  %gep1670.3 = getelementptr float, ptr %invariant.gep1669, i64 %indvars.iv.next1520.2
  store float %290, ptr %gep1670.3, align 4, !tbaa !9
  %indvars.iv.next1520.3 = add nuw nsw i64 %indvars.iv1519, 4
  %exitcond1523.not.3 = icmp eq i64 %indvars.iv.next1520.3, %wide.trip.count1522
  br i1 %exitcond1523.not.3, label %.preheader, label %scalar.ph, !llvm.loop !20

.lr.ph1345:                                       ; preds = %.lr.ph1345.preheader, %.lr.ph1345._crit_edge
  %indvars.iv1524 = phi i64 [ %282, %.lr.ph1345.preheader ], [ %.pre1604, %.lr.ph1345._crit_edge ]
  %.010781343 = phi i32 [ %258, %.lr.ph1345.preheader ], [ %.21080, %.lr.ph1345._crit_edge ]
  %indvars1526 = trunc i64 %indvars.iv1524 to i32
  %291 = sext i32 %.010781343 to i64
  %292 = icmp sgt i64 %indvars.iv1524, %291
  %.pre1604 = add nsw i64 %indvars.iv1524, -1
  br i1 %292, label %.lr.ph1345._crit_edge, label %293

293:                                              ; preds = %.lr.ph1345
  %.not1157 = icmp eq i64 %indvars.iv1524, 1
  br i1 %.not1157, label %..thread1172_crit_edge, label %294

..thread1172_crit_edge:                           ; preds = %293
  %.pre1575 = load i32, ptr %3, align 4, !tbaa !5
  br label %.thread1172

294:                                              ; preds = %293
  %295 = add nsw i32 %indvars1526, -1
  %296 = mul nsw i32 %295, %36
  %297 = sext i32 %296 to i64
  %298 = getelementptr float, ptr %38, i64 %indvars.iv1524
  %299 = getelementptr float, ptr %298, i64 %297
  %300 = load float, ptr %299, align 4, !tbaa !9
  %301 = fcmp une float %300, 0.000000e+00
  %302 = trunc nuw nsw i64 %.pre1604 to i32
  %.pre1576 = load i32, ptr %3, align 4, !tbaa !5
  br i1 %301, label %.thread1176, label %.thread1172

.thread1176:                                      ; preds = %294
  %303 = mul nsw i64 %.pre1604, %172
  %304 = getelementptr float, ptr %38, i64 %.pre1604
  %305 = getelementptr float, ptr %304, i64 %297
  %306 = sext i32 %.pre1576 to i64
  %307 = getelementptr float, ptr %45, i64 %.pre1604
  %308 = getelementptr float, ptr %307, i64 %306
  call void @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef nonnull @c_b22, ptr noundef %305, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef nonnull %308, ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef nonnull @c_b25, ptr noundef nonnull %28, ptr noundef nonnull @c__2, ptr noundef nonnull %27, ptr noundef nonnull %30, ptr noundef nonnull %23) #6
  %309 = load float, ptr %30, align 4, !tbaa !9
  %310 = fcmp ogt float %309, 1.000000e+00
  br i1 %310, label %345, label %thread-pre-split1182

.thread1172:                                      ; preds = %..thread1172_crit_edge, %294
  %311 = phi i32 [ %.pre1576, %294 ], [ %.pre1575, %..thread1172_crit_edge ]
  %.110791175 = phi i32 [ %302, %294 ], [ 0, %..thread1172_crit_edge ]
  %312 = mul nsw i32 %36, %indvars1526
  %313 = sext i32 %312 to i64
  %314 = getelementptr float, ptr %38, i64 %indvars.iv1524
  %315 = getelementptr float, ptr %314, i64 %313
  %316 = sext i32 %311 to i64
  %317 = getelementptr float, ptr %45, i64 %indvars.iv1524
  %318 = getelementptr float, ptr %317, i64 %316
  call void @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef nonnull @c_b22, ptr noundef %315, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef nonnull %318, ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef nonnull @c_b25, ptr noundef nonnull %28, ptr noundef nonnull @c__2, ptr noundef nonnull %27, ptr noundef nonnull %30, ptr noundef nonnull %23) #6
  %319 = load float, ptr %30, align 4, !tbaa !9
  %320 = fcmp ogt float %319, 1.000000e+00
  br i1 %320, label %321, label %thread-pre-split1180

321:                                              ; preds = %.thread1172
  %322 = getelementptr inbounds float, ptr %45, i64 %indvars.iv1524
  %323 = load float, ptr %322, align 4, !tbaa !9
  %324 = fdiv float %132, %319
  %325 = fcmp ogt float %323, %324
  br i1 %325, label %326, label %thread-pre-split1180

326:                                              ; preds = %321
  %327 = load float, ptr %28, align 16, !tbaa !9
  %328 = fdiv float %327, %319
  store float %328, ptr %28, align 16, !tbaa !9
  %329 = load float, ptr %27, align 4, !tbaa !9
  %330 = fdiv float %329, %319
  store float %330, ptr %27, align 4, !tbaa !9
  br label %331

thread-pre-split1180:                             ; preds = %.thread1172, %321
  %.pr1181 = load float, ptr %27, align 4, !tbaa !9
  br label %331

331:                                              ; preds = %thread-pre-split1180, %326
  %332 = phi float [ %.pr1181, %thread-pre-split1180 ], [ %330, %326 ]
  %333 = fcmp une float %332, 1.000000e+00
  br i1 %333, label %334, label %337

334:                                              ; preds = %331
  %335 = load i32, ptr %3, align 4, !tbaa !5
  %336 = sext i32 %335 to i64
  %gep1338 = getelementptr float, ptr %12, i64 %336
  call void @sscal_(ptr noundef nonnull %31, ptr noundef nonnull %27, ptr noundef %gep1338, ptr noundef nonnull @c__1) #6
  br label %337

337:                                              ; preds = %334, %331
  %338 = load float, ptr %28, align 16, !tbaa !9
  %339 = load i32, ptr %3, align 4, !tbaa !5
  %340 = sext i32 %339 to i64
  %341 = getelementptr float, ptr %45, i64 %indvars.iv1524
  %342 = getelementptr float, ptr %341, i64 %340
  store float %338, ptr %342, align 4, !tbaa !9
  %343 = trunc nuw nsw i64 %.pre1604 to i32
  store i32 %343, ptr %19, align 4, !tbaa !5
  %344 = fneg float %338
  store float %344, ptr %22, align 4, !tbaa !9
  br label %.lr.ph1345._crit_edge.sink.split

345:                                              ; preds = %.thread1176
  %346 = getelementptr inbounds float, ptr %45, i64 %.pre1604
  %347 = load float, ptr %346, align 4, !tbaa !9
  store float %347, ptr %22, align 4, !tbaa !9
  %348 = getelementptr inbounds float, ptr %45, i64 %indvars.iv1524
  %349 = load float, ptr %348, align 4, !tbaa !9
  %350 = fcmp oge float %347, %349
  %351 = select i1 %350, float %347, float %349
  %352 = fdiv float %132, %309
  %353 = fcmp ogt float %351, %352
  br i1 %353, label %354, label %thread-pre-split1182

354:                                              ; preds = %345
  %355 = load <2 x float>, ptr %28, align 16, !tbaa !9
  %356 = insertelement <2 x float> poison, float %309, i64 0
  %357 = shufflevector <2 x float> %356, <2 x float> poison, <2 x i32> zeroinitializer
  %358 = fdiv <2 x float> %355, %357
  store <2 x float> %358, ptr %28, align 16, !tbaa !9
  %359 = load float, ptr %27, align 4, !tbaa !9
  %360 = fdiv float %359, %309
  store float %360, ptr %27, align 4, !tbaa !9
  br label %361

thread-pre-split1182:                             ; preds = %.thread1176, %345
  %.pr1183 = load float, ptr %27, align 4, !tbaa !9
  br label %361

361:                                              ; preds = %thread-pre-split1182, %354
  %362 = phi float [ %.pr1183, %thread-pre-split1182 ], [ %360, %354 ]
  %363 = fcmp une float %362, 1.000000e+00
  br i1 %363, label %364, label %367

364:                                              ; preds = %361
  %365 = load i32, ptr %3, align 4, !tbaa !5
  %366 = sext i32 %365 to i64
  %gep1328 = getelementptr float, ptr %12, i64 %366
  call void @sscal_(ptr noundef nonnull %31, ptr noundef nonnull %27, ptr noundef %gep1328, ptr noundef nonnull @c__1) #6
  br label %367

367:                                              ; preds = %364, %361
  %368 = load i32, ptr %3, align 4, !tbaa !5
  %369 = sext i32 %368 to i64
  %370 = getelementptr float, ptr %45, i64 %.pre1604
  %371 = getelementptr float, ptr %370, i64 %369
  %372 = load <2 x float>, ptr %28, align 16, !tbaa !9
  store <2 x float> %372, ptr %371, align 4, !tbaa !9
  %373 = trunc i64 %indvars.iv1524 to i32
  %374 = add i32 %373, -2
  store i32 %374, ptr %19, align 4, !tbaa !5
  %375 = extractelement <2 x float> %372, i64 0
  %376 = fneg float %375
  store float %376, ptr %22, align 4, !tbaa !9
  %gep1330 = getelementptr float, ptr %invariant.gep1286, i64 %303
  %gep1332 = getelementptr float, ptr %12, i64 %369
  call void @saxpy_(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1330, ptr noundef nonnull @c__1, ptr noundef %gep1332, ptr noundef nonnull @c__1) #6
  store i32 %374, ptr %19, align 4, !tbaa !5
  %377 = load float, ptr %166, align 4, !tbaa !9
  %378 = fneg float %377
  store float %378, ptr %22, align 4, !tbaa !9
  %379 = load i32, ptr %3, align 4, !tbaa !5
  %380 = sext i32 %379 to i64
  br label %.lr.ph1345._crit_edge.sink.split

.lr.ph1345._crit_edge.sink.split:                 ; preds = %337, %367
  %.sink1701 = phi i64 [ %380, %367 ], [ %340, %337 ]
  %.21080.ph = phi i32 [ %374, %367 ], [ %.110791175, %337 ]
  %.pn = mul nsw i64 %indvars.iv1524, %172
  %gep1334.sink = getelementptr float, ptr %invariant.gep1286, i64 %.pn
  %gep1336 = getelementptr float, ptr %12, i64 %.sink1701
  call void @saxpy_(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1334.sink, ptr noundef nonnull @c__1, ptr noundef %gep1336, ptr noundef nonnull @c__1) #6
  br label %.lr.ph1345._crit_edge

.lr.ph1345._crit_edge:                            ; preds = %.lr.ph1345._crit_edge.sink.split, %.lr.ph1345
  %.21080 = phi i32 [ %.010781343, %.lr.ph1345 ], [ %.21080.ph, %.lr.ph1345._crit_edge.sink.split ]
  %381 = icmp sgt i64 %indvars.iv1524, 1
  br i1 %381, label %.lr.ph1345, label %._crit_edge1346, !llvm.loop !21

._crit_edge1346:                                  ; preds = %.lr.ph1345._crit_edge, %253, %.preheader
  br i1 %.not1148, label %382, label %407

382:                                              ; preds = %._crit_edge1346
  %383 = load i32, ptr %3, align 4, !tbaa !5
  %384 = sext i32 %383 to i64
  %gep1382 = getelementptr float, ptr %12, i64 %384
  %385 = mul nsw i32 %.01387, %42
  %386 = sext i32 %385 to i64
  %gep1384 = getelementptr float, ptr %invariant.gep1353, i64 %386
  call void @scopy_(ptr noundef nonnull %31, ptr noundef %gep1382, ptr noundef nonnull @c__1, ptr noundef %gep1384, ptr noundef nonnull @c__1) #6
  %387 = call i32 @isamax_(ptr noundef nonnull %31, ptr noundef %gep1384, ptr noundef nonnull @c__1) #6
  %388 = add nsw i32 %387, %385
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds float, ptr %44, i64 %389
  %391 = load float, ptr %390, align 4, !tbaa !9
  store float %391, ptr %22, align 4, !tbaa !9
  %392 = fcmp oge float %391, 0.000000e+00
  %393 = fneg float %391
  %394 = select i1 %392, float %391, float %393
  %395 = fdiv float 1.000000e+00, %394
  store float %395, ptr %29, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %31, ptr noundef nonnull %29, ptr noundef %gep1384, ptr noundef nonnull @c__1) #6
  %396 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %396, ptr %19, align 4, !tbaa !5
  %397 = load i32, ptr %31, align 4, !tbaa !5
  %.not1155.not1347 = icmp slt i32 %397, %396
  br i1 %.not1155.not1347, label %.lr.ph1350.preheader, label %.loopexit1269

.lr.ph1350.preheader:                             ; preds = %382
  %398 = add nsw i32 %397, 1
  %399 = add i32 %398, %385
  %400 = sext i32 %399 to i64
  %401 = shl nsw i64 %400, 2
  %scevgep1527 = getelementptr i8, ptr %scevgep, i64 %401
  %402 = xor i32 %397, -1
  %403 = add i32 %396, %402
  %404 = zext i32 %403 to i64
  %405 = shl nuw nsw i64 %404, 2
  %406 = add nuw nsw i64 %405, 4
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep1527, i8 0, i64 %406, i1 false), !tbaa !9
  br label %.loopexit1269

407:                                              ; preds = %._crit_edge1346
  %408 = load i32, ptr %31, align 4, !tbaa !5
  %409 = icmp sgt i32 %408, 1
  br i1 %409, label %410, label %419

410:                                              ; preds = %407
  %411 = add nsw i32 %408, -1
  store i32 %411, ptr %19, align 4, !tbaa !5
  %412 = load i32, ptr %3, align 4, !tbaa !5
  %413 = sext i32 %412 to i64
  %gep1374 = getelementptr float, ptr %12, i64 %413
  %414 = add nsw i32 %412, %408
  %415 = sext i32 %414 to i64
  %416 = getelementptr inbounds float, ptr %45, i64 %415
  %417 = mul nsw i32 %408, %42
  %418 = sext i32 %417 to i64
  %gep1376 = getelementptr float, ptr %invariant.gep1353, i64 %418
  call void @sgemv_(ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef nonnull @c_b22, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %gep1374, ptr noundef nonnull @c__1, ptr noundef nonnull %416, ptr noundef %gep1376, ptr noundef nonnull @c__1) #6
  %.pre1577 = load i32, ptr %31, align 4, !tbaa !5
  br label %419

419:                                              ; preds = %410, %407
  %420 = phi i32 [ %.pre1577, %410 ], [ %408, %407 ]
  %421 = mul nsw i32 %420, %42
  %422 = sext i32 %421 to i64
  %gep1378 = getelementptr float, ptr %invariant.gep1353, i64 %422
  %423 = call i32 @isamax_(ptr noundef nonnull %3, ptr noundef %gep1378, ptr noundef nonnull @c__1) #6
  %424 = load i32, ptr %31, align 4, !tbaa !5
  %425 = mul nsw i32 %424, %42
  %426 = add nsw i32 %425, %423
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds float, ptr %44, i64 %427
  %429 = load float, ptr %428, align 4, !tbaa !9
  store float %429, ptr %22, align 4, !tbaa !9
  %430 = fcmp oge float %429, 0.000000e+00
  %431 = fneg float %429
  %432 = select i1 %430, float %429, float %431
  %433 = fdiv float 1.000000e+00, %432
  store float %433, ptr %29, align 4, !tbaa !9
  %434 = sext i32 %425 to i64
  %gep1380 = getelementptr float, ptr %invariant.gep1353, i64 %434
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %29, ptr noundef %gep1380, ptr noundef nonnull @c__1) #6
  br label %.loopexit1269

435:                                              ; preds = %239
  %436 = add nsw i32 %252, -1
  %437 = mul nsw i32 %252, %36
  %438 = add nsw i32 %436, %437
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds float, ptr %38, i64 %439
  %441 = load float, ptr %440, align 4, !tbaa !9
  store float %441, ptr %22, align 4, !tbaa !9
  %442 = fcmp oge float %441, 0.000000e+00
  %443 = fneg float %441
  %444 = select i1 %442, float %441, float %443
  %445 = mul nsw i32 %436, %36
  %446 = add nsw i32 %445, %252
  %447 = sext i32 %446 to i64
  %448 = getelementptr inbounds float, ptr %38, i64 %447
  %449 = load float, ptr %448, align 4, !tbaa !9
  %450 = fcmp oge float %449, 0.000000e+00
  %451 = fneg float %449
  %452 = select i1 %450, float %449, float %451
  %453 = fcmp ult float %444, %452
  br i1 %453, label %461, label %454

454:                                              ; preds = %435
  %455 = load i32, ptr %3, align 4, !tbaa !5
  %456 = add nsw i32 %455, %436
  %457 = sext i32 %456 to i64
  %458 = getelementptr inbounds float, ptr %45, i64 %457
  store float 1.000000e+00, ptr %458, align 4, !tbaa !9
  %459 = load float, ptr %440, align 4, !tbaa !9
  %460 = fdiv float %240, %459
  br label %467

461:                                              ; preds = %435
  %462 = fdiv float %246, %449
  %463 = load i32, ptr %3, align 4, !tbaa !5
  %464 = add nsw i32 %463, %436
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds float, ptr %45, i64 %465
  store float %462, ptr %466, align 4, !tbaa !9
  br label %467

467:                                              ; preds = %461, %454
  %.sink1702 = phi float [ 1.000000e+00, %461 ], [ %460, %454 ]
  %468 = phi i32 [ %463, %461 ], [ %455, %454 ]
  %469 = add nsw i32 %252, %160
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds float, ptr %45, i64 %470
  store float %.sink1702, ptr %471, align 4, !tbaa !9
  %472 = add nsw i32 %468, %252
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds float, ptr %45, i64 %473
  store float 0.000000e+00, ptr %474, align 4, !tbaa !9
  %475 = add nsw i32 %436, %160
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds float, ptr %45, i64 %476
  store float 0.000000e+00, ptr %477, align 4, !tbaa !9
  %478 = add i32 %252, -2
  store i32 %478, ptr %19, align 4, !tbaa !5
  %.not11471282 = icmp slt i32 %252, 3
  br i1 %.not11471282, label %._crit_edge1303, label %.lr.ph1285

.lr.ph1285:                                       ; preds = %467
  %479 = add nsw i32 %468, %436
  %480 = sext i32 %479 to i64
  %481 = getelementptr inbounds float, ptr %45, i64 %480
  %482 = add nsw i32 %252, %160
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds float, ptr %45, i64 %483
  %485 = sext i32 %445 to i64
  %486 = sext i32 %468 to i64
  %487 = sext i32 %437 to i64
  %wide.trip.count1497 = zext nneg i32 %436 to i64
  %invariant.gep1641 = getelementptr float, ptr %38, i64 %485
  %invariant.gep1643 = getelementptr float, ptr %45, i64 %486
  %invariant.gep1645 = getelementptr float, ptr %38, i64 %487
  %488 = add nsw i64 %wide.trip.count1497, -1
  %min.iters.check1786 = icmp ult i64 %488, 16
  br i1 %min.iters.check1786, label %scalar.ph1785.preheader, label %vector.memcheck1736

scalar.ph1785.preheader:                          ; preds = %middle.block1784, %vector.memcheck1736, %.lr.ph1285
  %indvars.iv1494.ph = phi i64 [ 1, %vector.memcheck1736 ], [ 1, %.lr.ph1285 ], [ %ind.end1790, %middle.block1784 ]
  %489 = and i32 %252, 1
  %lcmp.mod1925.not = icmp eq i32 %489, 0
  br i1 %lcmp.mod1925.not, label %scalar.ph1785.prol.loopexit, label %scalar.ph1785.prol

scalar.ph1785.prol:                               ; preds = %scalar.ph1785.preheader
  %490 = load float, ptr %481, align 4, !tbaa !9
  %491 = fneg float %490
  %gep1642.prol = getelementptr float, ptr %invariant.gep1641, i64 %indvars.iv1494.ph
  %492 = load float, ptr %gep1642.prol, align 4, !tbaa !9
  %493 = fmul float %492, %491
  %gep1644.prol = getelementptr float, ptr %invariant.gep1643, i64 %indvars.iv1494.ph
  store float %493, ptr %gep1644.prol, align 4, !tbaa !9
  %494 = load float, ptr %484, align 4, !tbaa !9
  %495 = fneg float %494
  %gep1646.prol = getelementptr float, ptr %invariant.gep1645, i64 %indvars.iv1494.ph
  %496 = load float, ptr %gep1646.prol, align 4, !tbaa !9
  %497 = fmul float %496, %495
  %gep1648.prol = getelementptr float, ptr %invariant.gep1647, i64 %indvars.iv1494.ph
  store float %497, ptr %gep1648.prol, align 4, !tbaa !9
  %indvars.iv.next1495.prol = add nuw nsw i64 %indvars.iv1494.ph, 1
  br label %scalar.ph1785.prol.loopexit

scalar.ph1785.prol.loopexit:                      ; preds = %scalar.ph1785.prol, %scalar.ph1785.preheader
  %indvars.iv1494.unr = phi i64 [ %indvars.iv1494.ph, %scalar.ph1785.preheader ], [ %indvars.iv.next1495.prol, %scalar.ph1785.prol ]
  %498 = add nsw i64 %wide.trip.count1497, -1
  %499 = icmp eq i64 %indvars.iv1494.ph, %498
  br i1 %499, label %.lr.ph1302.preheader, label %scalar.ph1785

vector.memcheck1736:                              ; preds = %.lr.ph1285
  %500 = shl nsw i64 %486, 2
  %scevgep1737 = getelementptr i8, ptr %12, i64 %500
  %501 = shl nuw nsw i64 %wide.trip.count1497, 2
  %502 = getelementptr i8, ptr %scevgep1738, i64 %500
  %scevgep1739 = getelementptr i8, ptr %502, i64 %501
  %scevgep1742 = getelementptr i8, ptr %scevgep1741, i64 %501
  %503 = shl nsw i64 %480, 2
  %scevgep1743 = getelementptr i8, ptr %12, i64 %503
  %504 = shl nsw i64 %485, 2
  %scevgep1745 = getelementptr i8, ptr %scevgep1744, i64 %504
  %505 = getelementptr i8, ptr %scevgep1746, i64 %504
  %scevgep1747 = getelementptr i8, ptr %505, i64 %501
  %506 = shl nsw i64 %483, 2
  %scevgep1748 = getelementptr i8, ptr %12, i64 %506
  %507 = shl nsw i64 %487, 2
  %scevgep1750 = getelementptr i8, ptr %scevgep1749, i64 %507
  %508 = getelementptr i8, ptr %scevgep1751, i64 %507
  %scevgep1752 = getelementptr i8, ptr %508, i64 %501
  %bound0 = icmp ult ptr %scevgep1737, %scevgep1742
  %bound1 = icmp ult ptr %scevgep1740, %scevgep1739
  %found.conflict = and i1 %bound0, %bound1
  %bound01753 = icmp ult ptr %scevgep1737, %scevgep1743
  %bound11754 = icmp ult ptr %481, %scevgep1739
  %found.conflict1755 = and i1 %bound01753, %bound11754
  %conflict.rdx = or i1 %found.conflict, %found.conflict1755
  %bound01756 = icmp ult ptr %scevgep1737, %scevgep1747
  %bound11757 = icmp ult ptr %scevgep1745, %scevgep1739
  %found.conflict1758 = and i1 %bound01756, %bound11757
  %conflict.rdx1759 = or i1 %conflict.rdx, %found.conflict1758
  %bound01760 = icmp ult ptr %scevgep1737, %scevgep1748
  %bound11761 = icmp ult ptr %484, %scevgep1739
  %found.conflict1762 = and i1 %bound01760, %bound11761
  %conflict.rdx1763 = or i1 %conflict.rdx1759, %found.conflict1762
  %bound01764 = icmp ult ptr %scevgep1737, %scevgep1752
  %bound11765 = icmp ult ptr %scevgep1750, %scevgep1739
  %found.conflict1766 = and i1 %bound01764, %bound11765
  %conflict.rdx1767 = or i1 %conflict.rdx1763, %found.conflict1766
  %bound01768 = icmp ult ptr %scevgep1740, %scevgep1743
  %bound11769 = icmp ult ptr %481, %scevgep1742
  %found.conflict1770 = and i1 %bound01768, %bound11769
  %conflict.rdx1771 = or i1 %conflict.rdx1767, %found.conflict1770
  %bound01772 = icmp ult ptr %scevgep1740, %scevgep1747
  %bound11773 = icmp ult ptr %scevgep1745, %scevgep1742
  %found.conflict1774 = and i1 %bound01772, %bound11773
  %conflict.rdx1775 = or i1 %conflict.rdx1771, %found.conflict1774
  %bound01776 = icmp ult ptr %scevgep1740, %scevgep1748
  %bound11777 = icmp ult ptr %484, %scevgep1742
  %found.conflict1778 = and i1 %bound01776, %bound11777
  %conflict.rdx1779 = or i1 %conflict.rdx1775, %found.conflict1778
  %bound01780 = icmp ult ptr %scevgep1740, %scevgep1752
  %bound11781 = icmp ult ptr %scevgep1750, %scevgep1742
  %found.conflict1782 = and i1 %bound01780, %bound11781
  %conflict.rdx1783 = or i1 %conflict.rdx1779, %found.conflict1782
  br i1 %conflict.rdx1783, label %scalar.ph1785.preheader, label %vector.ph1787

vector.ph1787:                                    ; preds = %vector.memcheck1736
  %n.vec1789 = and i64 %488, -4
  %ind.end1790 = or disjoint i64 %n.vec1789, 1
  %509 = load float, ptr %481, align 4, !tbaa !9, !alias.scope !22
  %broadcast.splatinsert = insertelement <4 x float> poison, float %509, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  %510 = fneg <4 x float> %broadcast.splat
  %511 = load float, ptr %484, align 4, !tbaa !9, !alias.scope !25
  %broadcast.splatinsert1796 = insertelement <4 x float> poison, float %511, i64 0
  %broadcast.splat1797 = shufflevector <4 x float> %broadcast.splatinsert1796, <4 x float> poison, <4 x i32> zeroinitializer
  %512 = fneg <4 x float> %broadcast.splat1797
  br label %vector.body1792

vector.body1792:                                  ; preds = %vector.body1792, %vector.ph1787
  %index1793 = phi i64 [ 0, %vector.ph1787 ], [ %index.next1799, %vector.body1792 ]
  %offset.idx1794 = or disjoint i64 %index1793, 1
  %513 = getelementptr float, ptr %invariant.gep1641, i64 %offset.idx1794
  %wide.load1795 = load <4 x float>, ptr %513, align 4, !tbaa !9, !alias.scope !27
  %514 = fmul <4 x float> %wide.load1795, %510
  %515 = getelementptr float, ptr %invariant.gep1643, i64 %offset.idx1794
  store <4 x float> %514, ptr %515, align 4, !tbaa !9, !alias.scope !29, !noalias !31
  %516 = getelementptr float, ptr %invariant.gep1645, i64 %offset.idx1794
  %wide.load1798 = load <4 x float>, ptr %516, align 4, !tbaa !9, !alias.scope !34
  %517 = fmul <4 x float> %wide.load1798, %512
  %518 = getelementptr float, ptr %invariant.gep1647, i64 %offset.idx1794
  store <4 x float> %517, ptr %518, align 4, !tbaa !9, !alias.scope !35, !noalias !36
  %index.next1799 = add nuw i64 %index1793, 4
  %519 = icmp eq i64 %index.next1799, %n.vec1789
  br i1 %519, label %middle.block1784, label %vector.body1792, !llvm.loop !37

middle.block1784:                                 ; preds = %vector.body1792
  %cmp.n1800 = icmp eq i64 %488, %n.vec1789
  br i1 %cmp.n1800, label %.lr.ph1302.preheader, label %scalar.ph1785.preheader

.lr.ph1302.preheader:                             ; preds = %scalar.ph1785.prol.loopexit, %scalar.ph1785, %middle.block1784
  %520 = zext nneg i32 %478 to i64
  br label %.lr.ph1302

scalar.ph1785:                                    ; preds = %scalar.ph1785.prol.loopexit, %scalar.ph1785
  %indvars.iv1494 = phi i64 [ %indvars.iv.next1495.1, %scalar.ph1785 ], [ %indvars.iv1494.unr, %scalar.ph1785.prol.loopexit ]
  %521 = load float, ptr %481, align 4, !tbaa !9
  %522 = fneg float %521
  %gep1642 = getelementptr float, ptr %invariant.gep1641, i64 %indvars.iv1494
  %523 = load float, ptr %gep1642, align 4, !tbaa !9
  %524 = fmul float %523, %522
  %gep1644 = getelementptr float, ptr %invariant.gep1643, i64 %indvars.iv1494
  store float %524, ptr %gep1644, align 4, !tbaa !9
  %525 = load float, ptr %484, align 4, !tbaa !9
  %526 = fneg float %525
  %gep1646 = getelementptr float, ptr %invariant.gep1645, i64 %indvars.iv1494
  %527 = load float, ptr %gep1646, align 4, !tbaa !9
  %528 = fmul float %527, %526
  %gep1648 = getelementptr float, ptr %invariant.gep1647, i64 %indvars.iv1494
  store float %528, ptr %gep1648, align 4, !tbaa !9
  %indvars.iv.next1495 = add nuw nsw i64 %indvars.iv1494, 1
  %529 = load float, ptr %481, align 4, !tbaa !9
  %530 = fneg float %529
  %gep1642.1 = getelementptr float, ptr %invariant.gep1641, i64 %indvars.iv.next1495
  %531 = load float, ptr %gep1642.1, align 4, !tbaa !9
  %532 = fmul float %531, %530
  %gep1644.1 = getelementptr float, ptr %invariant.gep1643, i64 %indvars.iv.next1495
  store float %532, ptr %gep1644.1, align 4, !tbaa !9
  %533 = load float, ptr %484, align 4, !tbaa !9
  %534 = fneg float %533
  %gep1646.1 = getelementptr float, ptr %invariant.gep1645, i64 %indvars.iv.next1495
  %535 = load float, ptr %gep1646.1, align 4, !tbaa !9
  %536 = fmul float %535, %534
  %gep1648.1 = getelementptr float, ptr %invariant.gep1647, i64 %indvars.iv.next1495
  store float %536, ptr %gep1648.1, align 4, !tbaa !9
  %indvars.iv.next1495.1 = add nuw nsw i64 %indvars.iv1494, 2
  %exitcond1498.not.1 = icmp eq i64 %indvars.iv.next1495.1, %wide.trip.count1497
  br i1 %exitcond1498.not.1, label %.lr.ph1302.preheader, label %scalar.ph1785, !llvm.loop !38

.lr.ph1302:                                       ; preds = %.lr.ph1302.preheader, %.lr.ph1302._crit_edge
  %indvars.iv1499 = phi i64 [ %520, %.lr.ph1302.preheader ], [ %.pre1605, %.lr.ph1302._crit_edge ]
  %.310811300 = phi i32 [ %478, %.lr.ph1302.preheader ], [ %.51083, %.lr.ph1302._crit_edge ]
  %indvars1501 = trunc i64 %indvars.iv1499 to i32
  %537 = sext i32 %.310811300 to i64
  %538 = icmp sgt i64 %indvars.iv1499, %537
  %.pre1605 = add nsw i64 %indvars.iv1499, -1
  br i1 %538, label %.lr.ph1302._crit_edge, label %539

539:                                              ; preds = %.lr.ph1302
  %.not1152 = icmp eq i64 %indvars.iv1499, 1
  br i1 %.not1152, label %..thread1184_crit_edge, label %540

..thread1184_crit_edge:                           ; preds = %539
  %.pre1572 = load i32, ptr %3, align 4, !tbaa !5
  br label %.thread1184

540:                                              ; preds = %539
  %541 = add nsw i32 %indvars1501, -1
  %542 = mul nsw i32 %541, %36
  %543 = sext i32 %542 to i64
  %544 = getelementptr float, ptr %38, i64 %indvars.iv1499
  %545 = getelementptr float, ptr %544, i64 %543
  %546 = load float, ptr %545, align 4, !tbaa !9
  %547 = fcmp une float %546, 0.000000e+00
  %548 = trunc nuw nsw i64 %.pre1605 to i32
  %.pre1573 = load i32, ptr %3, align 4, !tbaa !5
  br i1 %547, label %.thread1188, label %.thread1184

.thread1188:                                      ; preds = %540
  %549 = mul nsw i64 %.pre1605, %172
  %550 = getelementptr float, ptr %38, i64 %.pre1605
  %551 = getelementptr float, ptr %550, i64 %543
  %552 = sext i32 %.pre1573 to i64
  %553 = getelementptr float, ptr %45, i64 %.pre1605
  %554 = getelementptr float, ptr %553, i64 %552
  call void @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef nonnull %26, ptr noundef nonnull @c_b22, ptr noundef %551, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef nonnull %554, ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %28, ptr noundef nonnull @c__2, ptr noundef nonnull %27, ptr noundef nonnull %30, ptr noundef nonnull %23) #6
  %555 = load float, ptr %30, align 4, !tbaa !9
  %556 = fcmp ogt float %555, 1.000000e+00
  br i1 %556, label %596, label %thread-pre-split1194

.thread1184:                                      ; preds = %..thread1184_crit_edge, %540
  %557 = phi i32 [ %.pre1573, %540 ], [ %.pre1572, %..thread1184_crit_edge ]
  %.410821187 = phi i32 [ %548, %540 ], [ 0, %..thread1184_crit_edge ]
  %558 = mul nsw i64 %indvars.iv1499, %172
  %559 = mul nsw i32 %36, %indvars1501
  %560 = sext i32 %559 to i64
  %561 = getelementptr float, ptr %38, i64 %indvars.iv1499
  %562 = getelementptr float, ptr %561, i64 %560
  %563 = sext i32 %557 to i64
  %564 = getelementptr float, ptr %45, i64 %indvars.iv1499
  %565 = getelementptr float, ptr %564, i64 %563
  call void @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__1, ptr noundef nonnull @c__2, ptr noundef nonnull %26, ptr noundef nonnull @c_b22, ptr noundef %562, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef nonnull %565, ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef nonnull %32, ptr noundef nonnull %28, ptr noundef nonnull @c__2, ptr noundef nonnull %27, ptr noundef nonnull %30, ptr noundef nonnull %23) #6
  %566 = load float, ptr %30, align 4, !tbaa !9
  %567 = fcmp ogt float %566, 1.000000e+00
  br i1 %567, label %568, label %thread-pre-split1192

568:                                              ; preds = %.thread1184
  %569 = getelementptr inbounds float, ptr %45, i64 %indvars.iv1499
  %570 = load float, ptr %569, align 4, !tbaa !9
  %571 = fdiv float %132, %566
  %572 = fcmp ogt float %570, %571
  br i1 %572, label %573, label %thread-pre-split1192

573:                                              ; preds = %568
  %574 = load float, ptr %28, align 16, !tbaa !9
  %575 = fdiv float %574, %566
  store float %575, ptr %28, align 16, !tbaa !9
  %576 = load float, ptr %165, align 8, !tbaa !9
  %577 = fdiv float %576, %566
  store float %577, ptr %165, align 8, !tbaa !9
  %578 = load float, ptr %27, align 4, !tbaa !9
  %579 = fdiv float %578, %566
  store float %579, ptr %27, align 4, !tbaa !9
  br label %580

thread-pre-split1192:                             ; preds = %.thread1184, %568
  %.pr1193 = load float, ptr %27, align 4, !tbaa !9
  br label %580

580:                                              ; preds = %thread-pre-split1192, %573
  %581 = phi float [ %.pr1193, %thread-pre-split1192 ], [ %579, %573 ]
  %582 = fcmp une float %581, 1.000000e+00
  br i1 %582, label %583, label %586

583:                                              ; preds = %580
  %584 = load i32, ptr %3, align 4, !tbaa !5
  %585 = sext i32 %584 to i64
  %gep1295 = getelementptr float, ptr %12, i64 %585
  call void @sscal_(ptr noundef nonnull %31, ptr noundef nonnull %27, ptr noundef %gep1295, ptr noundef nonnull @c__1) #6
  call void @sscal_(ptr noundef nonnull %31, ptr noundef nonnull %27, ptr noundef nonnull %170, ptr noundef nonnull @c__1) #6
  br label %586

586:                                              ; preds = %583, %580
  %587 = load float, ptr %28, align 16, !tbaa !9
  %588 = load i32, ptr %3, align 4, !tbaa !5
  %589 = sext i32 %588 to i64
  %590 = getelementptr float, ptr %45, i64 %indvars.iv1499
  %591 = getelementptr float, ptr %590, i64 %589
  store float %587, ptr %591, align 4, !tbaa !9
  %592 = load float, ptr %165, align 8, !tbaa !9
  %gep1654 = getelementptr float, ptr %invariant.gep1653, i64 %indvars.iv1499
  store float %592, ptr %gep1654, align 4, !tbaa !9
  %593 = trunc nuw nsw i64 %.pre1605 to i32
  store i32 %593, ptr %19, align 4, !tbaa !5
  %594 = fneg float %587
  store float %594, ptr %22, align 4, !tbaa !9
  %gep1297 = getelementptr float, ptr %invariant.gep1286, i64 %558
  %gep1299 = getelementptr float, ptr %12, i64 %589
  call void @saxpy_(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1297, ptr noundef nonnull @c__1, ptr noundef %gep1299, ptr noundef nonnull @c__1) #6
  store i32 %593, ptr %19, align 4, !tbaa !5
  %595 = load float, ptr %165, align 8, !tbaa !9
  br label %.lr.ph1302._crit_edge.sink.split

596:                                              ; preds = %.thread1188
  %597 = getelementptr inbounds float, ptr %45, i64 %.pre1605
  %598 = load float, ptr %597, align 4, !tbaa !9
  store float %598, ptr %22, align 4, !tbaa !9
  %599 = getelementptr inbounds float, ptr %45, i64 %indvars.iv1499
  %600 = load float, ptr %599, align 4, !tbaa !9
  %601 = fcmp oge float %598, %600
  %602 = select i1 %601, float %598, float %600
  %603 = fdiv float %132, %555
  %604 = fcmp ogt float %602, %603
  br i1 %604, label %605, label %thread-pre-split1194

605:                                              ; preds = %596
  %606 = fdiv float 1.000000e+00, %555
  store float %606, ptr %34, align 4, !tbaa !9
  %607 = load <4 x float>, ptr %28, align 16, !tbaa !9
  %608 = insertelement <4 x float> poison, float %606, i64 0
  %609 = shufflevector <4 x float> %608, <4 x float> poison, <4 x i32> zeroinitializer
  %610 = fmul <4 x float> %609, %607
  store <4 x float> %610, ptr %28, align 16, !tbaa !9
  %611 = load float, ptr %27, align 4, !tbaa !9
  %612 = fmul float %606, %611
  store float %612, ptr %27, align 4, !tbaa !9
  br label %613

thread-pre-split1194:                             ; preds = %.thread1188, %596
  %.pr1195 = load float, ptr %27, align 4, !tbaa !9
  br label %613

613:                                              ; preds = %thread-pre-split1194, %605
  %614 = phi float [ %.pr1195, %thread-pre-split1194 ], [ %612, %605 ]
  %615 = fcmp une float %614, 1.000000e+00
  br i1 %615, label %616, label %619

616:                                              ; preds = %613
  %617 = load i32, ptr %3, align 4, !tbaa !5
  %618 = sext i32 %617 to i64
  %gep = getelementptr float, ptr %12, i64 %618
  call void @sscal_(ptr noundef nonnull %31, ptr noundef nonnull %27, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  call void @sscal_(ptr noundef nonnull %31, ptr noundef nonnull %27, ptr noundef nonnull %170, ptr noundef nonnull @c__1) #6
  br label %619

619:                                              ; preds = %616, %613
  %620 = load i32, ptr %3, align 4, !tbaa !5
  %621 = sext i32 %620 to i64
  %622 = getelementptr float, ptr %45, i64 %.pre1605
  %623 = getelementptr float, ptr %622, i64 %621
  %624 = load <2 x float>, ptr %28, align 16, !tbaa !9
  store <2 x float> %624, ptr %623, align 4, !tbaa !9
  %gep1650 = getelementptr float, ptr %invariant.gep1649, i64 %.pre1605
  %625 = load <2 x float>, ptr %165, align 8, !tbaa !9
  store <2 x float> %625, ptr %gep1650, align 4, !tbaa !9
  %626 = trunc i64 %indvars.iv1499 to i32
  %627 = add i32 %626, -2
  store i32 %627, ptr %19, align 4, !tbaa !5
  %628 = extractelement <2 x float> %624, i64 0
  %629 = fneg float %628
  store float %629, ptr %22, align 4, !tbaa !9
  %gep1287 = getelementptr float, ptr %invariant.gep1286, i64 %549
  %gep1289 = getelementptr float, ptr %12, i64 %621
  call void @saxpy_(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1287, ptr noundef nonnull @c__1, ptr noundef %gep1289, ptr noundef nonnull @c__1) #6
  store i32 %627, ptr %19, align 4, !tbaa !5
  %630 = load float, ptr %166, align 4, !tbaa !9
  %631 = fneg float %630
  store float %631, ptr %22, align 4, !tbaa !9
  %632 = mul nsw i64 %indvars.iv1499, %172
  %gep1291 = getelementptr float, ptr %invariant.gep1286, i64 %632
  %633 = load i32, ptr %3, align 4, !tbaa !5
  %634 = sext i32 %633 to i64
  %gep1293 = getelementptr float, ptr %12, i64 %634
  call void @saxpy_(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1291, ptr noundef nonnull @c__1, ptr noundef %gep1293, ptr noundef nonnull @c__1) #6
  store i32 %627, ptr %19, align 4, !tbaa !5
  %635 = load float, ptr %165, align 8, !tbaa !9
  %636 = fneg float %635
  store float %636, ptr %22, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1287, ptr noundef nonnull @c__1, ptr noundef nonnull %170, ptr noundef nonnull @c__1) #6
  store i32 %627, ptr %19, align 4, !tbaa !5
  %637 = load float, ptr %167, align 4, !tbaa !9
  br label %.lr.ph1302._crit_edge.sink.split

.lr.ph1302._crit_edge.sink.split:                 ; preds = %586, %619
  %.sink1907 = phi float [ %595, %586 ], [ %637, %619 ]
  %gep1291.sink = phi ptr [ %gep1297, %586 ], [ %gep1291, %619 ]
  %.51083.ph = phi i32 [ %.410821187, %586 ], [ %627, %619 ]
  %638 = fneg float %.sink1907
  store float %638, ptr %22, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1291.sink, ptr noundef nonnull @c__1, ptr noundef nonnull %170, ptr noundef nonnull @c__1) #6
  br label %.lr.ph1302._crit_edge

.lr.ph1302._crit_edge:                            ; preds = %.lr.ph1302._crit_edge.sink.split, %.lr.ph1302
  %.51083 = phi i32 [ %.310811300, %.lr.ph1302 ], [ %.51083.ph, %.lr.ph1302._crit_edge.sink.split ]
  %639 = icmp sgt i64 %indvars.iv1499, 1
  br i1 %639, label %.lr.ph1302, label %._crit_edge1303, !llvm.loop !39

._crit_edge1303:                                  ; preds = %.lr.ph1302._crit_edge, %467
  br i1 %.not1148, label %640, label %678

640:                                              ; preds = %._crit_edge1303
  %641 = load i32, ptr %3, align 4, !tbaa !5
  %642 = sext i32 %641 to i64
  %gep1368 = getelementptr float, ptr %12, i64 %642
  %643 = add nsw i32 %.01387, -1
  %644 = mul nsw i32 %643, %42
  %645 = sext i32 %644 to i64
  %gep1370 = getelementptr float, ptr %invariant.gep1353, i64 %645
  call void @scopy_(ptr noundef nonnull %31, ptr noundef %gep1368, ptr noundef nonnull @c__1, ptr noundef %gep1370, ptr noundef nonnull @c__1) #6
  %646 = mul nsw i32 %.01387, %42
  %647 = sext i32 %646 to i64
  %gep1372 = getelementptr float, ptr %invariant.gep1353, i64 %647
  call void @scopy_(ptr noundef nonnull %31, ptr noundef nonnull %170, ptr noundef nonnull @c__1, ptr noundef %gep1372, ptr noundef nonnull @c__1) #6
  %648 = load i32, ptr %31, align 4, !tbaa !5
  store i32 %648, ptr %19, align 4, !tbaa !5
  %.not11491311 = icmp slt i32 %648, 1
  br i1 %.not11491311, label %661, label %.lr.ph1315.preheader

.lr.ph1315.preheader:                             ; preds = %640
  %649 = add nuw i32 %648, 1
  %wide.trip.count1510 = zext i32 %649 to i64
  %invariant.gep1659 = getelementptr float, ptr %44, i64 %645
  %invariant.gep1661 = getelementptr float, ptr %44, i64 %647
  br label %.lr.ph1315

.lr.ph1315:                                       ; preds = %.lr.ph1315.preheader, %.lr.ph1315
  %indvars.iv1507 = phi i64 [ 1, %.lr.ph1315.preheader ], [ %indvars.iv.next1508, %.lr.ph1315 ]
  %.010981312 = phi float [ 0.000000e+00, %.lr.ph1315.preheader ], [ %660, %.lr.ph1315 ]
  %gep1660 = getelementptr float, ptr %invariant.gep1659, i64 %indvars.iv1507
  %650 = load float, ptr %gep1660, align 4, !tbaa !9
  %651 = fcmp oge float %650, 0.000000e+00
  %652 = fneg float %650
  %653 = select i1 %651, float %650, float %652
  %gep1662 = getelementptr float, ptr %invariant.gep1661, i64 %indvars.iv1507
  %654 = load float, ptr %gep1662, align 4, !tbaa !9
  %655 = fcmp oge float %654, 0.000000e+00
  %656 = fneg float %654
  %657 = select i1 %655, float %654, float %656
  %658 = fadd float %653, %657
  %659 = fcmp oge float %.010981312, %658
  %660 = select i1 %659, float %.010981312, float %658
  %indvars.iv.next1508 = add nuw nsw i64 %indvars.iv1507, 1
  %exitcond1511.not = icmp eq i64 %indvars.iv.next1508, %wide.trip.count1510
  br i1 %exitcond1511.not, label %._crit_edge1316, label %.lr.ph1315, !llvm.loop !40

._crit_edge1316:                                  ; preds = %.lr.ph1315
  store float %650, ptr %22, align 4, !tbaa !9
  br label %661

661:                                              ; preds = %._crit_edge1316, %640
  %.01098.lcssa = phi float [ %660, %._crit_edge1316 ], [ 0.000000e+00, %640 ]
  %662 = fdiv float 1.000000e+00, %.01098.lcssa
  store float %662, ptr %29, align 4, !tbaa !9
  call void @sscal_(ptr noundef nonnull %31, ptr noundef nonnull %29, ptr noundef %gep1370, ptr noundef nonnull @c__1) #6
  call void @sscal_(ptr noundef nonnull %31, ptr noundef nonnull %29, ptr noundef %gep1372, ptr noundef nonnull @c__1) #6
  %663 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %663, ptr %19, align 4, !tbaa !5
  %664 = load i32, ptr %31, align 4, !tbaa !5
  %.not1150.not1319 = icmp slt i32 %664, %663
  br i1 %.not1150.not1319, label %.lr.ph1322.preheader, label %.loopexit1269

.lr.ph1322.preheader:                             ; preds = %661
  %665 = sext i32 %664 to i64
  %wide.trip.count1517 = sext i32 %663 to i64
  %invariant.gep1663 = getelementptr float, ptr %44, i64 %645
  %invariant.gep1665 = getelementptr float, ptr %44, i64 %647
  %666 = sub nsw i64 %wide.trip.count1517, %665
  %min.iters.check1725 = icmp ult i64 %666, 8
  br i1 %min.iters.check1725, label %.lr.ph1322.preheader1917, label %vector.memcheck1721

vector.memcheck1721:                              ; preds = %.lr.ph1322.preheader
  %667 = sub nsw i64 %647, %645
  %668 = and i64 %667, 4611686018427387896
  %diff.check1722 = icmp eq i64 %668, 0
  br i1 %diff.check1722, label %.lr.ph1322.preheader1917, label %vector.ph1726

vector.ph1726:                                    ; preds = %vector.memcheck1721
  %n.vec1728 = and i64 %666, -8
  %ind.end1729 = add nsw i64 %n.vec1728, %665
  br label %vector.body1731

vector.body1731:                                  ; preds = %vector.body1731, %vector.ph1726
  %index1732 = phi i64 [ 0, %vector.ph1726 ], [ %index.next1734, %vector.body1731 ]
  %offset.idx1733 = add i64 %index1732, %665
  %669 = add nsw i64 %offset.idx1733, 1
  %670 = getelementptr float, ptr %invariant.gep1663, i64 %669
  %671 = getelementptr i8, ptr %670, i64 16
  store <4 x float> zeroinitializer, ptr %670, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %671, align 4, !tbaa !9
  %672 = getelementptr float, ptr %invariant.gep1665, i64 %669
  %673 = getelementptr i8, ptr %672, i64 16
  store <4 x float> zeroinitializer, ptr %672, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %673, align 4, !tbaa !9
  %index.next1734 = add nuw i64 %index1732, 8
  %674 = icmp eq i64 %index.next1734, %n.vec1728
  br i1 %674, label %middle.block1723, label %vector.body1731, !llvm.loop !41

middle.block1723:                                 ; preds = %vector.body1731
  %cmp.n1735 = icmp eq i64 %666, %n.vec1728
  br i1 %cmp.n1735, label %.loopexit1269, label %.lr.ph1322.preheader1917

.lr.ph1322.preheader1917:                         ; preds = %middle.block1723, %vector.memcheck1721, %.lr.ph1322.preheader
  %indvars.iv1514.ph = phi i64 [ %665, %vector.memcheck1721 ], [ %665, %.lr.ph1322.preheader ], [ %ind.end1729, %middle.block1723 ]
  %675 = sub nsw i64 %wide.trip.count1517, %indvars.iv1514.ph
  %xtraiter1926 = and i64 %675, 3
  %lcmp.mod1927.not = icmp eq i64 %xtraiter1926, 0
  br i1 %lcmp.mod1927.not, label %.lr.ph1322.prol.loopexit, label %.lr.ph1322.prol

.lr.ph1322.prol:                                  ; preds = %.lr.ph1322.preheader1917, %.lr.ph1322.prol
  %indvars.iv1514.prol = phi i64 [ %indvars.iv.next1515.prol, %.lr.ph1322.prol ], [ %indvars.iv1514.ph, %.lr.ph1322.preheader1917 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph1322.prol ], [ 0, %.lr.ph1322.preheader1917 ]
  %indvars.iv.next1515.prol = add nsw i64 %indvars.iv1514.prol, 1
  %gep1664.prol = getelementptr float, ptr %invariant.gep1663, i64 %indvars.iv.next1515.prol
  store float 0.000000e+00, ptr %gep1664.prol, align 4, !tbaa !9
  %gep1666.prol = getelementptr float, ptr %invariant.gep1665, i64 %indvars.iv.next1515.prol
  store float 0.000000e+00, ptr %gep1666.prol, align 4, !tbaa !9
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter1926
  br i1 %prol.iter.cmp.not, label %.lr.ph1322.prol.loopexit, label %.lr.ph1322.prol, !llvm.loop !42

.lr.ph1322.prol.loopexit:                         ; preds = %.lr.ph1322.prol, %.lr.ph1322.preheader1917
  %indvars.iv1514.unr = phi i64 [ %indvars.iv1514.ph, %.lr.ph1322.preheader1917 ], [ %indvars.iv.next1515.prol, %.lr.ph1322.prol ]
  %676 = sub nsw i64 %indvars.iv1514.ph, %wide.trip.count1517
  %677 = icmp ugt i64 %676, -4
  br i1 %677, label %.loopexit1269, label %.lr.ph1322

.lr.ph1322:                                       ; preds = %.lr.ph1322.prol.loopexit, %.lr.ph1322
  %indvars.iv1514 = phi i64 [ %indvars.iv.next1515.3, %.lr.ph1322 ], [ %indvars.iv1514.unr, %.lr.ph1322.prol.loopexit ]
  %indvars.iv.next1515 = add nsw i64 %indvars.iv1514, 1
  %gep1664 = getelementptr float, ptr %invariant.gep1663, i64 %indvars.iv.next1515
  store float 0.000000e+00, ptr %gep1664, align 4, !tbaa !9
  %gep1666 = getelementptr float, ptr %invariant.gep1665, i64 %indvars.iv.next1515
  store float 0.000000e+00, ptr %gep1666, align 4, !tbaa !9
  %indvars.iv.next1515.1 = add nsw i64 %indvars.iv1514, 2
  %gep1664.1 = getelementptr float, ptr %invariant.gep1663, i64 %indvars.iv.next1515.1
  store float 0.000000e+00, ptr %gep1664.1, align 4, !tbaa !9
  %gep1666.1 = getelementptr float, ptr %invariant.gep1665, i64 %indvars.iv.next1515.1
  store float 0.000000e+00, ptr %gep1666.1, align 4, !tbaa !9
  %indvars.iv.next1515.2 = add nsw i64 %indvars.iv1514, 3
  %gep1664.2 = getelementptr float, ptr %invariant.gep1663, i64 %indvars.iv.next1515.2
  store float 0.000000e+00, ptr %gep1664.2, align 4, !tbaa !9
  %gep1666.2 = getelementptr float, ptr %invariant.gep1665, i64 %indvars.iv.next1515.2
  store float 0.000000e+00, ptr %gep1666.2, align 4, !tbaa !9
  %indvars.iv.next1515.3 = add nsw i64 %indvars.iv1514, 4
  %gep1664.3 = getelementptr float, ptr %invariant.gep1663, i64 %indvars.iv.next1515.3
  store float 0.000000e+00, ptr %gep1664.3, align 4, !tbaa !9
  %gep1666.3 = getelementptr float, ptr %invariant.gep1665, i64 %indvars.iv.next1515.3
  store float 0.000000e+00, ptr %gep1666.3, align 4, !tbaa !9
  %exitcond1518.not.3 = icmp eq i64 %indvars.iv.next1515.3, %wide.trip.count1517
  br i1 %exitcond1518.not.3, label %.loopexit1269, label %.lr.ph1322, !llvm.loop !43

678:                                              ; preds = %._crit_edge1303
  %679 = load i32, ptr %31, align 4, !tbaa !5
  %680 = icmp sgt i32 %679, 2
  br i1 %680, label %681, label %698

681:                                              ; preds = %678
  %682 = add nsw i32 %679, -2
  store i32 %682, ptr %19, align 4, !tbaa !5
  %683 = load i32, ptr %3, align 4, !tbaa !5
  %684 = sext i32 %683 to i64
  %gep1358 = getelementptr float, ptr %12, i64 %684
  %685 = add nsw i32 %679, -1
  %686 = add nsw i32 %683, %685
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds float, ptr %45, i64 %687
  %689 = mul nsw i32 %685, %42
  %690 = sext i32 %689 to i64
  %gep1360 = getelementptr float, ptr %invariant.gep1353, i64 %690
  call void @sgemv_(ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef nonnull @c_b22, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %gep1358, ptr noundef nonnull @c__1, ptr noundef nonnull %688, ptr noundef %gep1360, ptr noundef nonnull @c__1) #6
  %691 = load i32, ptr %31, align 4, !tbaa !5
  %692 = add nsw i32 %691, -2
  store i32 %692, ptr %19, align 4, !tbaa !5
  %693 = add nsw i32 %691, %160
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds float, ptr %45, i64 %694
  %696 = mul nsw i32 %691, %42
  %697 = sext i32 %696 to i64
  %gep1362 = getelementptr float, ptr %invariant.gep1353, i64 %697
  call void @sgemv_(ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef nonnull @c_b22, ptr noundef %8, ptr noundef nonnull %9, ptr noundef nonnull %170, ptr noundef nonnull @c__1, ptr noundef nonnull %695, ptr noundef %gep1362, ptr noundef nonnull @c__1) #6
  br label %712

698:                                              ; preds = %678
  %699 = add nsw i32 %679, -1
  %700 = load i32, ptr %3, align 4, !tbaa !5
  %701 = add nsw i32 %700, %699
  %702 = sext i32 %701 to i64
  %703 = getelementptr inbounds float, ptr %45, i64 %702
  %704 = mul nsw i32 %699, %42
  %705 = sext i32 %704 to i64
  %gep1354 = getelementptr float, ptr %invariant.gep1353, i64 %705
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %703, ptr noundef %gep1354, ptr noundef nonnull @c__1) #6
  %706 = load i32, ptr %31, align 4, !tbaa !5
  %707 = add nsw i32 %706, %160
  %708 = sext i32 %707 to i64
  %709 = getelementptr inbounds float, ptr %45, i64 %708
  %710 = mul nsw i32 %706, %42
  %711 = sext i32 %710 to i64
  %gep1356 = getelementptr float, ptr %invariant.gep1353, i64 %711
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %709, ptr noundef %gep1356, ptr noundef nonnull @c__1) #6
  br label %712

712:                                              ; preds = %698, %681
  %713 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %713, ptr %19, align 4, !tbaa !5
  %.not11511304 = icmp slt i32 %713, 1
  %.pre1574 = load i32, ptr %31, align 4, !tbaa !5
  %.pre1606 = add nsw i32 %.pre1574, -1
  %.pre1608 = mul nsw i32 %.pre1606, %42
  br i1 %.not11511304, label %._crit_edge1595, label %.lr.ph1308

._crit_edge1595:                                  ; preds = %712
  %.pre1610 = sext i32 %.pre1608 to i64
  br label %730

.lr.ph1308:                                       ; preds = %712
  %714 = mul nsw i32 %.pre1574, %42
  %715 = sext i32 %.pre1608 to i64
  %716 = sext i32 %714 to i64
  %717 = add nuw i32 %713, 1
  %wide.trip.count1505 = zext i32 %717 to i64
  %invariant.gep1655 = getelementptr float, ptr %44, i64 %715
  %invariant.gep1657 = getelementptr float, ptr %44, i64 %716
  br label %718

718:                                              ; preds = %.lr.ph1308, %718
  %indvars.iv1502 = phi i64 [ 1, %.lr.ph1308 ], [ %indvars.iv.next1503, %718 ]
  %.110991305 = phi float [ 0.000000e+00, %.lr.ph1308 ], [ %729, %718 ]
  %gep1656 = getelementptr float, ptr %invariant.gep1655, i64 %indvars.iv1502
  %719 = load float, ptr %gep1656, align 4, !tbaa !9
  %720 = fcmp oge float %719, 0.000000e+00
  %721 = fneg float %719
  %722 = select i1 %720, float %719, float %721
  %gep1658 = getelementptr float, ptr %invariant.gep1657, i64 %indvars.iv1502
  %723 = load float, ptr %gep1658, align 4, !tbaa !9
  %724 = fcmp oge float %723, 0.000000e+00
  %725 = fneg float %723
  %726 = select i1 %724, float %723, float %725
  %727 = fadd float %722, %726
  %728 = fcmp oge float %.110991305, %727
  %729 = select i1 %728, float %.110991305, float %727
  %indvars.iv.next1503 = add nuw nsw i64 %indvars.iv1502, 1
  %exitcond1506.not = icmp eq i64 %indvars.iv.next1503, %wide.trip.count1505
  br i1 %exitcond1506.not, label %._crit_edge1309, label %718, !llvm.loop !44

._crit_edge1309:                                  ; preds = %718
  store float %719, ptr %22, align 4, !tbaa !9
  br label %730

730:                                              ; preds = %._crit_edge1595, %._crit_edge1309
  %.pre-phi1611 = phi i64 [ %.pre1610, %._crit_edge1595 ], [ %715, %._crit_edge1309 ]
  %.11099.lcssa = phi float [ 0.000000e+00, %._crit_edge1595 ], [ %729, %._crit_edge1309 ]
  %731 = fdiv float 1.000000e+00, %.11099.lcssa
  store float %731, ptr %29, align 4, !tbaa !9
  %gep1364 = getelementptr float, ptr %invariant.gep1353, i64 %.pre-phi1611
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %29, ptr noundef %gep1364, ptr noundef nonnull @c__1) #6
  %732 = load i32, ptr %31, align 4, !tbaa !5
  %733 = mul nsw i32 %732, %42
  %734 = sext i32 %733 to i64
  %gep1366 = getelementptr float, ptr %invariant.gep1353, i64 %734
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %29, ptr noundef %gep1366, ptr noundef nonnull @c__1) #6
  br label %.loopexit1269

.loopexit1269:                                    ; preds = %.lr.ph1322.prol.loopexit, %.lr.ph1322, %middle.block1723, %.lr.ph1350.preheader, %661, %382, %419, %730
  %spec.select1160.v = phi i32 [ -1, %419 ], [ -2, %730 ], [ -1, %382 ], [ -2, %661 ], [ -1, %.lr.ph1350.preheader ], [ -2, %middle.block1723 ], [ -2, %.lr.ph1322 ], [ -2, %.lr.ph1322.prol.loopexit ]
  %spec.select1160 = add nsw i32 %spec.select1160.v, %.01387
  %735 = icmp eq i32 %.110541168.fr1616, 1
  br i1 %735, label %.thread1209, label %.thread1197

.thread1197:                                      ; preds = %.thread1169, %.loopexit1269
  %.11201 = phi i32 [ %spec.select1160, %.loopexit1269 ], [ %.01387, %.thread1169 ]
  %.fr = phi i32 [ %.110541168.fr1616, %.loopexit1269 ], [ %.1105411671171, %.thread1169 ]
  %736 = icmp eq i32 %.fr, -1
  %spec.select1239 = select i1 %736, i32 1, i32 %.fr
  br label %.thread1209

.thread1209:                                      ; preds = %.thread1197, %198, %.loopexit1269, %179
  %.112011212 = phi i32 [ %.01387, %179 ], [ %spec.select1160, %.loopexit1269 ], [ %.01387, %198 ], [ %.11201, %.thread1197 ]
  %737 = phi i32 [ 0, %179 ], [ 0, %.loopexit1269 ], [ 0, %198 ], [ %spec.select1239, %.thread1197 ]
  %738 = load i32, ptr %31, align 4, !tbaa !5
  %739 = add nsw i32 %738, -1
  store i32 %739, ptr %31, align 4, !tbaa !5
  %740 = icmp sgt i32 %738, 1
  br i1 %740, label %179, label %.loopexit1272, !llvm.loop !45

.loopexit1272:                                    ; preds = %.thread1209, %161, %159
  br i1 %53, label %741, label %.loopexit1268

741:                                              ; preds = %.loopexit1272
  %742 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %742, ptr %19, align 4, !tbaa !5
  %invariant.gep1442 = getelementptr i8, ptr %41, i64 4
  store i32 1, ptr %31, align 4, !tbaa !5
  %.not11291466 = icmp slt i32 %742, 1
  br i1 %.not11291466, label %.loopexit1268, label %.lr.ph1471

.lr.ph1471:                                       ; preds = %741
  %.not1130 = icmp eq i32 %56, 0
  %743 = add i32 %36, 1
  %744 = getelementptr inbounds i8, ptr %28, i64 8
  %745 = getelementptr inbounds i8, ptr %28, i64 4
  %746 = getelementptr inbounds i8, ptr %28, i64 12
  %.not1135 = icmp eq i32 %55, 0
  %747 = sext i32 %36 to i64
  %748 = sext i32 %160 to i64
  %749 = shl nsw i64 %40, 2
  %scevgep1565 = getelementptr i8, ptr %6, i64 %749
  %invariant.gep1677 = getelementptr float, ptr %45, i64 %748
  %invariant.gep1679 = getelementptr float, ptr %45, i64 %748
  %invariant.gep1681 = getelementptr float, ptr %12, i64 %748
  %invariant.gep1683 = getelementptr float, ptr %45, i64 %748
  %750 = add i64 %16, 4
  %scevgep1836 = getelementptr i8, ptr %12, i64 -4
  %751 = shl nsw i64 %748, 2
  %752 = getelementptr i8, ptr %12, i64 %751
  %scevgep1839 = getelementptr i8, ptr %752, i64 -4
  %scevgep1841 = getelementptr i8, ptr %12, i64 %751
  %scevgep1844 = getelementptr i8, ptr %4, i64 -8
  %scevgep1846 = getelementptr i8, ptr %4, i64 -4
  %scevgep1849 = getelementptr i8, ptr %4, i64 -8
  %scevgep1851 = getelementptr i8, ptr %4, i64 -4
  %ident.check1834.not = icmp eq i32 %36, 1
  %ident.check.not = icmp eq i32 %36, 1
  br label %753

753:                                              ; preds = %.lr.ph1471, %.thread1231
  %.21469 = phi i32 [ 1, %.lr.ph1471 ], [ %.312231234, %.thread1231 ]
  %.310561468 = phi i32 [ 0, %.lr.ph1471 ], [ %1584, %.thread1231 ]
  %storemerge11281467 = phi i32 [ 1, %.lr.ph1471 ], [ %1586, %.thread1231 ]
  %754 = icmp eq i32 %.310561468, -1
  br i1 %754, label %.thread1231, label %755

755:                                              ; preds = %753
  %756 = load i32, ptr %3, align 4, !tbaa !5
  %757 = icmp eq i32 %storemerge11281467, %756
  br i1 %757, label %767, label %758

758:                                              ; preds = %755
  %759 = add nsw i32 %storemerge11281467, 1
  %760 = mul nsw i32 %storemerge11281467, %36
  %761 = add nsw i32 %759, %760
  %762 = sext i32 %761 to i64
  %763 = getelementptr inbounds float, ptr %38, i64 %762
  %764 = load float, ptr %763, align 4, !tbaa !9
  %765 = fcmp oeq float %764, 0.000000e+00
  br i1 %765, label %767, label %766

766:                                              ; preds = %758
  br label %767

767:                                              ; preds = %758, %755, %766
  %.4 = phi i32 [ %.310561468, %755 ], [ %.310561468, %758 ], [ 1, %766 ]
  br i1 %.not1130, label %772, label %768

768:                                              ; preds = %767
  %769 = sext i32 %storemerge11281467 to i64
  %770 = getelementptr inbounds i32, ptr %35, i64 %769
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %.not1131 = icmp eq i32 %771, 0
  br i1 %.not1131, label %.thread1225, label %772

772:                                              ; preds = %768, %767
  %773 = mul i32 %storemerge11281467, %743
  %774 = sext i32 %773 to i64
  %775 = getelementptr inbounds float, ptr %38, i64 %774
  %776 = load float, ptr %775, align 4, !tbaa !9
  store float %776, ptr %33, align 4, !tbaa !9
  store float 0.000000e+00, ptr %32, align 4, !tbaa !9
  %.not1132 = icmp eq i32 %.4, 0
  br i1 %.not1132, label %803, label %777

777:                                              ; preds = %772
  %778 = add nsw i32 %storemerge11281467, 1
  %779 = mul nsw i32 %778, %36
  %780 = add nsw i32 %779, %storemerge11281467
  %781 = sext i32 %780 to i64
  %782 = getelementptr inbounds float, ptr %38, i64 %781
  %783 = load float, ptr %782, align 4, !tbaa !9
  %784 = fcmp oge float %783, 0.000000e+00
  %785 = fneg float %783
  %786 = select i1 %784, float %783, float %785
  %787 = fpext float %786 to double
  %788 = call double @sqrt(double noundef %787) #6
  %789 = load i32, ptr %31, align 4, !tbaa !5
  %790 = add nsw i32 %789, 1
  %791 = mul nsw i32 %789, %36
  %792 = add nsw i32 %790, %791
  %793 = sext i32 %792 to i64
  %794 = getelementptr inbounds float, ptr %38, i64 %793
  %795 = load float, ptr %794, align 4, !tbaa !9
  %796 = fcmp oge float %795, 0.000000e+00
  %797 = fneg float %795
  %798 = select i1 %796, float %795, float %797
  %799 = fpext float %798 to double
  %800 = call double @sqrt(double noundef %799) #6
  %801 = fmul double %788, %800
  %802 = fptrunc double %801 to float
  store float %802, ptr %32, align 4, !tbaa !9
  %.pre1578 = load float, ptr %33, align 4
  br label %803

803:                                              ; preds = %777, %772
  %804 = phi float [ %802, %777 ], [ 0.000000e+00, %772 ]
  %805 = phi float [ %.pre1578, %777 ], [ %776, %772 ]
  %806 = fcmp oge float %805, 0.000000e+00
  %807 = fneg float %805
  %808 = select i1 %806, float %805, float %807
  %809 = fcmp oge float %804, 0.000000e+00
  %810 = fneg float %804
  %811 = select i1 %809, float %804, float %810
  %812 = fadd float %808, %811
  %813 = fmul float %125, %812
  store float %813, ptr %22, align 4, !tbaa !9
  %814 = fcmp oge float %813, %130
  %815 = select i1 %814, float %813, float %130
  store float %815, ptr %26, align 4, !tbaa !9
  %816 = load i32, ptr %31, align 4, !tbaa !5
  br i1 %.not1132, label %817, label %1089

817:                                              ; preds = %803
  %818 = load i32, ptr %3, align 4, !tbaa !5
  %819 = add nsw i32 %818, %816
  %820 = sext i32 %819 to i64
  %821 = getelementptr inbounds float, ptr %45, i64 %820
  store float 1.000000e+00, ptr %821, align 4, !tbaa !9
  %.not1139.not1423 = icmp slt i32 %816, %818
  br i1 %.not1139.not1423, label %.lr.ph1426.preheader, label %._crit_edge1427.thread

._crit_edge1427.thread:                           ; preds = %817
  store i32 %818, ptr %20, align 4, !tbaa !5
  br label %._crit_edge1437

.lr.ph1426.preheader:                             ; preds = %817
  %822 = sext i32 %816 to i64
  %823 = sext i32 %818 to i64
  %invariant.gep1697 = getelementptr float, ptr %38, i64 %822
  %invariant.gep1699 = getelementptr float, ptr %12, i64 %823
  %824 = sub nsw i64 %823, %822
  %min.iters.check1805 = icmp ugt i64 %824, 7
  %or.cond1908 = select i1 %min.iters.check1805, i1 %ident.check.not, i1 false
  br i1 %or.cond1908, label %vector.memcheck1801, label %.lr.ph1426.preheader1910

vector.memcheck1801:                              ; preds = %.lr.ph1426.preheader
  %825 = shl nsw i64 %823, 2
  %826 = shl nsw i64 %822, 2
  %827 = add i64 %750, %825
  %828 = add i64 %826, %15
  %829 = sub i64 %827, %828
  %diff.check1802 = icmp ult i64 %829, 32
  br i1 %diff.check1802, label %.lr.ph1426.preheader1910, label %vector.ph1806

vector.ph1806:                                    ; preds = %vector.memcheck1801
  %n.vec1808 = and i64 %824, -8
  %ind.end1809 = add nsw i64 %n.vec1808, %822
  br label %vector.body1811

vector.body1811:                                  ; preds = %vector.body1811, %vector.ph1806
  %index1812 = phi i64 [ 0, %vector.ph1806 ], [ %index.next1816, %vector.body1811 ]
  %offset.idx1813 = add i64 %index1812, %822
  %830 = getelementptr float, ptr %invariant.gep1697, i64 %offset.idx1813
  %831 = getelementptr i8, ptr %830, i64 4
  %832 = getelementptr i8, ptr %830, i64 20
  %wide.load1814 = load <4 x float>, ptr %831, align 4, !tbaa !9
  %wide.load1815 = load <4 x float>, ptr %832, align 4, !tbaa !9
  %833 = fneg <4 x float> %wide.load1814
  %834 = fneg <4 x float> %wide.load1815
  %835 = getelementptr float, ptr %invariant.gep1699, i64 %offset.idx1813
  %836 = getelementptr i8, ptr %835, i64 16
  store <4 x float> %833, ptr %835, align 4, !tbaa !9
  store <4 x float> %834, ptr %836, align 4, !tbaa !9
  %index.next1816 = add nuw i64 %index1812, 8
  %837 = icmp eq i64 %index.next1816, %n.vec1808
  br i1 %837, label %middle.block1803, label %vector.body1811, !llvm.loop !46

middle.block1803:                                 ; preds = %vector.body1811
  %cmp.n1817 = icmp eq i64 %824, %n.vec1808
  br i1 %cmp.n1817, label %._crit_edge1427, label %.lr.ph1426.preheader1910

.lr.ph1426.preheader1910:                         ; preds = %middle.block1803, %vector.memcheck1801, %.lr.ph1426.preheader
  %indvars.iv1557.ph = phi i64 [ %822, %vector.memcheck1801 ], [ %822, %.lr.ph1426.preheader ], [ %ind.end1809, %middle.block1803 ]
  %838 = sub nsw i64 %823, %indvars.iv1557.ph
  %xtraiter1934 = and i64 %838, 3
  %lcmp.mod1935.not = icmp eq i64 %xtraiter1934, 0
  br i1 %lcmp.mod1935.not, label %.lr.ph1426.prol.loopexit, label %.lr.ph1426.prol

.lr.ph1426.prol:                                  ; preds = %.lr.ph1426.preheader1910, %.lr.ph1426.prol
  %indvars.iv1557.prol = phi i64 [ %indvars.iv.next1558.prol, %.lr.ph1426.prol ], [ %indvars.iv1557.ph, %.lr.ph1426.preheader1910 ]
  %prol.iter1936 = phi i64 [ %prol.iter1936.next, %.lr.ph1426.prol ], [ 0, %.lr.ph1426.preheader1910 ]
  %indvars.iv.next1558.prol = add nsw i64 %indvars.iv1557.prol, 1
  %839 = mul nsw i64 %indvars.iv.next1558.prol, %747
  %gep1698.prol = getelementptr float, ptr %invariant.gep1697, i64 %839
  %840 = load float, ptr %gep1698.prol, align 4, !tbaa !9
  %841 = fneg float %840
  %gep1700.prol = getelementptr float, ptr %invariant.gep1699, i64 %indvars.iv1557.prol
  store float %841, ptr %gep1700.prol, align 4, !tbaa !9
  %prol.iter1936.next = add i64 %prol.iter1936, 1
  %prol.iter1936.cmp.not = icmp eq i64 %prol.iter1936.next, %xtraiter1934
  br i1 %prol.iter1936.cmp.not, label %.lr.ph1426.prol.loopexit, label %.lr.ph1426.prol, !llvm.loop !47

.lr.ph1426.prol.loopexit:                         ; preds = %.lr.ph1426.prol, %.lr.ph1426.preheader1910
  %indvars.iv1557.unr = phi i64 [ %indvars.iv1557.ph, %.lr.ph1426.preheader1910 ], [ %indvars.iv.next1558.prol, %.lr.ph1426.prol ]
  %842 = sub nsw i64 %indvars.iv1557.ph, %823
  %843 = icmp ugt i64 %842, -4
  br i1 %843, label %._crit_edge1427, label %.lr.ph1426

.lr.ph1426:                                       ; preds = %.lr.ph1426.prol.loopexit, %.lr.ph1426
  %indvars.iv1557 = phi i64 [ %indvars.iv.next1558.3, %.lr.ph1426 ], [ %indvars.iv1557.unr, %.lr.ph1426.prol.loopexit ]
  %indvars.iv.next1558 = add nsw i64 %indvars.iv1557, 1
  %844 = mul nsw i64 %indvars.iv.next1558, %747
  %gep1698 = getelementptr float, ptr %invariant.gep1697, i64 %844
  %845 = load float, ptr %gep1698, align 4, !tbaa !9
  %846 = fneg float %845
  %gep1700 = getelementptr float, ptr %invariant.gep1699, i64 %indvars.iv1557
  store float %846, ptr %gep1700, align 4, !tbaa !9
  %indvars.iv.next1558.1 = add nsw i64 %indvars.iv1557, 2
  %847 = mul nsw i64 %indvars.iv.next1558.1, %747
  %gep1698.1 = getelementptr float, ptr %invariant.gep1697, i64 %847
  %848 = load float, ptr %gep1698.1, align 4, !tbaa !9
  %849 = fneg float %848
  %gep1700.1 = getelementptr float, ptr %invariant.gep1699, i64 %indvars.iv.next1558
  store float %849, ptr %gep1700.1, align 4, !tbaa !9
  %indvars.iv.next1558.2 = add nsw i64 %indvars.iv1557, 3
  %850 = mul nsw i64 %indvars.iv.next1558.2, %747
  %gep1698.2 = getelementptr float, ptr %invariant.gep1697, i64 %850
  %851 = load float, ptr %gep1698.2, align 4, !tbaa !9
  %852 = fneg float %851
  %gep1700.2 = getelementptr float, ptr %invariant.gep1699, i64 %indvars.iv.next1558.1
  store float %852, ptr %gep1700.2, align 4, !tbaa !9
  %indvars.iv.next1558.3 = add nsw i64 %indvars.iv1557, 4
  %853 = mul nsw i64 %indvars.iv.next1558.3, %747
  %gep1698.3 = getelementptr float, ptr %invariant.gep1697, i64 %853
  %854 = load float, ptr %gep1698.3, align 4, !tbaa !9
  %855 = fneg float %854
  %gep1700.3 = getelementptr float, ptr %invariant.gep1699, i64 %indvars.iv.next1558.2
  store float %855, ptr %gep1700.3, align 4, !tbaa !9
  %exitcond1561.not.3 = icmp eq i64 %indvars.iv.next1558.3, %823
  br i1 %exitcond1561.not.3, label %._crit_edge1427, label %.lr.ph1426, !llvm.loop !48

._crit_edge1427:                                  ; preds = %.lr.ph1426.prol.loopexit, %.lr.ph1426, %middle.block1803
  store i32 %818, ptr %20, align 4, !tbaa !5
  br i1 %.not1139.not1423, label %.lr.ph1436.preheader, label %._crit_edge1437

.lr.ph1436.preheader:                             ; preds = %._crit_edge1427
  %856 = add nsw i32 %816, 1
  %857 = sext i32 %816 to i64
  br label %.lr.ph1436

.lr.ph1436:                                       ; preds = %.lr.ph1436.preheader, %1012
  %858 = phi i32 [ %818, %.lr.ph1436.preheader ], [ %1013, %1012 ]
  %indvars.iv1562 = phi i64 [ %857, %.lr.ph1436.preheader ], [ %indvars.iv.next1563, %1012 ]
  %.010611433 = phi float [ %132, %.lr.ph1436.preheader ], [ %.11062, %1012 ]
  %.610841431 = phi i32 [ %856, %.lr.ph1436.preheader ], [ %.81086, %1012 ]
  %.010901430 = phi float [ 1.000000e+00, %.lr.ph1436.preheader ], [ %.31093, %1012 ]
  %indvars1564 = trunc i64 %indvars.iv1562 to i32
  %indvars.iv.next1563 = add nsw i64 %indvars.iv1562, 1
  %indvars = trunc i64 %indvars.iv.next1563 to i32
  %859 = sext i32 %.610841431 to i64
  %860 = icmp slt i64 %indvars.iv.next1563, %859
  br i1 %860, label %1012, label %861

861:                                              ; preds = %.lr.ph1436
  %862 = add nsw i64 %indvars.iv1562, 2
  %863 = add nsw i32 %indvars1564, 2
  %864 = sext i32 %858 to i64
  %865 = icmp slt i64 %indvars.iv.next1563, %864
  br i1 %865, label %866, label %..thread1214_crit_edge

..thread1214_crit_edge:                           ; preds = %861
  %.pre1587.pre = load i32, ptr %31, align 4, !tbaa !5
  br label %.thread1214

866:                                              ; preds = %861
  %867 = mul nsw i64 %indvars.iv.next1563, %747
  %868 = getelementptr float, ptr %38, i64 %867
  %869 = getelementptr float, ptr %868, i64 %862
  %870 = load float, ptr %869, align 4, !tbaa !9
  %871 = fcmp une float %870, 0.000000e+00
  %.pre1587.pre1593 = load i32, ptr %31, align 4, !tbaa !5
  br i1 %871, label %872, label %.thread1214

872:                                              ; preds = %866
  %873 = getelementptr float, ptr %12, i64 %indvars.iv1562
  %874 = load float, ptr %873, align 4, !tbaa !9
  store float %874, ptr %22, align 4, !tbaa !9
  %875 = getelementptr inbounds float, ptr %45, i64 %862
  %876 = load float, ptr %875, align 4, !tbaa !9
  %877 = fcmp oge float %874, %876
  %878 = select i1 %877, float %874, float %876
  %879 = fcmp ogt float %878, %.010611433
  br i1 %879, label %935, label %942

.thread1214:                                      ; preds = %..thread1214_crit_edge, %866
  %.pre1587 = phi i32 [ %.pre1587.pre, %..thread1214_crit_edge ], [ %.pre1587.pre1593, %866 ]
  %880 = getelementptr float, ptr %12, i64 %indvars.iv1562
  %881 = load float, ptr %880, align 4, !tbaa !9
  %882 = fcmp ogt float %881, %.010611433
  br i1 %882, label %883, label %890

883:                                              ; preds = %.thread1214
  %884 = fdiv float 1.000000e+00, %.010901430
  store float %884, ptr %34, align 4, !tbaa !9
  %885 = add i32 %858, 1
  %886 = sub i32 %885, %.pre1587
  store i32 %886, ptr %21, align 4, !tbaa !5
  %887 = add nsw i32 %.pre1587, %858
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds float, ptr %45, i64 %888
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %34, ptr noundef nonnull %889, ptr noundef nonnull @c__1) #6
  %.pre1586 = load i32, ptr %31, align 4, !tbaa !5
  %.pre1588 = load i32, ptr %3, align 4, !tbaa !5
  br label %890

890:                                              ; preds = %883, %.thread1214
  %891 = phi i32 [ %.pre1588, %883 ], [ %858, %.thread1214 ]
  %892 = phi i32 [ %.pre1586, %883 ], [ %.pre1587, %.thread1214 ]
  %.11091 = phi float [ 1.000000e+00, %883 ], [ %.010901430, %.thread1214 ]
  %893 = sub i32 %indvars1564, %892
  store i32 %893, ptr %21, align 4, !tbaa !5
  %894 = add nsw i32 %892, 1
  %895 = mul nsw i64 %indvars.iv.next1563, %747
  %896 = mul nsw i32 %36, %indvars
  %897 = sext i32 %894 to i64
  %898 = getelementptr float, ptr %38, i64 %895
  %899 = getelementptr float, ptr %898, i64 %897
  %900 = add nsw i32 %891, %894
  %901 = sext i32 %900 to i64
  %902 = getelementptr inbounds float, ptr %45, i64 %901
  %903 = call float @sdot_(ptr noundef nonnull %21, ptr noundef %899, ptr noundef nonnull @c__1, ptr noundef nonnull %902, ptr noundef nonnull @c__1) #6
  %904 = load i32, ptr %3, align 4, !tbaa !5
  %905 = sext i32 %904 to i64
  %906 = getelementptr float, ptr %12, i64 %indvars.iv1562
  %907 = getelementptr float, ptr %906, i64 %905
  %908 = load float, ptr %907, align 4, !tbaa !9
  %909 = fsub float %908, %903
  store float %909, ptr %907, align 4, !tbaa !9
  %910 = sext i32 %896 to i64
  %911 = getelementptr float, ptr %38, i64 %indvars.iv.next1563
  %912 = getelementptr float, ptr %911, i64 %910
  call void @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef nonnull @c_b22, ptr noundef %912, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef nonnull %907, ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef nonnull @c_b25, ptr noundef nonnull %28, ptr noundef nonnull @c__2, ptr noundef nonnull %27, ptr noundef nonnull %30, ptr noundef nonnull %23) #6
  %913 = load float, ptr %27, align 4, !tbaa !9
  %914 = fcmp une float %913, 1.000000e+00
  br i1 %914, label %915, label %923

915:                                              ; preds = %890
  %916 = load i32, ptr %3, align 4, !tbaa !5
  %917 = load i32, ptr %31, align 4, !tbaa !5
  %918 = add i32 %916, 1
  %919 = sub i32 %918, %917
  store i32 %919, ptr %21, align 4, !tbaa !5
  %920 = add nsw i32 %917, %916
  %921 = sext i32 %920 to i64
  %922 = getelementptr inbounds float, ptr %45, i64 %921
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef nonnull %922, ptr noundef nonnull @c__1) #6
  br label %923

923:                                              ; preds = %915, %890
  %924 = load float, ptr %28, align 16, !tbaa !9
  %925 = load i32, ptr %3, align 4, !tbaa !5
  %926 = sext i32 %925 to i64
  %927 = getelementptr float, ptr %12, i64 %indvars.iv1562
  %928 = getelementptr float, ptr %927, i64 %926
  store float %924, ptr %928, align 4, !tbaa !9
  store float %924, ptr %22, align 4, !tbaa !9
  %929 = fcmp oge float %924, 0.000000e+00
  %930 = fneg float %924
  %931 = select i1 %929, float %924, float %930
  %932 = fcmp oge float %931, %.11091
  %933 = select i1 %932, float %931, float %.11091
  %934 = fdiv float %132, %933
  br label %1012

935:                                              ; preds = %872
  %936 = fdiv float 1.000000e+00, %.010901430
  store float %936, ptr %34, align 4, !tbaa !9
  %937 = add i32 %858, 1
  %938 = sub i32 %937, %.pre1587.pre1593
  store i32 %938, ptr %21, align 4, !tbaa !5
  %939 = add nsw i32 %.pre1587.pre1593, %858
  %940 = sext i32 %939 to i64
  %941 = getelementptr inbounds float, ptr %45, i64 %940
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %34, ptr noundef nonnull %941, ptr noundef nonnull @c__1) #6
  %.pre1589 = load i32, ptr %31, align 4, !tbaa !5
  %.pre1591 = load i32, ptr %3, align 4, !tbaa !5
  br label %942

942:                                              ; preds = %935, %872
  %943 = phi i32 [ %.pre1591, %935 ], [ %858, %872 ]
  %944 = phi i32 [ %.pre1589, %935 ], [ %.pre1587.pre1593, %872 ]
  %.21092 = phi float [ 1.000000e+00, %935 ], [ %.010901430, %872 ]
  %945 = sub i32 %indvars1564, %944
  store i32 %945, ptr %21, align 4, !tbaa !5
  %946 = add nsw i32 %944, 1
  %947 = mul nsw i32 %36, %indvars
  %948 = sext i32 %946 to i64
  %949 = getelementptr float, ptr %38, i64 %867
  %950 = getelementptr float, ptr %949, i64 %948
  %951 = add nsw i32 %943, %946
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds float, ptr %45, i64 %952
  %954 = call float @sdot_(ptr noundef nonnull %21, ptr noundef %950, ptr noundef nonnull @c__1, ptr noundef nonnull %953, ptr noundef nonnull @c__1) #6
  %955 = load i32, ptr %3, align 4, !tbaa !5
  %956 = sext i32 %955 to i64
  %957 = getelementptr float, ptr %12, i64 %indvars.iv1562
  %958 = getelementptr float, ptr %957, i64 %956
  %959 = load float, ptr %958, align 4, !tbaa !9
  %960 = fsub float %959, %954
  store float %960, ptr %958, align 4, !tbaa !9
  %961 = load i32, ptr %31, align 4, !tbaa !5
  %962 = sub i32 %indvars1564, %961
  store i32 %962, ptr %21, align 4, !tbaa !5
  %963 = add nsw i32 %961, 1
  %964 = mul nsw i64 %862, %747
  %965 = sext i32 %963 to i64
  %966 = getelementptr float, ptr %38, i64 %964
  %967 = getelementptr float, ptr %966, i64 %965
  %968 = add nsw i32 %963, %955
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds float, ptr %45, i64 %969
  %971 = call float @sdot_(ptr noundef nonnull %21, ptr noundef %967, ptr noundef nonnull @c__1, ptr noundef nonnull %970, ptr noundef nonnull @c__1) #6
  %972 = load i32, ptr %3, align 4, !tbaa !5
  %973 = sext i32 %972 to i64
  %974 = getelementptr float, ptr %45, i64 %862
  %975 = getelementptr float, ptr %974, i64 %973
  %976 = load float, ptr %975, align 4, !tbaa !9
  %977 = fsub float %976, %971
  store float %977, ptr %975, align 4, !tbaa !9
  %978 = sext i32 %947 to i64
  %979 = getelementptr float, ptr %38, i64 %indvars.iv.next1563
  %980 = getelementptr float, ptr %979, i64 %978
  %981 = getelementptr float, ptr %12, i64 %indvars.iv1562
  %982 = getelementptr float, ptr %981, i64 %973
  call void @slaln2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef nonnull @c_b22, ptr noundef %980, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef nonnull %982, ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef nonnull @c_b25, ptr noundef nonnull %28, ptr noundef nonnull @c__2, ptr noundef nonnull %27, ptr noundef nonnull %30, ptr noundef nonnull %23) #6
  %983 = load float, ptr %27, align 4, !tbaa !9
  %984 = fcmp une float %983, 1.000000e+00
  br i1 %984, label %985, label %993

985:                                              ; preds = %942
  %986 = load i32, ptr %3, align 4, !tbaa !5
  %987 = load i32, ptr %31, align 4, !tbaa !5
  %988 = add i32 %986, 1
  %989 = sub i32 %988, %987
  store i32 %989, ptr %21, align 4, !tbaa !5
  %990 = add nsw i32 %987, %986
  %991 = sext i32 %990 to i64
  %992 = getelementptr inbounds float, ptr %45, i64 %991
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef nonnull %992, ptr noundef nonnull @c__1) #6
  br label %993

993:                                              ; preds = %985, %942
  %994 = load i32, ptr %3, align 4, !tbaa !5
  %995 = sext i32 %994 to i64
  %996 = getelementptr float, ptr %12, i64 %indvars.iv1562
  %997 = getelementptr float, ptr %996, i64 %995
  %998 = load <2 x float>, ptr %28, align 16, !tbaa !9
  store <2 x float> %998, ptr %997, align 4, !tbaa !9
  %999 = extractelement <2 x float> %998, i64 0
  store float %999, ptr %22, align 4, !tbaa !9
  %1000 = fcmp oge <2 x float> %998, zeroinitializer
  %1001 = fneg <2 x float> %998
  %1002 = select <2 x i1> %1000, <2 x float> %998, <2 x float> %1001
  %1003 = extractelement <2 x float> %1002, i64 0
  %1004 = extractelement <2 x float> %1002, i64 1
  %1005 = fcmp oge float %1003, %1004
  %1006 = select i1 %1005, float %1003, float %1004
  %1007 = fcmp oge float %1006, %.21092
  %1008 = select i1 %1007, float %1006, float %.21092
  %1009 = fdiv float %132, %1008
  %1010 = trunc i64 %indvars.iv1562 to i32
  %1011 = add i32 %1010, 3
  br label %1012

1012:                                             ; preds = %.lr.ph1436, %993, %923
  %1013 = phi i32 [ %858, %.lr.ph1436 ], [ %925, %923 ], [ %994, %993 ]
  %.31093 = phi float [ %.010901430, %.lr.ph1436 ], [ %933, %923 ], [ %1008, %993 ]
  %.81086 = phi i32 [ %.610841431, %.lr.ph1436 ], [ %863, %923 ], [ %1011, %993 ]
  %.11062 = phi float [ %.010611433, %.lr.ph1436 ], [ %934, %923 ], [ %1009, %993 ]
  %1014 = load i32, ptr %20, align 4, !tbaa !5
  %1015 = sext i32 %1014 to i64
  %.not1140.not = icmp slt i64 %indvars.iv.next1563, %1015
  br i1 %.not1140.not, label %.lr.ph1436, label %._crit_edge1437, !llvm.loop !49

._crit_edge1437:                                  ; preds = %1012, %._crit_edge1427.thread, %._crit_edge1427
  %1016 = phi i32 [ %818, %._crit_edge1427 ], [ %818, %._crit_edge1427.thread ], [ %1013, %1012 ]
  %1017 = load i32, ptr %31, align 4, !tbaa !5
  br i1 %.not1135, label %1018, label %1058

1018:                                             ; preds = %._crit_edge1437
  %1019 = add i32 %1016, 1
  %1020 = sub i32 %1019, %1017
  store i32 %1020, ptr %20, align 4, !tbaa !5
  %1021 = add nsw i32 %1017, %1016
  %1022 = sext i32 %1021 to i64
  %1023 = getelementptr inbounds float, ptr %45, i64 %1022
  %1024 = mul nsw i32 %.21469, %39
  %1025 = add nsw i32 %1017, %1024
  %1026 = sext i32 %1025 to i64
  %1027 = getelementptr inbounds float, ptr %41, i64 %1026
  call void @scopy_(ptr noundef nonnull %20, ptr noundef nonnull %1023, ptr noundef nonnull @c__1, ptr noundef %1027, ptr noundef nonnull @c__1) #6
  %1028 = load i32, ptr %3, align 4, !tbaa !5
  %1029 = load i32, ptr %31, align 4, !tbaa !5
  %1030 = add i32 %1028, 1
  %1031 = sub i32 %1030, %1029
  store i32 %1031, ptr %20, align 4, !tbaa !5
  %1032 = add nsw i32 %1029, %1024
  %1033 = sext i32 %1032 to i64
  %1034 = getelementptr inbounds float, ptr %41, i64 %1033
  %1035 = call i32 @isamax_(ptr noundef nonnull %20, ptr noundef %1034, ptr noundef nonnull @c__1) #6
  %1036 = load i32, ptr %31, align 4, !tbaa !5
  %1037 = add i32 %1036, %1024
  %1038 = add i32 %1037, -1
  %1039 = add i32 %1038, %1035
  %1040 = sext i32 %1039 to i64
  %1041 = getelementptr inbounds float, ptr %41, i64 %1040
  %1042 = load float, ptr %1041, align 4, !tbaa !9
  store float %1042, ptr %22, align 4, !tbaa !9
  %1043 = fcmp oge float %1042, 0.000000e+00
  %1044 = fneg float %1042
  %1045 = select i1 %1043, float %1042, float %1044
  %1046 = fdiv float 1.000000e+00, %1045
  store float %1046, ptr %29, align 4, !tbaa !9
  %1047 = load i32, ptr %3, align 4, !tbaa !5
  %reass.sub = sub i32 %1047, %1036
  %1048 = add i32 %reass.sub, 1
  store i32 %1048, ptr %20, align 4, !tbaa !5
  %1049 = sext i32 %1037 to i64
  %1050 = getelementptr inbounds float, ptr %41, i64 %1049
  call void @sscal_(ptr noundef nonnull %20, ptr noundef nonnull %29, ptr noundef %1050, ptr noundef nonnull @c__1) #6
  %1051 = load i32, ptr %31, align 4, !tbaa !5
  %1052 = add i32 %1051, -1
  store i32 %1052, ptr %20, align 4, !tbaa !5
  %.not1142.not1438 = icmp sgt i32 %1051, 1
  br i1 %.not1142.not1438, label %.lr.ph1441.preheader, label %.loopexit

.lr.ph1441.preheader:                             ; preds = %1018
  %1053 = add i32 %1024, 1
  %1054 = sext i32 %1053 to i64
  %1055 = shl nsw i64 %1054, 2
  %scevgep1566 = getelementptr i8, ptr %scevgep1565, i64 %1055
  %1056 = zext nneg i32 %1052 to i64
  %1057 = shl nuw nsw i64 %1056, 2
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep1566, i8 0, i64 %1057, i1 false), !tbaa !9
  br label %.loopexit

1058:                                             ; preds = %._crit_edge1437
  %1059 = icmp slt i32 %1017, %1016
  br i1 %1059, label %1060, label %1073

1060:                                             ; preds = %1058
  %1061 = sub nsw i32 %1016, %1017
  store i32 %1061, ptr %20, align 4, !tbaa !5
  %1062 = add nsw i32 %1017, 1
  %1063 = mul nsw i32 %1062, %39
  %1064 = sext i32 %1063 to i64
  %gep1459 = getelementptr float, ptr %invariant.gep1442, i64 %1064
  %1065 = add nsw i32 %1062, %1016
  %1066 = sext i32 %1065 to i64
  %1067 = getelementptr inbounds float, ptr %45, i64 %1066
  %1068 = add nsw i32 %1016, %1017
  %1069 = sext i32 %1068 to i64
  %1070 = getelementptr inbounds float, ptr %45, i64 %1069
  %1071 = mul nsw i32 %1017, %39
  %1072 = sext i32 %1071 to i64
  %gep1461 = getelementptr float, ptr %invariant.gep1442, i64 %1072
  call void @sgemv_(ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %20, ptr noundef nonnull @c_b22, ptr noundef %gep1459, ptr noundef nonnull %7, ptr noundef nonnull %1067, ptr noundef nonnull @c__1, ptr noundef nonnull %1070, ptr noundef %gep1461, ptr noundef nonnull @c__1) #6
  %.pre1592 = load i32, ptr %31, align 4, !tbaa !5
  br label %1073

1073:                                             ; preds = %1060, %1058
  %1074 = phi i32 [ %.pre1592, %1060 ], [ %1017, %1058 ]
  %1075 = mul nsw i32 %1074, %39
  %1076 = sext i32 %1075 to i64
  %gep1463 = getelementptr float, ptr %invariant.gep1442, i64 %1076
  %1077 = call i32 @isamax_(ptr noundef nonnull %3, ptr noundef %gep1463, ptr noundef nonnull @c__1) #6
  %1078 = load i32, ptr %31, align 4, !tbaa !5
  %1079 = mul nsw i32 %1078, %39
  %1080 = add nsw i32 %1079, %1077
  %1081 = sext i32 %1080 to i64
  %1082 = getelementptr inbounds float, ptr %41, i64 %1081
  %1083 = load float, ptr %1082, align 4, !tbaa !9
  store float %1083, ptr %22, align 4, !tbaa !9
  %1084 = fcmp oge float %1083, 0.000000e+00
  %1085 = fneg float %1083
  %1086 = select i1 %1084, float %1083, float %1085
  %1087 = fdiv float 1.000000e+00, %1086
  store float %1087, ptr %29, align 4, !tbaa !9
  %1088 = sext i32 %1079 to i64
  %gep1465 = getelementptr float, ptr %invariant.gep1442, i64 %1088
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %29, ptr noundef %gep1465, ptr noundef nonnull @c__1) #6
  br label %.loopexit

1089:                                             ; preds = %803
  %1090 = add nsw i32 %816, 1
  %1091 = mul nsw i32 %1090, %36
  %1092 = add nsw i32 %1091, %816
  %1093 = sext i32 %1092 to i64
  %1094 = getelementptr inbounds float, ptr %38, i64 %1093
  %1095 = load float, ptr %1094, align 4, !tbaa !9
  store float %1095, ptr %22, align 4, !tbaa !9
  %1096 = fcmp oge float %1095, 0.000000e+00
  %1097 = fneg float %1095
  %1098 = select i1 %1096, float %1095, float %1097
  %1099 = mul nsw i32 %816, %36
  %1100 = add nsw i32 %1090, %1099
  %1101 = sext i32 %1100 to i64
  %1102 = getelementptr inbounds float, ptr %38, i64 %1101
  %1103 = load float, ptr %1102, align 4, !tbaa !9
  %1104 = fcmp oge float %1103, 0.000000e+00
  %1105 = fneg float %1103
  %1106 = select i1 %1104, float %1103, float %1105
  %1107 = fcmp ult float %1098, %1106
  br i1 %1107, label %1114, label %1108

1108:                                             ; preds = %1089
  %1109 = fdiv float %804, %1095
  %1110 = load i32, ptr %3, align 4, !tbaa !5
  %1111 = add nsw i32 %1110, %816
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds float, ptr %45, i64 %1112
  store float %1109, ptr %1113, align 4, !tbaa !9
  br label %1121

1114:                                             ; preds = %1089
  %1115 = load i32, ptr %3, align 4, !tbaa !5
  %1116 = add nsw i32 %1115, %816
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds float, ptr %45, i64 %1117
  store float 1.000000e+00, ptr %1118, align 4, !tbaa !9
  %1119 = load float, ptr %1102, align 4, !tbaa !9
  %1120 = fdiv float %810, %1119
  br label %1121

1121:                                             ; preds = %1114, %1108
  %.sink1706 = phi float [ %1120, %1114 ], [ 1.000000e+00, %1108 ]
  %1122 = phi i32 [ %1115, %1114 ], [ %1110, %1108 ]
  %1123 = add nsw i32 %1090, %160
  %1124 = sext i32 %1123 to i64
  %1125 = getelementptr inbounds float, ptr %45, i64 %1124
  store float %.sink1706, ptr %1125, align 4, !tbaa !9
  %1126 = add nsw i32 %1122, %1090
  %1127 = sext i32 %1126 to i64
  %1128 = getelementptr inbounds float, ptr %45, i64 %1127
  store float 0.000000e+00, ptr %1128, align 4, !tbaa !9
  %1129 = add nsw i32 %816, %160
  %1130 = sext i32 %1129 to i64
  %1131 = getelementptr inbounds float, ptr %45, i64 %1130
  store float 0.000000e+00, ptr %1131, align 4, !tbaa !9
  %1132 = add nsw i32 %816, 2
  %.not11331390 = icmp sgt i32 %1132, %1122
  br i1 %.not11331390, label %._crit_edge1394.thread, label %.lr.ph1393

._crit_edge1394.thread:                           ; preds = %1121
  store i32 %1122, ptr %20, align 4, !tbaa !5
  br label %._crit_edge1402

.lr.ph1393:                                       ; preds = %1121
  %1133 = add nsw i32 %1122, %816
  %1134 = sext i32 %1133 to i64
  %1135 = getelementptr inbounds float, ptr %45, i64 %1134
  %1136 = add i32 %1090, %160
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr float, ptr %45, i64 %1137
  %1139 = sext i32 %1132 to i64
  %1140 = sext i32 %816 to i64
  %1141 = sext i32 %1090 to i64
  %1142 = sext i32 %1122 to i64
  %1143 = add i32 %1122, 1
  %invariant.gep1671 = getelementptr float, ptr %38, i64 %1140
  %invariant.gep1673 = getelementptr float, ptr %45, i64 %1142
  %invariant.gep1675 = getelementptr float, ptr %38, i64 %1141
  %1144 = add i32 %1122, -2
  %1145 = sub i32 %1144, %816
  %1146 = zext i32 %1145 to i64
  %1147 = add nuw nsw i64 %1146, 1
  %min.iters.check1890 = icmp ugt i32 %1145, 18
  %or.cond1909 = select i1 %min.iters.check1890, i1 %ident.check1834.not, i1 false
  br i1 %or.cond1909, label %vector.memcheck1835, label %scalar.ph1889.preheader

vector.memcheck1835:                              ; preds = %.lr.ph1393
  %1148 = shl nsw i64 %1139, 2
  %1149 = add nsw i64 %1142, %1139
  %1150 = shl nsw i64 %1149, 2
  %scevgep1837 = getelementptr i8, ptr %scevgep1836, i64 %1150
  %1151 = add i32 %1122, -2
  %1152 = sub i32 %1151, %816
  %1153 = zext i32 %1152 to i64
  %1154 = shl nuw nsw i64 %1153, 2
  %1155 = getelementptr i8, ptr %12, i64 %1150
  %scevgep1838 = getelementptr i8, ptr %1155, i64 %1154
  %scevgep1840 = getelementptr i8, ptr %scevgep1839, i64 %1148
  %1156 = getelementptr i8, ptr %scevgep1841, i64 %1148
  %scevgep1842 = getelementptr i8, ptr %1156, i64 %1154
  %1157 = shl nsw i64 %1134, 2
  %scevgep1843 = getelementptr i8, ptr %12, i64 %1157
  %1158 = add nsw i64 %1140, %1139
  %1159 = shl nsw i64 %1158, 2
  %scevgep1845 = getelementptr i8, ptr %scevgep1844, i64 %1159
  %1160 = getelementptr i8, ptr %scevgep1846, i64 %1159
  %scevgep1847 = getelementptr i8, ptr %1160, i64 %1154
  %1161 = shl nsw i64 %1137, 2
  %scevgep1848 = getelementptr i8, ptr %12, i64 %1161
  %1162 = add nsw i64 %1139, %1141
  %1163 = shl nsw i64 %1162, 2
  %scevgep1850 = getelementptr i8, ptr %scevgep1849, i64 %1163
  %1164 = getelementptr i8, ptr %scevgep1851, i64 %1163
  %scevgep1852 = getelementptr i8, ptr %1164, i64 %1154
  %bound01853 = icmp ult ptr %scevgep1837, %scevgep1842
  %bound11854 = icmp ult ptr %scevgep1840, %scevgep1838
  %found.conflict1855 = and i1 %bound01853, %bound11854
  %bound01856 = icmp ult ptr %scevgep1837, %scevgep1843
  %bound11857 = icmp ult ptr %1135, %scevgep1838
  %found.conflict1858 = and i1 %bound01856, %bound11857
  %conflict.rdx1859 = or i1 %found.conflict1855, %found.conflict1858
  %bound01860 = icmp ult ptr %scevgep1837, %scevgep1847
  %bound11861 = icmp ult ptr %scevgep1845, %scevgep1838
  %found.conflict1862 = and i1 %bound01860, %bound11861
  %conflict.rdx1863 = or i1 %conflict.rdx1859, %found.conflict1862
  %bound01864 = icmp ult ptr %scevgep1837, %scevgep1848
  %bound11865 = icmp ult ptr %1138, %scevgep1838
  %found.conflict1866 = and i1 %bound01864, %bound11865
  %conflict.rdx1867 = or i1 %conflict.rdx1863, %found.conflict1866
  %bound01868 = icmp ult ptr %scevgep1837, %scevgep1852
  %bound11869 = icmp ult ptr %scevgep1850, %scevgep1838
  %found.conflict1870 = and i1 %bound01868, %bound11869
  %conflict.rdx1871 = or i1 %conflict.rdx1867, %found.conflict1870
  %bound01872 = icmp ult ptr %scevgep1840, %scevgep1843
  %bound11873 = icmp ult ptr %1135, %scevgep1842
  %found.conflict1874 = and i1 %bound01872, %bound11873
  %conflict.rdx1875 = or i1 %conflict.rdx1871, %found.conflict1874
  %bound01876 = icmp ult ptr %scevgep1840, %scevgep1847
  %bound11877 = icmp ult ptr %scevgep1845, %scevgep1842
  %found.conflict1878 = and i1 %bound01876, %bound11877
  %conflict.rdx1879 = or i1 %conflict.rdx1875, %found.conflict1878
  %bound01880 = icmp ult ptr %scevgep1840, %scevgep1848
  %bound11881 = icmp ult ptr %1138, %scevgep1842
  %found.conflict1882 = and i1 %bound01880, %bound11881
  %conflict.rdx1883 = or i1 %conflict.rdx1879, %found.conflict1882
  %bound01884 = icmp ult ptr %scevgep1840, %scevgep1852
  %bound11885 = icmp ult ptr %scevgep1850, %scevgep1842
  %found.conflict1886 = and i1 %bound01884, %bound11885
  %conflict.rdx1887 = or i1 %conflict.rdx1883, %found.conflict1886
  br i1 %conflict.rdx1887, label %scalar.ph1889.preheader, label %vector.ph1891

vector.ph1891:                                    ; preds = %vector.memcheck1835
  %n.vec1893 = and i64 %1147, 8589934588
  %ind.end1894 = add nsw i64 %n.vec1893, %1139
  %1165 = load float, ptr %1135, align 4, !tbaa !9, !alias.scope !50
  %broadcast.splatinsert1899 = insertelement <4 x float> poison, float %1165, i64 0
  %broadcast.splat1900 = shufflevector <4 x float> %broadcast.splatinsert1899, <4 x float> poison, <4 x i32> zeroinitializer
  %1166 = fneg <4 x float> %broadcast.splat1900
  %1167 = load float, ptr %1138, align 4, !tbaa !9, !alias.scope !53
  %broadcast.splatinsert1902 = insertelement <4 x float> poison, float %1167, i64 0
  %broadcast.splat1903 = shufflevector <4 x float> %broadcast.splatinsert1902, <4 x float> poison, <4 x i32> zeroinitializer
  %1168 = fneg <4 x float> %broadcast.splat1903
  br label %vector.body1896

vector.body1896:                                  ; preds = %vector.body1896, %vector.ph1891
  %index1897 = phi i64 [ 0, %vector.ph1891 ], [ %index.next1905, %vector.body1896 ]
  %offset.idx1898 = add i64 %index1897, %1139
  %1169 = getelementptr float, ptr %invariant.gep1671, i64 %offset.idx1898
  %wide.load1901 = load <4 x float>, ptr %1169, align 4, !tbaa !9, !alias.scope !55
  %1170 = fmul <4 x float> %wide.load1901, %1166
  %1171 = getelementptr float, ptr %invariant.gep1673, i64 %offset.idx1898
  store <4 x float> %1170, ptr %1171, align 4, !tbaa !9, !alias.scope !57, !noalias !59
  %1172 = getelementptr float, ptr %invariant.gep1675, i64 %offset.idx1898
  %wide.load1904 = load <4 x float>, ptr %1172, align 4, !tbaa !9, !alias.scope !62
  %1173 = fmul <4 x float> %wide.load1904, %1168
  %1174 = getelementptr float, ptr %invariant.gep1677, i64 %offset.idx1898
  store <4 x float> %1173, ptr %1174, align 4, !tbaa !9, !alias.scope !63, !noalias !64
  %index.next1905 = add nuw i64 %index1897, 4
  %1175 = icmp eq i64 %index.next1905, %n.vec1893
  br i1 %1175, label %middle.block1888, label %vector.body1896, !llvm.loop !65

middle.block1888:                                 ; preds = %vector.body1896
  %cmp.n1906 = icmp eq i64 %1147, %n.vec1893
  br i1 %cmp.n1906, label %._crit_edge1394, label %scalar.ph1889.preheader

scalar.ph1889.preheader:                          ; preds = %middle.block1888, %vector.memcheck1835, %.lr.ph1393
  %indvars.iv1531.ph = phi i64 [ %1139, %vector.memcheck1835 ], [ %1139, %.lr.ph1393 ], [ %ind.end1894, %middle.block1888 ]
  br label %scalar.ph1889

scalar.ph1889:                                    ; preds = %scalar.ph1889.preheader, %scalar.ph1889
  %indvars.iv1531 = phi i64 [ %indvars.iv.next1532, %scalar.ph1889 ], [ %indvars.iv1531.ph, %scalar.ph1889.preheader ]
  %1176 = load float, ptr %1135, align 4, !tbaa !9
  %1177 = fneg float %1176
  %1178 = mul nsw i64 %indvars.iv1531, %747
  %gep1672 = getelementptr float, ptr %invariant.gep1671, i64 %1178
  %1179 = load float, ptr %gep1672, align 4, !tbaa !9
  %1180 = fmul float %1179, %1177
  %gep1674 = getelementptr float, ptr %invariant.gep1673, i64 %indvars.iv1531
  store float %1180, ptr %gep1674, align 4, !tbaa !9
  %1181 = load float, ptr %1138, align 4, !tbaa !9
  %1182 = fneg float %1181
  %gep1676 = getelementptr float, ptr %invariant.gep1675, i64 %1178
  %1183 = load float, ptr %gep1676, align 4, !tbaa !9
  %1184 = fmul float %1183, %1182
  %gep1678 = getelementptr float, ptr %invariant.gep1677, i64 %indvars.iv1531
  store float %1184, ptr %gep1678, align 4, !tbaa !9
  %indvars.iv.next1532 = add nsw i64 %indvars.iv1531, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next1532 to i32
  %exitcond1534.not = icmp eq i32 %1143, %lftr.wideiv
  br i1 %exitcond1534.not, label %._crit_edge1394, label %scalar.ph1889, !llvm.loop !66

._crit_edge1394:                                  ; preds = %scalar.ph1889, %middle.block1888
  store i32 %1122, ptr %20, align 4, !tbaa !5
  br i1 %.not11331390, label %._crit_edge1402, label %.lr.ph1401.preheader

.lr.ph1401.preheader:                             ; preds = %._crit_edge1394
  %1185 = sext i32 %1132 to i64
  br label %.lr.ph1401

.lr.ph1401:                                       ; preds = %.lr.ph1401.preheader, %.lr.ph1401._crit_edge
  %1186 = phi i32 [ %1122, %.lr.ph1401.preheader ], [ %1439, %.lr.ph1401._crit_edge ]
  %indvars.iv1535 = phi i64 [ %1185, %.lr.ph1401.preheader ], [ %.pre1603, %.lr.ph1401._crit_edge ]
  %.210631399 = phi float [ %132, %.lr.ph1401.preheader ], [ %.31064, %.lr.ph1401._crit_edge ]
  %.910871397 = phi i32 [ %1132, %.lr.ph1401.preheader ], [ %.111089, %.lr.ph1401._crit_edge ]
  %.410941396 = phi float [ 1.000000e+00, %.lr.ph1401.preheader ], [ %.71097, %.lr.ph1401._crit_edge ]
  %indvars1537 = trunc i64 %indvars.iv1535 to i32
  %1187 = sext i32 %.910871397 to i64
  %1188 = icmp slt i64 %indvars.iv1535, %1187
  %.pre1603 = add nsw i64 %indvars.iv1535, 1
  br i1 %1188, label %.lr.ph1401._crit_edge, label %1189

1189:                                             ; preds = %.lr.ph1401
  %1190 = add nsw i32 %indvars1537, 1
  %1191 = sext i32 %1186 to i64
  %1192 = icmp slt i64 %indvars.iv1535, %1191
  br i1 %1192, label %1193, label %.thread1624

1193:                                             ; preds = %1189
  %1194 = mul nsw i64 %indvars.iv1535, %747
  %1195 = getelementptr float, ptr %38, i64 %.pre1603
  %1196 = getelementptr float, ptr %1195, i64 %1194
  %1197 = load float, ptr %1196, align 4, !tbaa !9
  %1198 = fcmp une float %1197, 0.000000e+00
  br i1 %1198, label %1199, label %.thread1624

1199:                                             ; preds = %1193
  %1200 = trunc i64 %indvars.iv1535 to i32
  %1201 = add i32 %1200, 2
  %1202 = getelementptr inbounds float, ptr %45, i64 %indvars.iv1535
  %1203 = load float, ptr %1202, align 4, !tbaa !9
  store float %1203, ptr %22, align 4, !tbaa !9
  %1204 = getelementptr float, ptr %12, i64 %indvars.iv1535
  %1205 = load float, ptr %1204, align 4, !tbaa !9
  %1206 = fcmp oge float %1203, %1205
  %1207 = select i1 %1206, float %1203, float %1205
  %1208 = fcmp ogt float %1207, %.210631399
  %.pre1580 = load i32, ptr %31, align 4, !tbaa !5
  br i1 %1208, label %1304, label %1318

.thread1624:                                      ; preds = %1189, %1193
  %1209 = getelementptr inbounds float, ptr %45, i64 %indvars.iv1535
  %1210 = load float, ptr %1209, align 4, !tbaa !9
  %1211 = fcmp ogt float %1210, %.210631399
  %.pre1583 = load i32, ptr %31, align 4, !tbaa !5
  br i1 %1211, label %1212, label %1226

1212:                                             ; preds = %.thread1624
  %1213 = fdiv float 1.000000e+00, %.410941396
  store float %1213, ptr %34, align 4, !tbaa !9
  %1214 = add i32 %1186, 1
  %1215 = sub i32 %1214, %.pre1583
  store i32 %1215, ptr %21, align 4, !tbaa !5
  %1216 = add nsw i32 %.pre1583, %1186
  %1217 = sext i32 %1216 to i64
  %1218 = getelementptr inbounds float, ptr %45, i64 %1217
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %34, ptr noundef nonnull %1218, ptr noundef nonnull @c__1) #6
  %1219 = load i32, ptr %3, align 4, !tbaa !5
  %1220 = load i32, ptr %31, align 4, !tbaa !5
  %1221 = add i32 %1219, 1
  %1222 = sub i32 %1221, %1220
  store i32 %1222, ptr %21, align 4, !tbaa !5
  %1223 = add nsw i32 %1220, %160
  %1224 = sext i32 %1223 to i64
  %1225 = getelementptr inbounds float, ptr %45, i64 %1224
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %34, ptr noundef nonnull %1225, ptr noundef nonnull @c__1) #6
  %.pre1582 = load i32, ptr %31, align 4, !tbaa !5
  %.pre1584 = load i32, ptr %3, align 4, !tbaa !5
  br label %1226

1226:                                             ; preds = %1212, %.thread1624
  %1227 = phi i32 [ %.pre1584, %1212 ], [ %1186, %.thread1624 ]
  %1228 = phi i32 [ %.pre1582, %1212 ], [ %.pre1583, %.thread1624 ]
  %.51095 = phi float [ 1.000000e+00, %1212 ], [ %.410941396, %.thread1624 ]
  %1229 = add i32 %indvars1537, -2
  %1230 = sub i32 %1229, %1228
  store i32 %1230, ptr %21, align 4, !tbaa !5
  %1231 = add nsw i32 %1228, 2
  %1232 = mul nsw i64 %indvars.iv1535, %747
  %1233 = mul nsw i32 %36, %indvars1537
  %1234 = sext i32 %1231 to i64
  %1235 = getelementptr float, ptr %38, i64 %1232
  %1236 = getelementptr float, ptr %1235, i64 %1234
  %1237 = add nsw i32 %1227, %1231
  %1238 = sext i32 %1237 to i64
  %1239 = getelementptr inbounds float, ptr %45, i64 %1238
  %1240 = call float @sdot_(ptr noundef nonnull %21, ptr noundef %1236, ptr noundef nonnull @c__1, ptr noundef nonnull %1239, ptr noundef nonnull @c__1) #6
  %1241 = load i32, ptr %3, align 4, !tbaa !5
  %1242 = sext i32 %1241 to i64
  %1243 = getelementptr float, ptr %45, i64 %indvars.iv1535
  %1244 = getelementptr float, ptr %1243, i64 %1242
  %1245 = load float, ptr %1244, align 4, !tbaa !9
  %1246 = fsub float %1245, %1240
  store float %1246, ptr %1244, align 4, !tbaa !9
  %1247 = load i32, ptr %31, align 4, !tbaa !5
  %1248 = sub i32 %1229, %1247
  store i32 %1248, ptr %21, align 4, !tbaa !5
  %1249 = add nsw i32 %1247, 2
  %1250 = sext i32 %1249 to i64
  %1251 = getelementptr float, ptr %38, i64 %1232
  %1252 = getelementptr float, ptr %1251, i64 %1250
  %1253 = add nsw i32 %1249, %160
  %1254 = sext i32 %1253 to i64
  %1255 = getelementptr inbounds float, ptr %45, i64 %1254
  %1256 = call float @sdot_(ptr noundef nonnull %21, ptr noundef %1252, ptr noundef nonnull @c__1, ptr noundef nonnull %1255, ptr noundef nonnull @c__1) #6
  %gep1684 = getelementptr float, ptr %invariant.gep1683, i64 %indvars.iv1535
  %1257 = load float, ptr %gep1684, align 4, !tbaa !9
  %1258 = fsub float %1257, %1256
  store float %1258, ptr %gep1684, align 4, !tbaa !9
  %1259 = load float, ptr %32, align 4, !tbaa !9
  %1260 = fneg float %1259
  store float %1260, ptr %22, align 4, !tbaa !9
  %1261 = sext i32 %1233 to i64
  %1262 = getelementptr float, ptr %38, i64 %indvars.iv1535
  %1263 = getelementptr float, ptr %1262, i64 %1261
  %1264 = load i32, ptr %3, align 4, !tbaa !5
  %1265 = sext i32 %1264 to i64
  %1266 = getelementptr float, ptr %45, i64 %indvars.iv1535
  %1267 = getelementptr float, ptr %1266, i64 %1265
  call void @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__1, ptr noundef nonnull @c__2, ptr noundef nonnull %26, ptr noundef nonnull @c_b22, ptr noundef %1263, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef nonnull %1267, ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef nonnull %22, ptr noundef nonnull %28, ptr noundef nonnull @c__2, ptr noundef nonnull %27, ptr noundef nonnull %30, ptr noundef nonnull %23) #6
  %1268 = load float, ptr %27, align 4, !tbaa !9
  %1269 = fcmp une float %1268, 1.000000e+00
  br i1 %1269, label %1270, label %1285

1270:                                             ; preds = %1226
  %1271 = load i32, ptr %3, align 4, !tbaa !5
  %1272 = load i32, ptr %31, align 4, !tbaa !5
  %1273 = add i32 %1271, 1
  %1274 = sub i32 %1273, %1272
  store i32 %1274, ptr %21, align 4, !tbaa !5
  %1275 = add nsw i32 %1272, %1271
  %1276 = sext i32 %1275 to i64
  %1277 = getelementptr inbounds float, ptr %45, i64 %1276
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef nonnull %1277, ptr noundef nonnull @c__1) #6
  %1278 = load i32, ptr %3, align 4, !tbaa !5
  %1279 = load i32, ptr %31, align 4, !tbaa !5
  %1280 = add i32 %1278, 1
  %1281 = sub i32 %1280, %1279
  store i32 %1281, ptr %21, align 4, !tbaa !5
  %1282 = add nsw i32 %1279, %160
  %1283 = sext i32 %1282 to i64
  %1284 = getelementptr inbounds float, ptr %45, i64 %1283
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef nonnull %1284, ptr noundef nonnull @c__1) #6
  br label %1285

1285:                                             ; preds = %1270, %1226
  %1286 = load float, ptr %28, align 16, !tbaa !9
  %1287 = load i32, ptr %3, align 4, !tbaa !5
  %1288 = sext i32 %1287 to i64
  %1289 = getelementptr float, ptr %45, i64 %indvars.iv1535
  %1290 = getelementptr float, ptr %1289, i64 %1288
  store float %1286, ptr %1290, align 4, !tbaa !9
  %1291 = load float, ptr %744, align 8, !tbaa !9
  store float %1291, ptr %gep1684, align 4, !tbaa !9
  %1292 = load float, ptr %1290, align 4, !tbaa !9
  store float %1292, ptr %22, align 4, !tbaa !9
  %1293 = fcmp oge float %1292, 0.000000e+00
  %1294 = fneg float %1292
  %1295 = select i1 %1293, float %1292, float %1294
  %1296 = fcmp oge float %1291, 0.000000e+00
  %1297 = fneg float %1291
  %1298 = select i1 %1296, float %1291, float %1297
  %1299 = fcmp oge float %1295, %1298
  %1300 = select i1 %1299, float %1295, float %1298
  %1301 = fcmp oge float %1300, %.51095
  %1302 = select i1 %1301, float %1300, float %.51095
  %1303 = fdiv float %132, %1302
  br label %.lr.ph1401._crit_edge

1304:                                             ; preds = %1199
  %1305 = fdiv float 1.000000e+00, %.410941396
  store float %1305, ptr %34, align 4, !tbaa !9
  %1306 = add i32 %1186, 1
  %1307 = sub i32 %1306, %.pre1580
  store i32 %1307, ptr %21, align 4, !tbaa !5
  %1308 = add nsw i32 %.pre1580, %1186
  %1309 = sext i32 %1308 to i64
  %1310 = getelementptr inbounds float, ptr %45, i64 %1309
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %34, ptr noundef nonnull %1310, ptr noundef nonnull @c__1) #6
  %1311 = load i32, ptr %3, align 4, !tbaa !5
  %1312 = load i32, ptr %31, align 4, !tbaa !5
  %1313 = add i32 %1311, 1
  %1314 = sub i32 %1313, %1312
  store i32 %1314, ptr %21, align 4, !tbaa !5
  %1315 = add nsw i32 %1312, %160
  %1316 = sext i32 %1315 to i64
  %1317 = getelementptr inbounds float, ptr %45, i64 %1316
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %34, ptr noundef nonnull %1317, ptr noundef nonnull @c__1) #6
  %.pre1579 = load i32, ptr %31, align 4, !tbaa !5
  %.pre1581 = load i32, ptr %3, align 4, !tbaa !5
  br label %1318

1318:                                             ; preds = %1304, %1199
  %1319 = phi i32 [ %.pre1581, %1304 ], [ %1186, %1199 ]
  %1320 = phi i32 [ %.pre1579, %1304 ], [ %.pre1580, %1199 ]
  %.61096 = phi float [ 1.000000e+00, %1304 ], [ %.410941396, %1199 ]
  %1321 = add i32 %indvars1537, -2
  %1322 = sub i32 %1321, %1320
  store i32 %1322, ptr %21, align 4, !tbaa !5
  %1323 = add nsw i32 %1320, 2
  %1324 = mul nsw i64 %indvars.iv1535, %747
  %1325 = mul nsw i32 %36, %indvars1537
  %1326 = sext i32 %1323 to i64
  %1327 = getelementptr float, ptr %38, i64 %1324
  %1328 = getelementptr float, ptr %1327, i64 %1326
  %1329 = add nsw i32 %1319, %1323
  %1330 = sext i32 %1329 to i64
  %1331 = getelementptr inbounds float, ptr %45, i64 %1330
  %1332 = call float @sdot_(ptr noundef nonnull %21, ptr noundef %1328, ptr noundef nonnull @c__1, ptr noundef nonnull %1331, ptr noundef nonnull @c__1) #6
  %1333 = load i32, ptr %3, align 4, !tbaa !5
  %1334 = sext i32 %1333 to i64
  %1335 = getelementptr float, ptr %45, i64 %indvars.iv1535
  %1336 = getelementptr float, ptr %1335, i64 %1334
  %1337 = load float, ptr %1336, align 4, !tbaa !9
  %1338 = fsub float %1337, %1332
  store float %1338, ptr %1336, align 4, !tbaa !9
  %1339 = load i32, ptr %31, align 4, !tbaa !5
  %1340 = sub i32 %1321, %1339
  store i32 %1340, ptr %21, align 4, !tbaa !5
  %1341 = add nsw i32 %1339, 2
  %1342 = sext i32 %1341 to i64
  %1343 = getelementptr float, ptr %38, i64 %1324
  %1344 = getelementptr float, ptr %1343, i64 %1342
  %1345 = add nsw i32 %1341, %160
  %1346 = sext i32 %1345 to i64
  %1347 = getelementptr inbounds float, ptr %45, i64 %1346
  %1348 = call float @sdot_(ptr noundef nonnull %21, ptr noundef %1344, ptr noundef nonnull @c__1, ptr noundef nonnull %1347, ptr noundef nonnull @c__1) #6
  %gep1680 = getelementptr float, ptr %invariant.gep1679, i64 %indvars.iv1535
  %1349 = load float, ptr %gep1680, align 4, !tbaa !9
  %1350 = fsub float %1349, %1348
  store float %1350, ptr %gep1680, align 4, !tbaa !9
  %1351 = load i32, ptr %31, align 4, !tbaa !5
  %1352 = sub i32 %1321, %1351
  store i32 %1352, ptr %21, align 4, !tbaa !5
  %1353 = add nsw i32 %1351, 2
  %1354 = mul nsw i64 %.pre1603, %747
  %1355 = sext i32 %1353 to i64
  %1356 = getelementptr float, ptr %38, i64 %1354
  %1357 = getelementptr float, ptr %1356, i64 %1355
  %1358 = load i32, ptr %3, align 4, !tbaa !5
  %1359 = add nsw i32 %1358, %1353
  %1360 = sext i32 %1359 to i64
  %1361 = getelementptr inbounds float, ptr %45, i64 %1360
  %1362 = call float @sdot_(ptr noundef nonnull %21, ptr noundef %1357, ptr noundef nonnull @c__1, ptr noundef nonnull %1361, ptr noundef nonnull @c__1) #6
  %1363 = load i32, ptr %3, align 4, !tbaa !5
  %1364 = sext i32 %1363 to i64
  %1365 = getelementptr float, ptr %12, i64 %indvars.iv1535
  %1366 = getelementptr float, ptr %1365, i64 %1364
  %1367 = load float, ptr %1366, align 4, !tbaa !9
  %1368 = fsub float %1367, %1362
  store float %1368, ptr %1366, align 4, !tbaa !9
  %1369 = load i32, ptr %31, align 4, !tbaa !5
  %1370 = sub i32 %1321, %1369
  store i32 %1370, ptr %21, align 4, !tbaa !5
  %1371 = add nsw i32 %1369, 2
  %1372 = sext i32 %1371 to i64
  %1373 = getelementptr float, ptr %38, i64 %1354
  %1374 = getelementptr float, ptr %1373, i64 %1372
  %1375 = add nsw i32 %1371, %160
  %1376 = sext i32 %1375 to i64
  %1377 = getelementptr inbounds float, ptr %45, i64 %1376
  %1378 = call float @sdot_(ptr noundef nonnull %21, ptr noundef %1374, ptr noundef nonnull @c__1, ptr noundef nonnull %1377, ptr noundef nonnull @c__1) #6
  %gep1682 = getelementptr float, ptr %invariant.gep1681, i64 %indvars.iv1535
  %1379 = load float, ptr %gep1682, align 4, !tbaa !9
  %1380 = fsub float %1379, %1378
  store float %1380, ptr %gep1682, align 4, !tbaa !9
  %1381 = load float, ptr %32, align 4, !tbaa !9
  %1382 = fneg float %1381
  store float %1382, ptr %22, align 4, !tbaa !9
  %1383 = sext i32 %1325 to i64
  %1384 = getelementptr float, ptr %38, i64 %indvars.iv1535
  %1385 = getelementptr float, ptr %1384, i64 %1383
  %1386 = load i32, ptr %3, align 4, !tbaa !5
  %1387 = sext i32 %1386 to i64
  %1388 = getelementptr float, ptr %45, i64 %indvars.iv1535
  %1389 = getelementptr float, ptr %1388, i64 %1387
  call void @slaln2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef nonnull %26, ptr noundef nonnull @c_b22, ptr noundef %1385, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef nonnull %1389, ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef nonnull %22, ptr noundef nonnull %28, ptr noundef nonnull @c__2, ptr noundef nonnull %27, ptr noundef nonnull %30, ptr noundef nonnull %23) #6
  %1390 = load float, ptr %27, align 4, !tbaa !9
  %1391 = fcmp une float %1390, 1.000000e+00
  br i1 %1391, label %1392, label %1407

1392:                                             ; preds = %1318
  %1393 = load i32, ptr %3, align 4, !tbaa !5
  %1394 = load i32, ptr %31, align 4, !tbaa !5
  %1395 = add i32 %1393, 1
  %1396 = sub i32 %1395, %1394
  store i32 %1396, ptr %21, align 4, !tbaa !5
  %1397 = add nsw i32 %1394, %1393
  %1398 = sext i32 %1397 to i64
  %1399 = getelementptr inbounds float, ptr %45, i64 %1398
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef nonnull %1399, ptr noundef nonnull @c__1) #6
  %1400 = load i32, ptr %3, align 4, !tbaa !5
  %1401 = load i32, ptr %31, align 4, !tbaa !5
  %1402 = add i32 %1400, 1
  %1403 = sub i32 %1402, %1401
  store i32 %1403, ptr %21, align 4, !tbaa !5
  %1404 = add nsw i32 %1401, %160
  %1405 = sext i32 %1404 to i64
  %1406 = getelementptr inbounds float, ptr %45, i64 %1405
  call void @sscal_(ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef nonnull %1406, ptr noundef nonnull @c__1) #6
  br label %1407

1407:                                             ; preds = %1392, %1318
  %1408 = load float, ptr %28, align 16
  %1409 = load i32, ptr %3, align 4, !tbaa !5
  %1410 = sext i32 %1409 to i64
  %1411 = getelementptr float, ptr %45, i64 %indvars.iv1535
  %1412 = getelementptr float, ptr %1411, i64 %1410
  store float %1408, ptr %1412, align 4, !tbaa !9
  %1413 = load float, ptr %744, align 8
  store float %1413, ptr %gep1680, align 4, !tbaa !9
  %1414 = load float, ptr %745, align 4
  %1415 = getelementptr float, ptr %12, i64 %indvars.iv1535
  %1416 = getelementptr float, ptr %1415, i64 %1410
  store float %1414, ptr %1416, align 4, !tbaa !9
  %1417 = load float, ptr %746, align 4
  store float %1417, ptr %gep1682, align 4, !tbaa !9
  %1418 = fcmp oge float %1408, 0.000000e+00
  %1419 = fneg float %1408
  %1420 = select i1 %1418, float %1408, float %1419
  %1421 = fcmp oge float %1413, 0.000000e+00
  %1422 = fneg float %1413
  %1423 = select i1 %1421, float %1413, float %1422
  %1424 = fcmp oge float %1420, %1423
  %1425 = select i1 %1424, float %1420, float %1423
  %1426 = fcmp oge float %1414, 0.000000e+00
  %1427 = fneg float %1414
  %1428 = select i1 %1426, float %1414, float %1427
  %1429 = fcmp oge float %1425, %1428
  %1430 = select i1 %1429, float %1425, float %1428
  %1431 = fcmp oge float %1417, 0.000000e+00
  %1432 = fneg float %1417
  %1433 = select i1 %1431, float %1417, float %1432
  %1434 = fcmp oge float %1430, %1433
  %1435 = select i1 %1434, float %1430, float %1433
  store float %1435, ptr %22, align 4, !tbaa !9
  %1436 = fcmp oge float %1435, %.61096
  %1437 = select i1 %1436, float %1435, float %.61096
  %1438 = fdiv float %132, %1437
  br label %.lr.ph1401._crit_edge

.lr.ph1401._crit_edge:                            ; preds = %.lr.ph1401, %1407, %1285
  %1439 = phi i32 [ %1409, %1407 ], [ %1287, %1285 ], [ %1186, %.lr.ph1401 ]
  %.71097 = phi float [ %1437, %1407 ], [ %1302, %1285 ], [ %.410941396, %.lr.ph1401 ]
  %.111089 = phi i32 [ %1201, %1407 ], [ %1190, %1285 ], [ %.910871397, %.lr.ph1401 ]
  %.31064 = phi float [ %1438, %1407 ], [ %1303, %1285 ], [ %.210631399, %.lr.ph1401 ]
  %1440 = load i32, ptr %20, align 4, !tbaa !5
  %1441 = sext i32 %1440 to i64
  %.not1134.not = icmp slt i64 %indvars.iv1535, %1441
  br i1 %.not1134.not, label %.lr.ph1401, label %._crit_edge1402, !llvm.loop !67

._crit_edge1402:                                  ; preds = %.lr.ph1401._crit_edge, %._crit_edge1394.thread, %._crit_edge1394
  %1442 = phi i32 [ %1122, %._crit_edge1394 ], [ %1122, %._crit_edge1394.thread ], [ %1439, %.lr.ph1401._crit_edge ]
  %1443 = load i32, ptr %31, align 4, !tbaa !5
  br i1 %.not1135, label %1444, label %1511

1444:                                             ; preds = %._crit_edge1402
  %1445 = add i32 %1442, 1
  %1446 = sub i32 %1445, %1443
  store i32 %1446, ptr %20, align 4, !tbaa !5
  %1447 = add nsw i32 %1443, %1442
  %1448 = sext i32 %1447 to i64
  %1449 = getelementptr inbounds float, ptr %45, i64 %1448
  %1450 = mul nsw i32 %.21469, %39
  %1451 = add nsw i32 %1443, %1450
  %1452 = sext i32 %1451 to i64
  %1453 = getelementptr inbounds float, ptr %41, i64 %1452
  call void @scopy_(ptr noundef nonnull %20, ptr noundef nonnull %1449, ptr noundef nonnull @c__1, ptr noundef %1453, ptr noundef nonnull @c__1) #6
  %1454 = load i32, ptr %3, align 4, !tbaa !5
  %1455 = load i32, ptr %31, align 4, !tbaa !5
  %1456 = add i32 %1454, 1
  %1457 = sub i32 %1456, %1455
  store i32 %1457, ptr %20, align 4, !tbaa !5
  %1458 = add nsw i32 %1455, %160
  %1459 = sext i32 %1458 to i64
  %1460 = getelementptr inbounds float, ptr %45, i64 %1459
  %1461 = add nsw i32 %.21469, 1
  %1462 = mul nsw i32 %1461, %39
  %1463 = add nsw i32 %1455, %1462
  %1464 = sext i32 %1463 to i64
  %1465 = getelementptr inbounds float, ptr %41, i64 %1464
  call void @scopy_(ptr noundef nonnull %20, ptr noundef nonnull %1460, ptr noundef nonnull @c__1, ptr noundef %1465, ptr noundef nonnull @c__1) #6
  %1466 = load i32, ptr %3, align 4, !tbaa !5
  %1467 = load i32, ptr %31, align 4, !tbaa !5
  %.not11361411 = icmp sgt i32 %1467, %1466
  br i1 %.not11361411, label %._crit_edge1597, label %.lr.ph1415.preheader

._crit_edge1597:                                  ; preds = %1444
  %.pre1598 = add nsw i32 %1466, 1
  br label %1483

.lr.ph1415.preheader:                             ; preds = %1444
  %1468 = sext i32 %1467 to i64
  %1469 = sext i32 %1450 to i64
  %1470 = sext i32 %1462 to i64
  %1471 = add i32 %1466, 1
  %invariant.gep1689 = getelementptr float, ptr %41, i64 %1469
  %invariant.gep1691 = getelementptr float, ptr %41, i64 %1470
  br label %.lr.ph1415

.lr.ph1415:                                       ; preds = %.lr.ph1415.preheader, %.lr.ph1415
  %indvars.iv1543 = phi i64 [ %1468, %.lr.ph1415.preheader ], [ %indvars.iv.next1544, %.lr.ph1415 ]
  %.211001412 = phi float [ 0.000000e+00, %.lr.ph1415.preheader ], [ %1482, %.lr.ph1415 ]
  %gep1690 = getelementptr float, ptr %invariant.gep1689, i64 %indvars.iv1543
  %1472 = load float, ptr %gep1690, align 4, !tbaa !9
  %1473 = fcmp oge float %1472, 0.000000e+00
  %1474 = fneg float %1472
  %1475 = select i1 %1473, float %1472, float %1474
  %gep1692 = getelementptr float, ptr %invariant.gep1691, i64 %indvars.iv1543
  %1476 = load float, ptr %gep1692, align 4, !tbaa !9
  %1477 = fcmp oge float %1476, 0.000000e+00
  %1478 = fneg float %1476
  %1479 = select i1 %1477, float %1476, float %1478
  %1480 = fadd float %1475, %1479
  %1481 = fcmp oge float %.211001412, %1480
  %1482 = select i1 %1481, float %.211001412, float %1480
  %indvars.iv.next1544 = add nsw i64 %indvars.iv1543, 1
  %lftr.wideiv1546 = trunc i64 %indvars.iv.next1544 to i32
  %exitcond1547.not = icmp eq i32 %1471, %lftr.wideiv1546
  br i1 %exitcond1547.not, label %._crit_edge1416, label %.lr.ph1415, !llvm.loop !68

._crit_edge1416:                                  ; preds = %.lr.ph1415
  store float %1472, ptr %22, align 4, !tbaa !9
  br label %1483

1483:                                             ; preds = %._crit_edge1597, %._crit_edge1416
  %.pre-phi = phi i32 [ %.pre1598, %._crit_edge1597 ], [ %1471, %._crit_edge1416 ]
  %.21100.lcssa = phi float [ 0.000000e+00, %._crit_edge1597 ], [ %1482, %._crit_edge1416 ]
  %1484 = fdiv float 1.000000e+00, %.21100.lcssa
  store float %1484, ptr %29, align 4, !tbaa !9
  %1485 = sub i32 %.pre-phi, %1467
  store i32 %1485, ptr %20, align 4, !tbaa !5
  %1486 = add nsw i32 %1467, %1450
  %1487 = sext i32 %1486 to i64
  %1488 = getelementptr inbounds float, ptr %41, i64 %1487
  call void @sscal_(ptr noundef nonnull %20, ptr noundef nonnull %29, ptr noundef %1488, ptr noundef nonnull @c__1) #6
  %1489 = load i32, ptr %3, align 4, !tbaa !5
  %1490 = load i32, ptr %31, align 4, !tbaa !5
  %1491 = add i32 %1489, 1
  %1492 = sub i32 %1491, %1490
  store i32 %1492, ptr %20, align 4, !tbaa !5
  %1493 = add nsw i32 %1490, %1462
  %1494 = sext i32 %1493 to i64
  %1495 = getelementptr inbounds float, ptr %41, i64 %1494
  call void @sscal_(ptr noundef nonnull %20, ptr noundef nonnull %29, ptr noundef %1495, ptr noundef nonnull @c__1) #6
  %1496 = load i32, ptr %31, align 4, !tbaa !5
  %1497 = add nsw i32 %1496, -1
  store i32 %1497, ptr %20, align 4, !tbaa !5
  %.not1137.not1419 = icmp sgt i32 %1496, 1
  br i1 %.not1137.not1419, label %.lr.ph1422.preheader, label %.loopexit

.lr.ph1422.preheader:                             ; preds = %1483
  %1498 = sext i32 %1450 to i64
  %1499 = sext i32 %1462 to i64
  %wide.trip.count1555 = zext nneg i32 %1496 to i64
  %invariant.gep1693 = getelementptr float, ptr %41, i64 %1498
  %invariant.gep1695 = getelementptr float, ptr %41, i64 %1499
  %1500 = add nsw i64 %wide.trip.count1555, -1
  %min.iters.check1822 = icmp ult i32 %1496, 9
  br i1 %min.iters.check1822, label %.lr.ph1422.preheader1911, label %vector.memcheck1818

vector.memcheck1818:                              ; preds = %.lr.ph1422.preheader
  %1501 = sub nsw i64 %1499, %1498
  %1502 = and i64 %1501, 4611686018427387896
  %diff.check1819 = icmp eq i64 %1502, 0
  br i1 %diff.check1819, label %.lr.ph1422.preheader1911, label %vector.ph1823

vector.ph1823:                                    ; preds = %vector.memcheck1818
  %n.vec1825 = and i64 %1500, -8
  %ind.end1826 = or disjoint i64 %n.vec1825, 1
  br label %vector.body1828

vector.body1828:                                  ; preds = %vector.body1828, %vector.ph1823
  %index1829 = phi i64 [ 0, %vector.ph1823 ], [ %index.next1831, %vector.body1828 ]
  %offset.idx1830 = or disjoint i64 %index1829, 1
  %1503 = getelementptr float, ptr %invariant.gep1693, i64 %offset.idx1830
  %1504 = getelementptr i8, ptr %1503, i64 16
  store <4 x float> zeroinitializer, ptr %1503, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %1504, align 4, !tbaa !9
  %1505 = getelementptr float, ptr %invariant.gep1695, i64 %offset.idx1830
  %1506 = getelementptr i8, ptr %1505, i64 16
  store <4 x float> zeroinitializer, ptr %1505, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %1506, align 4, !tbaa !9
  %index.next1831 = add nuw i64 %index1829, 8
  %1507 = icmp eq i64 %index.next1831, %n.vec1825
  br i1 %1507, label %middle.block1820, label %vector.body1828, !llvm.loop !69

middle.block1820:                                 ; preds = %vector.body1828
  %cmp.n1832 = icmp eq i64 %1500, %n.vec1825
  br i1 %cmp.n1832, label %.loopexit, label %.lr.ph1422.preheader1911

.lr.ph1422.preheader1911:                         ; preds = %middle.block1820, %vector.memcheck1818, %.lr.ph1422.preheader
  %indvars.iv1552.ph = phi i64 [ 1, %vector.memcheck1818 ], [ 1, %.lr.ph1422.preheader ], [ %ind.end1826, %middle.block1820 ]
  %1508 = sub nsw i64 %wide.trip.count1555, %indvars.iv1552.ph
  %xtraiter1931 = and i64 %1508, 3
  %lcmp.mod1932.not = icmp eq i64 %xtraiter1931, 0
  br i1 %lcmp.mod1932.not, label %.lr.ph1422.prol.loopexit, label %.lr.ph1422.prol

.lr.ph1422.prol:                                  ; preds = %.lr.ph1422.preheader1911, %.lr.ph1422.prol
  %indvars.iv1552.prol = phi i64 [ %indvars.iv.next1553.prol, %.lr.ph1422.prol ], [ %indvars.iv1552.ph, %.lr.ph1422.preheader1911 ]
  %prol.iter1933 = phi i64 [ %prol.iter1933.next, %.lr.ph1422.prol ], [ 0, %.lr.ph1422.preheader1911 ]
  %gep1694.prol = getelementptr float, ptr %invariant.gep1693, i64 %indvars.iv1552.prol
  store float 0.000000e+00, ptr %gep1694.prol, align 4, !tbaa !9
  %gep1696.prol = getelementptr float, ptr %invariant.gep1695, i64 %indvars.iv1552.prol
  store float 0.000000e+00, ptr %gep1696.prol, align 4, !tbaa !9
  %indvars.iv.next1553.prol = add nuw nsw i64 %indvars.iv1552.prol, 1
  %prol.iter1933.next = add i64 %prol.iter1933, 1
  %prol.iter1933.cmp.not = icmp eq i64 %prol.iter1933.next, %xtraiter1931
  br i1 %prol.iter1933.cmp.not, label %.lr.ph1422.prol.loopexit, label %.lr.ph1422.prol, !llvm.loop !70

.lr.ph1422.prol.loopexit:                         ; preds = %.lr.ph1422.prol, %.lr.ph1422.preheader1911
  %indvars.iv1552.unr = phi i64 [ %indvars.iv1552.ph, %.lr.ph1422.preheader1911 ], [ %indvars.iv.next1553.prol, %.lr.ph1422.prol ]
  %1509 = sub nsw i64 %indvars.iv1552.ph, %wide.trip.count1555
  %1510 = icmp ugt i64 %1509, -4
  br i1 %1510, label %.loopexit, label %.lr.ph1422

.lr.ph1422:                                       ; preds = %.lr.ph1422.prol.loopexit, %.lr.ph1422
  %indvars.iv1552 = phi i64 [ %indvars.iv.next1553.3, %.lr.ph1422 ], [ %indvars.iv1552.unr, %.lr.ph1422.prol.loopexit ]
  %gep1694 = getelementptr float, ptr %invariant.gep1693, i64 %indvars.iv1552
  store float 0.000000e+00, ptr %gep1694, align 4, !tbaa !9
  %gep1696 = getelementptr float, ptr %invariant.gep1695, i64 %indvars.iv1552
  store float 0.000000e+00, ptr %gep1696, align 4, !tbaa !9
  %indvars.iv.next1553 = add nuw nsw i64 %indvars.iv1552, 1
  %gep1694.1 = getelementptr float, ptr %invariant.gep1693, i64 %indvars.iv.next1553
  store float 0.000000e+00, ptr %gep1694.1, align 4, !tbaa !9
  %gep1696.1 = getelementptr float, ptr %invariant.gep1695, i64 %indvars.iv.next1553
  store float 0.000000e+00, ptr %gep1696.1, align 4, !tbaa !9
  %indvars.iv.next1553.1 = add nuw nsw i64 %indvars.iv1552, 2
  %gep1694.2 = getelementptr float, ptr %invariant.gep1693, i64 %indvars.iv.next1553.1
  store float 0.000000e+00, ptr %gep1694.2, align 4, !tbaa !9
  %gep1696.2 = getelementptr float, ptr %invariant.gep1695, i64 %indvars.iv.next1553.1
  store float 0.000000e+00, ptr %gep1696.2, align 4, !tbaa !9
  %indvars.iv.next1553.2 = add nuw nsw i64 %indvars.iv1552, 3
  %gep1694.3 = getelementptr float, ptr %invariant.gep1693, i64 %indvars.iv.next1553.2
  store float 0.000000e+00, ptr %gep1694.3, align 4, !tbaa !9
  %gep1696.3 = getelementptr float, ptr %invariant.gep1695, i64 %indvars.iv.next1553.2
  store float 0.000000e+00, ptr %gep1696.3, align 4, !tbaa !9
  %indvars.iv.next1553.3 = add nuw nsw i64 %indvars.iv1552, 4
  %exitcond1556.not.3 = icmp eq i64 %indvars.iv.next1553.3, %wide.trip.count1555
  br i1 %exitcond1556.not.3, label %.loopexit, label %.lr.ph1422, !llvm.loop !71

1511:                                             ; preds = %._crit_edge1402
  %1512 = add nsw i32 %1442, -1
  %1513 = icmp slt i32 %1443, %1512
  br i1 %1513, label %1514, label %1544

1514:                                             ; preds = %1511
  %1515 = xor i32 %1443, -1
  %1516 = add i32 %1442, %1515
  store i32 %1516, ptr %20, align 4, !tbaa !5
  %1517 = add nsw i32 %1443, 2
  %1518 = mul nsw i32 %1517, %39
  %1519 = sext i32 %1518 to i64
  %gep1447 = getelementptr float, ptr %invariant.gep1442, i64 %1519
  %1520 = add nsw i32 %1517, %1442
  %1521 = sext i32 %1520 to i64
  %1522 = getelementptr inbounds float, ptr %45, i64 %1521
  %1523 = add nsw i32 %1442, %1443
  %1524 = sext i32 %1523 to i64
  %1525 = getelementptr inbounds float, ptr %45, i64 %1524
  %1526 = mul nsw i32 %1443, %39
  %1527 = sext i32 %1526 to i64
  %gep1449 = getelementptr float, ptr %invariant.gep1442, i64 %1527
  call void @sgemv_(ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %20, ptr noundef nonnull @c_b22, ptr noundef %gep1447, ptr noundef nonnull %7, ptr noundef nonnull %1522, ptr noundef nonnull @c__1, ptr noundef nonnull %1525, ptr noundef %gep1449, ptr noundef nonnull @c__1) #6
  %1528 = load i32, ptr %3, align 4, !tbaa !5
  %1529 = load i32, ptr %31, align 4, !tbaa !5
  %1530 = xor i32 %1529, -1
  %1531 = add i32 %1528, %1530
  store i32 %1531, ptr %20, align 4, !tbaa !5
  %1532 = add nsw i32 %1529, 2
  %1533 = mul nsw i32 %1532, %39
  %1534 = sext i32 %1533 to i64
  %gep1451 = getelementptr float, ptr %invariant.gep1442, i64 %1534
  %1535 = add nsw i32 %1532, %160
  %1536 = sext i32 %1535 to i64
  %1537 = getelementptr inbounds float, ptr %45, i64 %1536
  %1538 = add nsw i32 %1529, 1
  %1539 = add nsw i32 %1538, %160
  %1540 = sext i32 %1539 to i64
  %1541 = getelementptr inbounds float, ptr %45, i64 %1540
  %1542 = mul nsw i32 %1538, %39
  %1543 = sext i32 %1542 to i64
  %gep1453 = getelementptr float, ptr %invariant.gep1442, i64 %1543
  call void @sgemv_(ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %20, ptr noundef nonnull @c_b22, ptr noundef %gep1451, ptr noundef nonnull %7, ptr noundef nonnull %1537, ptr noundef nonnull @c__1, ptr noundef nonnull %1541, ptr noundef %gep1453, ptr noundef nonnull @c__1) #6
  br label %1557

1544:                                             ; preds = %1511
  %1545 = add nsw i32 %1442, %1443
  %1546 = sext i32 %1545 to i64
  %1547 = getelementptr inbounds float, ptr %45, i64 %1546
  %1548 = mul nsw i32 %1443, %39
  %1549 = sext i32 %1548 to i64
  %gep1443 = getelementptr float, ptr %invariant.gep1442, i64 %1549
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %1547, ptr noundef %gep1443, ptr noundef nonnull @c__1) #6
  %1550 = load i32, ptr %31, align 4, !tbaa !5
  %1551 = add nsw i32 %1550, 1
  %1552 = add nsw i32 %1551, %160
  %1553 = sext i32 %1552 to i64
  %1554 = getelementptr inbounds float, ptr %45, i64 %1553
  %1555 = mul nsw i32 %1551, %39
  %1556 = sext i32 %1555 to i64
  %gep1445 = getelementptr float, ptr %invariant.gep1442, i64 %1556
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %1554, ptr noundef %gep1445, ptr noundef nonnull @c__1) #6
  br label %1557

1557:                                             ; preds = %1544, %1514
  %1558 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %1558, ptr %20, align 4, !tbaa !5
  %.not11381403 = icmp slt i32 %1558, 1
  %.pre1585 = load i32, ptr %31, align 4, !tbaa !5
  %.pre1599 = mul nsw i32 %.pre1585, %39
  br i1 %.not11381403, label %._crit_edge1596, label %.lr.ph1407

._crit_edge1596:                                  ; preds = %1557
  %.pre1601 = sext i32 %.pre1599 to i64
  br label %1576

.lr.ph1407:                                       ; preds = %1557
  %1559 = add nsw i32 %.pre1585, 1
  %1560 = mul nsw i32 %1559, %39
  %1561 = sext i32 %.pre1599 to i64
  %1562 = sext i32 %1560 to i64
  %1563 = add nuw i32 %1558, 1
  %wide.trip.count1541 = zext i32 %1563 to i64
  %invariant.gep1685 = getelementptr float, ptr %41, i64 %1561
  %invariant.gep1687 = getelementptr float, ptr %41, i64 %1562
  br label %1564

1564:                                             ; preds = %.lr.ph1407, %1564
  %indvars.iv1538 = phi i64 [ 1, %.lr.ph1407 ], [ %indvars.iv.next1539, %1564 ]
  %.311011404 = phi float [ 0.000000e+00, %.lr.ph1407 ], [ %1575, %1564 ]
  %gep1686 = getelementptr float, ptr %invariant.gep1685, i64 %indvars.iv1538
  %1565 = load float, ptr %gep1686, align 4, !tbaa !9
  %1566 = fcmp oge float %1565, 0.000000e+00
  %1567 = fneg float %1565
  %1568 = select i1 %1566, float %1565, float %1567
  %gep1688 = getelementptr float, ptr %invariant.gep1687, i64 %indvars.iv1538
  %1569 = load float, ptr %gep1688, align 4, !tbaa !9
  %1570 = fcmp oge float %1569, 0.000000e+00
  %1571 = fneg float %1569
  %1572 = select i1 %1570, float %1569, float %1571
  %1573 = fadd float %1568, %1572
  %1574 = fcmp oge float %.311011404, %1573
  %1575 = select i1 %1574, float %.311011404, float %1573
  %indvars.iv.next1539 = add nuw nsw i64 %indvars.iv1538, 1
  %exitcond1542.not = icmp eq i64 %indvars.iv.next1539, %wide.trip.count1541
  br i1 %exitcond1542.not, label %._crit_edge1408, label %1564, !llvm.loop !72

._crit_edge1408:                                  ; preds = %1564
  store float %1565, ptr %22, align 4, !tbaa !9
  br label %1576

1576:                                             ; preds = %._crit_edge1596, %._crit_edge1408
  %.pre-phi1602 = phi i64 [ %.pre1601, %._crit_edge1596 ], [ %1561, %._crit_edge1408 ]
  %.31101.lcssa = phi float [ 0.000000e+00, %._crit_edge1596 ], [ %1575, %._crit_edge1408 ]
  %1577 = fdiv float 1.000000e+00, %.31101.lcssa
  store float %1577, ptr %29, align 4, !tbaa !9
  %gep1455 = getelementptr float, ptr %invariant.gep1442, i64 %.pre-phi1602
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %29, ptr noundef %gep1455, ptr noundef nonnull @c__1) #6
  %1578 = load i32, ptr %31, align 4, !tbaa !5
  %1579 = add nsw i32 %1578, 1
  %1580 = mul nsw i32 %1579, %39
  %1581 = sext i32 %1580 to i64
  %gep1457 = getelementptr float, ptr %invariant.gep1442, i64 %1581
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %29, ptr noundef %gep1457, ptr noundef nonnull @c__1) #6
  br label %.loopexit

.loopexit:                                        ; preds = %.lr.ph1422.prol.loopexit, %.lr.ph1422, %middle.block1820, %.lr.ph1441.preheader, %1483, %1018, %1073, %1576
  %spec.select1162.v = phi i32 [ 1, %1073 ], [ 2, %1576 ], [ 1, %1018 ], [ 2, %1483 ], [ 1, %.lr.ph1441.preheader ], [ 2, %middle.block1820 ], [ 2, %.lr.ph1422 ], [ 2, %.lr.ph1422.prol.loopexit ]
  %spec.select1162 = add nsw i32 %spec.select1162.v, %.21469
  %1582 = icmp eq i32 %.4, -1
  br i1 %1582, label %.thread1231, label %.thread1225

.thread1225:                                      ; preds = %768, %.loopexit
  %.31223 = phi i32 [ %spec.select1162, %.loopexit ], [ %.21469, %768 ]
  %1583 = icmp eq i32 %.4, 1
  %spec.select1240 = select i1 %1583, i32 -1, i32 %.4
  br label %.thread1231

.thread1231:                                      ; preds = %.thread1225, %.loopexit, %753
  %.312231234 = phi i32 [ %.21469, %753 ], [ %spec.select1162, %.loopexit ], [ %.31223, %.thread1225 ]
  %1584 = phi i32 [ 0, %753 ], [ 0, %.loopexit ], [ %spec.select1240, %.thread1225 ]
  %1585 = load i32, ptr %31, align 4, !tbaa !5
  %1586 = add nsw i32 %1585, 1
  store i32 %1586, ptr %31, align 4, !tbaa !5
  %1587 = load i32, ptr %19, align 4, !tbaa !5
  %.not1129.not = icmp slt i32 %1585, %1587
  br i1 %.not1129.not, label %753, label %.loopexit1268, !llvm.loop !73

.loopexit1268:                                    ; preds = %.thread1231, %741, %.loopexit1272, %119, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  ret void
}

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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

declare void @slabad_(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #3

declare void @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 void @sscal_(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @saxpy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @scopy_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare void @sgemv_(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 float @sdot_(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 i32 @llvm.umax.i32(i32, i32) #4

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !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, !16}
!16 = !{!"llvm.loop.unroll.disable"}
!17 = distinct !{!17, !12, !18, !19}
!18 = !{!"llvm.loop.isvectorized", i32 1}
!19 = !{!"llvm.loop.unroll.runtime.disable"}
!20 = distinct !{!20, !12, !18}
!21 = distinct !{!21, !12}
!22 = !{!23}
!23 = distinct !{!23, !24}
!24 = distinct !{!24, !"LVerDomain"}
!25 = !{!26}
!26 = distinct !{!26, !24}
!27 = !{!28}
!28 = distinct !{!28, !24}
!29 = !{!30}
!30 = distinct !{!30, !24}
!31 = !{!32, !23, !28, !26, !33}
!32 = distinct !{!32, !24}
!33 = distinct !{!33, !24}
!34 = !{!33}
!35 = !{!32}
!36 = !{!23, !28, !26, !33}
!37 = distinct !{!37, !12, !18, !19}
!38 = distinct !{!38, !12, !18}
!39 = distinct !{!39, !12}
!40 = distinct !{!40, !12}
!41 = distinct !{!41, !12, !18, !19}
!42 = distinct !{!42, !16}
!43 = distinct !{!43, !12, !18}
!44 = distinct !{!44, !12}
!45 = distinct !{!45, !12}
!46 = distinct !{!46, !12, !18, !19}
!47 = distinct !{!47, !16}
!48 = distinct !{!48, !12, !18}
!49 = distinct !{!49, !12}
!50 = !{!51}
!51 = distinct !{!51, !52}
!52 = distinct !{!52, !"LVerDomain"}
!53 = !{!54}
!54 = distinct !{!54, !52}
!55 = !{!56}
!56 = distinct !{!56, !52}
!57 = !{!58}
!58 = distinct !{!58, !52}
!59 = !{!60, !51, !56, !54, !61}
!60 = distinct !{!60, !52}
!61 = distinct !{!61, !52}
!62 = !{!61}
!63 = !{!60}
!64 = !{!51, !56, !54, !61}
!65 = distinct !{!65, !12, !18, !19}
!66 = distinct !{!66, !12, !18}
!67 = distinct !{!67, !12}
!68 = distinct !{!68, !12}
!69 = distinct !{!69, !12, !18, !19}
!70 = distinct !{!70, !16}
!71 = distinct !{!71, !12, !18}
!72 = distinct !{!72, !12}
!73 = distinct !{!73, !12}


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