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

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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b17 = external hidden global float, align 4
@.str.8 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [10 x i8], align 1
@c_false = external hidden global i32, align 4
@c_b29 = external hidden global float, align 4
@.str.10 = 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 @strevc3_(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, ptr noundef %14) #0 {
  %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 ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca [2 x ptr], align 16
  %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 [2 x i32], align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  %45 = alloca float, align 4
  %46 = alloca [2 x i8], align 1
  %47 = alloca float, align 4
  %48 = alloca float, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca float, align 4
  %53 = alloca float, align 4
  %54 = alloca float, align 4
  %55 = alloca i32, align 4
  %56 = alloca float, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca float, align 4
  %62 = alloca [4 x float], align 16
  %63 = alloca float, 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 float, align 4
  %71 = alloca [128 x i32], align 16
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca float, align 4
  %79 = alloca float, align 4
  %80 = alloca float, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca float, align 4
  %85 = alloca i32, align 4
  %86 = alloca float, align 4
  %87 = alloca float, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca ptr, align 8
  %92 = alloca ptr, align 8
  %93 = alloca i32, align 4
  store ptr %0, ptr %16, align 8, !tbaa !5
  store ptr %1, ptr %17, align 8, !tbaa !5
  store ptr %2, ptr %18, align 8, !tbaa !5
  store ptr %3, ptr %19, align 8, !tbaa !5
  store ptr %4, ptr %20, align 8, !tbaa !5
  store ptr %5, ptr %21, align 8, !tbaa !5
  store ptr %6, ptr %22, align 8, !tbaa !5
  store ptr %7, ptr %23, align 8, !tbaa !5
  store ptr %8, ptr %24, align 8, !tbaa !5
  store ptr %9, ptr %25, align 8, !tbaa !5
  store ptr %10, ptr %26, align 8, !tbaa !5
  store ptr %11, ptr %27, align 8, !tbaa !5
  store ptr %12, ptr %28, align 8, !tbaa !5
  store ptr %13, ptr %29, align 8, !tbaa !5
  store ptr %14, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, 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 8, 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 2, 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 4, 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 16, 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 512, 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
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #4
  %94 = load ptr, ptr %18, align 8, !tbaa !5
  %95 = getelementptr inbounds i32, ptr %94, i32 -1
  store ptr %95, ptr %18, align 8, !tbaa !5
  %96 = load ptr, ptr %21, align 8, !tbaa !5
  %97 = load i32, ptr %96, align 4, !tbaa !9
  store i32 %97, ptr %32, align 4, !tbaa !9
  %98 = load i32, ptr %32, align 4, !tbaa !9
  %99 = mul nsw i32 %98, 1
  %100 = add nsw i32 1, %99
  store i32 %100, ptr %33, align 4, !tbaa !9
  %101 = load i32, ptr %33, align 4, !tbaa !9
  %102 = load ptr, ptr %20, align 8, !tbaa !5
  %103 = sext i32 %101 to i64
  %104 = sub i64 0, %103
  %105 = getelementptr inbounds float, ptr %102, i64 %104
  store ptr %105, ptr %20, align 8, !tbaa !5
  %106 = load ptr, ptr %23, align 8, !tbaa !5
  %107 = load i32, ptr %106, align 4, !tbaa !9
  store i32 %107, ptr %34, align 4, !tbaa !9
  %108 = load i32, ptr %34, align 4, !tbaa !9
  %109 = mul nsw i32 %108, 1
  %110 = add nsw i32 1, %109
  store i32 %110, ptr %35, align 4, !tbaa !9
  %111 = load i32, ptr %35, align 4, !tbaa !9
  %112 = load ptr, ptr %22, align 8, !tbaa !5
  %113 = sext i32 %111 to i64
  %114 = sub i64 0, %113
  %115 = getelementptr inbounds float, ptr %112, i64 %114
  store ptr %115, ptr %22, align 8, !tbaa !5
  %116 = load ptr, ptr %25, align 8, !tbaa !5
  %117 = load i32, ptr %116, align 4, !tbaa !9
  store i32 %117, ptr %36, align 4, !tbaa !9
  %118 = load i32, ptr %36, align 4, !tbaa !9
  %119 = mul nsw i32 %118, 1
  %120 = add nsw i32 1, %119
  store i32 %120, ptr %37, align 4, !tbaa !9
  %121 = load i32, ptr %37, align 4, !tbaa !9
  %122 = load ptr, ptr %24, align 8, !tbaa !5
  %123 = sext i32 %121 to i64
  %124 = sub i64 0, %123
  %125 = getelementptr inbounds float, ptr %122, i64 %124
  store ptr %125, ptr %24, align 8, !tbaa !5
  %126 = load ptr, ptr %28, align 8, !tbaa !5
  %127 = getelementptr inbounds float, ptr %126, i32 -1
  store ptr %127, ptr %28, align 8, !tbaa !5
  %128 = load ptr, ptr %16, align 8, !tbaa !5
  %129 = call i32 @lsame_(ptr noundef %128, ptr noundef @.str)
  store i32 %129, ptr %65, align 4, !tbaa !9
  %130 = load ptr, ptr %16, align 8, !tbaa !5
  %131 = call i32 @lsame_(ptr noundef %130, ptr noundef @.str.1)
  %132 = icmp ne i32 %131, 0
  br i1 %132, label %136, label %133

133:                                              ; preds = %15
  %134 = load i32, ptr %65, align 4, !tbaa !9
  %135 = icmp ne i32 %134, 0
  br label %136

136:                                              ; preds = %133, %15
  %137 = phi i1 [ true, %15 ], [ %135, %133 ]
  %138 = zext i1 %137 to i32
  store i32 %138, ptr %81, align 4, !tbaa !9
  %139 = load ptr, ptr %16, align 8, !tbaa !5
  %140 = call i32 @lsame_(ptr noundef %139, ptr noundef @.str.2)
  %141 = icmp ne i32 %140, 0
  br i1 %141, label %145, label %142

142:                                              ; preds = %136
  %143 = load i32, ptr %65, align 4, !tbaa !9
  %144 = icmp ne i32 %143, 0
  br label %145

145:                                              ; preds = %142, %136
  %146 = phi i1 [ true, %136 ], [ %144, %142 ]
  %147 = zext i1 %146 to i32
  store i32 %147, ptr %64, align 4, !tbaa !9
  %148 = load ptr, ptr %17, align 8, !tbaa !5
  %149 = call i32 @lsame_(ptr noundef %148, ptr noundef @.str.3)
  store i32 %149, ptr %50, align 4, !tbaa !9
  %150 = load ptr, ptr %17, align 8, !tbaa !5
  %151 = call i32 @lsame_(ptr noundef %150, ptr noundef @.str)
  store i32 %151, ptr %55, align 4, !tbaa !9
  %152 = load ptr, ptr %17, align 8, !tbaa !5
  %153 = call i32 @lsame_(ptr noundef %152, ptr noundef @.str.4)
  store i32 %153, ptr %67, align 4, !tbaa !9
  %154 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 0, ptr %154, align 4, !tbaa !9
  %155 = getelementptr inbounds [2 x i32], ptr %38, i64 0, i64 0
  store i32 1, ptr %155, align 4, !tbaa !9
  %156 = load ptr, ptr %16, align 8, !tbaa !5
  %157 = getelementptr inbounds [2 x ptr], ptr %31, i64 0, i64 0
  store ptr %156, ptr %157, align 16, !tbaa !5
  %158 = getelementptr inbounds [2 x i32], ptr %38, i64 0, i64 1
  store i32 1, ptr %158, align 4, !tbaa !9
  %159 = load ptr, ptr %17, align 8, !tbaa !5
  %160 = getelementptr inbounds [2 x ptr], ptr %31, i64 0, i64 1
  store ptr %159, ptr %160, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #4
  store i32 2, ptr %90, align 4, !tbaa !9
  %161 = getelementptr inbounds [2 x i8], ptr %46, i64 0, i64 0
  store ptr %161, ptr %92, align 8, !tbaa !5
  store i32 0, ptr %88, align 4, !tbaa !9
  br label %162

162:                                              ; preds = %198, %145
  %163 = load i32, ptr %88, align 4, !tbaa !9
  %164 = load i32, ptr @c__2, align 4, !tbaa !9
  %165 = icmp slt i32 %163, %164
  br i1 %165, label %166, label %201

166:                                              ; preds = %162
  %167 = load i32, ptr %90, align 4, !tbaa !9
  store i32 %167, ptr %89, align 4, !tbaa !9
  %168 = load i32, ptr %88, align 4, !tbaa !9
  %169 = sext i32 %168 to i64
  %170 = getelementptr inbounds [2 x i32], ptr %38, i64 0, i64 %169
  %171 = load i32, ptr %170, align 4, !tbaa !9
  %172 = load i32, ptr %89, align 4, !tbaa !9
  %173 = icmp slt i32 %171, %172
  br i1 %173, label %174, label %179

174:                                              ; preds = %166
  %175 = load i32, ptr %88, align 4, !tbaa !9
  %176 = sext i32 %175 to i64
  %177 = getelementptr inbounds [2 x i32], ptr %38, i64 0, i64 %176
  %178 = load i32, ptr %177, align 4, !tbaa !9
  store i32 %178, ptr %89, align 4, !tbaa !9
  br label %179

179:                                              ; preds = %174, %166
  %180 = load i32, ptr %89, align 4, !tbaa !9
  %181 = load i32, ptr %90, align 4, !tbaa !9
  %182 = sub nsw i32 %181, %180
  store i32 %182, ptr %90, align 4, !tbaa !9
  %183 = load i32, ptr %88, align 4, !tbaa !9
  %184 = sext i32 %183 to i64
  %185 = getelementptr inbounds [2 x ptr], ptr %31, i64 0, i64 %184
  %186 = load ptr, ptr %185, align 8, !tbaa !5
  store ptr %186, ptr %91, align 8, !tbaa !5
  br label %187

187:                                              ; preds = %191, %179
  %188 = load i32, ptr %89, align 4, !tbaa !9
  %189 = add nsw i32 %188, -1
  store i32 %189, ptr %89, align 4, !tbaa !9
  %190 = icmp sge i32 %189, 0
  br i1 %190, label %191, label %197

191:                                              ; preds = %187
  %192 = load ptr, ptr %91, align 8, !tbaa !5
  %193 = getelementptr inbounds i8, ptr %192, i32 1
  store ptr %193, ptr %91, align 8, !tbaa !5
  %194 = load i8, ptr %192, align 1, !tbaa !11
  %195 = load ptr, ptr %92, align 8, !tbaa !5
  %196 = getelementptr inbounds i8, ptr %195, i32 1
  store ptr %196, ptr %92, align 8, !tbaa !5
  store i8 %194, ptr %195, align 1, !tbaa !11
  br label %187, !llvm.loop !12

197:                                              ; preds = %187
  br label %198

198:                                              ; preds = %197
  %199 = load i32, ptr %88, align 4, !tbaa !9
  %200 = add nsw i32 %199, 1
  store i32 %200, ptr %88, align 4, !tbaa !9
  br label %162, !llvm.loop !14

201:                                              ; preds = %162
  br label %202

202:                                              ; preds = %206, %201
  %203 = load i32, ptr %90, align 4, !tbaa !9
  %204 = add nsw i32 %203, -1
  store i32 %204, ptr %90, align 4, !tbaa !9
  %205 = icmp sge i32 %204, 0
  br i1 %205, label %206, label %209

206:                                              ; preds = %202
  %207 = load ptr, ptr %92, align 8, !tbaa !5
  %208 = getelementptr inbounds i8, ptr %207, i32 1
  store ptr %208, ptr %92, align 8, !tbaa !5
  store i8 32, ptr %207, align 1, !tbaa !11
  br label %202, !llvm.loop !15

209:                                              ; preds = %202
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  %210 = getelementptr inbounds [2 x i8], ptr %46, i64 0, i64 0
  %211 = load ptr, ptr %19, align 8, !tbaa !5
  %212 = call i32 @ilaenv_(ptr noundef @c__1, ptr noundef @.str.5, ptr noundef %210, ptr noundef %211, ptr noundef @c_n1, ptr noundef @c_n1, ptr noundef @c_n1, i32 noundef 6, i32 noundef 2)
  store i32 %212, ptr %72, align 4, !tbaa !9
  %213 = load ptr, ptr %19, align 8, !tbaa !5
  %214 = load i32, ptr %213, align 4, !tbaa !9
  %215 = load ptr, ptr %19, align 8, !tbaa !5
  %216 = load i32, ptr %215, align 4, !tbaa !9
  %217 = shl i32 %216, 1
  %218 = load i32, ptr %72, align 4, !tbaa !9
  %219 = mul nsw i32 %217, %218
  %220 = add nsw i32 %214, %219
  store i32 %220, ptr %83, align 4, !tbaa !9
  %221 = load i32, ptr %83, align 4, !tbaa !9
  %222 = sitofp i32 %221 to float
  %223 = load ptr, ptr %28, align 8, !tbaa !5
  %224 = getelementptr inbounds float, ptr %223, i64 1
  store float %222, ptr %224, align 4, !tbaa !16
  %225 = load ptr, ptr %29, align 8, !tbaa !5
  %226 = load i32, ptr %225, align 4, !tbaa !9
  %227 = icmp eq i32 %226, -1
  %228 = zext i1 %227 to i32
  store i32 %228, ptr %85, align 4, !tbaa !9
  %229 = load i32, ptr %81, align 4, !tbaa !9
  %230 = icmp ne i32 %229, 0
  br i1 %230, label %236, label %231

231:                                              ; preds = %209
  %232 = load i32, ptr %64, align 4, !tbaa !9
  %233 = icmp ne i32 %232, 0
  br i1 %233, label %236, label %234

234:                                              ; preds = %231
  %235 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -1, ptr %235, align 4, !tbaa !9
  br label %430

236:                                              ; preds = %231, %209
  %237 = load i32, ptr %50, align 4, !tbaa !9
  %238 = icmp ne i32 %237, 0
  br i1 %238, label %247, label %239

239:                                              ; preds = %236
  %240 = load i32, ptr %55, align 4, !tbaa !9
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %247, label %242

242:                                              ; preds = %239
  %243 = load i32, ptr %67, align 4, !tbaa !9
  %244 = icmp ne i32 %243, 0
  br i1 %244, label %247, label %245

245:                                              ; preds = %242
  %246 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -2, ptr %246, align 4, !tbaa !9
  br label %429

247:                                              ; preds = %242, %239, %236
  %248 = load ptr, ptr %19, align 8, !tbaa !5
  %249 = load i32, ptr %248, align 4, !tbaa !9
  %250 = icmp slt i32 %249, 0
  br i1 %250, label %251, label %253

251:                                              ; preds = %247
  %252 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -4, ptr %252, align 4, !tbaa !9
  br label %428

253:                                              ; preds = %247
  %254 = load ptr, ptr %21, align 8, !tbaa !5
  %255 = load i32, ptr %254, align 4, !tbaa !9
  %256 = load ptr, ptr %19, align 8, !tbaa !5
  %257 = load i32, ptr %256, align 4, !tbaa !9
  %258 = icmp sge i32 1, %257
  br i1 %258, label %259, label %260

259:                                              ; preds = %253
  br label %263

260:                                              ; preds = %253
  %261 = load ptr, ptr %19, align 8, !tbaa !5
  %262 = load i32, ptr %261, align 4, !tbaa !9
  br label %263

263:                                              ; preds = %260, %259
  %264 = phi i32 [ 1, %259 ], [ %262, %260 ]
  %265 = icmp slt i32 %255, %264
  br i1 %265, label %266, label %268

266:                                              ; preds = %263
  %267 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -6, ptr %267, align 4, !tbaa !9
  br label %427

268:                                              ; preds = %263
  %269 = load ptr, ptr %23, align 8, !tbaa !5
  %270 = load i32, ptr %269, align 4, !tbaa !9
  %271 = icmp slt i32 %270, 1
  br i1 %271, label %281, label %272

272:                                              ; preds = %268
  %273 = load i32, ptr %64, align 4, !tbaa !9
  %274 = icmp ne i32 %273, 0
  br i1 %274, label %275, label %283

275:                                              ; preds = %272
  %276 = load ptr, ptr %23, align 8, !tbaa !5
  %277 = load i32, ptr %276, align 4, !tbaa !9
  %278 = load ptr, ptr %19, align 8, !tbaa !5
  %279 = load i32, ptr %278, align 4, !tbaa !9
  %280 = icmp slt i32 %277, %279
  br i1 %280, label %281, label %283

281:                                              ; preds = %275, %268
  %282 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -8, ptr %282, align 4, !tbaa !9
  br label %426

283:                                              ; preds = %275, %272
  %284 = load ptr, ptr %25, align 8, !tbaa !5
  %285 = load i32, ptr %284, align 4, !tbaa !9
  %286 = icmp slt i32 %285, 1
  br i1 %286, label %296, label %287

287:                                              ; preds = %283
  %288 = load i32, ptr %81, align 4, !tbaa !9
  %289 = icmp ne i32 %288, 0
  br i1 %289, label %290, label %298

290:                                              ; preds = %287
  %291 = load ptr, ptr %25, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = load ptr, ptr %19, align 8, !tbaa !5
  %294 = load i32, ptr %293, align 4, !tbaa !9
  %295 = icmp slt i32 %292, %294
  br i1 %295, label %296, label %298

296:                                              ; preds = %290, %283
  %297 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -10, ptr %297, align 4, !tbaa !9
  br label %425

298:                                              ; preds = %290, %287
  store i32 1, ptr %39, align 4, !tbaa !9
  %299 = load ptr, ptr %19, align 8, !tbaa !5
  %300 = load i32, ptr %299, align 4, !tbaa !9
  %301 = mul nsw i32 %300, 3
  store i32 %301, ptr %40, align 4, !tbaa !9
  %302 = load ptr, ptr %29, align 8, !tbaa !5
  %303 = load i32, ptr %302, align 4, !tbaa !9
  %304 = load i32, ptr %39, align 4, !tbaa !9
  %305 = load i32, ptr %40, align 4, !tbaa !9
  %306 = icmp sge i32 %304, %305
  br i1 %306, label %307, label %309

307:                                              ; preds = %298
  %308 = load i32, ptr %39, align 4, !tbaa !9
  br label %311

309:                                              ; preds = %298
  %310 = load i32, ptr %40, align 4, !tbaa !9
  br label %311

311:                                              ; preds = %309, %307
  %312 = phi i32 [ %308, %307 ], [ %310, %309 ]
  %313 = icmp slt i32 %303, %312
  br i1 %313, label %314, label %319

314:                                              ; preds = %311
  %315 = load i32, ptr %85, align 4, !tbaa !9
  %316 = icmp ne i32 %315, 0
  br i1 %316, label %319, label %317

317:                                              ; preds = %314
  %318 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -14, ptr %318, align 4, !tbaa !9
  br label %424

319:                                              ; preds = %314, %311
  %320 = load i32, ptr %67, align 4, !tbaa !9
  %321 = icmp ne i32 %320, 0
  br i1 %321, label %322, label %411

322:                                              ; preds = %319
  %323 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 0, ptr %323, align 4, !tbaa !9
  store i32 0, ptr %49, align 4, !tbaa !9
  %324 = load ptr, ptr %19, align 8, !tbaa !5
  %325 = load i32, ptr %324, align 4, !tbaa !9
  store i32 %325, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %59, align 4, !tbaa !9
  br label %326

326:                                              ; preds = %407, %322
  %327 = load i32, ptr %59, align 4, !tbaa !9
  %328 = load i32, ptr %39, align 4, !tbaa !9
  %329 = icmp sle i32 %327, %328
  br i1 %329, label %330, label %410

330:                                              ; preds = %326
  %331 = load i32, ptr %49, align 4, !tbaa !9
  %332 = icmp ne i32 %331, 0
  br i1 %332, label %333, label %338

333:                                              ; preds = %330
  store i32 0, ptr %49, align 4, !tbaa !9
  %334 = load ptr, ptr %18, align 8, !tbaa !5
  %335 = load i32, ptr %59, align 4, !tbaa !9
  %336 = sext i32 %335 to i64
  %337 = getelementptr inbounds i32, ptr %334, i64 %336
  store i32 0, ptr %337, align 4, !tbaa !9
  br label %406

338:                                              ; preds = %330
  %339 = load i32, ptr %59, align 4, !tbaa !9
  %340 = load ptr, ptr %19, align 8, !tbaa !5
  %341 = load i32, ptr %340, align 4, !tbaa !9
  %342 = icmp slt i32 %339, %341
  br i1 %342, label %343, label %392

343:                                              ; preds = %338
  %344 = load ptr, ptr %20, align 8, !tbaa !5
  %345 = load i32, ptr %59, align 4, !tbaa !9
  %346 = add nsw i32 %345, 1
  %347 = load i32, ptr %59, align 4, !tbaa !9
  %348 = load i32, ptr %32, align 4, !tbaa !9
  %349 = mul nsw i32 %347, %348
  %350 = add nsw i32 %346, %349
  %351 = sext i32 %350 to i64
  %352 = getelementptr inbounds float, ptr %344, i64 %351
  %353 = load float, ptr %352, align 4, !tbaa !16
  %354 = fcmp oeq float %353, 0.000000e+00
  br i1 %354, label %355, label %367

355:                                              ; preds = %343
  %356 = load ptr, ptr %18, align 8, !tbaa !5
  %357 = load i32, ptr %59, align 4, !tbaa !9
  %358 = sext i32 %357 to i64
  %359 = getelementptr inbounds i32, ptr %356, i64 %358
  %360 = load i32, ptr %359, align 4, !tbaa !9
  %361 = icmp ne i32 %360, 0
  br i1 %361, label %362, label %366

362:                                              ; preds = %355
  %363 = load ptr, ptr %27, align 8, !tbaa !5
  %364 = load i32, ptr %363, align 4, !tbaa !9
  %365 = add nsw i32 %364, 1
  store i32 %365, ptr %363, align 4, !tbaa !9
  br label %366

366:                                              ; preds = %362, %355
  br label %391

367:                                              ; preds = %343
  store i32 1, ptr %49, align 4, !tbaa !9
  %368 = load ptr, ptr %18, align 8, !tbaa !5
  %369 = load i32, ptr %59, align 4, !tbaa !9
  %370 = sext i32 %369 to i64
  %371 = getelementptr inbounds i32, ptr %368, i64 %370
  %372 = load i32, ptr %371, align 4, !tbaa !9
  %373 = icmp ne i32 %372, 0
  br i1 %373, label %382, label %374

374:                                              ; preds = %367
  %375 = load ptr, ptr %18, align 8, !tbaa !5
  %376 = load i32, ptr %59, align 4, !tbaa !9
  %377 = add nsw i32 %376, 1
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds i32, ptr %375, i64 %378
  %380 = load i32, ptr %379, align 4, !tbaa !9
  %381 = icmp ne i32 %380, 0
  br i1 %381, label %382, label %390

382:                                              ; preds = %374, %367
  %383 = load ptr, ptr %18, align 8, !tbaa !5
  %384 = load i32, ptr %59, align 4, !tbaa !9
  %385 = sext i32 %384 to i64
  %386 = getelementptr inbounds i32, ptr %383, i64 %385
  store i32 1, ptr %386, align 4, !tbaa !9
  %387 = load ptr, ptr %27, align 8, !tbaa !5
  %388 = load i32, ptr %387, align 4, !tbaa !9
  %389 = add nsw i32 %388, 2
  store i32 %389, ptr %387, align 4, !tbaa !9
  br label %390

390:                                              ; preds = %382, %374
  br label %391

391:                                              ; preds = %390, %366
  br label %405

392:                                              ; preds = %338
  %393 = load ptr, ptr %18, align 8, !tbaa !5
  %394 = load ptr, ptr %19, align 8, !tbaa !5
  %395 = load i32, ptr %394, align 4, !tbaa !9
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds i32, ptr %393, i64 %396
  %398 = load i32, ptr %397, align 4, !tbaa !9
  %399 = icmp ne i32 %398, 0
  br i1 %399, label %400, label %404

400:                                              ; preds = %392
  %401 = load ptr, ptr %27, align 8, !tbaa !5
  %402 = load i32, ptr %401, align 4, !tbaa !9
  %403 = add nsw i32 %402, 1
  store i32 %403, ptr %401, align 4, !tbaa !9
  br label %404

404:                                              ; preds = %400, %392
  br label %405

405:                                              ; preds = %404, %391
  br label %406

406:                                              ; preds = %405, %333
  br label %407

407:                                              ; preds = %406
  %408 = load i32, ptr %59, align 4, !tbaa !9
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr %59, align 4, !tbaa !9
  br label %326, !llvm.loop !18

410:                                              ; preds = %326
  br label %415

411:                                              ; preds = %319
  %412 = load ptr, ptr %19, align 8, !tbaa !5
  %413 = load i32, ptr %412, align 4, !tbaa !9
  %414 = load ptr, ptr %27, align 8, !tbaa !5
  store i32 %413, ptr %414, align 4, !tbaa !9
  br label %415

415:                                              ; preds = %411, %410
  %416 = load ptr, ptr %26, align 8, !tbaa !5
  %417 = load i32, ptr %416, align 4, !tbaa !9
  %418 = load ptr, ptr %27, align 8, !tbaa !5
  %419 = load i32, ptr %418, align 4, !tbaa !9
  %420 = icmp slt i32 %417, %419
  br i1 %420, label %421, label %423

421:                                              ; preds = %415
  %422 = load ptr, ptr %30, align 8, !tbaa !5
  store i32 -11, ptr %422, align 4, !tbaa !9
  br label %423

423:                                              ; preds = %421, %415
  br label %424

424:                                              ; preds = %423, %317
  br label %425

425:                                              ; preds = %424, %296
  br label %426

426:                                              ; preds = %425, %281
  br label %427

427:                                              ; preds = %426, %266
  br label %428

428:                                              ; preds = %427, %251
  br label %429

429:                                              ; preds = %428, %245
  br label %430

430:                                              ; preds = %429, %234
  %431 = load ptr, ptr %30, align 8, !tbaa !5
  %432 = load i32, ptr %431, align 4, !tbaa !9
  %433 = icmp ne i32 %432, 0
  br i1 %433, label %434, label %439

434:                                              ; preds = %430
  %435 = load ptr, ptr %30, align 8, !tbaa !5
  %436 = load i32, ptr %435, align 4, !tbaa !9
  %437 = sub nsw i32 0, %436
  store i32 %437, ptr %39, align 4, !tbaa !9
  %438 = call i32 @xerbla_(ptr noundef @.str.6, ptr noundef %39, i32 noundef 7)
  store i32 1, ptr %93, align 4
  br label %4822

439:                                              ; preds = %430
  %440 = load i32, ptr %85, align 4, !tbaa !9
  %441 = icmp ne i32 %440, 0
  br i1 %441, label %442, label %443

442:                                              ; preds = %439
  store i32 1, ptr %93, align 4
  br label %4822

443:                                              ; preds = %439
  br label %444

444:                                              ; preds = %443
  %445 = load ptr, ptr %19, align 8, !tbaa !5
  %446 = load i32, ptr %445, align 4, !tbaa !9
  %447 = icmp eq i32 %446, 0
  br i1 %447, label %448, label %449

448:                                              ; preds = %444
  store i32 1, ptr %93, align 4
  br label %4822

449:                                              ; preds = %444
  %450 = load i32, ptr %55, align 4, !tbaa !9
  %451 = icmp ne i32 %450, 0
  br i1 %451, label %452, label %486

452:                                              ; preds = %449
  %453 = load ptr, ptr %29, align 8, !tbaa !5
  %454 = load i32, ptr %453, align 4, !tbaa !9
  %455 = load ptr, ptr %19, align 8, !tbaa !5
  %456 = load i32, ptr %455, align 4, !tbaa !9
  %457 = load ptr, ptr %19, align 8, !tbaa !5
  %458 = load i32, ptr %457, align 4, !tbaa !9
  %459 = shl i32 %458, 4
  %460 = add nsw i32 %456, %459
  %461 = icmp sge i32 %454, %460
  br i1 %461, label %462, label %486

462:                                              ; preds = %452
  %463 = load ptr, ptr %29, align 8, !tbaa !5
  %464 = load i32, ptr %463, align 4, !tbaa !9
  %465 = load ptr, ptr %19, align 8, !tbaa !5
  %466 = load i32, ptr %465, align 4, !tbaa !9
  %467 = sub nsw i32 %464, %466
  %468 = load ptr, ptr %19, align 8, !tbaa !5
  %469 = load i32, ptr %468, align 4, !tbaa !9
  %470 = shl i32 %469, 1
  %471 = sdiv i32 %467, %470
  store i32 %471, ptr %72, align 4, !tbaa !9
  %472 = load i32, ptr %72, align 4, !tbaa !9
  %473 = icmp sle i32 %472, 128
  br i1 %473, label %474, label %476

474:                                              ; preds = %462
  %475 = load i32, ptr %72, align 4, !tbaa !9
  br label %477

476:                                              ; preds = %462
  br label %477

477:                                              ; preds = %476, %474
  %478 = phi i32 [ %475, %474 ], [ 128, %476 ]
  store i32 %478, ptr %72, align 4, !tbaa !9
  %479 = load i32, ptr %72, align 4, !tbaa !9
  %480 = shl i32 %479, 1
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr %39, align 4, !tbaa !9
  %482 = load ptr, ptr %19, align 8, !tbaa !5
  %483 = load ptr, ptr %28, align 8, !tbaa !5
  %484 = getelementptr inbounds float, ptr %483, i64 1
  %485 = load ptr, ptr %19, align 8, !tbaa !5
  call void @slaset_(ptr noundef @.str.7, ptr noundef %482, ptr noundef %39, ptr noundef @c_b17, ptr noundef @c_b17, ptr noundef %484, ptr noundef %485)
  br label %487

486:                                              ; preds = %452, %449
  store i32 1, ptr %72, align 4, !tbaa !9
  br label %487

487:                                              ; preds = %486, %477
  %488 = call float @slamch_(ptr noundef @.str.8)
  store float %488, ptr %52, align 4, !tbaa !16
  %489 = load float, ptr %52, align 4, !tbaa !16
  %490 = fdiv float 1.000000e+00, %489
  store float %490, ptr %53, align 4, !tbaa !16
  call void @slabad_(ptr noundef %52, ptr noundef %53)
  %491 = call float @slamch_(ptr noundef @.str.9)
  store float %491, ptr %87, align 4, !tbaa !16
  %492 = load float, ptr %52, align 4, !tbaa !16
  %493 = load ptr, ptr %19, align 8, !tbaa !5
  %494 = load i32, ptr %493, align 4, !tbaa !9
  %495 = sitofp i32 %494 to float
  %496 = load float, ptr %87, align 4, !tbaa !16
  %497 = fdiv float %495, %496
  %498 = fmul float %492, %497
  store float %498, ptr %84, align 4, !tbaa !16
  %499 = load float, ptr %87, align 4, !tbaa !16
  %500 = fsub float 1.000000e+00, %499
  %501 = load float, ptr %84, align 4, !tbaa !16
  %502 = fdiv float %500, %501
  store float %502, ptr %80, align 4, !tbaa !16
  %503 = load ptr, ptr %28, align 8, !tbaa !5
  %504 = getelementptr inbounds float, ptr %503, i64 1
  store float 0.000000e+00, ptr %504, align 4, !tbaa !16
  %505 = load ptr, ptr %19, align 8, !tbaa !5
  %506 = load i32, ptr %505, align 4, !tbaa !9
  store i32 %506, ptr %39, align 4, !tbaa !9
  store i32 2, ptr %59, align 4, !tbaa !9
  br label %507

507:                                              ; preds = %551, %487
  %508 = load i32, ptr %59, align 4, !tbaa !9
  %509 = load i32, ptr %39, align 4, !tbaa !9
  %510 = icmp sle i32 %508, %509
  br i1 %510, label %511, label %554

511:                                              ; preds = %507
  %512 = load ptr, ptr %28, align 8, !tbaa !5
  %513 = load i32, ptr %59, align 4, !tbaa !9
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds float, ptr %512, i64 %514
  store float 0.000000e+00, ptr %515, align 4, !tbaa !16
  %516 = load i32, ptr %59, align 4, !tbaa !9
  %517 = sub nsw i32 %516, 1
  store i32 %517, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %518

518:                                              ; preds = %547, %511
  %519 = load i32, ptr %58, align 4, !tbaa !9
  %520 = load i32, ptr %40, align 4, !tbaa !9
  %521 = icmp sle i32 %519, %520
  br i1 %521, label %522, label %550

522:                                              ; preds = %518
  %523 = load ptr, ptr %20, align 8, !tbaa !5
  %524 = load i32, ptr %58, align 4, !tbaa !9
  %525 = load i32, ptr %59, align 4, !tbaa !9
  %526 = load i32, ptr %32, align 4, !tbaa !9
  %527 = mul nsw i32 %525, %526
  %528 = add nsw i32 %524, %527
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds float, ptr %523, i64 %529
  %531 = load float, ptr %530, align 4, !tbaa !16
  store float %531, ptr %42, align 4, !tbaa !16
  %532 = load float, ptr %42, align 4, !tbaa !16
  %533 = fcmp oge float %532, 0.000000e+00
  br i1 %533, label %534, label %536

534:                                              ; preds = %522
  %535 = load float, ptr %42, align 4, !tbaa !16
  br label %539

536:                                              ; preds = %522
  %537 = load float, ptr %42, align 4, !tbaa !16
  %538 = fneg float %537
  br label %539

539:                                              ; preds = %536, %534
  %540 = phi float [ %535, %534 ], [ %538, %536 ]
  %541 = load ptr, ptr %28, align 8, !tbaa !5
  %542 = load i32, ptr %59, align 4, !tbaa !9
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds float, ptr %541, i64 %543
  %545 = load float, ptr %544, align 4, !tbaa !16
  %546 = fadd float %545, %540
  store float %546, ptr %544, align 4, !tbaa !16
  br label %547

547:                                              ; preds = %539
  %548 = load i32, ptr %58, align 4, !tbaa !9
  %549 = add nsw i32 %548, 1
  store i32 %549, ptr %58, align 4, !tbaa !9
  br label %518, !llvm.loop !19

550:                                              ; preds = %518
  br label %551

551:                                              ; preds = %550
  %552 = load i32, ptr %59, align 4, !tbaa !9
  %553 = add nsw i32 %552, 1
  store i32 %553, ptr %59, align 4, !tbaa !9
  br label %507, !llvm.loop !20

554:                                              ; preds = %507
  %555 = load i32, ptr %81, align 4, !tbaa !9
  %556 = icmp ne i32 %555, 0
  br i1 %556, label %557, label %2433

557:                                              ; preds = %554
  store i32 2, ptr %77, align 4, !tbaa !9
  %558 = load i32, ptr %72, align 4, !tbaa !9
  %559 = icmp sgt i32 %558, 2
  br i1 %559, label %560, label %562

560:                                              ; preds = %557
  %561 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %561, ptr %77, align 4, !tbaa !9
  br label %562

562:                                              ; preds = %560, %557
  store i32 0, ptr %75, align 4, !tbaa !9
  %563 = load ptr, ptr %27, align 8, !tbaa !5
  %564 = load i32, ptr %563, align 4, !tbaa !9
  store i32 %564, ptr %76, align 4, !tbaa !9
  %565 = load ptr, ptr %19, align 8, !tbaa !5
  %566 = load i32, ptr %565, align 4, !tbaa !9
  store i32 %566, ptr %74, align 4, !tbaa !9
  br label %567

567:                                              ; preds = %2429, %562
  %568 = load i32, ptr %74, align 4, !tbaa !9
  %569 = icmp sge i32 %568, 1
  br i1 %569, label %570, label %2432

570:                                              ; preds = %567
  %571 = load i32, ptr %75, align 4, !tbaa !9
  %572 = icmp eq i32 %571, -1
  br i1 %572, label %573, label %574

573:                                              ; preds = %570
  store i32 1, ptr %75, align 4, !tbaa !9
  br label %2428

574:                                              ; preds = %570
  %575 = load i32, ptr %74, align 4, !tbaa !9
  %576 = icmp eq i32 %575, 1
  br i1 %576, label %577, label %578

577:                                              ; preds = %574
  store i32 0, ptr %75, align 4, !tbaa !9
  br label %593

578:                                              ; preds = %574
  %579 = load ptr, ptr %20, align 8, !tbaa !5
  %580 = load i32, ptr %74, align 4, !tbaa !9
  %581 = load i32, ptr %74, align 4, !tbaa !9
  %582 = sub nsw i32 %581, 1
  %583 = load i32, ptr %32, align 4, !tbaa !9
  %584 = mul nsw i32 %582, %583
  %585 = add nsw i32 %580, %584
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds float, ptr %579, i64 %586
  %588 = load float, ptr %587, align 4, !tbaa !16
  %589 = fcmp oeq float %588, 0.000000e+00
  br i1 %589, label %590, label %591

590:                                              ; preds = %578
  store i32 0, ptr %75, align 4, !tbaa !9
  br label %592

591:                                              ; preds = %578
  store i32 -1, ptr %75, align 4, !tbaa !9
  br label %592

592:                                              ; preds = %591, %590
  br label %593

593:                                              ; preds = %592, %577
  br label %594

594:                                              ; preds = %593
  %595 = load i32, ptr %67, align 4, !tbaa !9
  %596 = icmp ne i32 %595, 0
  br i1 %596, label %597, label %620

597:                                              ; preds = %594
  %598 = load i32, ptr %75, align 4, !tbaa !9
  %599 = icmp eq i32 %598, 0
  br i1 %599, label %600, label %609

600:                                              ; preds = %597
  %601 = load ptr, ptr %18, align 8, !tbaa !5
  %602 = load i32, ptr %74, align 4, !tbaa !9
  %603 = sext i32 %602 to i64
  %604 = getelementptr inbounds i32, ptr %601, i64 %603
  %605 = load i32, ptr %604, align 4, !tbaa !9
  %606 = icmp ne i32 %605, 0
  br i1 %606, label %608, label %607

607:                                              ; preds = %600
  br label %2428

608:                                              ; preds = %600
  br label %619

609:                                              ; preds = %597
  %610 = load ptr, ptr %18, align 8, !tbaa !5
  %611 = load i32, ptr %74, align 4, !tbaa !9
  %612 = sub nsw i32 %611, 1
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds i32, ptr %610, i64 %613
  %615 = load i32, ptr %614, align 4, !tbaa !9
  %616 = icmp ne i32 %615, 0
  br i1 %616, label %618, label %617

617:                                              ; preds = %609
  br label %2428

618:                                              ; preds = %609
  br label %619

619:                                              ; preds = %618, %608
  br label %620

620:                                              ; preds = %619, %594
  %621 = load ptr, ptr %20, align 8, !tbaa !5
  %622 = load i32, ptr %74, align 4, !tbaa !9
  %623 = load i32, ptr %74, align 4, !tbaa !9
  %624 = load i32, ptr %32, align 4, !tbaa !9
  %625 = mul nsw i32 %623, %624
  %626 = add nsw i32 %622, %625
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds float, ptr %621, i64 %627
  %629 = load float, ptr %628, align 4, !tbaa !16
  store float %629, ptr %79, align 4, !tbaa !16
  store float 0.000000e+00, ptr %78, align 4, !tbaa !16
  %630 = load i32, ptr %75, align 4, !tbaa !9
  %631 = icmp ne i32 %630, 0
  br i1 %631, label %632, label %677

632:                                              ; preds = %620
  %633 = load ptr, ptr %20, align 8, !tbaa !5
  %634 = load i32, ptr %74, align 4, !tbaa !9
  %635 = load i32, ptr %74, align 4, !tbaa !9
  %636 = sub nsw i32 %635, 1
  %637 = load i32, ptr %32, align 4, !tbaa !9
  %638 = mul nsw i32 %636, %637
  %639 = add nsw i32 %634, %638
  %640 = sext i32 %639 to i64
  %641 = getelementptr inbounds float, ptr %633, i64 %640
  %642 = load float, ptr %641, align 4, !tbaa !16
  store float %642, ptr %42, align 4, !tbaa !16
  %643 = load float, ptr %42, align 4, !tbaa !16
  %644 = fcmp oge float %643, 0.000000e+00
  br i1 %644, label %645, label %647

645:                                              ; preds = %632
  %646 = load float, ptr %42, align 4, !tbaa !16
  br label %650

647:                                              ; preds = %632
  %648 = load float, ptr %42, align 4, !tbaa !16
  %649 = fneg float %648
  br label %650

650:                                              ; preds = %647, %645
  %651 = phi float [ %646, %645 ], [ %649, %647 ]
  %652 = fpext float %651 to double
  %653 = call double @sqrt(double noundef %652) #4
  %654 = load ptr, ptr %20, align 8, !tbaa !5
  %655 = load i32, ptr %74, align 4, !tbaa !9
  %656 = sub nsw i32 %655, 1
  %657 = load i32, ptr %74, align 4, !tbaa !9
  %658 = load i32, ptr %32, align 4, !tbaa !9
  %659 = mul nsw i32 %657, %658
  %660 = add nsw i32 %656, %659
  %661 = sext i32 %660 to i64
  %662 = getelementptr inbounds float, ptr %654, i64 %661
  %663 = load float, ptr %662, align 4, !tbaa !16
  store float %663, ptr %43, align 4, !tbaa !16
  %664 = load float, ptr %43, align 4, !tbaa !16
  %665 = fcmp oge float %664, 0.000000e+00
  br i1 %665, label %666, label %668

666:                                              ; preds = %650
  %667 = load float, ptr %43, align 4, !tbaa !16
  br label %671

668:                                              ; preds = %650
  %669 = load float, ptr %43, align 4, !tbaa !16
  %670 = fneg float %669
  br label %671

671:                                              ; preds = %668, %666
  %672 = phi float [ %667, %666 ], [ %670, %668 ]
  %673 = fpext float %672 to double
  %674 = call double @sqrt(double noundef %673) #4
  %675 = fmul double %653, %674
  %676 = fptrunc double %675 to float
  store float %676, ptr %78, align 4, !tbaa !16
  br label %677

677:                                              ; preds = %671, %620
  %678 = load float, ptr %87, align 4, !tbaa !16
  %679 = load float, ptr %79, align 4, !tbaa !16
  %680 = fcmp oge float %679, 0.000000e+00
  br i1 %680, label %681, label %683

681:                                              ; preds = %677
  %682 = load float, ptr %79, align 4, !tbaa !16
  br label %686

683:                                              ; preds = %677
  %684 = load float, ptr %79, align 4, !tbaa !16
  %685 = fneg float %684
  br label %686

686:                                              ; preds = %683, %681
  %687 = phi float [ %682, %681 ], [ %685, %683 ]
  %688 = load float, ptr %78, align 4, !tbaa !16
  %689 = fcmp oge float %688, 0.000000e+00
  br i1 %689, label %690, label %692

690:                                              ; preds = %686
  %691 = load float, ptr %78, align 4, !tbaa !16
  br label %695

692:                                              ; preds = %686
  %693 = load float, ptr %78, align 4, !tbaa !16
  %694 = fneg float %693
  br label %695

695:                                              ; preds = %692, %690
  %696 = phi float [ %691, %690 ], [ %694, %692 ]
  %697 = fadd float %687, %696
  %698 = fmul float %678, %697
  store float %698, ptr %42, align 4, !tbaa !16
  %699 = load float, ptr %42, align 4, !tbaa !16
  %700 = load float, ptr %84, align 4, !tbaa !16
  %701 = fcmp oge float %699, %700
  br i1 %701, label %702, label %704

702:                                              ; preds = %695
  %703 = load float, ptr %42, align 4, !tbaa !16
  br label %706

704:                                              ; preds = %695
  %705 = load float, ptr %84, align 4, !tbaa !16
  br label %706

706:                                              ; preds = %704, %702
  %707 = phi float [ %703, %702 ], [ %705, %704 ]
  store float %707, ptr %54, align 4, !tbaa !16
  %708 = load i32, ptr %75, align 4, !tbaa !9
  %709 = icmp eq i32 %708, 0
  br i1 %709, label %710, label %1204

710:                                              ; preds = %706
  %711 = load ptr, ptr %28, align 8, !tbaa !5
  %712 = load i32, ptr %74, align 4, !tbaa !9
  %713 = load i32, ptr %77, align 4, !tbaa !9
  %714 = load ptr, ptr %19, align 8, !tbaa !5
  %715 = load i32, ptr %714, align 4, !tbaa !9
  %716 = mul nsw i32 %713, %715
  %717 = add nsw i32 %712, %716
  %718 = sext i32 %717 to i64
  %719 = getelementptr inbounds float, ptr %711, i64 %718
  store float 1.000000e+00, ptr %719, align 4, !tbaa !16
  %720 = load i32, ptr %74, align 4, !tbaa !9
  %721 = sub nsw i32 %720, 1
  store i32 %721, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %722

722:                                              ; preds = %746, %710
  %723 = load i32, ptr %60, align 4, !tbaa !9
  %724 = load i32, ptr %39, align 4, !tbaa !9
  %725 = icmp sle i32 %723, %724
  br i1 %725, label %726, label %749

726:                                              ; preds = %722
  %727 = load ptr, ptr %20, align 8, !tbaa !5
  %728 = load i32, ptr %60, align 4, !tbaa !9
  %729 = load i32, ptr %74, align 4, !tbaa !9
  %730 = load i32, ptr %32, align 4, !tbaa !9
  %731 = mul nsw i32 %729, %730
  %732 = add nsw i32 %728, %731
  %733 = sext i32 %732 to i64
  %734 = getelementptr inbounds float, ptr %727, i64 %733
  %735 = load float, ptr %734, align 4, !tbaa !16
  %736 = fneg float %735
  %737 = load ptr, ptr %28, align 8, !tbaa !5
  %738 = load i32, ptr %60, align 4, !tbaa !9
  %739 = load i32, ptr %77, align 4, !tbaa !9
  %740 = load ptr, ptr %19, align 8, !tbaa !5
  %741 = load i32, ptr %740, align 4, !tbaa !9
  %742 = mul nsw i32 %739, %741
  %743 = add nsw i32 %738, %742
  %744 = sext i32 %743 to i64
  %745 = getelementptr inbounds float, ptr %737, i64 %744
  store float %736, ptr %745, align 4, !tbaa !16
  br label %746

746:                                              ; preds = %726
  %747 = load i32, ptr %60, align 4, !tbaa !9
  %748 = add nsw i32 %747, 1
  store i32 %748, ptr %60, align 4, !tbaa !9
  br label %722, !llvm.loop !21

749:                                              ; preds = %722
  %750 = load i32, ptr %74, align 4, !tbaa !9
  %751 = sub nsw i32 %750, 1
  store i32 %751, ptr %57, align 4, !tbaa !9
  %752 = load i32, ptr %74, align 4, !tbaa !9
  %753 = sub nsw i32 %752, 1
  store i32 %753, ptr %59, align 4, !tbaa !9
  br label %754

754:                                              ; preds = %1021, %749
  %755 = load i32, ptr %59, align 4, !tbaa !9
  %756 = icmp sge i32 %755, 1
  br i1 %756, label %757, label %1024

757:                                              ; preds = %754
  %758 = load i32, ptr %59, align 4, !tbaa !9
  %759 = load i32, ptr %57, align 4, !tbaa !9
  %760 = icmp sgt i32 %758, %759
  br i1 %760, label %761, label %762

761:                                              ; preds = %757
  br label %1020

762:                                              ; preds = %757
  %763 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %763, ptr %68, align 4, !tbaa !9
  %764 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %764, ptr %69, align 4, !tbaa !9
  %765 = load i32, ptr %59, align 4, !tbaa !9
  %766 = sub nsw i32 %765, 1
  store i32 %766, ptr %57, align 4, !tbaa !9
  %767 = load i32, ptr %59, align 4, !tbaa !9
  %768 = icmp sgt i32 %767, 1
  br i1 %768, label %769, label %787

769:                                              ; preds = %762
  %770 = load ptr, ptr %20, align 8, !tbaa !5
  %771 = load i32, ptr %59, align 4, !tbaa !9
  %772 = load i32, ptr %59, align 4, !tbaa !9
  %773 = sub nsw i32 %772, 1
  %774 = load i32, ptr %32, align 4, !tbaa !9
  %775 = mul nsw i32 %773, %774
  %776 = add nsw i32 %771, %775
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds float, ptr %770, i64 %777
  %779 = load float, ptr %778, align 4, !tbaa !16
  %780 = fcmp une float %779, 0.000000e+00
  br i1 %780, label %781, label %786

781:                                              ; preds = %769
  %782 = load i32, ptr %59, align 4, !tbaa !9
  %783 = sub nsw i32 %782, 1
  store i32 %783, ptr %68, align 4, !tbaa !9
  %784 = load i32, ptr %59, align 4, !tbaa !9
  %785 = sub nsw i32 %784, 2
  store i32 %785, ptr %57, align 4, !tbaa !9
  br label %786

786:                                              ; preds = %781, %769
  br label %787

787:                                              ; preds = %786, %762
  %788 = load i32, ptr %68, align 4, !tbaa !9
  %789 = load i32, ptr %69, align 4, !tbaa !9
  %790 = icmp eq i32 %788, %789
  br i1 %790, label %791, label %877

791:                                              ; preds = %787
  %792 = load ptr, ptr %20, align 8, !tbaa !5
  %793 = load i32, ptr %59, align 4, !tbaa !9
  %794 = load i32, ptr %59, align 4, !tbaa !9
  %795 = load i32, ptr %32, align 4, !tbaa !9
  %796 = mul nsw i32 %794, %795
  %797 = add nsw i32 %793, %796
  %798 = sext i32 %797 to i64
  %799 = getelementptr inbounds float, ptr %792, i64 %798
  %800 = load ptr, ptr %21, align 8, !tbaa !5
  %801 = load ptr, ptr %28, align 8, !tbaa !5
  %802 = load i32, ptr %59, align 4, !tbaa !9
  %803 = load i32, ptr %77, align 4, !tbaa !9
  %804 = load ptr, ptr %19, align 8, !tbaa !5
  %805 = load i32, ptr %804, align 4, !tbaa !9
  %806 = mul nsw i32 %803, %805
  %807 = add nsw i32 %802, %806
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds float, ptr %801, i64 %808
  %810 = load ptr, ptr %19, align 8, !tbaa !5
  %811 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_false, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %54, ptr noundef @c_b29, ptr noundef %799, ptr noundef %800, ptr noundef @c_b29, ptr noundef @c_b29, ptr noundef %809, ptr noundef %810, ptr noundef %79, ptr noundef @c_b17, ptr noundef %811, ptr noundef @c__2, ptr noundef %61, ptr noundef %70, ptr noundef %51)
  %812 = load float, ptr %70, align 4, !tbaa !16
  %813 = fcmp ogt float %812, 1.000000e+00
  br i1 %813, label %814, label %833

814:                                              ; preds = %791
  %815 = load ptr, ptr %28, align 8, !tbaa !5
  %816 = load i32, ptr %59, align 4, !tbaa !9
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds float, ptr %815, i64 %817
  %819 = load float, ptr %818, align 4, !tbaa !16
  %820 = load float, ptr %80, align 4, !tbaa !16
  %821 = load float, ptr %70, align 4, !tbaa !16
  %822 = fdiv float %820, %821
  %823 = fcmp ogt float %819, %822
  br i1 %823, label %824, label %832

824:                                              ; preds = %814
  %825 = load float, ptr %70, align 4, !tbaa !16
  %826 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %827 = load float, ptr %826, align 16, !tbaa !16
  %828 = fdiv float %827, %825
  store float %828, ptr %826, align 16, !tbaa !16
  %829 = load float, ptr %70, align 4, !tbaa !16
  %830 = load float, ptr %61, align 4, !tbaa !16
  %831 = fdiv float %830, %829
  store float %831, ptr %61, align 4, !tbaa !16
  br label %832

832:                                              ; preds = %824, %814
  br label %833

833:                                              ; preds = %832, %791
  %834 = load float, ptr %61, align 4, !tbaa !16
  %835 = fcmp une float %834, 1.000000e+00
  br i1 %835, label %836, label %845

836:                                              ; preds = %833
  %837 = load ptr, ptr %28, align 8, !tbaa !5
  %838 = load i32, ptr %77, align 4, !tbaa !9
  %839 = load ptr, ptr %19, align 8, !tbaa !5
  %840 = load i32, ptr %839, align 4, !tbaa !9
  %841 = mul nsw i32 %838, %840
  %842 = add nsw i32 %841, 1
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds float, ptr %837, i64 %843
  call void @sscal_(ptr noundef %74, ptr noundef %61, ptr noundef %844, ptr noundef @c__1)
  br label %845

845:                                              ; preds = %836, %833
  %846 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %847 = load float, ptr %846, align 16, !tbaa !16
  %848 = load ptr, ptr %28, align 8, !tbaa !5
  %849 = load i32, ptr %59, align 4, !tbaa !9
  %850 = load i32, ptr %77, align 4, !tbaa !9
  %851 = load ptr, ptr %19, align 8, !tbaa !5
  %852 = load i32, ptr %851, align 4, !tbaa !9
  %853 = mul nsw i32 %850, %852
  %854 = add nsw i32 %849, %853
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds float, ptr %848, i64 %855
  store float %847, ptr %856, align 4, !tbaa !16
  %857 = load i32, ptr %59, align 4, !tbaa !9
  %858 = sub nsw i32 %857, 1
  store i32 %858, ptr %39, align 4, !tbaa !9
  %859 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %860 = load float, ptr %859, align 16, !tbaa !16
  %861 = fneg float %860
  store float %861, ptr %42, align 4, !tbaa !16
  %862 = load ptr, ptr %20, align 8, !tbaa !5
  %863 = load i32, ptr %59, align 4, !tbaa !9
  %864 = load i32, ptr %32, align 4, !tbaa !9
  %865 = mul nsw i32 %863, %864
  %866 = add nsw i32 %865, 1
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds float, ptr %862, i64 %867
  %869 = load ptr, ptr %28, align 8, !tbaa !5
  %870 = load i32, ptr %77, align 4, !tbaa !9
  %871 = load ptr, ptr %19, align 8, !tbaa !5
  %872 = load i32, ptr %871, align 4, !tbaa !9
  %873 = mul nsw i32 %870, %872
  %874 = add nsw i32 %873, 1
  %875 = sext i32 %874 to i64
  %876 = getelementptr inbounds float, ptr %869, i64 %875
  call void @saxpy_(ptr noundef %39, ptr noundef %42, ptr noundef %868, ptr noundef @c__1, ptr noundef %876, ptr noundef @c__1)
  br label %1019

877:                                              ; preds = %787
  %878 = load ptr, ptr %20, align 8, !tbaa !5
  %879 = load i32, ptr %59, align 4, !tbaa !9
  %880 = sub nsw i32 %879, 1
  %881 = load i32, ptr %59, align 4, !tbaa !9
  %882 = sub nsw i32 %881, 1
  %883 = load i32, ptr %32, align 4, !tbaa !9
  %884 = mul nsw i32 %882, %883
  %885 = add nsw i32 %880, %884
  %886 = sext i32 %885 to i64
  %887 = getelementptr inbounds float, ptr %878, i64 %886
  %888 = load ptr, ptr %21, align 8, !tbaa !5
  %889 = load ptr, ptr %28, align 8, !tbaa !5
  %890 = load i32, ptr %59, align 4, !tbaa !9
  %891 = sub nsw i32 %890, 1
  %892 = load i32, ptr %77, align 4, !tbaa !9
  %893 = load ptr, ptr %19, align 8, !tbaa !5
  %894 = load i32, ptr %893, align 4, !tbaa !9
  %895 = mul nsw i32 %892, %894
  %896 = add nsw i32 %891, %895
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds float, ptr %889, i64 %897
  %899 = load ptr, ptr %19, align 8, !tbaa !5
  %900 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_false, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %54, ptr noundef @c_b29, ptr noundef %887, ptr noundef %888, ptr noundef @c_b29, ptr noundef @c_b29, ptr noundef %898, ptr noundef %899, ptr noundef %79, ptr noundef @c_b17, ptr noundef %900, ptr noundef @c__2, ptr noundef %61, ptr noundef %70, ptr noundef %51)
  %901 = load float, ptr %70, align 4, !tbaa !16
  %902 = fcmp ogt float %901, 1.000000e+00
  br i1 %902, label %903, label %942

903:                                              ; preds = %877
  %904 = load ptr, ptr %28, align 8, !tbaa !5
  %905 = load i32, ptr %59, align 4, !tbaa !9
  %906 = sub nsw i32 %905, 1
  %907 = sext i32 %906 to i64
  %908 = getelementptr inbounds float, ptr %904, i64 %907
  %909 = load float, ptr %908, align 4, !tbaa !16
  store float %909, ptr %42, align 4, !tbaa !16
  %910 = load ptr, ptr %28, align 8, !tbaa !5
  %911 = load i32, ptr %59, align 4, !tbaa !9
  %912 = sext i32 %911 to i64
  %913 = getelementptr inbounds float, ptr %910, i64 %912
  %914 = load float, ptr %913, align 4, !tbaa !16
  store float %914, ptr %43, align 4, !tbaa !16
  %915 = load float, ptr %42, align 4, !tbaa !16
  %916 = load float, ptr %43, align 4, !tbaa !16
  %917 = fcmp oge float %915, %916
  br i1 %917, label %918, label %920

918:                                              ; preds = %903
  %919 = load float, ptr %42, align 4, !tbaa !16
  br label %922

920:                                              ; preds = %903
  %921 = load float, ptr %43, align 4, !tbaa !16
  br label %922

922:                                              ; preds = %920, %918
  %923 = phi float [ %919, %918 ], [ %921, %920 ]
  store float %923, ptr %47, align 4, !tbaa !16
  %924 = load float, ptr %47, align 4, !tbaa !16
  %925 = load float, ptr %80, align 4, !tbaa !16
  %926 = load float, ptr %70, align 4, !tbaa !16
  %927 = fdiv float %925, %926
  %928 = fcmp ogt float %924, %927
  br i1 %928, label %929, label %941

929:                                              ; preds = %922
  %930 = load float, ptr %70, align 4, !tbaa !16
  %931 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %932 = load float, ptr %931, align 16, !tbaa !16
  %933 = fdiv float %932, %930
  store float %933, ptr %931, align 16, !tbaa !16
  %934 = load float, ptr %70, align 4, !tbaa !16
  %935 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 1
  %936 = load float, ptr %935, align 4, !tbaa !16
  %937 = fdiv float %936, %934
  store float %937, ptr %935, align 4, !tbaa !16
  %938 = load float, ptr %70, align 4, !tbaa !16
  %939 = load float, ptr %61, align 4, !tbaa !16
  %940 = fdiv float %939, %938
  store float %940, ptr %61, align 4, !tbaa !16
  br label %941

941:                                              ; preds = %929, %922
  br label %942

942:                                              ; preds = %941, %877
  %943 = load float, ptr %61, align 4, !tbaa !16
  %944 = fcmp une float %943, 1.000000e+00
  br i1 %944, label %945, label %954

945:                                              ; preds = %942
  %946 = load ptr, ptr %28, align 8, !tbaa !5
  %947 = load i32, ptr %77, align 4, !tbaa !9
  %948 = load ptr, ptr %19, align 8, !tbaa !5
  %949 = load i32, ptr %948, align 4, !tbaa !9
  %950 = mul nsw i32 %947, %949
  %951 = add nsw i32 %950, 1
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds float, ptr %946, i64 %952
  call void @sscal_(ptr noundef %74, ptr noundef %61, ptr noundef %953, ptr noundef @c__1)
  br label %954

954:                                              ; preds = %945, %942
  %955 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %956 = load float, ptr %955, align 16, !tbaa !16
  %957 = load ptr, ptr %28, align 8, !tbaa !5
  %958 = load i32, ptr %59, align 4, !tbaa !9
  %959 = sub nsw i32 %958, 1
  %960 = load i32, ptr %77, align 4, !tbaa !9
  %961 = load ptr, ptr %19, align 8, !tbaa !5
  %962 = load i32, ptr %961, align 4, !tbaa !9
  %963 = mul nsw i32 %960, %962
  %964 = add nsw i32 %959, %963
  %965 = sext i32 %964 to i64
  %966 = getelementptr inbounds float, ptr %957, i64 %965
  store float %956, ptr %966, align 4, !tbaa !16
  %967 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 1
  %968 = load float, ptr %967, align 4, !tbaa !16
  %969 = load ptr, ptr %28, align 8, !tbaa !5
  %970 = load i32, ptr %59, align 4, !tbaa !9
  %971 = load i32, ptr %77, align 4, !tbaa !9
  %972 = load ptr, ptr %19, align 8, !tbaa !5
  %973 = load i32, ptr %972, align 4, !tbaa !9
  %974 = mul nsw i32 %971, %973
  %975 = add nsw i32 %970, %974
  %976 = sext i32 %975 to i64
  %977 = getelementptr inbounds float, ptr %969, i64 %976
  store float %968, ptr %977, align 4, !tbaa !16
  %978 = load i32, ptr %59, align 4, !tbaa !9
  %979 = sub nsw i32 %978, 2
  store i32 %979, ptr %39, align 4, !tbaa !9
  %980 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %981 = load float, ptr %980, align 16, !tbaa !16
  %982 = fneg float %981
  store float %982, ptr %42, align 4, !tbaa !16
  %983 = load ptr, ptr %20, align 8, !tbaa !5
  %984 = load i32, ptr %59, align 4, !tbaa !9
  %985 = sub nsw i32 %984, 1
  %986 = load i32, ptr %32, align 4, !tbaa !9
  %987 = mul nsw i32 %985, %986
  %988 = add nsw i32 %987, 1
  %989 = sext i32 %988 to i64
  %990 = getelementptr inbounds float, ptr %983, i64 %989
  %991 = load ptr, ptr %28, align 8, !tbaa !5
  %992 = load i32, ptr %77, align 4, !tbaa !9
  %993 = load ptr, ptr %19, align 8, !tbaa !5
  %994 = load i32, ptr %993, align 4, !tbaa !9
  %995 = mul nsw i32 %992, %994
  %996 = add nsw i32 %995, 1
  %997 = sext i32 %996 to i64
  %998 = getelementptr inbounds float, ptr %991, i64 %997
  call void @saxpy_(ptr noundef %39, ptr noundef %42, ptr noundef %990, ptr noundef @c__1, ptr noundef %998, ptr noundef @c__1)
  %999 = load i32, ptr %59, align 4, !tbaa !9
  %1000 = sub nsw i32 %999, 2
  store i32 %1000, ptr %39, align 4, !tbaa !9
  %1001 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 1
  %1002 = load float, ptr %1001, align 4, !tbaa !16
  %1003 = fneg float %1002
  store float %1003, ptr %42, align 4, !tbaa !16
  %1004 = load ptr, ptr %20, align 8, !tbaa !5
  %1005 = load i32, ptr %59, align 4, !tbaa !9
  %1006 = load i32, ptr %32, align 4, !tbaa !9
  %1007 = mul nsw i32 %1005, %1006
  %1008 = add nsw i32 %1007, 1
  %1009 = sext i32 %1008 to i64
  %1010 = getelementptr inbounds float, ptr %1004, i64 %1009
  %1011 = load ptr, ptr %28, align 8, !tbaa !5
  %1012 = load i32, ptr %77, align 4, !tbaa !9
  %1013 = load ptr, ptr %19, align 8, !tbaa !5
  %1014 = load i32, ptr %1013, align 4, !tbaa !9
  %1015 = mul nsw i32 %1012, %1014
  %1016 = add nsw i32 %1015, 1
  %1017 = sext i32 %1016 to i64
  %1018 = getelementptr inbounds float, ptr %1011, i64 %1017
  call void @saxpy_(ptr noundef %39, ptr noundef %42, ptr noundef %1010, ptr noundef @c__1, ptr noundef %1018, ptr noundef @c__1)
  br label %1019

1019:                                             ; preds = %954, %845
  br label %1020

1020:                                             ; preds = %1019, %761
  br label %1021

1021:                                             ; preds = %1020
  %1022 = load i32, ptr %59, align 4, !tbaa !9
  %1023 = add nsw i32 %1022, -1
  store i32 %1023, ptr %59, align 4, !tbaa !9
  br label %754, !llvm.loop !22

1024:                                             ; preds = %754
  %1025 = load i32, ptr %55, align 4, !tbaa !9
  %1026 = icmp ne i32 %1025, 0
  br i1 %1026, label %1098, label %1027

1027:                                             ; preds = %1024
  %1028 = load ptr, ptr %28, align 8, !tbaa !5
  %1029 = load i32, ptr %77, align 4, !tbaa !9
  %1030 = load ptr, ptr %19, align 8, !tbaa !5
  %1031 = load i32, ptr %1030, align 4, !tbaa !9
  %1032 = mul nsw i32 %1029, %1031
  %1033 = add nsw i32 %1032, 1
  %1034 = sext i32 %1033 to i64
  %1035 = getelementptr inbounds float, ptr %1028, i64 %1034
  %1036 = load ptr, ptr %24, align 8, !tbaa !5
  %1037 = load i32, ptr %76, align 4, !tbaa !9
  %1038 = load i32, ptr %36, align 4, !tbaa !9
  %1039 = mul nsw i32 %1037, %1038
  %1040 = add nsw i32 %1039, 1
  %1041 = sext i32 %1040 to i64
  %1042 = getelementptr inbounds float, ptr %1036, i64 %1041
  call void @scopy_(ptr noundef %74, ptr noundef %1035, ptr noundef @c__1, ptr noundef %1042, ptr noundef @c__1)
  %1043 = load ptr, ptr %24, align 8, !tbaa !5
  %1044 = load i32, ptr %76, align 4, !tbaa !9
  %1045 = load i32, ptr %36, align 4, !tbaa !9
  %1046 = mul nsw i32 %1044, %1045
  %1047 = add nsw i32 %1046, 1
  %1048 = sext i32 %1047 to i64
  %1049 = getelementptr inbounds float, ptr %1043, i64 %1048
  %1050 = call i32 @isamax_(ptr noundef %74, ptr noundef %1049, ptr noundef @c__1)
  store i32 %1050, ptr %73, align 4, !tbaa !9
  %1051 = load ptr, ptr %24, align 8, !tbaa !5
  %1052 = load i32, ptr %73, align 4, !tbaa !9
  %1053 = load i32, ptr %76, align 4, !tbaa !9
  %1054 = load i32, ptr %36, align 4, !tbaa !9
  %1055 = mul nsw i32 %1053, %1054
  %1056 = add nsw i32 %1052, %1055
  %1057 = sext i32 %1056 to i64
  %1058 = getelementptr inbounds float, ptr %1051, i64 %1057
  %1059 = load float, ptr %1058, align 4, !tbaa !16
  store float %1059, ptr %42, align 4, !tbaa !16
  %1060 = load float, ptr %42, align 4, !tbaa !16
  %1061 = fcmp oge float %1060, 0.000000e+00
  br i1 %1061, label %1062, label %1064

1062:                                             ; preds = %1027
  %1063 = load float, ptr %42, align 4, !tbaa !16
  br label %1067

1064:                                             ; preds = %1027
  %1065 = load float, ptr %42, align 4, !tbaa !16
  %1066 = fneg float %1065
  br label %1067

1067:                                             ; preds = %1064, %1062
  %1068 = phi float [ %1063, %1062 ], [ %1066, %1064 ]
  %1069 = fdiv float 1.000000e+00, %1068
  store float %1069, ptr %63, align 4, !tbaa !16
  %1070 = load ptr, ptr %24, align 8, !tbaa !5
  %1071 = load i32, ptr %76, align 4, !tbaa !9
  %1072 = load i32, ptr %36, align 4, !tbaa !9
  %1073 = mul nsw i32 %1071, %1072
  %1074 = add nsw i32 %1073, 1
  %1075 = sext i32 %1074 to i64
  %1076 = getelementptr inbounds float, ptr %1070, i64 %1075
  call void @sscal_(ptr noundef %74, ptr noundef %63, ptr noundef %1076, ptr noundef @c__1)
  %1077 = load ptr, ptr %19, align 8, !tbaa !5
  %1078 = load i32, ptr %1077, align 4, !tbaa !9
  store i32 %1078, ptr %39, align 4, !tbaa !9
  %1079 = load i32, ptr %74, align 4, !tbaa !9
  %1080 = add nsw i32 %1079, 1
  store i32 %1080, ptr %60, align 4, !tbaa !9
  br label %1081

1081:                                             ; preds = %1094, %1067
  %1082 = load i32, ptr %60, align 4, !tbaa !9
  %1083 = load i32, ptr %39, align 4, !tbaa !9
  %1084 = icmp sle i32 %1082, %1083
  br i1 %1084, label %1085, label %1097

1085:                                             ; preds = %1081
  %1086 = load ptr, ptr %24, align 8, !tbaa !5
  %1087 = load i32, ptr %60, align 4, !tbaa !9
  %1088 = load i32, ptr %76, align 4, !tbaa !9
  %1089 = load i32, ptr %36, align 4, !tbaa !9
  %1090 = mul nsw i32 %1088, %1089
  %1091 = add nsw i32 %1087, %1090
  %1092 = sext i32 %1091 to i64
  %1093 = getelementptr inbounds float, ptr %1086, i64 %1092
  store float 0.000000e+00, ptr %1093, align 4, !tbaa !16
  br label %1094

1094:                                             ; preds = %1085
  %1095 = load i32, ptr %60, align 4, !tbaa !9
  %1096 = add nsw i32 %1095, 1
  store i32 %1096, ptr %60, align 4, !tbaa !9
  br label %1081, !llvm.loop !23

1097:                                             ; preds = %1081
  br label %1203

1098:                                             ; preds = %1024
  %1099 = load i32, ptr %72, align 4, !tbaa !9
  %1100 = icmp eq i32 %1099, 1
  br i1 %1100, label %1101, label %1174

1101:                                             ; preds = %1098
  %1102 = load i32, ptr %74, align 4, !tbaa !9
  %1103 = icmp sgt i32 %1102, 1
  br i1 %1103, label %1104, label %1137

1104:                                             ; preds = %1101
  %1105 = load i32, ptr %74, align 4, !tbaa !9
  %1106 = sub nsw i32 %1105, 1
  store i32 %1106, ptr %39, align 4, !tbaa !9
  %1107 = load ptr, ptr %19, align 8, !tbaa !5
  %1108 = load ptr, ptr %24, align 8, !tbaa !5
  %1109 = load i32, ptr %37, align 4, !tbaa !9
  %1110 = sext i32 %1109 to i64
  %1111 = getelementptr inbounds float, ptr %1108, i64 %1110
  %1112 = load ptr, ptr %25, align 8, !tbaa !5
  %1113 = load ptr, ptr %28, align 8, !tbaa !5
  %1114 = load i32, ptr %77, align 4, !tbaa !9
  %1115 = load ptr, ptr %19, align 8, !tbaa !5
  %1116 = load i32, ptr %1115, align 4, !tbaa !9
  %1117 = mul nsw i32 %1114, %1116
  %1118 = add nsw i32 %1117, 1
  %1119 = sext i32 %1118 to i64
  %1120 = getelementptr inbounds float, ptr %1113, i64 %1119
  %1121 = load ptr, ptr %28, align 8, !tbaa !5
  %1122 = load i32, ptr %74, align 4, !tbaa !9
  %1123 = load i32, ptr %77, align 4, !tbaa !9
  %1124 = load ptr, ptr %19, align 8, !tbaa !5
  %1125 = load i32, ptr %1124, align 4, !tbaa !9
  %1126 = mul nsw i32 %1123, %1125
  %1127 = add nsw i32 %1122, %1126
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds float, ptr %1121, i64 %1128
  %1130 = load ptr, ptr %24, align 8, !tbaa !5
  %1131 = load i32, ptr %74, align 4, !tbaa !9
  %1132 = load i32, ptr %36, align 4, !tbaa !9
  %1133 = mul nsw i32 %1131, %1132
  %1134 = add nsw i32 %1133, 1
  %1135 = sext i32 %1134 to i64
  %1136 = getelementptr inbounds float, ptr %1130, i64 %1135
  call void @sgemv_(ptr noundef @.str.10, ptr noundef %1107, ptr noundef %39, ptr noundef @c_b29, ptr noundef %1111, ptr noundef %1112, ptr noundef %1120, ptr noundef @c__1, ptr noundef %1129, ptr noundef %1136, ptr noundef @c__1)
  br label %1137

1137:                                             ; preds = %1104, %1101
  %1138 = load ptr, ptr %19, align 8, !tbaa !5
  %1139 = load ptr, ptr %24, align 8, !tbaa !5
  %1140 = load i32, ptr %74, align 4, !tbaa !9
  %1141 = load i32, ptr %36, align 4, !tbaa !9
  %1142 = mul nsw i32 %1140, %1141
  %1143 = add nsw i32 %1142, 1
  %1144 = sext i32 %1143 to i64
  %1145 = getelementptr inbounds float, ptr %1139, i64 %1144
  %1146 = call i32 @isamax_(ptr noundef %1138, ptr noundef %1145, ptr noundef @c__1)
  store i32 %1146, ptr %73, align 4, !tbaa !9
  %1147 = load ptr, ptr %24, align 8, !tbaa !5
  %1148 = load i32, ptr %73, align 4, !tbaa !9
  %1149 = load i32, ptr %74, align 4, !tbaa !9
  %1150 = load i32, ptr %36, align 4, !tbaa !9
  %1151 = mul nsw i32 %1149, %1150
  %1152 = add nsw i32 %1148, %1151
  %1153 = sext i32 %1152 to i64
  %1154 = getelementptr inbounds float, ptr %1147, i64 %1153
  %1155 = load float, ptr %1154, align 4, !tbaa !16
  store float %1155, ptr %42, align 4, !tbaa !16
  %1156 = load float, ptr %42, align 4, !tbaa !16
  %1157 = fcmp oge float %1156, 0.000000e+00
  br i1 %1157, label %1158, label %1160

1158:                                             ; preds = %1137
  %1159 = load float, ptr %42, align 4, !tbaa !16
  br label %1163

1160:                                             ; preds = %1137
  %1161 = load float, ptr %42, align 4, !tbaa !16
  %1162 = fneg float %1161
  br label %1163

1163:                                             ; preds = %1160, %1158
  %1164 = phi float [ %1159, %1158 ], [ %1162, %1160 ]
  %1165 = fdiv float 1.000000e+00, %1164
  store float %1165, ptr %63, align 4, !tbaa !16
  %1166 = load ptr, ptr %19, align 8, !tbaa !5
  %1167 = load ptr, ptr %24, align 8, !tbaa !5
  %1168 = load i32, ptr %74, align 4, !tbaa !9
  %1169 = load i32, ptr %36, align 4, !tbaa !9
  %1170 = mul nsw i32 %1168, %1169
  %1171 = add nsw i32 %1170, 1
  %1172 = sext i32 %1171 to i64
  %1173 = getelementptr inbounds float, ptr %1167, i64 %1172
  call void @sscal_(ptr noundef %1166, ptr noundef %63, ptr noundef %1173, ptr noundef @c__1)
  br label %1202

1174:                                             ; preds = %1098
  %1175 = load ptr, ptr %19, align 8, !tbaa !5
  %1176 = load i32, ptr %1175, align 4, !tbaa !9
  store i32 %1176, ptr %39, align 4, !tbaa !9
  %1177 = load i32, ptr %74, align 4, !tbaa !9
  %1178 = add nsw i32 %1177, 1
  store i32 %1178, ptr %60, align 4, !tbaa !9
  br label %1179

1179:                                             ; preds = %1193, %1174
  %1180 = load i32, ptr %60, align 4, !tbaa !9
  %1181 = load i32, ptr %39, align 4, !tbaa !9
  %1182 = icmp sle i32 %1180, %1181
  br i1 %1182, label %1183, label %1196

1183:                                             ; preds = %1179
  %1184 = load ptr, ptr %28, align 8, !tbaa !5
  %1185 = load i32, ptr %60, align 4, !tbaa !9
  %1186 = load i32, ptr %77, align 4, !tbaa !9
  %1187 = load ptr, ptr %19, align 8, !tbaa !5
  %1188 = load i32, ptr %1187, align 4, !tbaa !9
  %1189 = mul nsw i32 %1186, %1188
  %1190 = add nsw i32 %1185, %1189
  %1191 = sext i32 %1190 to i64
  %1192 = getelementptr inbounds float, ptr %1184, i64 %1191
  store float 0.000000e+00, ptr %1192, align 4, !tbaa !16
  br label %1193

1193:                                             ; preds = %1183
  %1194 = load i32, ptr %60, align 4, !tbaa !9
  %1195 = add nsw i32 %1194, 1
  store i32 %1195, ptr %60, align 4, !tbaa !9
  br label %1179, !llvm.loop !24

1196:                                             ; preds = %1179
  %1197 = load i32, ptr %75, align 4, !tbaa !9
  %1198 = load i32, ptr %77, align 4, !tbaa !9
  %1199 = sub nsw i32 %1198, 1
  %1200 = sext i32 %1199 to i64
  %1201 = getelementptr inbounds [128 x i32], ptr %71, i64 0, i64 %1200
  store i32 %1197, ptr %1201, align 4, !tbaa !9
  br label %1202

1202:                                             ; preds = %1196, %1163
  br label %1203

1203:                                             ; preds = %1202, %1097
  br label %2197

1204:                                             ; preds = %706
  %1205 = load ptr, ptr %20, align 8, !tbaa !5
  %1206 = load i32, ptr %74, align 4, !tbaa !9
  %1207 = sub nsw i32 %1206, 1
  %1208 = load i32, ptr %74, align 4, !tbaa !9
  %1209 = load i32, ptr %32, align 4, !tbaa !9
  %1210 = mul nsw i32 %1208, %1209
  %1211 = add nsw i32 %1207, %1210
  %1212 = sext i32 %1211 to i64
  %1213 = getelementptr inbounds float, ptr %1205, i64 %1212
  %1214 = load float, ptr %1213, align 4, !tbaa !16
  store float %1214, ptr %42, align 4, !tbaa !16
  %1215 = load float, ptr %42, align 4, !tbaa !16
  %1216 = fcmp oge float %1215, 0.000000e+00
  br i1 %1216, label %1217, label %1219

1217:                                             ; preds = %1204
  %1218 = load float, ptr %42, align 4, !tbaa !16
  br label %1222

1219:                                             ; preds = %1204
  %1220 = load float, ptr %42, align 4, !tbaa !16
  %1221 = fneg float %1220
  br label %1222

1222:                                             ; preds = %1219, %1217
  %1223 = phi float [ %1218, %1217 ], [ %1221, %1219 ]
  %1224 = load ptr, ptr %20, align 8, !tbaa !5
  %1225 = load i32, ptr %74, align 4, !tbaa !9
  %1226 = load i32, ptr %74, align 4, !tbaa !9
  %1227 = sub nsw i32 %1226, 1
  %1228 = load i32, ptr %32, align 4, !tbaa !9
  %1229 = mul nsw i32 %1227, %1228
  %1230 = add nsw i32 %1225, %1229
  %1231 = sext i32 %1230 to i64
  %1232 = getelementptr inbounds float, ptr %1224, i64 %1231
  %1233 = load float, ptr %1232, align 4, !tbaa !16
  store float %1233, ptr %43, align 4, !tbaa !16
  %1234 = load float, ptr %43, align 4, !tbaa !16
  %1235 = fcmp oge float %1234, 0.000000e+00
  br i1 %1235, label %1236, label %1238

1236:                                             ; preds = %1222
  %1237 = load float, ptr %43, align 4, !tbaa !16
  br label %1241

1238:                                             ; preds = %1222
  %1239 = load float, ptr %43, align 4, !tbaa !16
  %1240 = fneg float %1239
  br label %1241

1241:                                             ; preds = %1238, %1236
  %1242 = phi float [ %1237, %1236 ], [ %1240, %1238 ]
  %1243 = fcmp oge float %1223, %1242
  br i1 %1243, label %1244, label %1277

1244:                                             ; preds = %1241
  %1245 = load ptr, ptr %28, align 8, !tbaa !5
  %1246 = load i32, ptr %74, align 4, !tbaa !9
  %1247 = sub nsw i32 %1246, 1
  %1248 = load i32, ptr %77, align 4, !tbaa !9
  %1249 = sub nsw i32 %1248, 1
  %1250 = load ptr, ptr %19, align 8, !tbaa !5
  %1251 = load i32, ptr %1250, align 4, !tbaa !9
  %1252 = mul nsw i32 %1249, %1251
  %1253 = add nsw i32 %1247, %1252
  %1254 = sext i32 %1253 to i64
  %1255 = getelementptr inbounds float, ptr %1245, i64 %1254
  store float 1.000000e+00, ptr %1255, align 4, !tbaa !16
  %1256 = load float, ptr %78, align 4, !tbaa !16
  %1257 = load ptr, ptr %20, align 8, !tbaa !5
  %1258 = load i32, ptr %74, align 4, !tbaa !9
  %1259 = sub nsw i32 %1258, 1
  %1260 = load i32, ptr %74, align 4, !tbaa !9
  %1261 = load i32, ptr %32, align 4, !tbaa !9
  %1262 = mul nsw i32 %1260, %1261
  %1263 = add nsw i32 %1259, %1262
  %1264 = sext i32 %1263 to i64
  %1265 = getelementptr inbounds float, ptr %1257, i64 %1264
  %1266 = load float, ptr %1265, align 4, !tbaa !16
  %1267 = fdiv float %1256, %1266
  %1268 = load ptr, ptr %28, align 8, !tbaa !5
  %1269 = load i32, ptr %74, align 4, !tbaa !9
  %1270 = load i32, ptr %77, align 4, !tbaa !9
  %1271 = load ptr, ptr %19, align 8, !tbaa !5
  %1272 = load i32, ptr %1271, align 4, !tbaa !9
  %1273 = mul nsw i32 %1270, %1272
  %1274 = add nsw i32 %1269, %1273
  %1275 = sext i32 %1274 to i64
  %1276 = getelementptr inbounds float, ptr %1268, i64 %1275
  store float %1267, ptr %1276, align 4, !tbaa !16
  br label %1311

1277:                                             ; preds = %1241
  %1278 = load float, ptr %78, align 4, !tbaa !16
  %1279 = fneg float %1278
  %1280 = load ptr, ptr %20, align 8, !tbaa !5
  %1281 = load i32, ptr %74, align 4, !tbaa !9
  %1282 = load i32, ptr %74, align 4, !tbaa !9
  %1283 = sub nsw i32 %1282, 1
  %1284 = load i32, ptr %32, align 4, !tbaa !9
  %1285 = mul nsw i32 %1283, %1284
  %1286 = add nsw i32 %1281, %1285
  %1287 = sext i32 %1286 to i64
  %1288 = getelementptr inbounds float, ptr %1280, i64 %1287
  %1289 = load float, ptr %1288, align 4, !tbaa !16
  %1290 = fdiv float %1279, %1289
  %1291 = load ptr, ptr %28, align 8, !tbaa !5
  %1292 = load i32, ptr %74, align 4, !tbaa !9
  %1293 = sub nsw i32 %1292, 1
  %1294 = load i32, ptr %77, align 4, !tbaa !9
  %1295 = sub nsw i32 %1294, 1
  %1296 = load ptr, ptr %19, align 8, !tbaa !5
  %1297 = load i32, ptr %1296, align 4, !tbaa !9
  %1298 = mul nsw i32 %1295, %1297
  %1299 = add nsw i32 %1293, %1298
  %1300 = sext i32 %1299 to i64
  %1301 = getelementptr inbounds float, ptr %1291, i64 %1300
  store float %1290, ptr %1301, align 4, !tbaa !16
  %1302 = load ptr, ptr %28, align 8, !tbaa !5
  %1303 = load i32, ptr %74, align 4, !tbaa !9
  %1304 = load i32, ptr %77, align 4, !tbaa !9
  %1305 = load ptr, ptr %19, align 8, !tbaa !5
  %1306 = load i32, ptr %1305, align 4, !tbaa !9
  %1307 = mul nsw i32 %1304, %1306
  %1308 = add nsw i32 %1303, %1307
  %1309 = sext i32 %1308 to i64
  %1310 = getelementptr inbounds float, ptr %1302, i64 %1309
  store float 1.000000e+00, ptr %1310, align 4, !tbaa !16
  br label %1311

1311:                                             ; preds = %1277, %1244
  %1312 = load ptr, ptr %28, align 8, !tbaa !5
  %1313 = load i32, ptr %74, align 4, !tbaa !9
  %1314 = load i32, ptr %77, align 4, !tbaa !9
  %1315 = sub nsw i32 %1314, 1
  %1316 = load ptr, ptr %19, align 8, !tbaa !5
  %1317 = load i32, ptr %1316, align 4, !tbaa !9
  %1318 = mul nsw i32 %1315, %1317
  %1319 = add nsw i32 %1313, %1318
  %1320 = sext i32 %1319 to i64
  %1321 = getelementptr inbounds float, ptr %1312, i64 %1320
  store float 0.000000e+00, ptr %1321, align 4, !tbaa !16
  %1322 = load ptr, ptr %28, align 8, !tbaa !5
  %1323 = load i32, ptr %74, align 4, !tbaa !9
  %1324 = sub nsw i32 %1323, 1
  %1325 = load i32, ptr %77, align 4, !tbaa !9
  %1326 = load ptr, ptr %19, align 8, !tbaa !5
  %1327 = load i32, ptr %1326, align 4, !tbaa !9
  %1328 = mul nsw i32 %1325, %1327
  %1329 = add nsw i32 %1324, %1328
  %1330 = sext i32 %1329 to i64
  %1331 = getelementptr inbounds float, ptr %1322, i64 %1330
  store float 0.000000e+00, ptr %1331, align 4, !tbaa !16
  %1332 = load i32, ptr %74, align 4, !tbaa !9
  %1333 = sub nsw i32 %1332, 2
  store i32 %1333, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %1334

1334:                                             ; preds = %1403, %1311
  %1335 = load i32, ptr %60, align 4, !tbaa !9
  %1336 = load i32, ptr %39, align 4, !tbaa !9
  %1337 = icmp sle i32 %1335, %1336
  br i1 %1337, label %1338, label %1406

1338:                                             ; preds = %1334
  %1339 = load ptr, ptr %28, align 8, !tbaa !5
  %1340 = load i32, ptr %74, align 4, !tbaa !9
  %1341 = sub nsw i32 %1340, 1
  %1342 = load i32, ptr %77, align 4, !tbaa !9
  %1343 = sub nsw i32 %1342, 1
  %1344 = load ptr, ptr %19, align 8, !tbaa !5
  %1345 = load i32, ptr %1344, align 4, !tbaa !9
  %1346 = mul nsw i32 %1343, %1345
  %1347 = add nsw i32 %1341, %1346
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds float, ptr %1339, i64 %1348
  %1350 = load float, ptr %1349, align 4, !tbaa !16
  %1351 = fneg float %1350
  %1352 = load ptr, ptr %20, align 8, !tbaa !5
  %1353 = load i32, ptr %60, align 4, !tbaa !9
  %1354 = load i32, ptr %74, align 4, !tbaa !9
  %1355 = sub nsw i32 %1354, 1
  %1356 = load i32, ptr %32, align 4, !tbaa !9
  %1357 = mul nsw i32 %1355, %1356
  %1358 = add nsw i32 %1353, %1357
  %1359 = sext i32 %1358 to i64
  %1360 = getelementptr inbounds float, ptr %1352, i64 %1359
  %1361 = load float, ptr %1360, align 4, !tbaa !16
  %1362 = fmul float %1351, %1361
  %1363 = load ptr, ptr %28, align 8, !tbaa !5
  %1364 = load i32, ptr %60, align 4, !tbaa !9
  %1365 = load i32, ptr %77, align 4, !tbaa !9
  %1366 = sub nsw i32 %1365, 1
  %1367 = load ptr, ptr %19, align 8, !tbaa !5
  %1368 = load i32, ptr %1367, align 4, !tbaa !9
  %1369 = mul nsw i32 %1366, %1368
  %1370 = add nsw i32 %1364, %1369
  %1371 = sext i32 %1370 to i64
  %1372 = getelementptr inbounds float, ptr %1363, i64 %1371
  store float %1362, ptr %1372, align 4, !tbaa !16
  %1373 = load ptr, ptr %28, align 8, !tbaa !5
  %1374 = load i32, ptr %74, align 4, !tbaa !9
  %1375 = load i32, ptr %77, align 4, !tbaa !9
  %1376 = load ptr, ptr %19, align 8, !tbaa !5
  %1377 = load i32, ptr %1376, align 4, !tbaa !9
  %1378 = mul nsw i32 %1375, %1377
  %1379 = add nsw i32 %1374, %1378
  %1380 = sext i32 %1379 to i64
  %1381 = getelementptr inbounds float, ptr %1373, i64 %1380
  %1382 = load float, ptr %1381, align 4, !tbaa !16
  %1383 = fneg float %1382
  %1384 = load ptr, ptr %20, align 8, !tbaa !5
  %1385 = load i32, ptr %60, align 4, !tbaa !9
  %1386 = load i32, ptr %74, align 4, !tbaa !9
  %1387 = load i32, ptr %32, align 4, !tbaa !9
  %1388 = mul nsw i32 %1386, %1387
  %1389 = add nsw i32 %1385, %1388
  %1390 = sext i32 %1389 to i64
  %1391 = getelementptr inbounds float, ptr %1384, i64 %1390
  %1392 = load float, ptr %1391, align 4, !tbaa !16
  %1393 = fmul float %1383, %1392
  %1394 = load ptr, ptr %28, align 8, !tbaa !5
  %1395 = load i32, ptr %60, align 4, !tbaa !9
  %1396 = load i32, ptr %77, align 4, !tbaa !9
  %1397 = load ptr, ptr %19, align 8, !tbaa !5
  %1398 = load i32, ptr %1397, align 4, !tbaa !9
  %1399 = mul nsw i32 %1396, %1398
  %1400 = add nsw i32 %1395, %1399
  %1401 = sext i32 %1400 to i64
  %1402 = getelementptr inbounds float, ptr %1394, i64 %1401
  store float %1393, ptr %1402, align 4, !tbaa !16
  br label %1403

1403:                                             ; preds = %1338
  %1404 = load i32, ptr %60, align 4, !tbaa !9
  %1405 = add nsw i32 %1404, 1
  store i32 %1405, ptr %60, align 4, !tbaa !9
  br label %1334, !llvm.loop !25

1406:                                             ; preds = %1334
  %1407 = load i32, ptr %74, align 4, !tbaa !9
  %1408 = sub nsw i32 %1407, 2
  store i32 %1408, ptr %57, align 4, !tbaa !9
  %1409 = load i32, ptr %74, align 4, !tbaa !9
  %1410 = sub nsw i32 %1409, 2
  store i32 %1410, ptr %59, align 4, !tbaa !9
  br label %1411

1411:                                             ; preds = %1813, %1406
  %1412 = load i32, ptr %59, align 4, !tbaa !9
  %1413 = icmp sge i32 %1412, 1
  br i1 %1413, label %1414, label %1816

1414:                                             ; preds = %1411
  %1415 = load i32, ptr %59, align 4, !tbaa !9
  %1416 = load i32, ptr %57, align 4, !tbaa !9
  %1417 = icmp sgt i32 %1415, %1416
  br i1 %1417, label %1418, label %1419

1418:                                             ; preds = %1414
  br label %1812

1419:                                             ; preds = %1414
  %1420 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %1420, ptr %68, align 4, !tbaa !9
  %1421 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %1421, ptr %69, align 4, !tbaa !9
  %1422 = load i32, ptr %59, align 4, !tbaa !9
  %1423 = sub nsw i32 %1422, 1
  store i32 %1423, ptr %57, align 4, !tbaa !9
  %1424 = load i32, ptr %59, align 4, !tbaa !9
  %1425 = icmp sgt i32 %1424, 1
  br i1 %1425, label %1426, label %1444

1426:                                             ; preds = %1419
  %1427 = load ptr, ptr %20, align 8, !tbaa !5
  %1428 = load i32, ptr %59, align 4, !tbaa !9
  %1429 = load i32, ptr %59, align 4, !tbaa !9
  %1430 = sub nsw i32 %1429, 1
  %1431 = load i32, ptr %32, align 4, !tbaa !9
  %1432 = mul nsw i32 %1430, %1431
  %1433 = add nsw i32 %1428, %1432
  %1434 = sext i32 %1433 to i64
  %1435 = getelementptr inbounds float, ptr %1427, i64 %1434
  %1436 = load float, ptr %1435, align 4, !tbaa !16
  %1437 = fcmp une float %1436, 0.000000e+00
  br i1 %1437, label %1438, label %1443

1438:                                             ; preds = %1426
  %1439 = load i32, ptr %59, align 4, !tbaa !9
  %1440 = sub nsw i32 %1439, 1
  store i32 %1440, ptr %68, align 4, !tbaa !9
  %1441 = load i32, ptr %59, align 4, !tbaa !9
  %1442 = sub nsw i32 %1441, 2
  store i32 %1442, ptr %57, align 4, !tbaa !9
  br label %1443

1443:                                             ; preds = %1438, %1426
  br label %1444

1444:                                             ; preds = %1443, %1419
  %1445 = load i32, ptr %68, align 4, !tbaa !9
  %1446 = load i32, ptr %69, align 4, !tbaa !9
  %1447 = icmp eq i32 %1445, %1446
  br i1 %1447, label %1448, label %1581

1448:                                             ; preds = %1444
  %1449 = load ptr, ptr %20, align 8, !tbaa !5
  %1450 = load i32, ptr %59, align 4, !tbaa !9
  %1451 = load i32, ptr %59, align 4, !tbaa !9
  %1452 = load i32, ptr %32, align 4, !tbaa !9
  %1453 = mul nsw i32 %1451, %1452
  %1454 = add nsw i32 %1450, %1453
  %1455 = sext i32 %1454 to i64
  %1456 = getelementptr inbounds float, ptr %1449, i64 %1455
  %1457 = load ptr, ptr %21, align 8, !tbaa !5
  %1458 = load ptr, ptr %28, align 8, !tbaa !5
  %1459 = load i32, ptr %59, align 4, !tbaa !9
  %1460 = load i32, ptr %77, align 4, !tbaa !9
  %1461 = sub nsw i32 %1460, 1
  %1462 = load ptr, ptr %19, align 8, !tbaa !5
  %1463 = load i32, ptr %1462, align 4, !tbaa !9
  %1464 = mul nsw i32 %1461, %1463
  %1465 = add nsw i32 %1459, %1464
  %1466 = sext i32 %1465 to i64
  %1467 = getelementptr inbounds float, ptr %1458, i64 %1466
  %1468 = load ptr, ptr %19, align 8, !tbaa !5
  %1469 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_false, ptr noundef @c__1, ptr noundef @c__2, ptr noundef %54, ptr noundef @c_b29, ptr noundef %1456, ptr noundef %1457, ptr noundef @c_b29, ptr noundef @c_b29, ptr noundef %1467, ptr noundef %1468, ptr noundef %79, ptr noundef %78, ptr noundef %1469, ptr noundef @c__2, ptr noundef %61, ptr noundef %70, ptr noundef %51)
  %1470 = load float, ptr %70, align 4, !tbaa !16
  %1471 = fcmp ogt float %1470, 1.000000e+00
  br i1 %1471, label %1472, label %1495

1472:                                             ; preds = %1448
  %1473 = load ptr, ptr %28, align 8, !tbaa !5
  %1474 = load i32, ptr %59, align 4, !tbaa !9
  %1475 = sext i32 %1474 to i64
  %1476 = getelementptr inbounds float, ptr %1473, i64 %1475
  %1477 = load float, ptr %1476, align 4, !tbaa !16
  %1478 = load float, ptr %80, align 4, !tbaa !16
  %1479 = load float, ptr %70, align 4, !tbaa !16
  %1480 = fdiv float %1478, %1479
  %1481 = fcmp ogt float %1477, %1480
  br i1 %1481, label %1482, label %1494

1482:                                             ; preds = %1472
  %1483 = load float, ptr %70, align 4, !tbaa !16
  %1484 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %1485 = load float, ptr %1484, align 16, !tbaa !16
  %1486 = fdiv float %1485, %1483
  store float %1486, ptr %1484, align 16, !tbaa !16
  %1487 = load float, ptr %70, align 4, !tbaa !16
  %1488 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 2
  %1489 = load float, ptr %1488, align 8, !tbaa !16
  %1490 = fdiv float %1489, %1487
  store float %1490, ptr %1488, align 8, !tbaa !16
  %1491 = load float, ptr %70, align 4, !tbaa !16
  %1492 = load float, ptr %61, align 4, !tbaa !16
  %1493 = fdiv float %1492, %1491
  store float %1493, ptr %61, align 4, !tbaa !16
  br label %1494

1494:                                             ; preds = %1482, %1472
  br label %1495

1495:                                             ; preds = %1494, %1448
  %1496 = load float, ptr %61, align 4, !tbaa !16
  %1497 = fcmp une float %1496, 1.000000e+00
  br i1 %1497, label %1498, label %1516

1498:                                             ; preds = %1495
  %1499 = load ptr, ptr %28, align 8, !tbaa !5
  %1500 = load i32, ptr %77, align 4, !tbaa !9
  %1501 = sub nsw i32 %1500, 1
  %1502 = load ptr, ptr %19, align 8, !tbaa !5
  %1503 = load i32, ptr %1502, align 4, !tbaa !9
  %1504 = mul nsw i32 %1501, %1503
  %1505 = add nsw i32 %1504, 1
  %1506 = sext i32 %1505 to i64
  %1507 = getelementptr inbounds float, ptr %1499, i64 %1506
  call void @sscal_(ptr noundef %74, ptr noundef %61, ptr noundef %1507, ptr noundef @c__1)
  %1508 = load ptr, ptr %28, align 8, !tbaa !5
  %1509 = load i32, ptr %77, align 4, !tbaa !9
  %1510 = load ptr, ptr %19, align 8, !tbaa !5
  %1511 = load i32, ptr %1510, align 4, !tbaa !9
  %1512 = mul nsw i32 %1509, %1511
  %1513 = add nsw i32 %1512, 1
  %1514 = sext i32 %1513 to i64
  %1515 = getelementptr inbounds float, ptr %1508, i64 %1514
  call void @sscal_(ptr noundef %74, ptr noundef %61, ptr noundef %1515, ptr noundef @c__1)
  br label %1516

1516:                                             ; preds = %1498, %1495
  %1517 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %1518 = load float, ptr %1517, align 16, !tbaa !16
  %1519 = load ptr, ptr %28, align 8, !tbaa !5
  %1520 = load i32, ptr %59, align 4, !tbaa !9
  %1521 = load i32, ptr %77, align 4, !tbaa !9
  %1522 = sub nsw i32 %1521, 1
  %1523 = load ptr, ptr %19, align 8, !tbaa !5
  %1524 = load i32, ptr %1523, align 4, !tbaa !9
  %1525 = mul nsw i32 %1522, %1524
  %1526 = add nsw i32 %1520, %1525
  %1527 = sext i32 %1526 to i64
  %1528 = getelementptr inbounds float, ptr %1519, i64 %1527
  store float %1518, ptr %1528, align 4, !tbaa !16
  %1529 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 2
  %1530 = load float, ptr %1529, align 8, !tbaa !16
  %1531 = load ptr, ptr %28, align 8, !tbaa !5
  %1532 = load i32, ptr %59, align 4, !tbaa !9
  %1533 = load i32, ptr %77, align 4, !tbaa !9
  %1534 = load ptr, ptr %19, align 8, !tbaa !5
  %1535 = load i32, ptr %1534, align 4, !tbaa !9
  %1536 = mul nsw i32 %1533, %1535
  %1537 = add nsw i32 %1532, %1536
  %1538 = sext i32 %1537 to i64
  %1539 = getelementptr inbounds float, ptr %1531, i64 %1538
  store float %1530, ptr %1539, align 4, !tbaa !16
  %1540 = load i32, ptr %59, align 4, !tbaa !9
  %1541 = sub nsw i32 %1540, 1
  store i32 %1541, ptr %39, align 4, !tbaa !9
  %1542 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %1543 = load float, ptr %1542, align 16, !tbaa !16
  %1544 = fneg float %1543
  store float %1544, ptr %42, align 4, !tbaa !16
  %1545 = load ptr, ptr %20, align 8, !tbaa !5
  %1546 = load i32, ptr %59, align 4, !tbaa !9
  %1547 = load i32, ptr %32, align 4, !tbaa !9
  %1548 = mul nsw i32 %1546, %1547
  %1549 = add nsw i32 %1548, 1
  %1550 = sext i32 %1549 to i64
  %1551 = getelementptr inbounds float, ptr %1545, i64 %1550
  %1552 = load ptr, ptr %28, align 8, !tbaa !5
  %1553 = load i32, ptr %77, align 4, !tbaa !9
  %1554 = sub nsw i32 %1553, 1
  %1555 = load ptr, ptr %19, align 8, !tbaa !5
  %1556 = load i32, ptr %1555, align 4, !tbaa !9
  %1557 = mul nsw i32 %1554, %1556
  %1558 = add nsw i32 %1557, 1
  %1559 = sext i32 %1558 to i64
  %1560 = getelementptr inbounds float, ptr %1552, i64 %1559
  call void @saxpy_(ptr noundef %39, ptr noundef %42, ptr noundef %1551, ptr noundef @c__1, ptr noundef %1560, ptr noundef @c__1)
  %1561 = load i32, ptr %59, align 4, !tbaa !9
  %1562 = sub nsw i32 %1561, 1
  store i32 %1562, ptr %39, align 4, !tbaa !9
  %1563 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 2
  %1564 = load float, ptr %1563, align 8, !tbaa !16
  %1565 = fneg float %1564
  store float %1565, ptr %42, align 4, !tbaa !16
  %1566 = load ptr, ptr %20, align 8, !tbaa !5
  %1567 = load i32, ptr %59, align 4, !tbaa !9
  %1568 = load i32, ptr %32, align 4, !tbaa !9
  %1569 = mul nsw i32 %1567, %1568
  %1570 = add nsw i32 %1569, 1
  %1571 = sext i32 %1570 to i64
  %1572 = getelementptr inbounds float, ptr %1566, i64 %1571
  %1573 = load ptr, ptr %28, align 8, !tbaa !5
  %1574 = load i32, ptr %77, align 4, !tbaa !9
  %1575 = load ptr, ptr %19, align 8, !tbaa !5
  %1576 = load i32, ptr %1575, align 4, !tbaa !9
  %1577 = mul nsw i32 %1574, %1576
  %1578 = add nsw i32 %1577, 1
  %1579 = sext i32 %1578 to i64
  %1580 = getelementptr inbounds float, ptr %1573, i64 %1579
  call void @saxpy_(ptr noundef %39, ptr noundef %42, ptr noundef %1572, ptr noundef @c__1, ptr noundef %1580, ptr noundef @c__1)
  br label %1811

1581:                                             ; preds = %1444
  %1582 = load ptr, ptr %20, align 8, !tbaa !5
  %1583 = load i32, ptr %59, align 4, !tbaa !9
  %1584 = sub nsw i32 %1583, 1
  %1585 = load i32, ptr %59, align 4, !tbaa !9
  %1586 = sub nsw i32 %1585, 1
  %1587 = load i32, ptr %32, align 4, !tbaa !9
  %1588 = mul nsw i32 %1586, %1587
  %1589 = add nsw i32 %1584, %1588
  %1590 = sext i32 %1589 to i64
  %1591 = getelementptr inbounds float, ptr %1582, i64 %1590
  %1592 = load ptr, ptr %21, align 8, !tbaa !5
  %1593 = load ptr, ptr %28, align 8, !tbaa !5
  %1594 = load i32, ptr %59, align 4, !tbaa !9
  %1595 = sub nsw i32 %1594, 1
  %1596 = load i32, ptr %77, align 4, !tbaa !9
  %1597 = sub nsw i32 %1596, 1
  %1598 = load ptr, ptr %19, align 8, !tbaa !5
  %1599 = load i32, ptr %1598, align 4, !tbaa !9
  %1600 = mul nsw i32 %1597, %1599
  %1601 = add nsw i32 %1595, %1600
  %1602 = sext i32 %1601 to i64
  %1603 = getelementptr inbounds float, ptr %1593, i64 %1602
  %1604 = load ptr, ptr %19, align 8, !tbaa !5
  %1605 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_false, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %54, ptr noundef @c_b29, ptr noundef %1591, ptr noundef %1592, ptr noundef @c_b29, ptr noundef @c_b29, ptr noundef %1603, ptr noundef %1604, ptr noundef %79, ptr noundef %78, ptr noundef %1605, ptr noundef @c__2, ptr noundef %61, ptr noundef %70, ptr noundef %51)
  %1606 = load float, ptr %70, align 4, !tbaa !16
  %1607 = fcmp ogt float %1606, 1.000000e+00
  br i1 %1607, label %1608, label %1657

1608:                                             ; preds = %1581
  %1609 = load ptr, ptr %28, align 8, !tbaa !5
  %1610 = load i32, ptr %59, align 4, !tbaa !9
  %1611 = sub nsw i32 %1610, 1
  %1612 = sext i32 %1611 to i64
  %1613 = getelementptr inbounds float, ptr %1609, i64 %1612
  %1614 = load float, ptr %1613, align 4, !tbaa !16
  store float %1614, ptr %42, align 4, !tbaa !16
  %1615 = load ptr, ptr %28, align 8, !tbaa !5
  %1616 = load i32, ptr %59, align 4, !tbaa !9
  %1617 = sext i32 %1616 to i64
  %1618 = getelementptr inbounds float, ptr %1615, i64 %1617
  %1619 = load float, ptr %1618, align 4, !tbaa !16
  store float %1619, ptr %43, align 4, !tbaa !16
  %1620 = load float, ptr %42, align 4, !tbaa !16
  %1621 = load float, ptr %43, align 4, !tbaa !16
  %1622 = fcmp oge float %1620, %1621
  br i1 %1622, label %1623, label %1625

1623:                                             ; preds = %1608
  %1624 = load float, ptr %42, align 4, !tbaa !16
  br label %1627

1625:                                             ; preds = %1608
  %1626 = load float, ptr %43, align 4, !tbaa !16
  br label %1627

1627:                                             ; preds = %1625, %1623
  %1628 = phi float [ %1624, %1623 ], [ %1626, %1625 ]
  store float %1628, ptr %47, align 4, !tbaa !16
  %1629 = load float, ptr %47, align 4, !tbaa !16
  %1630 = load float, ptr %80, align 4, !tbaa !16
  %1631 = load float, ptr %70, align 4, !tbaa !16
  %1632 = fdiv float %1630, %1631
  %1633 = fcmp ogt float %1629, %1632
  br i1 %1633, label %1634, label %1656

1634:                                             ; preds = %1627
  %1635 = load float, ptr %70, align 4, !tbaa !16
  %1636 = fdiv float 1.000000e+00, %1635
  store float %1636, ptr %86, align 4, !tbaa !16
  %1637 = load float, ptr %86, align 4, !tbaa !16
  %1638 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %1639 = load float, ptr %1638, align 16, !tbaa !16
  %1640 = fmul float %1639, %1637
  store float %1640, ptr %1638, align 16, !tbaa !16
  %1641 = load float, ptr %86, align 4, !tbaa !16
  %1642 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 2
  %1643 = load float, ptr %1642, align 8, !tbaa !16
  %1644 = fmul float %1643, %1641
  store float %1644, ptr %1642, align 8, !tbaa !16
  %1645 = load float, ptr %86, align 4, !tbaa !16
  %1646 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 1
  %1647 = load float, ptr %1646, align 4, !tbaa !16
  %1648 = fmul float %1647, %1645
  store float %1648, ptr %1646, align 4, !tbaa !16
  %1649 = load float, ptr %86, align 4, !tbaa !16
  %1650 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 3
  %1651 = load float, ptr %1650, align 4, !tbaa !16
  %1652 = fmul float %1651, %1649
  store float %1652, ptr %1650, align 4, !tbaa !16
  %1653 = load float, ptr %86, align 4, !tbaa !16
  %1654 = load float, ptr %61, align 4, !tbaa !16
  %1655 = fmul float %1654, %1653
  store float %1655, ptr %61, align 4, !tbaa !16
  br label %1656

1656:                                             ; preds = %1634, %1627
  br label %1657

1657:                                             ; preds = %1656, %1581
  %1658 = load float, ptr %61, align 4, !tbaa !16
  %1659 = fcmp une float %1658, 1.000000e+00
  br i1 %1659, label %1660, label %1678

1660:                                             ; preds = %1657
  %1661 = load ptr, ptr %28, align 8, !tbaa !5
  %1662 = load i32, ptr %77, align 4, !tbaa !9
  %1663 = sub nsw i32 %1662, 1
  %1664 = load ptr, ptr %19, align 8, !tbaa !5
  %1665 = load i32, ptr %1664, align 4, !tbaa !9
  %1666 = mul nsw i32 %1663, %1665
  %1667 = add nsw i32 %1666, 1
  %1668 = sext i32 %1667 to i64
  %1669 = getelementptr inbounds float, ptr %1661, i64 %1668
  call void @sscal_(ptr noundef %74, ptr noundef %61, ptr noundef %1669, ptr noundef @c__1)
  %1670 = load ptr, ptr %28, align 8, !tbaa !5
  %1671 = load i32, ptr %77, align 4, !tbaa !9
  %1672 = load ptr, ptr %19, align 8, !tbaa !5
  %1673 = load i32, ptr %1672, align 4, !tbaa !9
  %1674 = mul nsw i32 %1671, %1673
  %1675 = add nsw i32 %1674, 1
  %1676 = sext i32 %1675 to i64
  %1677 = getelementptr inbounds float, ptr %1670, i64 %1676
  call void @sscal_(ptr noundef %74, ptr noundef %61, ptr noundef %1677, ptr noundef @c__1)
  br label %1678

1678:                                             ; preds = %1660, %1657
  %1679 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %1680 = load float, ptr %1679, align 16, !tbaa !16
  %1681 = load ptr, ptr %28, align 8, !tbaa !5
  %1682 = load i32, ptr %59, align 4, !tbaa !9
  %1683 = sub nsw i32 %1682, 1
  %1684 = load i32, ptr %77, align 4, !tbaa !9
  %1685 = sub nsw i32 %1684, 1
  %1686 = load ptr, ptr %19, align 8, !tbaa !5
  %1687 = load i32, ptr %1686, align 4, !tbaa !9
  %1688 = mul nsw i32 %1685, %1687
  %1689 = add nsw i32 %1683, %1688
  %1690 = sext i32 %1689 to i64
  %1691 = getelementptr inbounds float, ptr %1681, i64 %1690
  store float %1680, ptr %1691, align 4, !tbaa !16
  %1692 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 1
  %1693 = load float, ptr %1692, align 4, !tbaa !16
  %1694 = load ptr, ptr %28, align 8, !tbaa !5
  %1695 = load i32, ptr %59, align 4, !tbaa !9
  %1696 = load i32, ptr %77, align 4, !tbaa !9
  %1697 = sub nsw i32 %1696, 1
  %1698 = load ptr, ptr %19, align 8, !tbaa !5
  %1699 = load i32, ptr %1698, align 4, !tbaa !9
  %1700 = mul nsw i32 %1697, %1699
  %1701 = add nsw i32 %1695, %1700
  %1702 = sext i32 %1701 to i64
  %1703 = getelementptr inbounds float, ptr %1694, i64 %1702
  store float %1693, ptr %1703, align 4, !tbaa !16
  %1704 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 2
  %1705 = load float, ptr %1704, align 8, !tbaa !16
  %1706 = load ptr, ptr %28, align 8, !tbaa !5
  %1707 = load i32, ptr %59, align 4, !tbaa !9
  %1708 = sub nsw i32 %1707, 1
  %1709 = load i32, ptr %77, align 4, !tbaa !9
  %1710 = load ptr, ptr %19, align 8, !tbaa !5
  %1711 = load i32, ptr %1710, align 4, !tbaa !9
  %1712 = mul nsw i32 %1709, %1711
  %1713 = add nsw i32 %1708, %1712
  %1714 = sext i32 %1713 to i64
  %1715 = getelementptr inbounds float, ptr %1706, i64 %1714
  store float %1705, ptr %1715, align 4, !tbaa !16
  %1716 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 3
  %1717 = load float, ptr %1716, align 4, !tbaa !16
  %1718 = load ptr, ptr %28, align 8, !tbaa !5
  %1719 = load i32, ptr %59, align 4, !tbaa !9
  %1720 = load i32, ptr %77, align 4, !tbaa !9
  %1721 = load ptr, ptr %19, align 8, !tbaa !5
  %1722 = load i32, ptr %1721, align 4, !tbaa !9
  %1723 = mul nsw i32 %1720, %1722
  %1724 = add nsw i32 %1719, %1723
  %1725 = sext i32 %1724 to i64
  %1726 = getelementptr inbounds float, ptr %1718, i64 %1725
  store float %1717, ptr %1726, align 4, !tbaa !16
  %1727 = load i32, ptr %59, align 4, !tbaa !9
  %1728 = sub nsw i32 %1727, 2
  store i32 %1728, ptr %39, align 4, !tbaa !9
  %1729 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %1730 = load float, ptr %1729, align 16, !tbaa !16
  %1731 = fneg float %1730
  store float %1731, ptr %42, align 4, !tbaa !16
  %1732 = load ptr, ptr %20, align 8, !tbaa !5
  %1733 = load i32, ptr %59, align 4, !tbaa !9
  %1734 = sub nsw i32 %1733, 1
  %1735 = load i32, ptr %32, align 4, !tbaa !9
  %1736 = mul nsw i32 %1734, %1735
  %1737 = add nsw i32 %1736, 1
  %1738 = sext i32 %1737 to i64
  %1739 = getelementptr inbounds float, ptr %1732, i64 %1738
  %1740 = load ptr, ptr %28, align 8, !tbaa !5
  %1741 = load i32, ptr %77, align 4, !tbaa !9
  %1742 = sub nsw i32 %1741, 1
  %1743 = load ptr, ptr %19, align 8, !tbaa !5
  %1744 = load i32, ptr %1743, align 4, !tbaa !9
  %1745 = mul nsw i32 %1742, %1744
  %1746 = add nsw i32 %1745, 1
  %1747 = sext i32 %1746 to i64
  %1748 = getelementptr inbounds float, ptr %1740, i64 %1747
  call void @saxpy_(ptr noundef %39, ptr noundef %42, ptr noundef %1739, ptr noundef @c__1, ptr noundef %1748, ptr noundef @c__1)
  %1749 = load i32, ptr %59, align 4, !tbaa !9
  %1750 = sub nsw i32 %1749, 2
  store i32 %1750, ptr %39, align 4, !tbaa !9
  %1751 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 1
  %1752 = load float, ptr %1751, align 4, !tbaa !16
  %1753 = fneg float %1752
  store float %1753, ptr %42, align 4, !tbaa !16
  %1754 = load ptr, ptr %20, align 8, !tbaa !5
  %1755 = load i32, ptr %59, align 4, !tbaa !9
  %1756 = load i32, ptr %32, align 4, !tbaa !9
  %1757 = mul nsw i32 %1755, %1756
  %1758 = add nsw i32 %1757, 1
  %1759 = sext i32 %1758 to i64
  %1760 = getelementptr inbounds float, ptr %1754, i64 %1759
  %1761 = load ptr, ptr %28, align 8, !tbaa !5
  %1762 = load i32, ptr %77, align 4, !tbaa !9
  %1763 = sub nsw i32 %1762, 1
  %1764 = load ptr, ptr %19, align 8, !tbaa !5
  %1765 = load i32, ptr %1764, align 4, !tbaa !9
  %1766 = mul nsw i32 %1763, %1765
  %1767 = add nsw i32 %1766, 1
  %1768 = sext i32 %1767 to i64
  %1769 = getelementptr inbounds float, ptr %1761, i64 %1768
  call void @saxpy_(ptr noundef %39, ptr noundef %42, ptr noundef %1760, ptr noundef @c__1, ptr noundef %1769, ptr noundef @c__1)
  %1770 = load i32, ptr %59, align 4, !tbaa !9
  %1771 = sub nsw i32 %1770, 2
  store i32 %1771, ptr %39, align 4, !tbaa !9
  %1772 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 2
  %1773 = load float, ptr %1772, align 8, !tbaa !16
  %1774 = fneg float %1773
  store float %1774, ptr %42, align 4, !tbaa !16
  %1775 = load ptr, ptr %20, align 8, !tbaa !5
  %1776 = load i32, ptr %59, align 4, !tbaa !9
  %1777 = sub nsw i32 %1776, 1
  %1778 = load i32, ptr %32, align 4, !tbaa !9
  %1779 = mul nsw i32 %1777, %1778
  %1780 = add nsw i32 %1779, 1
  %1781 = sext i32 %1780 to i64
  %1782 = getelementptr inbounds float, ptr %1775, i64 %1781
  %1783 = load ptr, ptr %28, align 8, !tbaa !5
  %1784 = load i32, ptr %77, align 4, !tbaa !9
  %1785 = load ptr, ptr %19, align 8, !tbaa !5
  %1786 = load i32, ptr %1785, align 4, !tbaa !9
  %1787 = mul nsw i32 %1784, %1786
  %1788 = add nsw i32 %1787, 1
  %1789 = sext i32 %1788 to i64
  %1790 = getelementptr inbounds float, ptr %1783, i64 %1789
  call void @saxpy_(ptr noundef %39, ptr noundef %42, ptr noundef %1782, ptr noundef @c__1, ptr noundef %1790, ptr noundef @c__1)
  %1791 = load i32, ptr %59, align 4, !tbaa !9
  %1792 = sub nsw i32 %1791, 2
  store i32 %1792, ptr %39, align 4, !tbaa !9
  %1793 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 3
  %1794 = load float, ptr %1793, align 4, !tbaa !16
  %1795 = fneg float %1794
  store float %1795, ptr %42, align 4, !tbaa !16
  %1796 = load ptr, ptr %20, align 8, !tbaa !5
  %1797 = load i32, ptr %59, align 4, !tbaa !9
  %1798 = load i32, ptr %32, align 4, !tbaa !9
  %1799 = mul nsw i32 %1797, %1798
  %1800 = add nsw i32 %1799, 1
  %1801 = sext i32 %1800 to i64
  %1802 = getelementptr inbounds float, ptr %1796, i64 %1801
  %1803 = load ptr, ptr %28, align 8, !tbaa !5
  %1804 = load i32, ptr %77, align 4, !tbaa !9
  %1805 = load ptr, ptr %19, align 8, !tbaa !5
  %1806 = load i32, ptr %1805, align 4, !tbaa !9
  %1807 = mul nsw i32 %1804, %1806
  %1808 = add nsw i32 %1807, 1
  %1809 = sext i32 %1808 to i64
  %1810 = getelementptr inbounds float, ptr %1803, i64 %1809
  call void @saxpy_(ptr noundef %39, ptr noundef %42, ptr noundef %1802, ptr noundef @c__1, ptr noundef %1810, ptr noundef @c__1)
  br label %1811

1811:                                             ; preds = %1678, %1516
  br label %1812

1812:                                             ; preds = %1811, %1418
  br label %1813

1813:                                             ; preds = %1812
  %1814 = load i32, ptr %59, align 4, !tbaa !9
  %1815 = add nsw i32 %1814, -1
  store i32 %1815, ptr %59, align 4, !tbaa !9
  br label %1411, !llvm.loop !26

1816:                                             ; preds = %1411
  %1817 = load i32, ptr %55, align 4, !tbaa !9
  %1818 = icmp ne i32 %1817, 0
  br i1 %1818, label %1957, label %1819

1819:                                             ; preds = %1816
  %1820 = load ptr, ptr %28, align 8, !tbaa !5
  %1821 = load i32, ptr %77, align 4, !tbaa !9
  %1822 = sub nsw i32 %1821, 1
  %1823 = load ptr, ptr %19, align 8, !tbaa !5
  %1824 = load i32, ptr %1823, align 4, !tbaa !9
  %1825 = mul nsw i32 %1822, %1824
  %1826 = add nsw i32 %1825, 1
  %1827 = sext i32 %1826 to i64
  %1828 = getelementptr inbounds float, ptr %1820, i64 %1827
  %1829 = load ptr, ptr %24, align 8, !tbaa !5
  %1830 = load i32, ptr %76, align 4, !tbaa !9
  %1831 = sub nsw i32 %1830, 1
  %1832 = load i32, ptr %36, align 4, !tbaa !9
  %1833 = mul nsw i32 %1831, %1832
  %1834 = add nsw i32 %1833, 1
  %1835 = sext i32 %1834 to i64
  %1836 = getelementptr inbounds float, ptr %1829, i64 %1835
  call void @scopy_(ptr noundef %74, ptr noundef %1828, ptr noundef @c__1, ptr noundef %1836, ptr noundef @c__1)
  %1837 = load ptr, ptr %28, align 8, !tbaa !5
  %1838 = load i32, ptr %77, align 4, !tbaa !9
  %1839 = load ptr, ptr %19, align 8, !tbaa !5
  %1840 = load i32, ptr %1839, align 4, !tbaa !9
  %1841 = mul nsw i32 %1838, %1840
  %1842 = add nsw i32 %1841, 1
  %1843 = sext i32 %1842 to i64
  %1844 = getelementptr inbounds float, ptr %1837, i64 %1843
  %1845 = load ptr, ptr %24, align 8, !tbaa !5
  %1846 = load i32, ptr %76, align 4, !tbaa !9
  %1847 = load i32, ptr %36, align 4, !tbaa !9
  %1848 = mul nsw i32 %1846, %1847
  %1849 = add nsw i32 %1848, 1
  %1850 = sext i32 %1849 to i64
  %1851 = getelementptr inbounds float, ptr %1845, i64 %1850
  call void @scopy_(ptr noundef %74, ptr noundef %1844, ptr noundef @c__1, ptr noundef %1851, ptr noundef @c__1)
  store float 0.000000e+00, ptr %48, align 4, !tbaa !16
  %1852 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %1852, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %1853

1853:                                             ; preds = %1906, %1819
  %1854 = load i32, ptr %60, align 4, !tbaa !9
  %1855 = load i32, ptr %39, align 4, !tbaa !9
  %1856 = icmp sle i32 %1854, %1855
  br i1 %1856, label %1857, label %1909

1857:                                             ; preds = %1853
  %1858 = load float, ptr %48, align 4, !tbaa !16
  store float %1858, ptr %44, align 4, !tbaa !16
  %1859 = load ptr, ptr %24, align 8, !tbaa !5
  %1860 = load i32, ptr %60, align 4, !tbaa !9
  %1861 = load i32, ptr %76, align 4, !tbaa !9
  %1862 = sub nsw i32 %1861, 1
  %1863 = load i32, ptr %36, align 4, !tbaa !9
  %1864 = mul nsw i32 %1862, %1863
  %1865 = add nsw i32 %1860, %1864
  %1866 = sext i32 %1865 to i64
  %1867 = getelementptr inbounds float, ptr %1859, i64 %1866
  %1868 = load float, ptr %1867, align 4, !tbaa !16
  store float %1868, ptr %42, align 4, !tbaa !16
  %1869 = load float, ptr %42, align 4, !tbaa !16
  %1870 = fcmp oge float %1869, 0.000000e+00
  br i1 %1870, label %1871, label %1873

1871:                                             ; preds = %1857
  %1872 = load float, ptr %42, align 4, !tbaa !16
  br label %1876

1873:                                             ; preds = %1857
  %1874 = load float, ptr %42, align 4, !tbaa !16
  %1875 = fneg float %1874
  br label %1876

1876:                                             ; preds = %1873, %1871
  %1877 = phi float [ %1872, %1871 ], [ %1875, %1873 ]
  %1878 = load ptr, ptr %24, align 8, !tbaa !5
  %1879 = load i32, ptr %60, align 4, !tbaa !9
  %1880 = load i32, ptr %76, align 4, !tbaa !9
  %1881 = load i32, ptr %36, align 4, !tbaa !9
  %1882 = mul nsw i32 %1880, %1881
  %1883 = add nsw i32 %1879, %1882
  %1884 = sext i32 %1883 to i64
  %1885 = getelementptr inbounds float, ptr %1878, i64 %1884
  %1886 = load float, ptr %1885, align 4, !tbaa !16
  store float %1886, ptr %43, align 4, !tbaa !16
  %1887 = load float, ptr %43, align 4, !tbaa !16
  %1888 = fcmp oge float %1887, 0.000000e+00
  br i1 %1888, label %1889, label %1891

1889:                                             ; preds = %1876
  %1890 = load float, ptr %43, align 4, !tbaa !16
  br label %1894

1891:                                             ; preds = %1876
  %1892 = load float, ptr %43, align 4, !tbaa !16
  %1893 = fneg float %1892
  br label %1894

1894:                                             ; preds = %1891, %1889
  %1895 = phi float [ %1890, %1889 ], [ %1893, %1891 ]
  %1896 = fadd float %1877, %1895
  store float %1896, ptr %45, align 4, !tbaa !16
  %1897 = load float, ptr %44, align 4, !tbaa !16
  %1898 = load float, ptr %45, align 4, !tbaa !16
  %1899 = fcmp oge float %1897, %1898
  br i1 %1899, label %1900, label %1902

1900:                                             ; preds = %1894
  %1901 = load float, ptr %44, align 4, !tbaa !16
  br label %1904

1902:                                             ; preds = %1894
  %1903 = load float, ptr %45, align 4, !tbaa !16
  br label %1904

1904:                                             ; preds = %1902, %1900
  %1905 = phi float [ %1901, %1900 ], [ %1903, %1902 ]
  store float %1905, ptr %48, align 4, !tbaa !16
  br label %1906

1906:                                             ; preds = %1904
  %1907 = load i32, ptr %60, align 4, !tbaa !9
  %1908 = add nsw i32 %1907, 1
  store i32 %1908, ptr %60, align 4, !tbaa !9
  br label %1853, !llvm.loop !27

1909:                                             ; preds = %1853
  %1910 = load float, ptr %48, align 4, !tbaa !16
  %1911 = fdiv float 1.000000e+00, %1910
  store float %1911, ptr %63, align 4, !tbaa !16
  %1912 = load ptr, ptr %24, align 8, !tbaa !5
  %1913 = load i32, ptr %76, align 4, !tbaa !9
  %1914 = sub nsw i32 %1913, 1
  %1915 = load i32, ptr %36, align 4, !tbaa !9
  %1916 = mul nsw i32 %1914, %1915
  %1917 = add nsw i32 %1916, 1
  %1918 = sext i32 %1917 to i64
  %1919 = getelementptr inbounds float, ptr %1912, i64 %1918
  call void @sscal_(ptr noundef %74, ptr noundef %63, ptr noundef %1919, ptr noundef @c__1)
  %1920 = load ptr, ptr %24, align 8, !tbaa !5
  %1921 = load i32, ptr %76, align 4, !tbaa !9
  %1922 = load i32, ptr %36, align 4, !tbaa !9
  %1923 = mul nsw i32 %1921, %1922
  %1924 = add nsw i32 %1923, 1
  %1925 = sext i32 %1924 to i64
  %1926 = getelementptr inbounds float, ptr %1920, i64 %1925
  call void @sscal_(ptr noundef %74, ptr noundef %63, ptr noundef %1926, ptr noundef @c__1)
  %1927 = load ptr, ptr %19, align 8, !tbaa !5
  %1928 = load i32, ptr %1927, align 4, !tbaa !9
  store i32 %1928, ptr %39, align 4, !tbaa !9
  %1929 = load i32, ptr %74, align 4, !tbaa !9
  %1930 = add nsw i32 %1929, 1
  store i32 %1930, ptr %60, align 4, !tbaa !9
  br label %1931

1931:                                             ; preds = %1953, %1909
  %1932 = load i32, ptr %60, align 4, !tbaa !9
  %1933 = load i32, ptr %39, align 4, !tbaa !9
  %1934 = icmp sle i32 %1932, %1933
  br i1 %1934, label %1935, label %1956

1935:                                             ; preds = %1931
  %1936 = load ptr, ptr %24, align 8, !tbaa !5
  %1937 = load i32, ptr %60, align 4, !tbaa !9
  %1938 = load i32, ptr %76, align 4, !tbaa !9
  %1939 = sub nsw i32 %1938, 1
  %1940 = load i32, ptr %36, align 4, !tbaa !9
  %1941 = mul nsw i32 %1939, %1940
  %1942 = add nsw i32 %1937, %1941
  %1943 = sext i32 %1942 to i64
  %1944 = getelementptr inbounds float, ptr %1936, i64 %1943
  store float 0.000000e+00, ptr %1944, align 4, !tbaa !16
  %1945 = load ptr, ptr %24, align 8, !tbaa !5
  %1946 = load i32, ptr %60, align 4, !tbaa !9
  %1947 = load i32, ptr %76, align 4, !tbaa !9
  %1948 = load i32, ptr %36, align 4, !tbaa !9
  %1949 = mul nsw i32 %1947, %1948
  %1950 = add nsw i32 %1946, %1949
  %1951 = sext i32 %1950 to i64
  %1952 = getelementptr inbounds float, ptr %1945, i64 %1951
  store float 0.000000e+00, ptr %1952, align 4, !tbaa !16
  br label %1953

1953:                                             ; preds = %1935
  %1954 = load i32, ptr %60, align 4, !tbaa !9
  %1955 = add nsw i32 %1954, 1
  store i32 %1955, ptr %60, align 4, !tbaa !9
  br label %1931, !llvm.loop !28

1956:                                             ; preds = %1931
  br label %2196

1957:                                             ; preds = %1816
  %1958 = load i32, ptr %72, align 4, !tbaa !9
  %1959 = icmp eq i32 %1958, 1
  br i1 %1959, label %1960, label %2149

1960:                                             ; preds = %1957
  %1961 = load i32, ptr %74, align 4, !tbaa !9
  %1962 = icmp sgt i32 %1961, 2
  br i1 %1962, label %1963, label %2032

1963:                                             ; preds = %1960
  %1964 = load i32, ptr %74, align 4, !tbaa !9
  %1965 = sub nsw i32 %1964, 2
  store i32 %1965, ptr %39, align 4, !tbaa !9
  %1966 = load ptr, ptr %19, align 8, !tbaa !5
  %1967 = load ptr, ptr %24, align 8, !tbaa !5
  %1968 = load i32, ptr %37, align 4, !tbaa !9
  %1969 = sext i32 %1968 to i64
  %1970 = getelementptr inbounds float, ptr %1967, i64 %1969
  %1971 = load ptr, ptr %25, align 8, !tbaa !5
  %1972 = load ptr, ptr %28, align 8, !tbaa !5
  %1973 = load i32, ptr %77, align 4, !tbaa !9
  %1974 = sub nsw i32 %1973, 1
  %1975 = load ptr, ptr %19, align 8, !tbaa !5
  %1976 = load i32, ptr %1975, align 4, !tbaa !9
  %1977 = mul nsw i32 %1974, %1976
  %1978 = add nsw i32 %1977, 1
  %1979 = sext i32 %1978 to i64
  %1980 = getelementptr inbounds float, ptr %1972, i64 %1979
  %1981 = load ptr, ptr %28, align 8, !tbaa !5
  %1982 = load i32, ptr %74, align 4, !tbaa !9
  %1983 = sub nsw i32 %1982, 1
  %1984 = load i32, ptr %77, align 4, !tbaa !9
  %1985 = sub nsw i32 %1984, 1
  %1986 = load ptr, ptr %19, align 8, !tbaa !5
  %1987 = load i32, ptr %1986, align 4, !tbaa !9
  %1988 = mul nsw i32 %1985, %1987
  %1989 = add nsw i32 %1983, %1988
  %1990 = sext i32 %1989 to i64
  %1991 = getelementptr inbounds float, ptr %1981, i64 %1990
  %1992 = load ptr, ptr %24, align 8, !tbaa !5
  %1993 = load i32, ptr %74, align 4, !tbaa !9
  %1994 = sub nsw i32 %1993, 1
  %1995 = load i32, ptr %36, align 4, !tbaa !9
  %1996 = mul nsw i32 %1994, %1995
  %1997 = add nsw i32 %1996, 1
  %1998 = sext i32 %1997 to i64
  %1999 = getelementptr inbounds float, ptr %1992, i64 %1998
  call void @sgemv_(ptr noundef @.str.10, ptr noundef %1966, ptr noundef %39, ptr noundef @c_b29, ptr noundef %1970, ptr noundef %1971, ptr noundef %1980, ptr noundef @c__1, ptr noundef %1991, ptr noundef %1999, ptr noundef @c__1)
  %2000 = load i32, ptr %74, align 4, !tbaa !9
  %2001 = sub nsw i32 %2000, 2
  store i32 %2001, ptr %39, align 4, !tbaa !9
  %2002 = load ptr, ptr %19, align 8, !tbaa !5
  %2003 = load ptr, ptr %24, align 8, !tbaa !5
  %2004 = load i32, ptr %37, align 4, !tbaa !9
  %2005 = sext i32 %2004 to i64
  %2006 = getelementptr inbounds float, ptr %2003, i64 %2005
  %2007 = load ptr, ptr %25, align 8, !tbaa !5
  %2008 = load ptr, ptr %28, align 8, !tbaa !5
  %2009 = load i32, ptr %77, align 4, !tbaa !9
  %2010 = load ptr, ptr %19, align 8, !tbaa !5
  %2011 = load i32, ptr %2010, align 4, !tbaa !9
  %2012 = mul nsw i32 %2009, %2011
  %2013 = add nsw i32 %2012, 1
  %2014 = sext i32 %2013 to i64
  %2015 = getelementptr inbounds float, ptr %2008, i64 %2014
  %2016 = load ptr, ptr %28, align 8, !tbaa !5
  %2017 = load i32, ptr %74, align 4, !tbaa !9
  %2018 = load i32, ptr %77, align 4, !tbaa !9
  %2019 = load ptr, ptr %19, align 8, !tbaa !5
  %2020 = load i32, ptr %2019, align 4, !tbaa !9
  %2021 = mul nsw i32 %2018, %2020
  %2022 = add nsw i32 %2017, %2021
  %2023 = sext i32 %2022 to i64
  %2024 = getelementptr inbounds float, ptr %2016, i64 %2023
  %2025 = load ptr, ptr %24, align 8, !tbaa !5
  %2026 = load i32, ptr %74, align 4, !tbaa !9
  %2027 = load i32, ptr %36, align 4, !tbaa !9
  %2028 = mul nsw i32 %2026, %2027
  %2029 = add nsw i32 %2028, 1
  %2030 = sext i32 %2029 to i64
  %2031 = getelementptr inbounds float, ptr %2025, i64 %2030
  call void @sgemv_(ptr noundef @.str.10, ptr noundef %2002, ptr noundef %39, ptr noundef @c_b29, ptr noundef %2006, ptr noundef %2007, ptr noundef %2015, ptr noundef @c__1, ptr noundef %2024, ptr noundef %2031, ptr noundef @c__1)
  br label %2070

2032:                                             ; preds = %1960
  %2033 = load ptr, ptr %19, align 8, !tbaa !5
  %2034 = load ptr, ptr %28, align 8, !tbaa !5
  %2035 = load i32, ptr %74, align 4, !tbaa !9
  %2036 = sub nsw i32 %2035, 1
  %2037 = load i32, ptr %77, align 4, !tbaa !9
  %2038 = sub nsw i32 %2037, 1
  %2039 = load ptr, ptr %19, align 8, !tbaa !5
  %2040 = load i32, ptr %2039, align 4, !tbaa !9
  %2041 = mul nsw i32 %2038, %2040
  %2042 = add nsw i32 %2036, %2041
  %2043 = sext i32 %2042 to i64
  %2044 = getelementptr inbounds float, ptr %2034, i64 %2043
  %2045 = load ptr, ptr %24, align 8, !tbaa !5
  %2046 = load i32, ptr %74, align 4, !tbaa !9
  %2047 = sub nsw i32 %2046, 1
  %2048 = load i32, ptr %36, align 4, !tbaa !9
  %2049 = mul nsw i32 %2047, %2048
  %2050 = add nsw i32 %2049, 1
  %2051 = sext i32 %2050 to i64
  %2052 = getelementptr inbounds float, ptr %2045, i64 %2051
  call void @sscal_(ptr noundef %2033, ptr noundef %2044, ptr noundef %2052, ptr noundef @c__1)
  %2053 = load ptr, ptr %19, align 8, !tbaa !5
  %2054 = load ptr, ptr %28, align 8, !tbaa !5
  %2055 = load i32, ptr %74, align 4, !tbaa !9
  %2056 = load i32, ptr %77, align 4, !tbaa !9
  %2057 = load ptr, ptr %19, align 8, !tbaa !5
  %2058 = load i32, ptr %2057, align 4, !tbaa !9
  %2059 = mul nsw i32 %2056, %2058
  %2060 = add nsw i32 %2055, %2059
  %2061 = sext i32 %2060 to i64
  %2062 = getelementptr inbounds float, ptr %2054, i64 %2061
  %2063 = load ptr, ptr %24, align 8, !tbaa !5
  %2064 = load i32, ptr %74, align 4, !tbaa !9
  %2065 = load i32, ptr %36, align 4, !tbaa !9
  %2066 = mul nsw i32 %2064, %2065
  %2067 = add nsw i32 %2066, 1
  %2068 = sext i32 %2067 to i64
  %2069 = getelementptr inbounds float, ptr %2063, i64 %2068
  call void @sscal_(ptr noundef %2053, ptr noundef %2062, ptr noundef %2069, ptr noundef @c__1)
  br label %2070

2070:                                             ; preds = %2032, %1963
  store float 0.000000e+00, ptr %48, align 4, !tbaa !16
  %2071 = load ptr, ptr %19, align 8, !tbaa !5
  %2072 = load i32, ptr %2071, align 4, !tbaa !9
  store i32 %2072, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %2073

2073:                                             ; preds = %2126, %2070
  %2074 = load i32, ptr %60, align 4, !tbaa !9
  %2075 = load i32, ptr %39, align 4, !tbaa !9
  %2076 = icmp sle i32 %2074, %2075
  br i1 %2076, label %2077, label %2129

2077:                                             ; preds = %2073
  %2078 = load float, ptr %48, align 4, !tbaa !16
  store float %2078, ptr %44, align 4, !tbaa !16
  %2079 = load ptr, ptr %24, align 8, !tbaa !5
  %2080 = load i32, ptr %60, align 4, !tbaa !9
  %2081 = load i32, ptr %74, align 4, !tbaa !9
  %2082 = sub nsw i32 %2081, 1
  %2083 = load i32, ptr %36, align 4, !tbaa !9
  %2084 = mul nsw i32 %2082, %2083
  %2085 = add nsw i32 %2080, %2084
  %2086 = sext i32 %2085 to i64
  %2087 = getelementptr inbounds float, ptr %2079, i64 %2086
  %2088 = load float, ptr %2087, align 4, !tbaa !16
  store float %2088, ptr %42, align 4, !tbaa !16
  %2089 = load float, ptr %42, align 4, !tbaa !16
  %2090 = fcmp oge float %2089, 0.000000e+00
  br i1 %2090, label %2091, label %2093

2091:                                             ; preds = %2077
  %2092 = load float, ptr %42, align 4, !tbaa !16
  br label %2096

2093:                                             ; preds = %2077
  %2094 = load float, ptr %42, align 4, !tbaa !16
  %2095 = fneg float %2094
  br label %2096

2096:                                             ; preds = %2093, %2091
  %2097 = phi float [ %2092, %2091 ], [ %2095, %2093 ]
  %2098 = load ptr, ptr %24, align 8, !tbaa !5
  %2099 = load i32, ptr %60, align 4, !tbaa !9
  %2100 = load i32, ptr %74, align 4, !tbaa !9
  %2101 = load i32, ptr %36, align 4, !tbaa !9
  %2102 = mul nsw i32 %2100, %2101
  %2103 = add nsw i32 %2099, %2102
  %2104 = sext i32 %2103 to i64
  %2105 = getelementptr inbounds float, ptr %2098, i64 %2104
  %2106 = load float, ptr %2105, align 4, !tbaa !16
  store float %2106, ptr %43, align 4, !tbaa !16
  %2107 = load float, ptr %43, align 4, !tbaa !16
  %2108 = fcmp oge float %2107, 0.000000e+00
  br i1 %2108, label %2109, label %2111

2109:                                             ; preds = %2096
  %2110 = load float, ptr %43, align 4, !tbaa !16
  br label %2114

2111:                                             ; preds = %2096
  %2112 = load float, ptr %43, align 4, !tbaa !16
  %2113 = fneg float %2112
  br label %2114

2114:                                             ; preds = %2111, %2109
  %2115 = phi float [ %2110, %2109 ], [ %2113, %2111 ]
  %2116 = fadd float %2097, %2115
  store float %2116, ptr %45, align 4, !tbaa !16
  %2117 = load float, ptr %44, align 4, !tbaa !16
  %2118 = load float, ptr %45, align 4, !tbaa !16
  %2119 = fcmp oge float %2117, %2118
  br i1 %2119, label %2120, label %2122

2120:                                             ; preds = %2114
  %2121 = load float, ptr %44, align 4, !tbaa !16
  br label %2124

2122:                                             ; preds = %2114
  %2123 = load float, ptr %45, align 4, !tbaa !16
  br label %2124

2124:                                             ; preds = %2122, %2120
  %2125 = phi float [ %2121, %2120 ], [ %2123, %2122 ]
  store float %2125, ptr %48, align 4, !tbaa !16
  br label %2126

2126:                                             ; preds = %2124
  %2127 = load i32, ptr %60, align 4, !tbaa !9
  %2128 = add nsw i32 %2127, 1
  store i32 %2128, ptr %60, align 4, !tbaa !9
  br label %2073, !llvm.loop !29

2129:                                             ; preds = %2073
  %2130 = load float, ptr %48, align 4, !tbaa !16
  %2131 = fdiv float 1.000000e+00, %2130
  store float %2131, ptr %63, align 4, !tbaa !16
  %2132 = load ptr, ptr %19, align 8, !tbaa !5
  %2133 = load ptr, ptr %24, align 8, !tbaa !5
  %2134 = load i32, ptr %74, align 4, !tbaa !9
  %2135 = sub nsw i32 %2134, 1
  %2136 = load i32, ptr %36, align 4, !tbaa !9
  %2137 = mul nsw i32 %2135, %2136
  %2138 = add nsw i32 %2137, 1
  %2139 = sext i32 %2138 to i64
  %2140 = getelementptr inbounds float, ptr %2133, i64 %2139
  call void @sscal_(ptr noundef %2132, ptr noundef %63, ptr noundef %2140, ptr noundef @c__1)
  %2141 = load ptr, ptr %19, align 8, !tbaa !5
  %2142 = load ptr, ptr %24, align 8, !tbaa !5
  %2143 = load i32, ptr %74, align 4, !tbaa !9
  %2144 = load i32, ptr %36, align 4, !tbaa !9
  %2145 = mul nsw i32 %2143, %2144
  %2146 = add nsw i32 %2145, 1
  %2147 = sext i32 %2146 to i64
  %2148 = getelementptr inbounds float, ptr %2142, i64 %2147
  call void @sscal_(ptr noundef %2141, ptr noundef %63, ptr noundef %2148, ptr noundef @c__1)
  br label %2195

2149:                                             ; preds = %1957
  %2150 = load ptr, ptr %19, align 8, !tbaa !5
  %2151 = load i32, ptr %2150, align 4, !tbaa !9
  store i32 %2151, ptr %39, align 4, !tbaa !9
  %2152 = load i32, ptr %74, align 4, !tbaa !9
  %2153 = add nsw i32 %2152, 1
  store i32 %2153, ptr %60, align 4, !tbaa !9
  br label %2154

2154:                                             ; preds = %2178, %2149
  %2155 = load i32, ptr %60, align 4, !tbaa !9
  %2156 = load i32, ptr %39, align 4, !tbaa !9
  %2157 = icmp sle i32 %2155, %2156
  br i1 %2157, label %2158, label %2181

2158:                                             ; preds = %2154
  %2159 = load ptr, ptr %28, align 8, !tbaa !5
  %2160 = load i32, ptr %60, align 4, !tbaa !9
  %2161 = load i32, ptr %77, align 4, !tbaa !9
  %2162 = sub nsw i32 %2161, 1
  %2163 = load ptr, ptr %19, align 8, !tbaa !5
  %2164 = load i32, ptr %2163, align 4, !tbaa !9
  %2165 = mul nsw i32 %2162, %2164
  %2166 = add nsw i32 %2160, %2165
  %2167 = sext i32 %2166 to i64
  %2168 = getelementptr inbounds float, ptr %2159, i64 %2167
  store float 0.000000e+00, ptr %2168, align 4, !tbaa !16
  %2169 = load ptr, ptr %28, align 8, !tbaa !5
  %2170 = load i32, ptr %60, align 4, !tbaa !9
  %2171 = load i32, ptr %77, align 4, !tbaa !9
  %2172 = load ptr, ptr %19, align 8, !tbaa !5
  %2173 = load i32, ptr %2172, align 4, !tbaa !9
  %2174 = mul nsw i32 %2171, %2173
  %2175 = add nsw i32 %2170, %2174
  %2176 = sext i32 %2175 to i64
  %2177 = getelementptr inbounds float, ptr %2169, i64 %2176
  store float 0.000000e+00, ptr %2177, align 4, !tbaa !16
  br label %2178

2178:                                             ; preds = %2158
  %2179 = load i32, ptr %60, align 4, !tbaa !9
  %2180 = add nsw i32 %2179, 1
  store i32 %2180, ptr %60, align 4, !tbaa !9
  br label %2154, !llvm.loop !30

2181:                                             ; preds = %2154
  %2182 = load i32, ptr %75, align 4, !tbaa !9
  %2183 = sub nsw i32 0, %2182
  %2184 = load i32, ptr %77, align 4, !tbaa !9
  %2185 = sub nsw i32 %2184, 2
  %2186 = sext i32 %2185 to i64
  %2187 = getelementptr inbounds [128 x i32], ptr %71, i64 0, i64 %2186
  store i32 %2183, ptr %2187, align 4, !tbaa !9
  %2188 = load i32, ptr %75, align 4, !tbaa !9
  %2189 = load i32, ptr %77, align 4, !tbaa !9
  %2190 = sub nsw i32 %2189, 1
  %2191 = sext i32 %2190 to i64
  %2192 = getelementptr inbounds [128 x i32], ptr %71, i64 0, i64 %2191
  store i32 %2188, ptr %2192, align 4, !tbaa !9
  %2193 = load i32, ptr %77, align 4, !tbaa !9
  %2194 = add nsw i32 %2193, -1
  store i32 %2194, ptr %77, align 4, !tbaa !9
  br label %2195

2195:                                             ; preds = %2181, %2129
  br label %2196

2196:                                             ; preds = %2195, %1956
  br label %2197

2197:                                             ; preds = %2196, %1203
  %2198 = load i32, ptr %72, align 4, !tbaa !9
  %2199 = icmp sgt i32 %2198, 1
  br i1 %2199, label %2200, label %2419

2200:                                             ; preds = %2197
  %2201 = load i32, ptr %75, align 4, !tbaa !9
  %2202 = icmp eq i32 %2201, 0
  br i1 %2202, label %2203, label %2205

2203:                                             ; preds = %2200
  %2204 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %2204, ptr %82, align 4, !tbaa !9
  br label %2208

2205:                                             ; preds = %2200
  %2206 = load i32, ptr %74, align 4, !tbaa !9
  %2207 = sub nsw i32 %2206, 1
  store i32 %2207, ptr %82, align 4, !tbaa !9
  br label %2208

2208:                                             ; preds = %2205, %2203
  %2209 = load i32, ptr %77, align 4, !tbaa !9
  %2210 = icmp sle i32 %2209, 2
  br i1 %2210, label %2214, label %2211

2211:                                             ; preds = %2208
  %2212 = load i32, ptr %82, align 4, !tbaa !9
  %2213 = icmp eq i32 %2212, 1
  br i1 %2213, label %2214, label %2415

2214:                                             ; preds = %2211, %2208
  %2215 = load i32, ptr %72, align 4, !tbaa !9
  %2216 = load i32, ptr %77, align 4, !tbaa !9
  %2217 = sub nsw i32 %2215, %2216
  %2218 = add nsw i32 %2217, 1
  store i32 %2218, ptr %39, align 4, !tbaa !9
  %2219 = load i32, ptr %82, align 4, !tbaa !9
  %2220 = load i32, ptr %72, align 4, !tbaa !9
  %2221 = add nsw i32 %2219, %2220
  %2222 = load i32, ptr %77, align 4, !tbaa !9
  %2223 = sub nsw i32 %2221, %2222
  store i32 %2223, ptr %40, align 4, !tbaa !9
  %2224 = load ptr, ptr %19, align 8, !tbaa !5
  %2225 = load ptr, ptr %24, align 8, !tbaa !5
  %2226 = load i32, ptr %37, align 4, !tbaa !9
  %2227 = sext i32 %2226 to i64
  %2228 = getelementptr inbounds float, ptr %2225, i64 %2227
  %2229 = load ptr, ptr %25, align 8, !tbaa !5
  %2230 = load ptr, ptr %28, align 8, !tbaa !5
  %2231 = load i32, ptr %77, align 4, !tbaa !9
  %2232 = load ptr, ptr %19, align 8, !tbaa !5
  %2233 = load i32, ptr %2232, align 4, !tbaa !9
  %2234 = mul nsw i32 %2231, %2233
  %2235 = add nsw i32 %2234, 1
  %2236 = sext i32 %2235 to i64
  %2237 = getelementptr inbounds float, ptr %2230, i64 %2236
  %2238 = load ptr, ptr %19, align 8, !tbaa !5
  %2239 = load ptr, ptr %28, align 8, !tbaa !5
  %2240 = load i32, ptr %72, align 4, !tbaa !9
  %2241 = load i32, ptr %77, align 4, !tbaa !9
  %2242 = add nsw i32 %2240, %2241
  %2243 = load ptr, ptr %19, align 8, !tbaa !5
  %2244 = load i32, ptr %2243, align 4, !tbaa !9
  %2245 = mul nsw i32 %2242, %2244
  %2246 = add nsw i32 %2245, 1
  %2247 = sext i32 %2246 to i64
  %2248 = getelementptr inbounds float, ptr %2239, i64 %2247
  %2249 = load ptr, ptr %19, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.10, ptr noundef @.str.10, ptr noundef %2224, ptr noundef %39, ptr noundef %40, ptr noundef @c_b29, ptr noundef %2228, ptr noundef %2229, ptr noundef %2237, ptr noundef %2238, ptr noundef @c_b17, ptr noundef %2248, ptr noundef %2249)
  %2250 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %2250, ptr %39, align 4, !tbaa !9
  %2251 = load i32, ptr %77, align 4, !tbaa !9
  store i32 %2251, ptr %60, align 4, !tbaa !9
  br label %2252

2252:                                             ; preds = %2386, %2214
  %2253 = load i32, ptr %60, align 4, !tbaa !9
  %2254 = load i32, ptr %39, align 4, !tbaa !9
  %2255 = icmp sle i32 %2253, %2254
  br i1 %2255, label %2256, label %2389

2256:                                             ; preds = %2252
  %2257 = load i32, ptr %60, align 4, !tbaa !9
  %2258 = sub nsw i32 %2257, 1
  %2259 = sext i32 %2258 to i64
  %2260 = getelementptr inbounds [128 x i32], ptr %71, i64 0, i64 %2259
  %2261 = load i32, ptr %2260, align 4, !tbaa !9
  %2262 = icmp eq i32 %2261, 0
  br i1 %2262, label %2263, label %2298

2263:                                             ; preds = %2256
  %2264 = load ptr, ptr %19, align 8, !tbaa !5
  %2265 = load ptr, ptr %28, align 8, !tbaa !5
  %2266 = load i32, ptr %72, align 4, !tbaa !9
  %2267 = load i32, ptr %60, align 4, !tbaa !9
  %2268 = add nsw i32 %2266, %2267
  %2269 = load ptr, ptr %19, align 8, !tbaa !5
  %2270 = load i32, ptr %2269, align 4, !tbaa !9
  %2271 = mul nsw i32 %2268, %2270
  %2272 = add nsw i32 %2271, 1
  %2273 = sext i32 %2272 to i64
  %2274 = getelementptr inbounds float, ptr %2265, i64 %2273
  %2275 = call i32 @isamax_(ptr noundef %2264, ptr noundef %2274, ptr noundef @c__1)
  store i32 %2275, ptr %73, align 4, !tbaa !9
  %2276 = load ptr, ptr %28, align 8, !tbaa !5
  %2277 = load i32, ptr %73, align 4, !tbaa !9
  %2278 = load i32, ptr %72, align 4, !tbaa !9
  %2279 = load i32, ptr %60, align 4, !tbaa !9
  %2280 = add nsw i32 %2278, %2279
  %2281 = load ptr, ptr %19, align 8, !tbaa !5
  %2282 = load i32, ptr %2281, align 4, !tbaa !9
  %2283 = mul nsw i32 %2280, %2282
  %2284 = add nsw i32 %2277, %2283
  %2285 = sext i32 %2284 to i64
  %2286 = getelementptr inbounds float, ptr %2276, i64 %2285
  %2287 = load float, ptr %2286, align 4, !tbaa !16
  store float %2287, ptr %42, align 4, !tbaa !16
  %2288 = load float, ptr %42, align 4, !tbaa !16
  %2289 = fcmp oge float %2288, 0.000000e+00
  br i1 %2289, label %2290, label %2292

2290:                                             ; preds = %2263
  %2291 = load float, ptr %42, align 4, !tbaa !16
  br label %2295

2292:                                             ; preds = %2263
  %2293 = load float, ptr %42, align 4, !tbaa !16
  %2294 = fneg float %2293
  br label %2295

2295:                                             ; preds = %2292, %2290
  %2296 = phi float [ %2291, %2290 ], [ %2294, %2292 ]
  %2297 = fdiv float 1.000000e+00, %2296
  store float %2297, ptr %63, align 4, !tbaa !16
  br label %2374

2298:                                             ; preds = %2256
  %2299 = load i32, ptr %60, align 4, !tbaa !9
  %2300 = sub nsw i32 %2299, 1
  %2301 = sext i32 %2300 to i64
  %2302 = getelementptr inbounds [128 x i32], ptr %71, i64 0, i64 %2301
  %2303 = load i32, ptr %2302, align 4, !tbaa !9
  %2304 = icmp eq i32 %2303, 1
  br i1 %2304, label %2305, label %2373

2305:                                             ; preds = %2298
  store float 0.000000e+00, ptr %48, align 4, !tbaa !16
  %2306 = load ptr, ptr %19, align 8, !tbaa !5
  %2307 = load i32, ptr %2306, align 4, !tbaa !9
  store i32 %2307, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %2308

2308:                                             ; preds = %2367, %2305
  %2309 = load i32, ptr %73, align 4, !tbaa !9
  %2310 = load i32, ptr %40, align 4, !tbaa !9
  %2311 = icmp sle i32 %2309, %2310
  br i1 %2311, label %2312, label %2370

2312:                                             ; preds = %2308
  %2313 = load float, ptr %48, align 4, !tbaa !16
  store float %2313, ptr %44, align 4, !tbaa !16
  %2314 = load ptr, ptr %28, align 8, !tbaa !5
  %2315 = load i32, ptr %73, align 4, !tbaa !9
  %2316 = load i32, ptr %72, align 4, !tbaa !9
  %2317 = load i32, ptr %60, align 4, !tbaa !9
  %2318 = add nsw i32 %2316, %2317
  %2319 = load ptr, ptr %19, align 8, !tbaa !5
  %2320 = load i32, ptr %2319, align 4, !tbaa !9
  %2321 = mul nsw i32 %2318, %2320
  %2322 = add nsw i32 %2315, %2321
  %2323 = sext i32 %2322 to i64
  %2324 = getelementptr inbounds float, ptr %2314, i64 %2323
  %2325 = load float, ptr %2324, align 4, !tbaa !16
  store float %2325, ptr %42, align 4, !tbaa !16
  %2326 = load float, ptr %42, align 4, !tbaa !16
  %2327 = fcmp oge float %2326, 0.000000e+00
  br i1 %2327, label %2328, label %2330

2328:                                             ; preds = %2312
  %2329 = load float, ptr %42, align 4, !tbaa !16
  br label %2333

2330:                                             ; preds = %2312
  %2331 = load float, ptr %42, align 4, !tbaa !16
  %2332 = fneg float %2331
  br label %2333

2333:                                             ; preds = %2330, %2328
  %2334 = phi float [ %2329, %2328 ], [ %2332, %2330 ]
  %2335 = load ptr, ptr %28, align 8, !tbaa !5
  %2336 = load i32, ptr %73, align 4, !tbaa !9
  %2337 = load i32, ptr %72, align 4, !tbaa !9
  %2338 = load i32, ptr %60, align 4, !tbaa !9
  %2339 = add nsw i32 %2337, %2338
  %2340 = add nsw i32 %2339, 1
  %2341 = load ptr, ptr %19, align 8, !tbaa !5
  %2342 = load i32, ptr %2341, align 4, !tbaa !9
  %2343 = mul nsw i32 %2340, %2342
  %2344 = add nsw i32 %2336, %2343
  %2345 = sext i32 %2344 to i64
  %2346 = getelementptr inbounds float, ptr %2335, i64 %2345
  %2347 = load float, ptr %2346, align 4, !tbaa !16
  store float %2347, ptr %43, align 4, !tbaa !16
  %2348 = load float, ptr %43, align 4, !tbaa !16
  %2349 = fcmp oge float %2348, 0.000000e+00
  br i1 %2349, label %2350, label %2352

2350:                                             ; preds = %2333
  %2351 = load float, ptr %43, align 4, !tbaa !16
  br label %2355

2352:                                             ; preds = %2333
  %2353 = load float, ptr %43, align 4, !tbaa !16
  %2354 = fneg float %2353
  br label %2355

2355:                                             ; preds = %2352, %2350
  %2356 = phi float [ %2351, %2350 ], [ %2354, %2352 ]
  %2357 = fadd float %2334, %2356
  store float %2357, ptr %45, align 4, !tbaa !16
  %2358 = load float, ptr %44, align 4, !tbaa !16
  %2359 = load float, ptr %45, align 4, !tbaa !16
  %2360 = fcmp oge float %2358, %2359
  br i1 %2360, label %2361, label %2363

2361:                                             ; preds = %2355
  %2362 = load float, ptr %44, align 4, !tbaa !16
  br label %2365

2363:                                             ; preds = %2355
  %2364 = load float, ptr %45, align 4, !tbaa !16
  br label %2365

2365:                                             ; preds = %2363, %2361
  %2366 = phi float [ %2362, %2361 ], [ %2364, %2363 ]
  store float %2366, ptr %48, align 4, !tbaa !16
  br label %2367

2367:                                             ; preds = %2365
  %2368 = load i32, ptr %73, align 4, !tbaa !9
  %2369 = add nsw i32 %2368, 1
  store i32 %2369, ptr %73, align 4, !tbaa !9
  br label %2308, !llvm.loop !31

2370:                                             ; preds = %2308
  %2371 = load float, ptr %48, align 4, !tbaa !16
  %2372 = fdiv float 1.000000e+00, %2371
  store float %2372, ptr %63, align 4, !tbaa !16
  br label %2373

2373:                                             ; preds = %2370, %2298
  br label %2374

2374:                                             ; preds = %2373, %2295
  %2375 = load ptr, ptr %19, align 8, !tbaa !5
  %2376 = load ptr, ptr %28, align 8, !tbaa !5
  %2377 = load i32, ptr %72, align 4, !tbaa !9
  %2378 = load i32, ptr %60, align 4, !tbaa !9
  %2379 = add nsw i32 %2377, %2378
  %2380 = load ptr, ptr %19, align 8, !tbaa !5
  %2381 = load i32, ptr %2380, align 4, !tbaa !9
  %2382 = mul nsw i32 %2379, %2381
  %2383 = add nsw i32 %2382, 1
  %2384 = sext i32 %2383 to i64
  %2385 = getelementptr inbounds float, ptr %2376, i64 %2384
  call void @sscal_(ptr noundef %2375, ptr noundef %63, ptr noundef %2385, ptr noundef @c__1)
  br label %2386

2386:                                             ; preds = %2374
  %2387 = load i32, ptr %60, align 4, !tbaa !9
  %2388 = add nsw i32 %2387, 1
  store i32 %2388, ptr %60, align 4, !tbaa !9
  br label %2252, !llvm.loop !32

2389:                                             ; preds = %2252
  %2390 = load i32, ptr %72, align 4, !tbaa !9
  %2391 = load i32, ptr %77, align 4, !tbaa !9
  %2392 = sub nsw i32 %2390, %2391
  %2393 = add nsw i32 %2392, 1
  store i32 %2393, ptr %39, align 4, !tbaa !9
  %2394 = load ptr, ptr %19, align 8, !tbaa !5
  %2395 = load ptr, ptr %28, align 8, !tbaa !5
  %2396 = load i32, ptr %72, align 4, !tbaa !9
  %2397 = load i32, ptr %77, align 4, !tbaa !9
  %2398 = add nsw i32 %2396, %2397
  %2399 = load ptr, ptr %19, align 8, !tbaa !5
  %2400 = load i32, ptr %2399, align 4, !tbaa !9
  %2401 = mul nsw i32 %2398, %2400
  %2402 = add nsw i32 %2401, 1
  %2403 = sext i32 %2402 to i64
  %2404 = getelementptr inbounds float, ptr %2395, i64 %2403
  %2405 = load ptr, ptr %19, align 8, !tbaa !5
  %2406 = load ptr, ptr %24, align 8, !tbaa !5
  %2407 = load i32, ptr %82, align 4, !tbaa !9
  %2408 = load i32, ptr %36, align 4, !tbaa !9
  %2409 = mul nsw i32 %2407, %2408
  %2410 = add nsw i32 %2409, 1
  %2411 = sext i32 %2410 to i64
  %2412 = getelementptr inbounds float, ptr %2406, i64 %2411
  %2413 = load ptr, ptr %25, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.7, ptr noundef %2394, ptr noundef %39, ptr noundef %2404, ptr noundef %2405, ptr noundef %2412, ptr noundef %2413)
  %2414 = load i32, ptr %72, align 4, !tbaa !9
  store i32 %2414, ptr %77, align 4, !tbaa !9
  br label %2418

2415:                                             ; preds = %2211
  %2416 = load i32, ptr %77, align 4, !tbaa !9
  %2417 = add nsw i32 %2416, -1
  store i32 %2417, ptr %77, align 4, !tbaa !9
  br label %2418

2418:                                             ; preds = %2415, %2389
  br label %2419

2419:                                             ; preds = %2418, %2197
  %2420 = load i32, ptr %76, align 4, !tbaa !9
  %2421 = add nsw i32 %2420, -1
  store i32 %2421, ptr %76, align 4, !tbaa !9
  %2422 = load i32, ptr %75, align 4, !tbaa !9
  %2423 = icmp ne i32 %2422, 0
  br i1 %2423, label %2424, label %2427

2424:                                             ; preds = %2419
  %2425 = load i32, ptr %76, align 4, !tbaa !9
  %2426 = add nsw i32 %2425, -1
  store i32 %2426, ptr %76, align 4, !tbaa !9
  br label %2427

2427:                                             ; preds = %2424, %2419
  br label %2428

2428:                                             ; preds = %2427, %617, %607, %573
  br label %2429

2429:                                             ; preds = %2428
  %2430 = load i32, ptr %74, align 4, !tbaa !9
  %2431 = add nsw i32 %2430, -1
  store i32 %2431, ptr %74, align 4, !tbaa !9
  br label %567, !llvm.loop !33

2432:                                             ; preds = %567
  br label %2433

2433:                                             ; preds = %2432, %554
  %2434 = load i32, ptr %64, align 4, !tbaa !9
  %2435 = icmp ne i32 %2434, 0
  br i1 %2435, label %2436, label %4821

2436:                                             ; preds = %2433
  store i32 1, ptr %77, align 4, !tbaa !9
  store i32 0, ptr %75, align 4, !tbaa !9
  store i32 1, ptr %76, align 4, !tbaa !9
  %2437 = load ptr, ptr %19, align 8, !tbaa !5
  %2438 = load i32, ptr %2437, align 4, !tbaa !9
  store i32 %2438, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %74, align 4, !tbaa !9
  br label %2439

2439:                                             ; preds = %4817, %2436
  %2440 = load i32, ptr %74, align 4, !tbaa !9
  %2441 = load i32, ptr %39, align 4, !tbaa !9
  %2442 = icmp sle i32 %2440, %2441
  br i1 %2442, label %2443, label %4820

2443:                                             ; preds = %2439
  %2444 = load i32, ptr %75, align 4, !tbaa !9
  %2445 = icmp eq i32 %2444, 1
  br i1 %2445, label %2446, label %2447

2446:                                             ; preds = %2443
  store i32 -1, ptr %75, align 4, !tbaa !9
  br label %4816

2447:                                             ; preds = %2443
  %2448 = load i32, ptr %74, align 4, !tbaa !9
  %2449 = load ptr, ptr %19, align 8, !tbaa !5
  %2450 = load i32, ptr %2449, align 4, !tbaa !9
  %2451 = icmp eq i32 %2448, %2450
  br i1 %2451, label %2452, label %2453

2452:                                             ; preds = %2447
  store i32 0, ptr %75, align 4, !tbaa !9
  br label %2468

2453:                                             ; preds = %2447
  %2454 = load ptr, ptr %20, align 8, !tbaa !5
  %2455 = load i32, ptr %74, align 4, !tbaa !9
  %2456 = add nsw i32 %2455, 1
  %2457 = load i32, ptr %74, align 4, !tbaa !9
  %2458 = load i32, ptr %32, align 4, !tbaa !9
  %2459 = mul nsw i32 %2457, %2458
  %2460 = add nsw i32 %2456, %2459
  %2461 = sext i32 %2460 to i64
  %2462 = getelementptr inbounds float, ptr %2454, i64 %2461
  %2463 = load float, ptr %2462, align 4, !tbaa !16
  %2464 = fcmp oeq float %2463, 0.000000e+00
  br i1 %2464, label %2465, label %2466

2465:                                             ; preds = %2453
  store i32 0, ptr %75, align 4, !tbaa !9
  br label %2467

2466:                                             ; preds = %2453
  store i32 1, ptr %75, align 4, !tbaa !9
  br label %2467

2467:                                             ; preds = %2466, %2465
  br label %2468

2468:                                             ; preds = %2467, %2452
  br label %2469

2469:                                             ; preds = %2468
  %2470 = load i32, ptr %67, align 4, !tbaa !9
  %2471 = icmp ne i32 %2470, 0
  br i1 %2471, label %2472, label %2481

2472:                                             ; preds = %2469
  %2473 = load ptr, ptr %18, align 8, !tbaa !5
  %2474 = load i32, ptr %74, align 4, !tbaa !9
  %2475 = sext i32 %2474 to i64
  %2476 = getelementptr inbounds i32, ptr %2473, i64 %2475
  %2477 = load i32, ptr %2476, align 4, !tbaa !9
  %2478 = icmp ne i32 %2477, 0
  br i1 %2478, label %2480, label %2479

2479:                                             ; preds = %2472
  br label %4816

2480:                                             ; preds = %2472
  br label %2481

2481:                                             ; preds = %2480, %2469
  %2482 = load ptr, ptr %20, align 8, !tbaa !5
  %2483 = load i32, ptr %74, align 4, !tbaa !9
  %2484 = load i32, ptr %74, align 4, !tbaa !9
  %2485 = load i32, ptr %32, align 4, !tbaa !9
  %2486 = mul nsw i32 %2484, %2485
  %2487 = add nsw i32 %2483, %2486
  %2488 = sext i32 %2487 to i64
  %2489 = getelementptr inbounds float, ptr %2482, i64 %2488
  %2490 = load float, ptr %2489, align 4, !tbaa !16
  store float %2490, ptr %79, align 4, !tbaa !16
  store float 0.000000e+00, ptr %78, align 4, !tbaa !16
  %2491 = load i32, ptr %75, align 4, !tbaa !9
  %2492 = icmp ne i32 %2491, 0
  br i1 %2492, label %2493, label %2538

2493:                                             ; preds = %2481
  %2494 = load ptr, ptr %20, align 8, !tbaa !5
  %2495 = load i32, ptr %74, align 4, !tbaa !9
  %2496 = load i32, ptr %74, align 4, !tbaa !9
  %2497 = add nsw i32 %2496, 1
  %2498 = load i32, ptr %32, align 4, !tbaa !9
  %2499 = mul nsw i32 %2497, %2498
  %2500 = add nsw i32 %2495, %2499
  %2501 = sext i32 %2500 to i64
  %2502 = getelementptr inbounds float, ptr %2494, i64 %2501
  %2503 = load float, ptr %2502, align 4, !tbaa !16
  store float %2503, ptr %42, align 4, !tbaa !16
  %2504 = load float, ptr %42, align 4, !tbaa !16
  %2505 = fcmp oge float %2504, 0.000000e+00
  br i1 %2505, label %2506, label %2508

2506:                                             ; preds = %2493
  %2507 = load float, ptr %42, align 4, !tbaa !16
  br label %2511

2508:                                             ; preds = %2493
  %2509 = load float, ptr %42, align 4, !tbaa !16
  %2510 = fneg float %2509
  br label %2511

2511:                                             ; preds = %2508, %2506
  %2512 = phi float [ %2507, %2506 ], [ %2510, %2508 ]
  %2513 = fpext float %2512 to double
  %2514 = call double @sqrt(double noundef %2513) #4
  %2515 = load ptr, ptr %20, align 8, !tbaa !5
  %2516 = load i32, ptr %74, align 4, !tbaa !9
  %2517 = add nsw i32 %2516, 1
  %2518 = load i32, ptr %74, align 4, !tbaa !9
  %2519 = load i32, ptr %32, align 4, !tbaa !9
  %2520 = mul nsw i32 %2518, %2519
  %2521 = add nsw i32 %2517, %2520
  %2522 = sext i32 %2521 to i64
  %2523 = getelementptr inbounds float, ptr %2515, i64 %2522
  %2524 = load float, ptr %2523, align 4, !tbaa !16
  store float %2524, ptr %43, align 4, !tbaa !16
  %2525 = load float, ptr %43, align 4, !tbaa !16
  %2526 = fcmp oge float %2525, 0.000000e+00
  br i1 %2526, label %2527, label %2529

2527:                                             ; preds = %2511
  %2528 = load float, ptr %43, align 4, !tbaa !16
  br label %2532

2529:                                             ; preds = %2511
  %2530 = load float, ptr %43, align 4, !tbaa !16
  %2531 = fneg float %2530
  br label %2532

2532:                                             ; preds = %2529, %2527
  %2533 = phi float [ %2528, %2527 ], [ %2531, %2529 ]
  %2534 = fpext float %2533 to double
  %2535 = call double @sqrt(double noundef %2534) #4
  %2536 = fmul double %2514, %2535
  %2537 = fptrunc double %2536 to float
  store float %2537, ptr %78, align 4, !tbaa !16
  br label %2538

2538:                                             ; preds = %2532, %2481
  %2539 = load float, ptr %87, align 4, !tbaa !16
  %2540 = load float, ptr %79, align 4, !tbaa !16
  %2541 = fcmp oge float %2540, 0.000000e+00
  br i1 %2541, label %2542, label %2544

2542:                                             ; preds = %2538
  %2543 = load float, ptr %79, align 4, !tbaa !16
  br label %2547

2544:                                             ; preds = %2538
  %2545 = load float, ptr %79, align 4, !tbaa !16
  %2546 = fneg float %2545
  br label %2547

2547:                                             ; preds = %2544, %2542
  %2548 = phi float [ %2543, %2542 ], [ %2546, %2544 ]
  %2549 = load float, ptr %78, align 4, !tbaa !16
  %2550 = fcmp oge float %2549, 0.000000e+00
  br i1 %2550, label %2551, label %2553

2551:                                             ; preds = %2547
  %2552 = load float, ptr %78, align 4, !tbaa !16
  br label %2556

2553:                                             ; preds = %2547
  %2554 = load float, ptr %78, align 4, !tbaa !16
  %2555 = fneg float %2554
  br label %2556

2556:                                             ; preds = %2553, %2551
  %2557 = phi float [ %2552, %2551 ], [ %2555, %2553 ]
  %2558 = fadd float %2548, %2557
  %2559 = fmul float %2539, %2558
  store float %2559, ptr %42, align 4, !tbaa !16
  %2560 = load float, ptr %42, align 4, !tbaa !16
  %2561 = load float, ptr %84, align 4, !tbaa !16
  %2562 = fcmp oge float %2560, %2561
  br i1 %2562, label %2563, label %2565

2563:                                             ; preds = %2556
  %2564 = load float, ptr %42, align 4, !tbaa !16
  br label %2567

2565:                                             ; preds = %2556
  %2566 = load float, ptr %84, align 4, !tbaa !16
  br label %2567

2567:                                             ; preds = %2565, %2563
  %2568 = phi float [ %2564, %2563 ], [ %2566, %2565 ]
  store float %2568, ptr %54, align 4, !tbaa !16
  %2569 = load i32, ptr %75, align 4, !tbaa !9
  %2570 = icmp eq i32 %2569, 0
  br i1 %2570, label %2571, label %3251

2571:                                             ; preds = %2567
  %2572 = load ptr, ptr %28, align 8, !tbaa !5
  %2573 = load i32, ptr %74, align 4, !tbaa !9
  %2574 = load i32, ptr %77, align 4, !tbaa !9
  %2575 = load ptr, ptr %19, align 8, !tbaa !5
  %2576 = load i32, ptr %2575, align 4, !tbaa !9
  %2577 = mul nsw i32 %2574, %2576
  %2578 = add nsw i32 %2573, %2577
  %2579 = sext i32 %2578 to i64
  %2580 = getelementptr inbounds float, ptr %2572, i64 %2579
  store float 1.000000e+00, ptr %2580, align 4, !tbaa !16
  %2581 = load ptr, ptr %19, align 8, !tbaa !5
  %2582 = load i32, ptr %2581, align 4, !tbaa !9
  store i32 %2582, ptr %40, align 4, !tbaa !9
  %2583 = load i32, ptr %74, align 4, !tbaa !9
  %2584 = add nsw i32 %2583, 1
  store i32 %2584, ptr %60, align 4, !tbaa !9
  br label %2585

2585:                                             ; preds = %2609, %2571
  %2586 = load i32, ptr %60, align 4, !tbaa !9
  %2587 = load i32, ptr %40, align 4, !tbaa !9
  %2588 = icmp sle i32 %2586, %2587
  br i1 %2588, label %2589, label %2612

2589:                                             ; preds = %2585
  %2590 = load ptr, ptr %20, align 8, !tbaa !5
  %2591 = load i32, ptr %74, align 4, !tbaa !9
  %2592 = load i32, ptr %60, align 4, !tbaa !9
  %2593 = load i32, ptr %32, align 4, !tbaa !9
  %2594 = mul nsw i32 %2592, %2593
  %2595 = add nsw i32 %2591, %2594
  %2596 = sext i32 %2595 to i64
  %2597 = getelementptr inbounds float, ptr %2590, i64 %2596
  %2598 = load float, ptr %2597, align 4, !tbaa !16
  %2599 = fneg float %2598
  %2600 = load ptr, ptr %28, align 8, !tbaa !5
  %2601 = load i32, ptr %60, align 4, !tbaa !9
  %2602 = load i32, ptr %77, align 4, !tbaa !9
  %2603 = load ptr, ptr %19, align 8, !tbaa !5
  %2604 = load i32, ptr %2603, align 4, !tbaa !9
  %2605 = mul nsw i32 %2602, %2604
  %2606 = add nsw i32 %2601, %2605
  %2607 = sext i32 %2606 to i64
  %2608 = getelementptr inbounds float, ptr %2600, i64 %2607
  store float %2599, ptr %2608, align 4, !tbaa !16
  br label %2609

2609:                                             ; preds = %2589
  %2610 = load i32, ptr %60, align 4, !tbaa !9
  %2611 = add nsw i32 %2610, 1
  store i32 %2611, ptr %60, align 4, !tbaa !9
  br label %2585, !llvm.loop !34

2612:                                             ; preds = %2585
  store float 1.000000e+00, ptr %56, align 4, !tbaa !16
  %2613 = load float, ptr %80, align 4, !tbaa !16
  store float %2613, ptr %66, align 4, !tbaa !16
  %2614 = load i32, ptr %74, align 4, !tbaa !9
  %2615 = add nsw i32 %2614, 1
  store i32 %2615, ptr %57, align 4, !tbaa !9
  %2616 = load ptr, ptr %19, align 8, !tbaa !5
  %2617 = load i32, ptr %2616, align 4, !tbaa !9
  store i32 %2617, ptr %40, align 4, !tbaa !9
  %2618 = load i32, ptr %74, align 4, !tbaa !9
  %2619 = add nsw i32 %2618, 1
  store i32 %2619, ptr %59, align 4, !tbaa !9
  br label %2620

2620:                                             ; preds = %3040, %2612
  %2621 = load i32, ptr %59, align 4, !tbaa !9
  %2622 = load i32, ptr %40, align 4, !tbaa !9
  %2623 = icmp sle i32 %2621, %2622
  br i1 %2623, label %2624, label %3043

2624:                                             ; preds = %2620
  %2625 = load i32, ptr %59, align 4, !tbaa !9
  %2626 = load i32, ptr %57, align 4, !tbaa !9
  %2627 = icmp slt i32 %2625, %2626
  br i1 %2627, label %2628, label %2629

2628:                                             ; preds = %2624
  br label %3039

2629:                                             ; preds = %2624
  %2630 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %2630, ptr %68, align 4, !tbaa !9
  %2631 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %2631, ptr %69, align 4, !tbaa !9
  %2632 = load i32, ptr %59, align 4, !tbaa !9
  %2633 = add nsw i32 %2632, 1
  store i32 %2633, ptr %57, align 4, !tbaa !9
  %2634 = load i32, ptr %59, align 4, !tbaa !9
  %2635 = load ptr, ptr %19, align 8, !tbaa !5
  %2636 = load i32, ptr %2635, align 4, !tbaa !9
  %2637 = icmp slt i32 %2634, %2636
  br i1 %2637, label %2638, label %2656

2638:                                             ; preds = %2629
  %2639 = load ptr, ptr %20, align 8, !tbaa !5
  %2640 = load i32, ptr %59, align 4, !tbaa !9
  %2641 = add nsw i32 %2640, 1
  %2642 = load i32, ptr %59, align 4, !tbaa !9
  %2643 = load i32, ptr %32, align 4, !tbaa !9
  %2644 = mul nsw i32 %2642, %2643
  %2645 = add nsw i32 %2641, %2644
  %2646 = sext i32 %2645 to i64
  %2647 = getelementptr inbounds float, ptr %2639, i64 %2646
  %2648 = load float, ptr %2647, align 4, !tbaa !16
  %2649 = fcmp une float %2648, 0.000000e+00
  br i1 %2649, label %2650, label %2655

2650:                                             ; preds = %2638
  %2651 = load i32, ptr %59, align 4, !tbaa !9
  %2652 = add nsw i32 %2651, 1
  store i32 %2652, ptr %69, align 4, !tbaa !9
  %2653 = load i32, ptr %59, align 4, !tbaa !9
  %2654 = add nsw i32 %2653, 2
  store i32 %2654, ptr %57, align 4, !tbaa !9
  br label %2655

2655:                                             ; preds = %2650, %2638
  br label %2656

2656:                                             ; preds = %2655, %2629
  %2657 = load i32, ptr %68, align 4, !tbaa !9
  %2658 = load i32, ptr %69, align 4, !tbaa !9
  %2659 = icmp eq i32 %2657, %2658
  br i1 %2659, label %2660, label %2802

2660:                                             ; preds = %2656
  %2661 = load ptr, ptr %28, align 8, !tbaa !5
  %2662 = load i32, ptr %59, align 4, !tbaa !9
  %2663 = sext i32 %2662 to i64
  %2664 = getelementptr inbounds float, ptr %2661, i64 %2663
  %2665 = load float, ptr %2664, align 4, !tbaa !16
  %2666 = load float, ptr %66, align 4, !tbaa !16
  %2667 = fcmp ogt float %2665, %2666
  br i1 %2667, label %2668, label %2686

2668:                                             ; preds = %2660
  %2669 = load float, ptr %56, align 4, !tbaa !16
  %2670 = fdiv float 1.000000e+00, %2669
  store float %2670, ptr %86, align 4, !tbaa !16
  %2671 = load ptr, ptr %19, align 8, !tbaa !5
  %2672 = load i32, ptr %2671, align 4, !tbaa !9
  %2673 = load i32, ptr %74, align 4, !tbaa !9
  %2674 = sub nsw i32 %2672, %2673
  %2675 = add nsw i32 %2674, 1
  store i32 %2675, ptr %41, align 4, !tbaa !9
  %2676 = load ptr, ptr %28, align 8, !tbaa !5
  %2677 = load i32, ptr %74, align 4, !tbaa !9
  %2678 = load i32, ptr %77, align 4, !tbaa !9
  %2679 = load ptr, ptr %19, align 8, !tbaa !5
  %2680 = load i32, ptr %2679, align 4, !tbaa !9
  %2681 = mul nsw i32 %2678, %2680
  %2682 = add nsw i32 %2677, %2681
  %2683 = sext i32 %2682 to i64
  %2684 = getelementptr inbounds float, ptr %2676, i64 %2683
  call void @sscal_(ptr noundef %41, ptr noundef %86, ptr noundef %2684, ptr noundef @c__1)
  store float 1.000000e+00, ptr %56, align 4, !tbaa !16
  %2685 = load float, ptr %80, align 4, !tbaa !16
  store float %2685, ptr %66, align 4, !tbaa !16
  br label %2686

2686:                                             ; preds = %2668, %2660
  %2687 = load i32, ptr %59, align 4, !tbaa !9
  %2688 = load i32, ptr %74, align 4, !tbaa !9
  %2689 = sub nsw i32 %2687, %2688
  %2690 = sub nsw i32 %2689, 1
  store i32 %2690, ptr %41, align 4, !tbaa !9
  %2691 = load ptr, ptr %20, align 8, !tbaa !5
  %2692 = load i32, ptr %74, align 4, !tbaa !9
  %2693 = add nsw i32 %2692, 1
  %2694 = load i32, ptr %59, align 4, !tbaa !9
  %2695 = load i32, ptr %32, align 4, !tbaa !9
  %2696 = mul nsw i32 %2694, %2695
  %2697 = add nsw i32 %2693, %2696
  %2698 = sext i32 %2697 to i64
  %2699 = getelementptr inbounds float, ptr %2691, i64 %2698
  %2700 = load ptr, ptr %28, align 8, !tbaa !5
  %2701 = load i32, ptr %74, align 4, !tbaa !9
  %2702 = add nsw i32 %2701, 1
  %2703 = load i32, ptr %77, align 4, !tbaa !9
  %2704 = load ptr, ptr %19, align 8, !tbaa !5
  %2705 = load i32, ptr %2704, align 4, !tbaa !9
  %2706 = mul nsw i32 %2703, %2705
  %2707 = add nsw i32 %2702, %2706
  %2708 = sext i32 %2707 to i64
  %2709 = getelementptr inbounds float, ptr %2700, i64 %2708
  %2710 = call float @sdot_(ptr noundef %41, ptr noundef %2699, ptr noundef @c__1, ptr noundef %2709, ptr noundef @c__1)
  %2711 = load ptr, ptr %28, align 8, !tbaa !5
  %2712 = load i32, ptr %59, align 4, !tbaa !9
  %2713 = load i32, ptr %77, align 4, !tbaa !9
  %2714 = load ptr, ptr %19, align 8, !tbaa !5
  %2715 = load i32, ptr %2714, align 4, !tbaa !9
  %2716 = mul nsw i32 %2713, %2715
  %2717 = add nsw i32 %2712, %2716
  %2718 = sext i32 %2717 to i64
  %2719 = getelementptr inbounds float, ptr %2711, i64 %2718
  %2720 = load float, ptr %2719, align 4, !tbaa !16
  %2721 = fsub float %2720, %2710
  store float %2721, ptr %2719, align 4, !tbaa !16
  %2722 = load ptr, ptr %20, align 8, !tbaa !5
  %2723 = load i32, ptr %59, align 4, !tbaa !9
  %2724 = load i32, ptr %59, align 4, !tbaa !9
  %2725 = load i32, ptr %32, align 4, !tbaa !9
  %2726 = mul nsw i32 %2724, %2725
  %2727 = add nsw i32 %2723, %2726
  %2728 = sext i32 %2727 to i64
  %2729 = getelementptr inbounds float, ptr %2722, i64 %2728
  %2730 = load ptr, ptr %21, align 8, !tbaa !5
  %2731 = load ptr, ptr %28, align 8, !tbaa !5
  %2732 = load i32, ptr %59, align 4, !tbaa !9
  %2733 = load i32, ptr %77, align 4, !tbaa !9
  %2734 = load ptr, ptr %19, align 8, !tbaa !5
  %2735 = load i32, ptr %2734, align 4, !tbaa !9
  %2736 = mul nsw i32 %2733, %2735
  %2737 = add nsw i32 %2732, %2736
  %2738 = sext i32 %2737 to i64
  %2739 = getelementptr inbounds float, ptr %2731, i64 %2738
  %2740 = load ptr, ptr %19, align 8, !tbaa !5
  %2741 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_false, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %54, ptr noundef @c_b29, ptr noundef %2729, ptr noundef %2730, ptr noundef @c_b29, ptr noundef @c_b29, ptr noundef %2739, ptr noundef %2740, ptr noundef %79, ptr noundef @c_b17, ptr noundef %2741, ptr noundef @c__2, ptr noundef %61, ptr noundef %70, ptr noundef %51)
  %2742 = load float, ptr %61, align 4, !tbaa !16
  %2743 = fcmp une float %2742, 1.000000e+00
  br i1 %2743, label %2744, label %2759

2744:                                             ; preds = %2686
  %2745 = load ptr, ptr %19, align 8, !tbaa !5
  %2746 = load i32, ptr %2745, align 4, !tbaa !9
  %2747 = load i32, ptr %74, align 4, !tbaa !9
  %2748 = sub nsw i32 %2746, %2747
  %2749 = add nsw i32 %2748, 1
  store i32 %2749, ptr %41, align 4, !tbaa !9
  %2750 = load ptr, ptr %28, align 8, !tbaa !5
  %2751 = load i32, ptr %74, align 4, !tbaa !9
  %2752 = load i32, ptr %77, align 4, !tbaa !9
  %2753 = load ptr, ptr %19, align 8, !tbaa !5
  %2754 = load i32, ptr %2753, align 4, !tbaa !9
  %2755 = mul nsw i32 %2752, %2754
  %2756 = add nsw i32 %2751, %2755
  %2757 = sext i32 %2756 to i64
  %2758 = getelementptr inbounds float, ptr %2750, i64 %2757
  call void @sscal_(ptr noundef %41, ptr noundef %61, ptr noundef %2758, ptr noundef @c__1)
  br label %2759

2759:                                             ; preds = %2744, %2686
  %2760 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %2761 = load float, ptr %2760, align 16, !tbaa !16
  %2762 = load ptr, ptr %28, align 8, !tbaa !5
  %2763 = load i32, ptr %59, align 4, !tbaa !9
  %2764 = load i32, ptr %77, align 4, !tbaa !9
  %2765 = load ptr, ptr %19, align 8, !tbaa !5
  %2766 = load i32, ptr %2765, align 4, !tbaa !9
  %2767 = mul nsw i32 %2764, %2766
  %2768 = add nsw i32 %2763, %2767
  %2769 = sext i32 %2768 to i64
  %2770 = getelementptr inbounds float, ptr %2762, i64 %2769
  store float %2761, ptr %2770, align 4, !tbaa !16
  %2771 = load ptr, ptr %28, align 8, !tbaa !5
  %2772 = load i32, ptr %59, align 4, !tbaa !9
  %2773 = load i32, ptr %77, align 4, !tbaa !9
  %2774 = load ptr, ptr %19, align 8, !tbaa !5
  %2775 = load i32, ptr %2774, align 4, !tbaa !9
  %2776 = mul nsw i32 %2773, %2775
  %2777 = add nsw i32 %2772, %2776
  %2778 = sext i32 %2777 to i64
  %2779 = getelementptr inbounds float, ptr %2771, i64 %2778
  %2780 = load float, ptr %2779, align 4, !tbaa !16
  store float %2780, ptr %42, align 4, !tbaa !16
  %2781 = load float, ptr %42, align 4, !tbaa !16
  %2782 = fcmp oge float %2781, 0.000000e+00
  br i1 %2782, label %2783, label %2785

2783:                                             ; preds = %2759
  %2784 = load float, ptr %42, align 4, !tbaa !16
  br label %2788

2785:                                             ; preds = %2759
  %2786 = load float, ptr %42, align 4, !tbaa !16
  %2787 = fneg float %2786
  br label %2788

2788:                                             ; preds = %2785, %2783
  %2789 = phi float [ %2784, %2783 ], [ %2787, %2785 ]
  store float %2789, ptr %43, align 4, !tbaa !16
  %2790 = load float, ptr %43, align 4, !tbaa !16
  %2791 = load float, ptr %56, align 4, !tbaa !16
  %2792 = fcmp oge float %2790, %2791
  br i1 %2792, label %2793, label %2795

2793:                                             ; preds = %2788
  %2794 = load float, ptr %43, align 4, !tbaa !16
  br label %2797

2795:                                             ; preds = %2788
  %2796 = load float, ptr %56, align 4, !tbaa !16
  br label %2797

2797:                                             ; preds = %2795, %2793
  %2798 = phi float [ %2794, %2793 ], [ %2796, %2795 ]
  store float %2798, ptr %56, align 4, !tbaa !16
  %2799 = load float, ptr %80, align 4, !tbaa !16
  %2800 = load float, ptr %56, align 4, !tbaa !16
  %2801 = fdiv float %2799, %2800
  store float %2801, ptr %66, align 4, !tbaa !16
  br label %3038

2802:                                             ; preds = %2656
  %2803 = load ptr, ptr %28, align 8, !tbaa !5
  %2804 = load i32, ptr %59, align 4, !tbaa !9
  %2805 = sext i32 %2804 to i64
  %2806 = getelementptr inbounds float, ptr %2803, i64 %2805
  %2807 = load float, ptr %2806, align 4, !tbaa !16
  store float %2807, ptr %42, align 4, !tbaa !16
  %2808 = load ptr, ptr %28, align 8, !tbaa !5
  %2809 = load i32, ptr %59, align 4, !tbaa !9
  %2810 = add nsw i32 %2809, 1
  %2811 = sext i32 %2810 to i64
  %2812 = getelementptr inbounds float, ptr %2808, i64 %2811
  %2813 = load float, ptr %2812, align 4, !tbaa !16
  store float %2813, ptr %43, align 4, !tbaa !16
  %2814 = load float, ptr %42, align 4, !tbaa !16
  %2815 = load float, ptr %43, align 4, !tbaa !16
  %2816 = fcmp oge float %2814, %2815
  br i1 %2816, label %2817, label %2819

2817:                                             ; preds = %2802
  %2818 = load float, ptr %42, align 4, !tbaa !16
  br label %2821

2819:                                             ; preds = %2802
  %2820 = load float, ptr %43, align 4, !tbaa !16
  br label %2821

2821:                                             ; preds = %2819, %2817
  %2822 = phi float [ %2818, %2817 ], [ %2820, %2819 ]
  store float %2822, ptr %47, align 4, !tbaa !16
  %2823 = load float, ptr %47, align 4, !tbaa !16
  %2824 = load float, ptr %66, align 4, !tbaa !16
  %2825 = fcmp ogt float %2823, %2824
  br i1 %2825, label %2826, label %2844

2826:                                             ; preds = %2821
  %2827 = load float, ptr %56, align 4, !tbaa !16
  %2828 = fdiv float 1.000000e+00, %2827
  store float %2828, ptr %86, align 4, !tbaa !16
  %2829 = load ptr, ptr %19, align 8, !tbaa !5
  %2830 = load i32, ptr %2829, align 4, !tbaa !9
  %2831 = load i32, ptr %74, align 4, !tbaa !9
  %2832 = sub nsw i32 %2830, %2831
  %2833 = add nsw i32 %2832, 1
  store i32 %2833, ptr %41, align 4, !tbaa !9
  %2834 = load ptr, ptr %28, align 8, !tbaa !5
  %2835 = load i32, ptr %74, align 4, !tbaa !9
  %2836 = load i32, ptr %77, align 4, !tbaa !9
  %2837 = load ptr, ptr %19, align 8, !tbaa !5
  %2838 = load i32, ptr %2837, align 4, !tbaa !9
  %2839 = mul nsw i32 %2836, %2838
  %2840 = add nsw i32 %2835, %2839
  %2841 = sext i32 %2840 to i64
  %2842 = getelementptr inbounds float, ptr %2834, i64 %2841
  call void @sscal_(ptr noundef %41, ptr noundef %86, ptr noundef %2842, ptr noundef @c__1)
  store float 1.000000e+00, ptr %56, align 4, !tbaa !16
  %2843 = load float, ptr %80, align 4, !tbaa !16
  store float %2843, ptr %66, align 4, !tbaa !16
  br label %2844

2844:                                             ; preds = %2826, %2821
  %2845 = load i32, ptr %59, align 4, !tbaa !9
  %2846 = load i32, ptr %74, align 4, !tbaa !9
  %2847 = sub nsw i32 %2845, %2846
  %2848 = sub nsw i32 %2847, 1
  store i32 %2848, ptr %41, align 4, !tbaa !9
  %2849 = load ptr, ptr %20, align 8, !tbaa !5
  %2850 = load i32, ptr %74, align 4, !tbaa !9
  %2851 = add nsw i32 %2850, 1
  %2852 = load i32, ptr %59, align 4, !tbaa !9
  %2853 = load i32, ptr %32, align 4, !tbaa !9
  %2854 = mul nsw i32 %2852, %2853
  %2855 = add nsw i32 %2851, %2854
  %2856 = sext i32 %2855 to i64
  %2857 = getelementptr inbounds float, ptr %2849, i64 %2856
  %2858 = load ptr, ptr %28, align 8, !tbaa !5
  %2859 = load i32, ptr %74, align 4, !tbaa !9
  %2860 = add nsw i32 %2859, 1
  %2861 = load i32, ptr %77, align 4, !tbaa !9
  %2862 = load ptr, ptr %19, align 8, !tbaa !5
  %2863 = load i32, ptr %2862, align 4, !tbaa !9
  %2864 = mul nsw i32 %2861, %2863
  %2865 = add nsw i32 %2860, %2864
  %2866 = sext i32 %2865 to i64
  %2867 = getelementptr inbounds float, ptr %2858, i64 %2866
  %2868 = call float @sdot_(ptr noundef %41, ptr noundef %2857, ptr noundef @c__1, ptr noundef %2867, ptr noundef @c__1)
  %2869 = load ptr, ptr %28, align 8, !tbaa !5
  %2870 = load i32, ptr %59, align 4, !tbaa !9
  %2871 = load i32, ptr %77, align 4, !tbaa !9
  %2872 = load ptr, ptr %19, align 8, !tbaa !5
  %2873 = load i32, ptr %2872, align 4, !tbaa !9
  %2874 = mul nsw i32 %2871, %2873
  %2875 = add nsw i32 %2870, %2874
  %2876 = sext i32 %2875 to i64
  %2877 = getelementptr inbounds float, ptr %2869, i64 %2876
  %2878 = load float, ptr %2877, align 4, !tbaa !16
  %2879 = fsub float %2878, %2868
  store float %2879, ptr %2877, align 4, !tbaa !16
  %2880 = load i32, ptr %59, align 4, !tbaa !9
  %2881 = load i32, ptr %74, align 4, !tbaa !9
  %2882 = sub nsw i32 %2880, %2881
  %2883 = sub nsw i32 %2882, 1
  store i32 %2883, ptr %41, align 4, !tbaa !9
  %2884 = load ptr, ptr %20, align 8, !tbaa !5
  %2885 = load i32, ptr %74, align 4, !tbaa !9
  %2886 = add nsw i32 %2885, 1
  %2887 = load i32, ptr %59, align 4, !tbaa !9
  %2888 = add nsw i32 %2887, 1
  %2889 = load i32, ptr %32, align 4, !tbaa !9
  %2890 = mul nsw i32 %2888, %2889
  %2891 = add nsw i32 %2886, %2890
  %2892 = sext i32 %2891 to i64
  %2893 = getelementptr inbounds float, ptr %2884, i64 %2892
  %2894 = load ptr, ptr %28, align 8, !tbaa !5
  %2895 = load i32, ptr %74, align 4, !tbaa !9
  %2896 = add nsw i32 %2895, 1
  %2897 = load i32, ptr %77, align 4, !tbaa !9
  %2898 = load ptr, ptr %19, align 8, !tbaa !5
  %2899 = load i32, ptr %2898, align 4, !tbaa !9
  %2900 = mul nsw i32 %2897, %2899
  %2901 = add nsw i32 %2896, %2900
  %2902 = sext i32 %2901 to i64
  %2903 = getelementptr inbounds float, ptr %2894, i64 %2902
  %2904 = call float @sdot_(ptr noundef %41, ptr noundef %2893, ptr noundef @c__1, ptr noundef %2903, ptr noundef @c__1)
  %2905 = load ptr, ptr %28, align 8, !tbaa !5
  %2906 = load i32, ptr %59, align 4, !tbaa !9
  %2907 = add nsw i32 %2906, 1
  %2908 = load i32, ptr %77, align 4, !tbaa !9
  %2909 = load ptr, ptr %19, align 8, !tbaa !5
  %2910 = load i32, ptr %2909, align 4, !tbaa !9
  %2911 = mul nsw i32 %2908, %2910
  %2912 = add nsw i32 %2907, %2911
  %2913 = sext i32 %2912 to i64
  %2914 = getelementptr inbounds float, ptr %2905, i64 %2913
  %2915 = load float, ptr %2914, align 4, !tbaa !16
  %2916 = fsub float %2915, %2904
  store float %2916, ptr %2914, align 4, !tbaa !16
  %2917 = load ptr, ptr %20, align 8, !tbaa !5
  %2918 = load i32, ptr %59, align 4, !tbaa !9
  %2919 = load i32, ptr %59, align 4, !tbaa !9
  %2920 = load i32, ptr %32, align 4, !tbaa !9
  %2921 = mul nsw i32 %2919, %2920
  %2922 = add nsw i32 %2918, %2921
  %2923 = sext i32 %2922 to i64
  %2924 = getelementptr inbounds float, ptr %2917, i64 %2923
  %2925 = load ptr, ptr %21, align 8, !tbaa !5
  %2926 = load ptr, ptr %28, align 8, !tbaa !5
  %2927 = load i32, ptr %59, align 4, !tbaa !9
  %2928 = load i32, ptr %77, align 4, !tbaa !9
  %2929 = load ptr, ptr %19, align 8, !tbaa !5
  %2930 = load i32, ptr %2929, align 4, !tbaa !9
  %2931 = mul nsw i32 %2928, %2930
  %2932 = add nsw i32 %2927, %2931
  %2933 = sext i32 %2932 to i64
  %2934 = getelementptr inbounds float, ptr %2926, i64 %2933
  %2935 = load ptr, ptr %19, align 8, !tbaa !5
  %2936 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_true, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %54, ptr noundef @c_b29, ptr noundef %2924, ptr noundef %2925, ptr noundef @c_b29, ptr noundef @c_b29, ptr noundef %2934, ptr noundef %2935, ptr noundef %79, ptr noundef @c_b17, ptr noundef %2936, ptr noundef @c__2, ptr noundef %61, ptr noundef %70, ptr noundef %51)
  %2937 = load float, ptr %61, align 4, !tbaa !16
  %2938 = fcmp une float %2937, 1.000000e+00
  br i1 %2938, label %2939, label %2954

2939:                                             ; preds = %2844
  %2940 = load ptr, ptr %19, align 8, !tbaa !5
  %2941 = load i32, ptr %2940, align 4, !tbaa !9
  %2942 = load i32, ptr %74, align 4, !tbaa !9
  %2943 = sub nsw i32 %2941, %2942
  %2944 = add nsw i32 %2943, 1
  store i32 %2944, ptr %41, align 4, !tbaa !9
  %2945 = load ptr, ptr %28, align 8, !tbaa !5
  %2946 = load i32, ptr %74, align 4, !tbaa !9
  %2947 = load i32, ptr %77, align 4, !tbaa !9
  %2948 = load ptr, ptr %19, align 8, !tbaa !5
  %2949 = load i32, ptr %2948, align 4, !tbaa !9
  %2950 = mul nsw i32 %2947, %2949
  %2951 = add nsw i32 %2946, %2950
  %2952 = sext i32 %2951 to i64
  %2953 = getelementptr inbounds float, ptr %2945, i64 %2952
  call void @sscal_(ptr noundef %41, ptr noundef %61, ptr noundef %2953, ptr noundef @c__1)
  br label %2954

2954:                                             ; preds = %2939, %2844
  %2955 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %2956 = load float, ptr %2955, align 16, !tbaa !16
  %2957 = load ptr, ptr %28, align 8, !tbaa !5
  %2958 = load i32, ptr %59, align 4, !tbaa !9
  %2959 = load i32, ptr %77, align 4, !tbaa !9
  %2960 = load ptr, ptr %19, align 8, !tbaa !5
  %2961 = load i32, ptr %2960, align 4, !tbaa !9
  %2962 = mul nsw i32 %2959, %2961
  %2963 = add nsw i32 %2958, %2962
  %2964 = sext i32 %2963 to i64
  %2965 = getelementptr inbounds float, ptr %2957, i64 %2964
  store float %2956, ptr %2965, align 4, !tbaa !16
  %2966 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 1
  %2967 = load float, ptr %2966, align 4, !tbaa !16
  %2968 = load ptr, ptr %28, align 8, !tbaa !5
  %2969 = load i32, ptr %59, align 4, !tbaa !9
  %2970 = add nsw i32 %2969, 1
  %2971 = load i32, ptr %77, align 4, !tbaa !9
  %2972 = load ptr, ptr %19, align 8, !tbaa !5
  %2973 = load i32, ptr %2972, align 4, !tbaa !9
  %2974 = mul nsw i32 %2971, %2973
  %2975 = add nsw i32 %2970, %2974
  %2976 = sext i32 %2975 to i64
  %2977 = getelementptr inbounds float, ptr %2968, i64 %2976
  store float %2967, ptr %2977, align 4, !tbaa !16
  %2978 = load ptr, ptr %28, align 8, !tbaa !5
  %2979 = load i32, ptr %59, align 4, !tbaa !9
  %2980 = load i32, ptr %77, align 4, !tbaa !9
  %2981 = load ptr, ptr %19, align 8, !tbaa !5
  %2982 = load i32, ptr %2981, align 4, !tbaa !9
  %2983 = mul nsw i32 %2980, %2982
  %2984 = add nsw i32 %2979, %2983
  %2985 = sext i32 %2984 to i64
  %2986 = getelementptr inbounds float, ptr %2978, i64 %2985
  %2987 = load float, ptr %2986, align 4, !tbaa !16
  store float %2987, ptr %42, align 4, !tbaa !16
  %2988 = load float, ptr %42, align 4, !tbaa !16
  %2989 = fcmp oge float %2988, 0.000000e+00
  br i1 %2989, label %2990, label %2992

2990:                                             ; preds = %2954
  %2991 = load float, ptr %42, align 4, !tbaa !16
  br label %2995

2992:                                             ; preds = %2954
  %2993 = load float, ptr %42, align 4, !tbaa !16
  %2994 = fneg float %2993
  br label %2995

2995:                                             ; preds = %2992, %2990
  %2996 = phi float [ %2991, %2990 ], [ %2994, %2992 ]
  store float %2996, ptr %44, align 4, !tbaa !16
  %2997 = load ptr, ptr %28, align 8, !tbaa !5
  %2998 = load i32, ptr %59, align 4, !tbaa !9
  %2999 = add nsw i32 %2998, 1
  %3000 = load i32, ptr %77, align 4, !tbaa !9
  %3001 = load ptr, ptr %19, align 8, !tbaa !5
  %3002 = load i32, ptr %3001, align 4, !tbaa !9
  %3003 = mul nsw i32 %3000, %3002
  %3004 = add nsw i32 %2999, %3003
  %3005 = sext i32 %3004 to i64
  %3006 = getelementptr inbounds float, ptr %2997, i64 %3005
  %3007 = load float, ptr %3006, align 4, !tbaa !16
  store float %3007, ptr %43, align 4, !tbaa !16
  %3008 = load float, ptr %43, align 4, !tbaa !16
  %3009 = fcmp oge float %3008, 0.000000e+00
  br i1 %3009, label %3010, label %3012

3010:                                             ; preds = %2995
  %3011 = load float, ptr %43, align 4, !tbaa !16
  br label %3015

3012:                                             ; preds = %2995
  %3013 = load float, ptr %43, align 4, !tbaa !16
  %3014 = fneg float %3013
  br label %3015

3015:                                             ; preds = %3012, %3010
  %3016 = phi float [ %3011, %3010 ], [ %3014, %3012 ]
  store float %3016, ptr %45, align 4, !tbaa !16
  %3017 = load float, ptr %44, align 4, !tbaa !16
  %3018 = load float, ptr %45, align 4, !tbaa !16
  %3019 = fcmp oge float %3017, %3018
  br i1 %3019, label %3020, label %3022

3020:                                             ; preds = %3015
  %3021 = load float, ptr %44, align 4, !tbaa !16
  br label %3024

3022:                                             ; preds = %3015
  %3023 = load float, ptr %45, align 4, !tbaa !16
  br label %3024

3024:                                             ; preds = %3022, %3020
  %3025 = phi float [ %3021, %3020 ], [ %3023, %3022 ]
  store float %3025, ptr %44, align 4, !tbaa !16
  %3026 = load float, ptr %44, align 4, !tbaa !16
  %3027 = load float, ptr %56, align 4, !tbaa !16
  %3028 = fcmp oge float %3026, %3027
  br i1 %3028, label %3029, label %3031

3029:                                             ; preds = %3024
  %3030 = load float, ptr %44, align 4, !tbaa !16
  br label %3033

3031:                                             ; preds = %3024
  %3032 = load float, ptr %56, align 4, !tbaa !16
  br label %3033

3033:                                             ; preds = %3031, %3029
  %3034 = phi float [ %3030, %3029 ], [ %3032, %3031 ]
  store float %3034, ptr %56, align 4, !tbaa !16
  %3035 = load float, ptr %80, align 4, !tbaa !16
  %3036 = load float, ptr %56, align 4, !tbaa !16
  %3037 = fdiv float %3035, %3036
  store float %3037, ptr %66, align 4, !tbaa !16
  br label %3038

3038:                                             ; preds = %3033, %2797
  br label %3039

3039:                                             ; preds = %3038, %2628
  br label %3040

3040:                                             ; preds = %3039
  %3041 = load i32, ptr %59, align 4, !tbaa !9
  %3042 = add nsw i32 %3041, 1
  store i32 %3042, ptr %59, align 4, !tbaa !9
  br label %2620, !llvm.loop !35

3043:                                             ; preds = %2620
  %3044 = load i32, ptr %55, align 4, !tbaa !9
  %3045 = icmp ne i32 %3044, 0
  br i1 %3045, label %3137, label %3046

3046:                                             ; preds = %3043
  %3047 = load ptr, ptr %19, align 8, !tbaa !5
  %3048 = load i32, ptr %3047, align 4, !tbaa !9
  %3049 = load i32, ptr %74, align 4, !tbaa !9
  %3050 = sub nsw i32 %3048, %3049
  %3051 = add nsw i32 %3050, 1
  store i32 %3051, ptr %40, align 4, !tbaa !9
  %3052 = load ptr, ptr %28, align 8, !tbaa !5
  %3053 = load i32, ptr %74, align 4, !tbaa !9
  %3054 = load i32, ptr %77, align 4, !tbaa !9
  %3055 = load ptr, ptr %19, align 8, !tbaa !5
  %3056 = load i32, ptr %3055, align 4, !tbaa !9
  %3057 = mul nsw i32 %3054, %3056
  %3058 = add nsw i32 %3053, %3057
  %3059 = sext i32 %3058 to i64
  %3060 = getelementptr inbounds float, ptr %3052, i64 %3059
  %3061 = load ptr, ptr %22, align 8, !tbaa !5
  %3062 = load i32, ptr %74, align 4, !tbaa !9
  %3063 = load i32, ptr %76, align 4, !tbaa !9
  %3064 = load i32, ptr %34, align 4, !tbaa !9
  %3065 = mul nsw i32 %3063, %3064
  %3066 = add nsw i32 %3062, %3065
  %3067 = sext i32 %3066 to i64
  %3068 = getelementptr inbounds float, ptr %3061, i64 %3067
  call void @scopy_(ptr noundef %40, ptr noundef %3060, ptr noundef @c__1, ptr noundef %3068, ptr noundef @c__1)
  %3069 = load ptr, ptr %19, align 8, !tbaa !5
  %3070 = load i32, ptr %3069, align 4, !tbaa !9
  %3071 = load i32, ptr %74, align 4, !tbaa !9
  %3072 = sub nsw i32 %3070, %3071
  %3073 = add nsw i32 %3072, 1
  store i32 %3073, ptr %40, align 4, !tbaa !9
  %3074 = load ptr, ptr %22, align 8, !tbaa !5
  %3075 = load i32, ptr %74, align 4, !tbaa !9
  %3076 = load i32, ptr %76, align 4, !tbaa !9
  %3077 = load i32, ptr %34, 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 %3074, i64 %3080
  %3082 = call i32 @isamax_(ptr noundef %40, ptr noundef %3081, ptr noundef @c__1)
  %3083 = load i32, ptr %74, align 4, !tbaa !9
  %3084 = add nsw i32 %3082, %3083
  %3085 = sub nsw i32 %3084, 1
  store i32 %3085, ptr %73, align 4, !tbaa !9
  %3086 = load ptr, ptr %22, align 8, !tbaa !5
  %3087 = load i32, ptr %73, align 4, !tbaa !9
  %3088 = load i32, ptr %76, align 4, !tbaa !9
  %3089 = load i32, ptr %34, align 4, !tbaa !9
  %3090 = mul nsw i32 %3088, %3089
  %3091 = add nsw i32 %3087, %3090
  %3092 = sext i32 %3091 to i64
  %3093 = getelementptr inbounds float, ptr %3086, i64 %3092
  %3094 = load float, ptr %3093, align 4, !tbaa !16
  store float %3094, ptr %42, align 4, !tbaa !16
  %3095 = load float, ptr %42, align 4, !tbaa !16
  %3096 = fcmp oge float %3095, 0.000000e+00
  br i1 %3096, label %3097, label %3099

3097:                                             ; preds = %3046
  %3098 = load float, ptr %42, align 4, !tbaa !16
  br label %3102

3099:                                             ; preds = %3046
  %3100 = load float, ptr %42, align 4, !tbaa !16
  %3101 = fneg float %3100
  br label %3102

3102:                                             ; preds = %3099, %3097
  %3103 = phi float [ %3098, %3097 ], [ %3101, %3099 ]
  %3104 = fdiv float 1.000000e+00, %3103
  store float %3104, ptr %63, align 4, !tbaa !16
  %3105 = load ptr, ptr %19, align 8, !tbaa !5
  %3106 = load i32, ptr %3105, align 4, !tbaa !9
  %3107 = load i32, ptr %74, align 4, !tbaa !9
  %3108 = sub nsw i32 %3106, %3107
  %3109 = add nsw i32 %3108, 1
  store i32 %3109, ptr %40, align 4, !tbaa !9
  %3110 = load ptr, ptr %22, align 8, !tbaa !5
  %3111 = load i32, ptr %74, align 4, !tbaa !9
  %3112 = load i32, ptr %76, align 4, !tbaa !9
  %3113 = load i32, ptr %34, align 4, !tbaa !9
  %3114 = mul nsw i32 %3112, %3113
  %3115 = add nsw i32 %3111, %3114
  %3116 = sext i32 %3115 to i64
  %3117 = getelementptr inbounds float, ptr %3110, i64 %3116
  call void @sscal_(ptr noundef %40, ptr noundef %63, ptr noundef %3117, ptr noundef @c__1)
  %3118 = load i32, ptr %74, align 4, !tbaa !9
  %3119 = sub nsw i32 %3118, 1
  store i32 %3119, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %3120

3120:                                             ; preds = %3133, %3102
  %3121 = load i32, ptr %60, align 4, !tbaa !9
  %3122 = load i32, ptr %40, align 4, !tbaa !9
  %3123 = icmp sle i32 %3121, %3122
  br i1 %3123, label %3124, label %3136

3124:                                             ; preds = %3120
  %3125 = load ptr, ptr %22, align 8, !tbaa !5
  %3126 = load i32, ptr %60, align 4, !tbaa !9
  %3127 = load i32, ptr %76, align 4, !tbaa !9
  %3128 = load i32, ptr %34, align 4, !tbaa !9
  %3129 = mul nsw i32 %3127, %3128
  %3130 = add nsw i32 %3126, %3129
  %3131 = sext i32 %3130 to i64
  %3132 = getelementptr inbounds float, ptr %3125, i64 %3131
  store float 0.000000e+00, ptr %3132, align 4, !tbaa !16
  br label %3133

3133:                                             ; preds = %3124
  %3134 = load i32, ptr %60, align 4, !tbaa !9
  %3135 = add nsw i32 %3134, 1
  store i32 %3135, ptr %60, align 4, !tbaa !9
  br label %3120, !llvm.loop !36

3136:                                             ; preds = %3120
  br label %3250

3137:                                             ; preds = %3043
  %3138 = load i32, ptr %72, align 4, !tbaa !9
  %3139 = icmp eq i32 %3138, 1
  br i1 %3139, label %3140, label %3223

3140:                                             ; preds = %3137
  %3141 = load i32, ptr %74, align 4, !tbaa !9
  %3142 = load ptr, ptr %19, align 8, !tbaa !5
  %3143 = load i32, ptr %3142, align 4, !tbaa !9
  %3144 = icmp slt i32 %3141, %3143
  br i1 %3144, label %3145, label %3186

3145:                                             ; preds = %3140
  %3146 = load ptr, ptr %19, align 8, !tbaa !5
  %3147 = load i32, ptr %3146, align 4, !tbaa !9
  %3148 = load i32, ptr %74, align 4, !tbaa !9
  %3149 = sub nsw i32 %3147, %3148
  store i32 %3149, ptr %40, align 4, !tbaa !9
  %3150 = load ptr, ptr %19, align 8, !tbaa !5
  %3151 = load ptr, ptr %22, align 8, !tbaa !5
  %3152 = load i32, ptr %74, align 4, !tbaa !9
  %3153 = add nsw i32 %3152, 1
  %3154 = load i32, ptr %34, align 4, !tbaa !9
  %3155 = mul nsw i32 %3153, %3154
  %3156 = add nsw i32 %3155, 1
  %3157 = sext i32 %3156 to i64
  %3158 = getelementptr inbounds float, ptr %3151, i64 %3157
  %3159 = load ptr, ptr %23, align 8, !tbaa !5
  %3160 = load ptr, ptr %28, align 8, !tbaa !5
  %3161 = load i32, ptr %74, align 4, !tbaa !9
  %3162 = add nsw i32 %3161, 1
  %3163 = load i32, ptr %77, align 4, !tbaa !9
  %3164 = load ptr, ptr %19, align 8, !tbaa !5
  %3165 = load i32, ptr %3164, align 4, !tbaa !9
  %3166 = mul nsw i32 %3163, %3165
  %3167 = add nsw i32 %3162, %3166
  %3168 = sext i32 %3167 to i64
  %3169 = getelementptr inbounds float, ptr %3160, i64 %3168
  %3170 = load ptr, ptr %28, align 8, !tbaa !5
  %3171 = load i32, ptr %74, align 4, !tbaa !9
  %3172 = load i32, ptr %77, align 4, !tbaa !9
  %3173 = load ptr, ptr %19, align 8, !tbaa !5
  %3174 = load i32, ptr %3173, align 4, !tbaa !9
  %3175 = mul nsw i32 %3172, %3174
  %3176 = add nsw i32 %3171, %3175
  %3177 = sext i32 %3176 to i64
  %3178 = getelementptr inbounds float, ptr %3170, i64 %3177
  %3179 = load ptr, ptr %22, align 8, !tbaa !5
  %3180 = load i32, ptr %74, align 4, !tbaa !9
  %3181 = load i32, ptr %34, align 4, !tbaa !9
  %3182 = mul nsw i32 %3180, %3181
  %3183 = add nsw i32 %3182, 1
  %3184 = sext i32 %3183 to i64
  %3185 = getelementptr inbounds float, ptr %3179, i64 %3184
  call void @sgemv_(ptr noundef @.str.10, ptr noundef %3150, ptr noundef %40, ptr noundef @c_b29, ptr noundef %3158, ptr noundef %3159, ptr noundef %3169, ptr noundef @c__1, ptr noundef %3178, ptr noundef %3185, ptr noundef @c__1)
  br label %3186

3186:                                             ; preds = %3145, %3140
  %3187 = load ptr, ptr %19, align 8, !tbaa !5
  %3188 = load ptr, ptr %22, align 8, !tbaa !5
  %3189 = load i32, ptr %74, align 4, !tbaa !9
  %3190 = load i32, ptr %34, align 4, !tbaa !9
  %3191 = mul nsw i32 %3189, %3190
  %3192 = add nsw i32 %3191, 1
  %3193 = sext i32 %3192 to i64
  %3194 = getelementptr inbounds float, ptr %3188, i64 %3193
  %3195 = call i32 @isamax_(ptr noundef %3187, ptr noundef %3194, ptr noundef @c__1)
  store i32 %3195, ptr %73, align 4, !tbaa !9
  %3196 = load ptr, ptr %22, align 8, !tbaa !5
  %3197 = load i32, ptr %73, align 4, !tbaa !9
  %3198 = load i32, ptr %74, align 4, !tbaa !9
  %3199 = load i32, ptr %34, align 4, !tbaa !9
  %3200 = mul nsw i32 %3198, %3199
  %3201 = add nsw i32 %3197, %3200
  %3202 = sext i32 %3201 to i64
  %3203 = getelementptr inbounds float, ptr %3196, i64 %3202
  %3204 = load float, ptr %3203, align 4, !tbaa !16
  store float %3204, ptr %42, align 4, !tbaa !16
  %3205 = load float, ptr %42, align 4, !tbaa !16
  %3206 = fcmp oge float %3205, 0.000000e+00
  br i1 %3206, label %3207, label %3209

3207:                                             ; preds = %3186
  %3208 = load float, ptr %42, align 4, !tbaa !16
  br label %3212

3209:                                             ; preds = %3186
  %3210 = load float, ptr %42, align 4, !tbaa !16
  %3211 = fneg float %3210
  br label %3212

3212:                                             ; preds = %3209, %3207
  %3213 = phi float [ %3208, %3207 ], [ %3211, %3209 ]
  %3214 = fdiv float 1.000000e+00, %3213
  store float %3214, ptr %63, align 4, !tbaa !16
  %3215 = load ptr, ptr %19, align 8, !tbaa !5
  %3216 = load ptr, ptr %22, align 8, !tbaa !5
  %3217 = load i32, ptr %74, align 4, !tbaa !9
  %3218 = load i32, ptr %34, align 4, !tbaa !9
  %3219 = mul nsw i32 %3217, %3218
  %3220 = add nsw i32 %3219, 1
  %3221 = sext i32 %3220 to i64
  %3222 = getelementptr inbounds float, ptr %3216, i64 %3221
  call void @sscal_(ptr noundef %3215, ptr noundef %63, ptr noundef %3222, ptr noundef @c__1)
  br label %3249

3223:                                             ; preds = %3137
  %3224 = load i32, ptr %74, align 4, !tbaa !9
  %3225 = sub nsw i32 %3224, 1
  store i32 %3225, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %3226

3226:                                             ; preds = %3240, %3223
  %3227 = load i32, ptr %60, align 4, !tbaa !9
  %3228 = load i32, ptr %40, align 4, !tbaa !9
  %3229 = icmp sle i32 %3227, %3228
  br i1 %3229, label %3230, label %3243

3230:                                             ; preds = %3226
  %3231 = load ptr, ptr %28, align 8, !tbaa !5
  %3232 = load i32, ptr %60, align 4, !tbaa !9
  %3233 = load i32, ptr %77, align 4, !tbaa !9
  %3234 = load ptr, ptr %19, align 8, !tbaa !5
  %3235 = load i32, ptr %3234, align 4, !tbaa !9
  %3236 = mul nsw i32 %3233, %3235
  %3237 = add nsw i32 %3232, %3236
  %3238 = sext i32 %3237 to i64
  %3239 = getelementptr inbounds float, ptr %3231, i64 %3238
  store float 0.000000e+00, ptr %3239, align 4, !tbaa !16
  br label %3240

3240:                                             ; preds = %3230
  %3241 = load i32, ptr %60, align 4, !tbaa !9
  %3242 = add nsw i32 %3241, 1
  store i32 %3242, ptr %60, align 4, !tbaa !9
  br label %3226, !llvm.loop !37

3243:                                             ; preds = %3226
  %3244 = load i32, ptr %75, align 4, !tbaa !9
  %3245 = load i32, ptr %77, align 4, !tbaa !9
  %3246 = sub nsw i32 %3245, 1
  %3247 = sext i32 %3246 to i64
  %3248 = getelementptr inbounds [128 x i32], ptr %71, i64 0, i64 %3247
  store i32 %3244, ptr %3248, align 4, !tbaa !9
  br label %3249

3249:                                             ; preds = %3243, %3212
  br label %3250

3250:                                             ; preds = %3249, %3136
  br label %4581

3251:                                             ; preds = %2567
  %3252 = load ptr, ptr %20, align 8, !tbaa !5
  %3253 = load i32, ptr %74, align 4, !tbaa !9
  %3254 = load i32, ptr %74, align 4, !tbaa !9
  %3255 = add nsw i32 %3254, 1
  %3256 = load i32, ptr %32, align 4, !tbaa !9
  %3257 = mul nsw i32 %3255, %3256
  %3258 = add nsw i32 %3253, %3257
  %3259 = sext i32 %3258 to i64
  %3260 = getelementptr inbounds float, ptr %3252, i64 %3259
  %3261 = load float, ptr %3260, align 4, !tbaa !16
  store float %3261, ptr %42, align 4, !tbaa !16
  %3262 = load float, ptr %42, align 4, !tbaa !16
  %3263 = fcmp oge float %3262, 0.000000e+00
  br i1 %3263, label %3264, label %3266

3264:                                             ; preds = %3251
  %3265 = load float, ptr %42, align 4, !tbaa !16
  br label %3269

3266:                                             ; preds = %3251
  %3267 = load float, ptr %42, align 4, !tbaa !16
  %3268 = fneg float %3267
  br label %3269

3269:                                             ; preds = %3266, %3264
  %3270 = phi float [ %3265, %3264 ], [ %3268, %3266 ]
  %3271 = load ptr, ptr %20, align 8, !tbaa !5
  %3272 = load i32, ptr %74, align 4, !tbaa !9
  %3273 = add nsw i32 %3272, 1
  %3274 = load i32, ptr %74, align 4, !tbaa !9
  %3275 = load i32, ptr %32, align 4, !tbaa !9
  %3276 = mul nsw i32 %3274, %3275
  %3277 = add nsw i32 %3273, %3276
  %3278 = sext i32 %3277 to i64
  %3279 = getelementptr inbounds float, ptr %3271, i64 %3278
  %3280 = load float, ptr %3279, align 4, !tbaa !16
  store float %3280, ptr %43, align 4, !tbaa !16
  %3281 = load float, ptr %43, align 4, !tbaa !16
  %3282 = fcmp oge float %3281, 0.000000e+00
  br i1 %3282, label %3283, label %3285

3283:                                             ; preds = %3269
  %3284 = load float, ptr %43, align 4, !tbaa !16
  br label %3288

3285:                                             ; preds = %3269
  %3286 = load float, ptr %43, align 4, !tbaa !16
  %3287 = fneg float %3286
  br label %3288

3288:                                             ; preds = %3285, %3283
  %3289 = phi float [ %3284, %3283 ], [ %3287, %3285 ]
  %3290 = fcmp oge float %3270, %3289
  br i1 %3290, label %3291, label %3324

3291:                                             ; preds = %3288
  %3292 = load float, ptr %78, align 4, !tbaa !16
  %3293 = load ptr, ptr %20, align 8, !tbaa !5
  %3294 = load i32, ptr %74, align 4, !tbaa !9
  %3295 = load i32, ptr %74, align 4, !tbaa !9
  %3296 = add nsw i32 %3295, 1
  %3297 = load i32, ptr %32, align 4, !tbaa !9
  %3298 = mul nsw i32 %3296, %3297
  %3299 = add nsw i32 %3294, %3298
  %3300 = sext i32 %3299 to i64
  %3301 = getelementptr inbounds float, ptr %3293, i64 %3300
  %3302 = load float, ptr %3301, align 4, !tbaa !16
  %3303 = fdiv float %3292, %3302
  %3304 = load ptr, ptr %28, align 8, !tbaa !5
  %3305 = load i32, ptr %74, align 4, !tbaa !9
  %3306 = load i32, ptr %77, align 4, !tbaa !9
  %3307 = load ptr, ptr %19, align 8, !tbaa !5
  %3308 = load i32, ptr %3307, align 4, !tbaa !9
  %3309 = mul nsw i32 %3306, %3308
  %3310 = add nsw i32 %3305, %3309
  %3311 = sext i32 %3310 to i64
  %3312 = getelementptr inbounds float, ptr %3304, i64 %3311
  store float %3303, ptr %3312, align 4, !tbaa !16
  %3313 = load ptr, ptr %28, align 8, !tbaa !5
  %3314 = load i32, ptr %74, align 4, !tbaa !9
  %3315 = add nsw i32 %3314, 1
  %3316 = load i32, ptr %77, align 4, !tbaa !9
  %3317 = add nsw i32 %3316, 1
  %3318 = load ptr, ptr %19, align 8, !tbaa !5
  %3319 = load i32, ptr %3318, align 4, !tbaa !9
  %3320 = mul nsw i32 %3317, %3319
  %3321 = add nsw i32 %3315, %3320
  %3322 = sext i32 %3321 to i64
  %3323 = getelementptr inbounds float, ptr %3313, i64 %3322
  store float 1.000000e+00, ptr %3323, align 4, !tbaa !16
  br label %3358

3324:                                             ; preds = %3288
  %3325 = load ptr, ptr %28, align 8, !tbaa !5
  %3326 = load i32, ptr %74, align 4, !tbaa !9
  %3327 = load i32, ptr %77, align 4, !tbaa !9
  %3328 = load ptr, ptr %19, align 8, !tbaa !5
  %3329 = load i32, ptr %3328, align 4, !tbaa !9
  %3330 = mul nsw i32 %3327, %3329
  %3331 = add nsw i32 %3326, %3330
  %3332 = sext i32 %3331 to i64
  %3333 = getelementptr inbounds float, ptr %3325, i64 %3332
  store float 1.000000e+00, ptr %3333, align 4, !tbaa !16
  %3334 = load float, ptr %78, align 4, !tbaa !16
  %3335 = fneg float %3334
  %3336 = load ptr, ptr %20, align 8, !tbaa !5
  %3337 = load i32, ptr %74, align 4, !tbaa !9
  %3338 = add nsw i32 %3337, 1
  %3339 = load i32, ptr %74, align 4, !tbaa !9
  %3340 = load i32, ptr %32, align 4, !tbaa !9
  %3341 = mul nsw i32 %3339, %3340
  %3342 = add nsw i32 %3338, %3341
  %3343 = sext i32 %3342 to i64
  %3344 = getelementptr inbounds float, ptr %3336, i64 %3343
  %3345 = load float, ptr %3344, align 4, !tbaa !16
  %3346 = fdiv float %3335, %3345
  %3347 = load ptr, ptr %28, align 8, !tbaa !5
  %3348 = load i32, ptr %74, align 4, !tbaa !9
  %3349 = add nsw i32 %3348, 1
  %3350 = load i32, ptr %77, align 4, !tbaa !9
  %3351 = add nsw i32 %3350, 1
  %3352 = load ptr, ptr %19, align 8, !tbaa !5
  %3353 = load i32, ptr %3352, align 4, !tbaa !9
  %3354 = mul nsw i32 %3351, %3353
  %3355 = add nsw i32 %3349, %3354
  %3356 = sext i32 %3355 to i64
  %3357 = getelementptr inbounds float, ptr %3347, i64 %3356
  store float %3346, ptr %3357, align 4, !tbaa !16
  br label %3358

3358:                                             ; preds = %3324, %3291
  %3359 = load ptr, ptr %28, align 8, !tbaa !5
  %3360 = load i32, ptr %74, align 4, !tbaa !9
  %3361 = add nsw i32 %3360, 1
  %3362 = load i32, ptr %77, align 4, !tbaa !9
  %3363 = load ptr, ptr %19, align 8, !tbaa !5
  %3364 = load i32, ptr %3363, align 4, !tbaa !9
  %3365 = mul nsw i32 %3362, %3364
  %3366 = add nsw i32 %3361, %3365
  %3367 = sext i32 %3366 to i64
  %3368 = getelementptr inbounds float, ptr %3359, i64 %3367
  store float 0.000000e+00, ptr %3368, align 4, !tbaa !16
  %3369 = load ptr, ptr %28, align 8, !tbaa !5
  %3370 = load i32, ptr %74, align 4, !tbaa !9
  %3371 = load i32, ptr %77, align 4, !tbaa !9
  %3372 = add nsw i32 %3371, 1
  %3373 = load ptr, ptr %19, align 8, !tbaa !5
  %3374 = load i32, ptr %3373, align 4, !tbaa !9
  %3375 = mul nsw i32 %3372, %3374
  %3376 = add nsw i32 %3370, %3375
  %3377 = sext i32 %3376 to i64
  %3378 = getelementptr inbounds float, ptr %3369, i64 %3377
  store float 0.000000e+00, ptr %3378, align 4, !tbaa !16
  %3379 = load ptr, ptr %19, align 8, !tbaa !5
  %3380 = load i32, ptr %3379, align 4, !tbaa !9
  store i32 %3380, ptr %40, align 4, !tbaa !9
  %3381 = load i32, ptr %74, align 4, !tbaa !9
  %3382 = add nsw i32 %3381, 2
  store i32 %3382, ptr %60, align 4, !tbaa !9
  br label %3383

3383:                                             ; preds = %3452, %3358
  %3384 = load i32, ptr %60, align 4, !tbaa !9
  %3385 = load i32, ptr %40, align 4, !tbaa !9
  %3386 = icmp sle i32 %3384, %3385
  br i1 %3386, label %3387, label %3455

3387:                                             ; preds = %3383
  %3388 = load ptr, ptr %28, align 8, !tbaa !5
  %3389 = load i32, ptr %74, align 4, !tbaa !9
  %3390 = load i32, ptr %77, align 4, !tbaa !9
  %3391 = load ptr, ptr %19, align 8, !tbaa !5
  %3392 = load i32, ptr %3391, align 4, !tbaa !9
  %3393 = mul nsw i32 %3390, %3392
  %3394 = add nsw i32 %3389, %3393
  %3395 = sext i32 %3394 to i64
  %3396 = getelementptr inbounds float, ptr %3388, i64 %3395
  %3397 = load float, ptr %3396, align 4, !tbaa !16
  %3398 = fneg float %3397
  %3399 = load ptr, ptr %20, align 8, !tbaa !5
  %3400 = load i32, ptr %74, align 4, !tbaa !9
  %3401 = load i32, ptr %60, align 4, !tbaa !9
  %3402 = load i32, ptr %32, align 4, !tbaa !9
  %3403 = mul nsw i32 %3401, %3402
  %3404 = add nsw i32 %3400, %3403
  %3405 = sext i32 %3404 to i64
  %3406 = getelementptr inbounds float, ptr %3399, i64 %3405
  %3407 = load float, ptr %3406, align 4, !tbaa !16
  %3408 = fmul float %3398, %3407
  %3409 = load ptr, ptr %28, align 8, !tbaa !5
  %3410 = load i32, ptr %60, align 4, !tbaa !9
  %3411 = load i32, ptr %77, align 4, !tbaa !9
  %3412 = load ptr, ptr %19, align 8, !tbaa !5
  %3413 = load i32, ptr %3412, align 4, !tbaa !9
  %3414 = mul nsw i32 %3411, %3413
  %3415 = add nsw i32 %3410, %3414
  %3416 = sext i32 %3415 to i64
  %3417 = getelementptr inbounds float, ptr %3409, i64 %3416
  store float %3408, ptr %3417, align 4, !tbaa !16
  %3418 = load ptr, ptr %28, align 8, !tbaa !5
  %3419 = load i32, ptr %74, align 4, !tbaa !9
  %3420 = add nsw i32 %3419, 1
  %3421 = load i32, ptr %77, align 4, !tbaa !9
  %3422 = add nsw i32 %3421, 1
  %3423 = load ptr, ptr %19, align 8, !tbaa !5
  %3424 = load i32, ptr %3423, align 4, !tbaa !9
  %3425 = mul nsw i32 %3422, %3424
  %3426 = add nsw i32 %3420, %3425
  %3427 = sext i32 %3426 to i64
  %3428 = getelementptr inbounds float, ptr %3418, i64 %3427
  %3429 = load float, ptr %3428, align 4, !tbaa !16
  %3430 = fneg float %3429
  %3431 = load ptr, ptr %20, align 8, !tbaa !5
  %3432 = load i32, ptr %74, align 4, !tbaa !9
  %3433 = add nsw i32 %3432, 1
  %3434 = load i32, ptr %60, align 4, !tbaa !9
  %3435 = load i32, ptr %32, align 4, !tbaa !9
  %3436 = mul nsw i32 %3434, %3435
  %3437 = add nsw i32 %3433, %3436
  %3438 = sext i32 %3437 to i64
  %3439 = getelementptr inbounds float, ptr %3431, i64 %3438
  %3440 = load float, ptr %3439, align 4, !tbaa !16
  %3441 = fmul float %3430, %3440
  %3442 = load ptr, ptr %28, align 8, !tbaa !5
  %3443 = load i32, ptr %60, align 4, !tbaa !9
  %3444 = load i32, ptr %77, align 4, !tbaa !9
  %3445 = add nsw i32 %3444, 1
  %3446 = load ptr, ptr %19, align 8, !tbaa !5
  %3447 = load i32, ptr %3446, align 4, !tbaa !9
  %3448 = mul nsw i32 %3445, %3447
  %3449 = add nsw i32 %3443, %3448
  %3450 = sext i32 %3449 to i64
  %3451 = getelementptr inbounds float, ptr %3442, i64 %3450
  store float %3441, ptr %3451, align 4, !tbaa !16
  br label %3452

3452:                                             ; preds = %3387
  %3453 = load i32, ptr %60, align 4, !tbaa !9
  %3454 = add nsw i32 %3453, 1
  store i32 %3454, ptr %60, align 4, !tbaa !9
  br label %3383, !llvm.loop !38

3455:                                             ; preds = %3383
  store float 1.000000e+00, ptr %56, align 4, !tbaa !16
  %3456 = load float, ptr %80, align 4, !tbaa !16
  store float %3456, ptr %66, align 4, !tbaa !16
  %3457 = load i32, ptr %74, align 4, !tbaa !9
  %3458 = add nsw i32 %3457, 2
  store i32 %3458, ptr %57, align 4, !tbaa !9
  %3459 = load ptr, ptr %19, align 8, !tbaa !5
  %3460 = load i32, ptr %3459, align 4, !tbaa !9
  store i32 %3460, ptr %40, align 4, !tbaa !9
  %3461 = load i32, ptr %74, align 4, !tbaa !9
  %3462 = add nsw i32 %3461, 2
  store i32 %3462, ptr %59, align 4, !tbaa !9
  br label %3463

3463:                                             ; preds = %4153, %3455
  %3464 = load i32, ptr %59, align 4, !tbaa !9
  %3465 = load i32, ptr %40, align 4, !tbaa !9
  %3466 = icmp sle i32 %3464, %3465
  br i1 %3466, label %3467, label %4156

3467:                                             ; preds = %3463
  %3468 = load i32, ptr %59, align 4, !tbaa !9
  %3469 = load i32, ptr %57, align 4, !tbaa !9
  %3470 = icmp slt i32 %3468, %3469
  br i1 %3470, label %3471, label %3472

3471:                                             ; preds = %3467
  br label %4152

3472:                                             ; preds = %3467
  %3473 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %3473, ptr %68, align 4, !tbaa !9
  %3474 = load i32, ptr %59, align 4, !tbaa !9
  store i32 %3474, ptr %69, align 4, !tbaa !9
  %3475 = load i32, ptr %59, align 4, !tbaa !9
  %3476 = add nsw i32 %3475, 1
  store i32 %3476, ptr %57, align 4, !tbaa !9
  %3477 = load i32, ptr %59, align 4, !tbaa !9
  %3478 = load ptr, ptr %19, align 8, !tbaa !5
  %3479 = load i32, ptr %3478, align 4, !tbaa !9
  %3480 = icmp slt i32 %3477, %3479
  br i1 %3480, label %3481, label %3499

3481:                                             ; preds = %3472
  %3482 = load ptr, ptr %20, align 8, !tbaa !5
  %3483 = load i32, ptr %59, align 4, !tbaa !9
  %3484 = add nsw i32 %3483, 1
  %3485 = load i32, ptr %59, align 4, !tbaa !9
  %3486 = load i32, ptr %32, align 4, !tbaa !9
  %3487 = mul nsw i32 %3485, %3486
  %3488 = add nsw i32 %3484, %3487
  %3489 = sext i32 %3488 to i64
  %3490 = getelementptr inbounds float, ptr %3482, i64 %3489
  %3491 = load float, ptr %3490, align 4, !tbaa !16
  %3492 = fcmp une float %3491, 0.000000e+00
  br i1 %3492, label %3493, label %3498

3493:                                             ; preds = %3481
  %3494 = load i32, ptr %59, align 4, !tbaa !9
  %3495 = add nsw i32 %3494, 1
  store i32 %3495, ptr %69, align 4, !tbaa !9
  %3496 = load i32, ptr %59, align 4, !tbaa !9
  %3497 = add nsw i32 %3496, 2
  store i32 %3497, ptr %57, align 4, !tbaa !9
  br label %3498

3498:                                             ; preds = %3493, %3481
  br label %3499

3499:                                             ; preds = %3498, %3472
  %3500 = load i32, ptr %68, align 4, !tbaa !9
  %3501 = load i32, ptr %69, align 4, !tbaa !9
  %3502 = icmp eq i32 %3500, %3501
  br i1 %3502, label %3503, label %3755

3503:                                             ; preds = %3499
  %3504 = load ptr, ptr %28, align 8, !tbaa !5
  %3505 = load i32, ptr %59, align 4, !tbaa !9
  %3506 = sext i32 %3505 to i64
  %3507 = getelementptr inbounds float, ptr %3504, i64 %3506
  %3508 = load float, ptr %3507, align 4, !tbaa !16
  %3509 = load float, ptr %66, align 4, !tbaa !16
  %3510 = fcmp ogt float %3508, %3509
  br i1 %3510, label %3511, label %3544

3511:                                             ; preds = %3503
  %3512 = load float, ptr %56, align 4, !tbaa !16
  %3513 = fdiv float 1.000000e+00, %3512
  store float %3513, ptr %86, align 4, !tbaa !16
  %3514 = load ptr, ptr %19, align 8, !tbaa !5
  %3515 = load i32, ptr %3514, align 4, !tbaa !9
  %3516 = load i32, ptr %74, align 4, !tbaa !9
  %3517 = sub nsw i32 %3515, %3516
  %3518 = add nsw i32 %3517, 1
  store i32 %3518, ptr %41, align 4, !tbaa !9
  %3519 = load ptr, ptr %28, align 8, !tbaa !5
  %3520 = load i32, ptr %74, align 4, !tbaa !9
  %3521 = load i32, ptr %77, align 4, !tbaa !9
  %3522 = load ptr, ptr %19, align 8, !tbaa !5
  %3523 = load i32, ptr %3522, align 4, !tbaa !9
  %3524 = mul nsw i32 %3521, %3523
  %3525 = add nsw i32 %3520, %3524
  %3526 = sext i32 %3525 to i64
  %3527 = getelementptr inbounds float, ptr %3519, i64 %3526
  call void @sscal_(ptr noundef %41, ptr noundef %86, ptr noundef %3527, ptr noundef @c__1)
  %3528 = load ptr, ptr %19, align 8, !tbaa !5
  %3529 = load i32, ptr %3528, align 4, !tbaa !9
  %3530 = load i32, ptr %74, align 4, !tbaa !9
  %3531 = sub nsw i32 %3529, %3530
  %3532 = add nsw i32 %3531, 1
  store i32 %3532, ptr %41, align 4, !tbaa !9
  %3533 = load ptr, ptr %28, align 8, !tbaa !5
  %3534 = load i32, ptr %74, align 4, !tbaa !9
  %3535 = load i32, ptr %77, align 4, !tbaa !9
  %3536 = add nsw i32 %3535, 1
  %3537 = load ptr, ptr %19, align 8, !tbaa !5
  %3538 = load i32, ptr %3537, align 4, !tbaa !9
  %3539 = mul nsw i32 %3536, %3538
  %3540 = add nsw i32 %3534, %3539
  %3541 = sext i32 %3540 to i64
  %3542 = getelementptr inbounds float, ptr %3533, i64 %3541
  call void @sscal_(ptr noundef %41, ptr noundef %86, ptr noundef %3542, ptr noundef @c__1)
  store float 1.000000e+00, ptr %56, align 4, !tbaa !16
  %3543 = load float, ptr %80, align 4, !tbaa !16
  store float %3543, ptr %66, align 4, !tbaa !16
  br label %3544

3544:                                             ; preds = %3511, %3503
  %3545 = load i32, ptr %59, align 4, !tbaa !9
  %3546 = load i32, ptr %74, align 4, !tbaa !9
  %3547 = sub nsw i32 %3545, %3546
  %3548 = sub nsw i32 %3547, 2
  store i32 %3548, ptr %41, align 4, !tbaa !9
  %3549 = load ptr, ptr %20, align 8, !tbaa !5
  %3550 = load i32, ptr %74, align 4, !tbaa !9
  %3551 = add nsw i32 %3550, 2
  %3552 = load i32, ptr %59, align 4, !tbaa !9
  %3553 = load i32, ptr %32, align 4, !tbaa !9
  %3554 = mul nsw i32 %3552, %3553
  %3555 = add nsw i32 %3551, %3554
  %3556 = sext i32 %3555 to i64
  %3557 = getelementptr inbounds float, ptr %3549, i64 %3556
  %3558 = load ptr, ptr %28, align 8, !tbaa !5
  %3559 = load i32, ptr %74, align 4, !tbaa !9
  %3560 = add nsw i32 %3559, 2
  %3561 = load i32, ptr %77, align 4, !tbaa !9
  %3562 = load ptr, ptr %19, align 8, !tbaa !5
  %3563 = load i32, ptr %3562, align 4, !tbaa !9
  %3564 = mul nsw i32 %3561, %3563
  %3565 = add nsw i32 %3560, %3564
  %3566 = sext i32 %3565 to i64
  %3567 = getelementptr inbounds float, ptr %3558, i64 %3566
  %3568 = call float @sdot_(ptr noundef %41, ptr noundef %3557, ptr noundef @c__1, ptr noundef %3567, ptr noundef @c__1)
  %3569 = load ptr, ptr %28, align 8, !tbaa !5
  %3570 = load i32, ptr %59, align 4, !tbaa !9
  %3571 = load i32, ptr %77, align 4, !tbaa !9
  %3572 = load ptr, ptr %19, align 8, !tbaa !5
  %3573 = load i32, ptr %3572, align 4, !tbaa !9
  %3574 = mul nsw i32 %3571, %3573
  %3575 = add nsw i32 %3570, %3574
  %3576 = sext i32 %3575 to i64
  %3577 = getelementptr inbounds float, ptr %3569, i64 %3576
  %3578 = load float, ptr %3577, align 4, !tbaa !16
  %3579 = fsub float %3578, %3568
  store float %3579, ptr %3577, align 4, !tbaa !16
  %3580 = load i32, ptr %59, align 4, !tbaa !9
  %3581 = load i32, ptr %74, align 4, !tbaa !9
  %3582 = sub nsw i32 %3580, %3581
  %3583 = sub nsw i32 %3582, 2
  store i32 %3583, ptr %41, align 4, !tbaa !9
  %3584 = load ptr, ptr %20, align 8, !tbaa !5
  %3585 = load i32, ptr %74, align 4, !tbaa !9
  %3586 = add nsw i32 %3585, 2
  %3587 = load i32, ptr %59, align 4, !tbaa !9
  %3588 = load i32, ptr %32, align 4, !tbaa !9
  %3589 = mul nsw i32 %3587, %3588
  %3590 = add nsw i32 %3586, %3589
  %3591 = sext i32 %3590 to i64
  %3592 = getelementptr inbounds float, ptr %3584, i64 %3591
  %3593 = load ptr, ptr %28, align 8, !tbaa !5
  %3594 = load i32, ptr %74, align 4, !tbaa !9
  %3595 = add nsw i32 %3594, 2
  %3596 = load i32, ptr %77, align 4, !tbaa !9
  %3597 = add nsw i32 %3596, 1
  %3598 = load ptr, ptr %19, align 8, !tbaa !5
  %3599 = load i32, ptr %3598, align 4, !tbaa !9
  %3600 = mul nsw i32 %3597, %3599
  %3601 = add nsw i32 %3595, %3600
  %3602 = sext i32 %3601 to i64
  %3603 = getelementptr inbounds float, ptr %3593, i64 %3602
  %3604 = call float @sdot_(ptr noundef %41, ptr noundef %3592, ptr noundef @c__1, ptr noundef %3603, ptr noundef @c__1)
  %3605 = load ptr, ptr %28, align 8, !tbaa !5
  %3606 = load i32, ptr %59, align 4, !tbaa !9
  %3607 = load i32, ptr %77, align 4, !tbaa !9
  %3608 = add nsw i32 %3607, 1
  %3609 = load ptr, ptr %19, align 8, !tbaa !5
  %3610 = load i32, ptr %3609, align 4, !tbaa !9
  %3611 = mul nsw i32 %3608, %3610
  %3612 = add nsw i32 %3606, %3611
  %3613 = sext i32 %3612 to i64
  %3614 = getelementptr inbounds float, ptr %3605, i64 %3613
  %3615 = load float, ptr %3614, align 4, !tbaa !16
  %3616 = fsub float %3615, %3604
  store float %3616, ptr %3614, align 4, !tbaa !16
  %3617 = load float, ptr %78, align 4, !tbaa !16
  %3618 = fneg float %3617
  store float %3618, ptr %42, align 4, !tbaa !16
  %3619 = load ptr, ptr %20, align 8, !tbaa !5
  %3620 = load i32, ptr %59, align 4, !tbaa !9
  %3621 = load i32, ptr %59, align 4, !tbaa !9
  %3622 = load i32, ptr %32, align 4, !tbaa !9
  %3623 = mul nsw i32 %3621, %3622
  %3624 = add nsw i32 %3620, %3623
  %3625 = sext i32 %3624 to i64
  %3626 = getelementptr inbounds float, ptr %3619, i64 %3625
  %3627 = load ptr, ptr %21, align 8, !tbaa !5
  %3628 = load ptr, ptr %28, align 8, !tbaa !5
  %3629 = load i32, ptr %59, align 4, !tbaa !9
  %3630 = load i32, ptr %77, align 4, !tbaa !9
  %3631 = load ptr, ptr %19, align 8, !tbaa !5
  %3632 = load i32, ptr %3631, align 4, !tbaa !9
  %3633 = mul nsw i32 %3630, %3632
  %3634 = add nsw i32 %3629, %3633
  %3635 = sext i32 %3634 to i64
  %3636 = getelementptr inbounds float, ptr %3628, i64 %3635
  %3637 = load ptr, ptr %19, align 8, !tbaa !5
  %3638 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_false, ptr noundef @c__1, ptr noundef @c__2, ptr noundef %54, ptr noundef @c_b29, ptr noundef %3626, ptr noundef %3627, ptr noundef @c_b29, ptr noundef @c_b29, ptr noundef %3636, ptr noundef %3637, ptr noundef %79, ptr noundef %42, ptr noundef %3638, ptr noundef @c__2, ptr noundef %61, ptr noundef %70, ptr noundef %51)
  %3639 = load float, ptr %61, align 4, !tbaa !16
  %3640 = fcmp une float %3639, 1.000000e+00
  br i1 %3640, label %3641, label %3671

3641:                                             ; preds = %3544
  %3642 = load ptr, ptr %19, align 8, !tbaa !5
  %3643 = load i32, ptr %3642, align 4, !tbaa !9
  %3644 = load i32, ptr %74, align 4, !tbaa !9
  %3645 = sub nsw i32 %3643, %3644
  %3646 = add nsw i32 %3645, 1
  store i32 %3646, ptr %41, align 4, !tbaa !9
  %3647 = load ptr, ptr %28, align 8, !tbaa !5
  %3648 = load i32, ptr %74, align 4, !tbaa !9
  %3649 = load i32, ptr %77, align 4, !tbaa !9
  %3650 = load ptr, ptr %19, align 8, !tbaa !5
  %3651 = load i32, ptr %3650, align 4, !tbaa !9
  %3652 = mul nsw i32 %3649, %3651
  %3653 = add nsw i32 %3648, %3652
  %3654 = sext i32 %3653 to i64
  %3655 = getelementptr inbounds float, ptr %3647, i64 %3654
  call void @sscal_(ptr noundef %41, ptr noundef %61, ptr noundef %3655, ptr noundef @c__1)
  %3656 = load ptr, ptr %19, align 8, !tbaa !5
  %3657 = load i32, ptr %3656, align 4, !tbaa !9
  %3658 = load i32, ptr %74, align 4, !tbaa !9
  %3659 = sub nsw i32 %3657, %3658
  %3660 = add nsw i32 %3659, 1
  store i32 %3660, ptr %41, align 4, !tbaa !9
  %3661 = load ptr, ptr %28, align 8, !tbaa !5
  %3662 = load i32, ptr %74, align 4, !tbaa !9
  %3663 = load i32, ptr %77, align 4, !tbaa !9
  %3664 = add nsw i32 %3663, 1
  %3665 = load ptr, ptr %19, align 8, !tbaa !5
  %3666 = load i32, ptr %3665, align 4, !tbaa !9
  %3667 = mul nsw i32 %3664, %3666
  %3668 = add nsw i32 %3662, %3667
  %3669 = sext i32 %3668 to i64
  %3670 = getelementptr inbounds float, ptr %3661, i64 %3669
  call void @sscal_(ptr noundef %41, ptr noundef %61, ptr noundef %3670, ptr noundef @c__1)
  br label %3671

3671:                                             ; preds = %3641, %3544
  %3672 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %3673 = load float, ptr %3672, align 16, !tbaa !16
  %3674 = load ptr, ptr %28, align 8, !tbaa !5
  %3675 = load i32, ptr %59, align 4, !tbaa !9
  %3676 = load i32, ptr %77, align 4, !tbaa !9
  %3677 = load ptr, ptr %19, align 8, !tbaa !5
  %3678 = load i32, ptr %3677, align 4, !tbaa !9
  %3679 = mul nsw i32 %3676, %3678
  %3680 = add nsw i32 %3675, %3679
  %3681 = sext i32 %3680 to i64
  %3682 = getelementptr inbounds float, ptr %3674, i64 %3681
  store float %3673, ptr %3682, align 4, !tbaa !16
  %3683 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 2
  %3684 = load float, ptr %3683, align 8, !tbaa !16
  %3685 = load ptr, ptr %28, align 8, !tbaa !5
  %3686 = load i32, ptr %59, align 4, !tbaa !9
  %3687 = load i32, ptr %77, align 4, !tbaa !9
  %3688 = add nsw i32 %3687, 1
  %3689 = load ptr, ptr %19, align 8, !tbaa !5
  %3690 = load i32, ptr %3689, align 4, !tbaa !9
  %3691 = mul nsw i32 %3688, %3690
  %3692 = add nsw i32 %3686, %3691
  %3693 = sext i32 %3692 to i64
  %3694 = getelementptr inbounds float, ptr %3685, i64 %3693
  store float %3684, ptr %3694, align 4, !tbaa !16
  %3695 = load ptr, ptr %28, align 8, !tbaa !5
  %3696 = load i32, ptr %59, align 4, !tbaa !9
  %3697 = load i32, ptr %77, align 4, !tbaa !9
  %3698 = load ptr, ptr %19, align 8, !tbaa !5
  %3699 = load i32, ptr %3698, align 4, !tbaa !9
  %3700 = mul nsw i32 %3697, %3699
  %3701 = add nsw i32 %3696, %3700
  %3702 = sext i32 %3701 to i64
  %3703 = getelementptr inbounds float, ptr %3695, i64 %3702
  %3704 = load float, ptr %3703, align 4, !tbaa !16
  store float %3704, ptr %42, align 4, !tbaa !16
  %3705 = load float, ptr %42, align 4, !tbaa !16
  %3706 = fcmp oge float %3705, 0.000000e+00
  br i1 %3706, label %3707, label %3709

3707:                                             ; preds = %3671
  %3708 = load float, ptr %42, align 4, !tbaa !16
  br label %3712

3709:                                             ; preds = %3671
  %3710 = load float, ptr %42, align 4, !tbaa !16
  %3711 = fneg float %3710
  br label %3712

3712:                                             ; preds = %3709, %3707
  %3713 = phi float [ %3708, %3707 ], [ %3711, %3709 ]
  store float %3713, ptr %44, align 4, !tbaa !16
  %3714 = load ptr, ptr %28, align 8, !tbaa !5
  %3715 = load i32, ptr %59, align 4, !tbaa !9
  %3716 = load i32, ptr %77, align 4, !tbaa !9
  %3717 = add nsw i32 %3716, 1
  %3718 = load ptr, ptr %19, align 8, !tbaa !5
  %3719 = load i32, ptr %3718, align 4, !tbaa !9
  %3720 = mul nsw i32 %3717, %3719
  %3721 = add nsw i32 %3715, %3720
  %3722 = sext i32 %3721 to i64
  %3723 = getelementptr inbounds float, ptr %3714, i64 %3722
  %3724 = load float, ptr %3723, align 4, !tbaa !16
  store float %3724, ptr %43, align 4, !tbaa !16
  %3725 = load float, ptr %43, align 4, !tbaa !16
  %3726 = fcmp oge float %3725, 0.000000e+00
  br i1 %3726, label %3727, label %3729

3727:                                             ; preds = %3712
  %3728 = load float, ptr %43, align 4, !tbaa !16
  br label %3732

3729:                                             ; preds = %3712
  %3730 = load float, ptr %43, align 4, !tbaa !16
  %3731 = fneg float %3730
  br label %3732

3732:                                             ; preds = %3729, %3727
  %3733 = phi float [ %3728, %3727 ], [ %3731, %3729 ]
  store float %3733, ptr %45, align 4, !tbaa !16
  %3734 = load float, ptr %44, align 4, !tbaa !16
  %3735 = load float, ptr %45, align 4, !tbaa !16
  %3736 = fcmp oge float %3734, %3735
  br i1 %3736, label %3737, label %3739

3737:                                             ; preds = %3732
  %3738 = load float, ptr %44, align 4, !tbaa !16
  br label %3741

3739:                                             ; preds = %3732
  %3740 = load float, ptr %45, align 4, !tbaa !16
  br label %3741

3741:                                             ; preds = %3739, %3737
  %3742 = phi float [ %3738, %3737 ], [ %3740, %3739 ]
  store float %3742, ptr %44, align 4, !tbaa !16
  %3743 = load float, ptr %44, align 4, !tbaa !16
  %3744 = load float, ptr %56, align 4, !tbaa !16
  %3745 = fcmp oge float %3743, %3744
  br i1 %3745, label %3746, label %3748

3746:                                             ; preds = %3741
  %3747 = load float, ptr %44, align 4, !tbaa !16
  br label %3750

3748:                                             ; preds = %3741
  %3749 = load float, ptr %56, align 4, !tbaa !16
  br label %3750

3750:                                             ; preds = %3748, %3746
  %3751 = phi float [ %3747, %3746 ], [ %3749, %3748 ]
  store float %3751, ptr %56, align 4, !tbaa !16
  %3752 = load float, ptr %80, align 4, !tbaa !16
  %3753 = load float, ptr %56, align 4, !tbaa !16
  %3754 = fdiv float %3752, %3753
  store float %3754, ptr %66, align 4, !tbaa !16
  br label %4151

3755:                                             ; preds = %3499
  %3756 = load ptr, ptr %28, align 8, !tbaa !5
  %3757 = load i32, ptr %59, align 4, !tbaa !9
  %3758 = sext i32 %3757 to i64
  %3759 = getelementptr inbounds float, ptr %3756, i64 %3758
  %3760 = load float, ptr %3759, align 4, !tbaa !16
  store float %3760, ptr %42, align 4, !tbaa !16
  %3761 = load ptr, ptr %28, align 8, !tbaa !5
  %3762 = load i32, ptr %59, align 4, !tbaa !9
  %3763 = add nsw i32 %3762, 1
  %3764 = sext i32 %3763 to i64
  %3765 = getelementptr inbounds float, ptr %3761, i64 %3764
  %3766 = load float, ptr %3765, align 4, !tbaa !16
  store float %3766, ptr %43, align 4, !tbaa !16
  %3767 = load float, ptr %42, align 4, !tbaa !16
  %3768 = load float, ptr %43, align 4, !tbaa !16
  %3769 = fcmp oge float %3767, %3768
  br i1 %3769, label %3770, label %3772

3770:                                             ; preds = %3755
  %3771 = load float, ptr %42, align 4, !tbaa !16
  br label %3774

3772:                                             ; preds = %3755
  %3773 = load float, ptr %43, align 4, !tbaa !16
  br label %3774

3774:                                             ; preds = %3772, %3770
  %3775 = phi float [ %3771, %3770 ], [ %3773, %3772 ]
  store float %3775, ptr %47, align 4, !tbaa !16
  %3776 = load float, ptr %47, align 4, !tbaa !16
  %3777 = load float, ptr %66, align 4, !tbaa !16
  %3778 = fcmp ogt float %3776, %3777
  br i1 %3778, label %3779, label %3812

3779:                                             ; preds = %3774
  %3780 = load float, ptr %56, align 4, !tbaa !16
  %3781 = fdiv float 1.000000e+00, %3780
  store float %3781, ptr %86, align 4, !tbaa !16
  %3782 = load ptr, ptr %19, align 8, !tbaa !5
  %3783 = load i32, ptr %3782, align 4, !tbaa !9
  %3784 = load i32, ptr %74, align 4, !tbaa !9
  %3785 = sub nsw i32 %3783, %3784
  %3786 = add nsw i32 %3785, 1
  store i32 %3786, ptr %41, align 4, !tbaa !9
  %3787 = load ptr, ptr %28, align 8, !tbaa !5
  %3788 = load i32, ptr %74, align 4, !tbaa !9
  %3789 = load i32, ptr %77, align 4, !tbaa !9
  %3790 = load ptr, ptr %19, align 8, !tbaa !5
  %3791 = load i32, ptr %3790, align 4, !tbaa !9
  %3792 = mul nsw i32 %3789, %3791
  %3793 = add nsw i32 %3788, %3792
  %3794 = sext i32 %3793 to i64
  %3795 = getelementptr inbounds float, ptr %3787, i64 %3794
  call void @sscal_(ptr noundef %41, ptr noundef %86, ptr noundef %3795, ptr noundef @c__1)
  %3796 = load ptr, ptr %19, align 8, !tbaa !5
  %3797 = load i32, ptr %3796, align 4, !tbaa !9
  %3798 = load i32, ptr %74, align 4, !tbaa !9
  %3799 = sub nsw i32 %3797, %3798
  %3800 = add nsw i32 %3799, 1
  store i32 %3800, ptr %41, align 4, !tbaa !9
  %3801 = load ptr, ptr %28, align 8, !tbaa !5
  %3802 = load i32, ptr %74, align 4, !tbaa !9
  %3803 = load i32, ptr %77, align 4, !tbaa !9
  %3804 = add nsw i32 %3803, 1
  %3805 = load ptr, ptr %19, align 8, !tbaa !5
  %3806 = load i32, ptr %3805, align 4, !tbaa !9
  %3807 = mul nsw i32 %3804, %3806
  %3808 = add nsw i32 %3802, %3807
  %3809 = sext i32 %3808 to i64
  %3810 = getelementptr inbounds float, ptr %3801, i64 %3809
  call void @sscal_(ptr noundef %41, ptr noundef %86, ptr noundef %3810, ptr noundef @c__1)
  store float 1.000000e+00, ptr %56, align 4, !tbaa !16
  %3811 = load float, ptr %80, align 4, !tbaa !16
  store float %3811, ptr %66, align 4, !tbaa !16
  br label %3812

3812:                                             ; preds = %3779, %3774
  %3813 = load i32, ptr %59, align 4, !tbaa !9
  %3814 = load i32, ptr %74, align 4, !tbaa !9
  %3815 = sub nsw i32 %3813, %3814
  %3816 = sub nsw i32 %3815, 2
  store i32 %3816, ptr %41, align 4, !tbaa !9
  %3817 = load ptr, ptr %20, align 8, !tbaa !5
  %3818 = load i32, ptr %74, align 4, !tbaa !9
  %3819 = add nsw i32 %3818, 2
  %3820 = load i32, ptr %59, align 4, !tbaa !9
  %3821 = load i32, ptr %32, align 4, !tbaa !9
  %3822 = mul nsw i32 %3820, %3821
  %3823 = add nsw i32 %3819, %3822
  %3824 = sext i32 %3823 to i64
  %3825 = getelementptr inbounds float, ptr %3817, i64 %3824
  %3826 = load ptr, ptr %28, align 8, !tbaa !5
  %3827 = load i32, ptr %74, align 4, !tbaa !9
  %3828 = add nsw i32 %3827, 2
  %3829 = load i32, ptr %77, align 4, !tbaa !9
  %3830 = load ptr, ptr %19, align 8, !tbaa !5
  %3831 = load i32, ptr %3830, align 4, !tbaa !9
  %3832 = mul nsw i32 %3829, %3831
  %3833 = add nsw i32 %3828, %3832
  %3834 = sext i32 %3833 to i64
  %3835 = getelementptr inbounds float, ptr %3826, i64 %3834
  %3836 = call float @sdot_(ptr noundef %41, ptr noundef %3825, ptr noundef @c__1, ptr noundef %3835, ptr noundef @c__1)
  %3837 = load ptr, ptr %28, align 8, !tbaa !5
  %3838 = load i32, ptr %59, align 4, !tbaa !9
  %3839 = load i32, ptr %77, align 4, !tbaa !9
  %3840 = load ptr, ptr %19, align 8, !tbaa !5
  %3841 = load i32, ptr %3840, align 4, !tbaa !9
  %3842 = mul nsw i32 %3839, %3841
  %3843 = add nsw i32 %3838, %3842
  %3844 = sext i32 %3843 to i64
  %3845 = getelementptr inbounds float, ptr %3837, i64 %3844
  %3846 = load float, ptr %3845, align 4, !tbaa !16
  %3847 = fsub float %3846, %3836
  store float %3847, ptr %3845, align 4, !tbaa !16
  %3848 = load i32, ptr %59, align 4, !tbaa !9
  %3849 = load i32, ptr %74, align 4, !tbaa !9
  %3850 = sub nsw i32 %3848, %3849
  %3851 = sub nsw i32 %3850, 2
  store i32 %3851, ptr %41, align 4, !tbaa !9
  %3852 = load ptr, ptr %20, align 8, !tbaa !5
  %3853 = load i32, ptr %74, align 4, !tbaa !9
  %3854 = add nsw i32 %3853, 2
  %3855 = load i32, ptr %59, align 4, !tbaa !9
  %3856 = load i32, ptr %32, align 4, !tbaa !9
  %3857 = mul nsw i32 %3855, %3856
  %3858 = add nsw i32 %3854, %3857
  %3859 = sext i32 %3858 to i64
  %3860 = getelementptr inbounds float, ptr %3852, i64 %3859
  %3861 = load ptr, ptr %28, align 8, !tbaa !5
  %3862 = load i32, ptr %74, align 4, !tbaa !9
  %3863 = add nsw i32 %3862, 2
  %3864 = load i32, ptr %77, align 4, !tbaa !9
  %3865 = add nsw i32 %3864, 1
  %3866 = load ptr, ptr %19, align 8, !tbaa !5
  %3867 = load i32, ptr %3866, align 4, !tbaa !9
  %3868 = mul nsw i32 %3865, %3867
  %3869 = add nsw i32 %3863, %3868
  %3870 = sext i32 %3869 to i64
  %3871 = getelementptr inbounds float, ptr %3861, i64 %3870
  %3872 = call float @sdot_(ptr noundef %41, ptr noundef %3860, ptr noundef @c__1, ptr noundef %3871, ptr noundef @c__1)
  %3873 = load ptr, ptr %28, align 8, !tbaa !5
  %3874 = load i32, ptr %59, align 4, !tbaa !9
  %3875 = load i32, ptr %77, align 4, !tbaa !9
  %3876 = add nsw i32 %3875, 1
  %3877 = load ptr, ptr %19, align 8, !tbaa !5
  %3878 = load i32, ptr %3877, align 4, !tbaa !9
  %3879 = mul nsw i32 %3876, %3878
  %3880 = add nsw i32 %3874, %3879
  %3881 = sext i32 %3880 to i64
  %3882 = getelementptr inbounds float, ptr %3873, i64 %3881
  %3883 = load float, ptr %3882, align 4, !tbaa !16
  %3884 = fsub float %3883, %3872
  store float %3884, ptr %3882, align 4, !tbaa !16
  %3885 = load i32, ptr %59, align 4, !tbaa !9
  %3886 = load i32, ptr %74, align 4, !tbaa !9
  %3887 = sub nsw i32 %3885, %3886
  %3888 = sub nsw i32 %3887, 2
  store i32 %3888, ptr %41, align 4, !tbaa !9
  %3889 = load ptr, ptr %20, align 8, !tbaa !5
  %3890 = load i32, ptr %74, align 4, !tbaa !9
  %3891 = add nsw i32 %3890, 2
  %3892 = load i32, ptr %59, align 4, !tbaa !9
  %3893 = add nsw i32 %3892, 1
  %3894 = load i32, ptr %32, align 4, !tbaa !9
  %3895 = mul nsw i32 %3893, %3894
  %3896 = add nsw i32 %3891, %3895
  %3897 = sext i32 %3896 to i64
  %3898 = getelementptr inbounds float, ptr %3889, i64 %3897
  %3899 = load ptr, ptr %28, align 8, !tbaa !5
  %3900 = load i32, ptr %74, align 4, !tbaa !9
  %3901 = add nsw i32 %3900, 2
  %3902 = load i32, ptr %77, align 4, !tbaa !9
  %3903 = load ptr, ptr %19, align 8, !tbaa !5
  %3904 = load i32, ptr %3903, align 4, !tbaa !9
  %3905 = mul nsw i32 %3902, %3904
  %3906 = add nsw i32 %3901, %3905
  %3907 = sext i32 %3906 to i64
  %3908 = getelementptr inbounds float, ptr %3899, i64 %3907
  %3909 = call float @sdot_(ptr noundef %41, ptr noundef %3898, ptr noundef @c__1, ptr noundef %3908, ptr noundef @c__1)
  %3910 = load ptr, ptr %28, align 8, !tbaa !5
  %3911 = load i32, ptr %59, align 4, !tbaa !9
  %3912 = add nsw i32 %3911, 1
  %3913 = load i32, ptr %77, align 4, !tbaa !9
  %3914 = load ptr, ptr %19, align 8, !tbaa !5
  %3915 = load i32, ptr %3914, align 4, !tbaa !9
  %3916 = mul nsw i32 %3913, %3915
  %3917 = add nsw i32 %3912, %3916
  %3918 = sext i32 %3917 to i64
  %3919 = getelementptr inbounds float, ptr %3910, i64 %3918
  %3920 = load float, ptr %3919, align 4, !tbaa !16
  %3921 = fsub float %3920, %3909
  store float %3921, ptr %3919, align 4, !tbaa !16
  %3922 = load i32, ptr %59, align 4, !tbaa !9
  %3923 = load i32, ptr %74, align 4, !tbaa !9
  %3924 = sub nsw i32 %3922, %3923
  %3925 = sub nsw i32 %3924, 2
  store i32 %3925, ptr %41, align 4, !tbaa !9
  %3926 = load ptr, ptr %20, align 8, !tbaa !5
  %3927 = load i32, ptr %74, align 4, !tbaa !9
  %3928 = add nsw i32 %3927, 2
  %3929 = load i32, ptr %59, align 4, !tbaa !9
  %3930 = add nsw i32 %3929, 1
  %3931 = load i32, ptr %32, align 4, !tbaa !9
  %3932 = mul nsw i32 %3930, %3931
  %3933 = add nsw i32 %3928, %3932
  %3934 = sext i32 %3933 to i64
  %3935 = getelementptr inbounds float, ptr %3926, i64 %3934
  %3936 = load ptr, ptr %28, align 8, !tbaa !5
  %3937 = load i32, ptr %74, align 4, !tbaa !9
  %3938 = add nsw i32 %3937, 2
  %3939 = load i32, ptr %77, align 4, !tbaa !9
  %3940 = add nsw i32 %3939, 1
  %3941 = load ptr, ptr %19, align 8, !tbaa !5
  %3942 = load i32, ptr %3941, align 4, !tbaa !9
  %3943 = mul nsw i32 %3940, %3942
  %3944 = add nsw i32 %3938, %3943
  %3945 = sext i32 %3944 to i64
  %3946 = getelementptr inbounds float, ptr %3936, i64 %3945
  %3947 = call float @sdot_(ptr noundef %41, ptr noundef %3935, ptr noundef @c__1, ptr noundef %3946, ptr noundef @c__1)
  %3948 = load ptr, ptr %28, align 8, !tbaa !5
  %3949 = load i32, ptr %59, align 4, !tbaa !9
  %3950 = add nsw i32 %3949, 1
  %3951 = load i32, ptr %77, align 4, !tbaa !9
  %3952 = add nsw i32 %3951, 1
  %3953 = load ptr, ptr %19, align 8, !tbaa !5
  %3954 = load i32, ptr %3953, align 4, !tbaa !9
  %3955 = mul nsw i32 %3952, %3954
  %3956 = add nsw i32 %3950, %3955
  %3957 = sext i32 %3956 to i64
  %3958 = getelementptr inbounds float, ptr %3948, i64 %3957
  %3959 = load float, ptr %3958, align 4, !tbaa !16
  %3960 = fsub float %3959, %3947
  store float %3960, ptr %3958, align 4, !tbaa !16
  %3961 = load float, ptr %78, align 4, !tbaa !16
  %3962 = fneg float %3961
  store float %3962, ptr %42, align 4, !tbaa !16
  %3963 = load ptr, ptr %20, align 8, !tbaa !5
  %3964 = load i32, ptr %59, align 4, !tbaa !9
  %3965 = load i32, ptr %59, align 4, !tbaa !9
  %3966 = load i32, ptr %32, align 4, !tbaa !9
  %3967 = mul nsw i32 %3965, %3966
  %3968 = add nsw i32 %3964, %3967
  %3969 = sext i32 %3968 to i64
  %3970 = getelementptr inbounds float, ptr %3963, i64 %3969
  %3971 = load ptr, ptr %21, align 8, !tbaa !5
  %3972 = load ptr, ptr %28, align 8, !tbaa !5
  %3973 = load i32, ptr %59, align 4, !tbaa !9
  %3974 = load i32, ptr %77, align 4, !tbaa !9
  %3975 = load ptr, ptr %19, align 8, !tbaa !5
  %3976 = load i32, ptr %3975, align 4, !tbaa !9
  %3977 = mul nsw i32 %3974, %3976
  %3978 = add nsw i32 %3973, %3977
  %3979 = sext i32 %3978 to i64
  %3980 = getelementptr inbounds float, ptr %3972, i64 %3979
  %3981 = load ptr, ptr %19, align 8, !tbaa !5
  %3982 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  call void @slaln2_(ptr noundef @c_true, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %54, ptr noundef @c_b29, ptr noundef %3970, ptr noundef %3971, ptr noundef @c_b29, ptr noundef @c_b29, ptr noundef %3980, ptr noundef %3981, ptr noundef %79, ptr noundef %42, ptr noundef %3982, ptr noundef @c__2, ptr noundef %61, ptr noundef %70, ptr noundef %51)
  %3983 = load float, ptr %61, align 4, !tbaa !16
  %3984 = fcmp une float %3983, 1.000000e+00
  br i1 %3984, label %3985, label %4015

3985:                                             ; preds = %3812
  %3986 = load ptr, ptr %19, align 8, !tbaa !5
  %3987 = load i32, ptr %3986, align 4, !tbaa !9
  %3988 = load i32, ptr %74, align 4, !tbaa !9
  %3989 = sub nsw i32 %3987, %3988
  %3990 = add nsw i32 %3989, 1
  store i32 %3990, ptr %41, align 4, !tbaa !9
  %3991 = load ptr, ptr %28, align 8, !tbaa !5
  %3992 = load i32, ptr %74, align 4, !tbaa !9
  %3993 = load i32, ptr %77, align 4, !tbaa !9
  %3994 = load ptr, ptr %19, align 8, !tbaa !5
  %3995 = load i32, ptr %3994, align 4, !tbaa !9
  %3996 = mul nsw i32 %3993, %3995
  %3997 = add nsw i32 %3992, %3996
  %3998 = sext i32 %3997 to i64
  %3999 = getelementptr inbounds float, ptr %3991, i64 %3998
  call void @sscal_(ptr noundef %41, ptr noundef %61, ptr noundef %3999, ptr noundef @c__1)
  %4000 = load ptr, ptr %19, align 8, !tbaa !5
  %4001 = load i32, ptr %4000, align 4, !tbaa !9
  %4002 = load i32, ptr %74, align 4, !tbaa !9
  %4003 = sub nsw i32 %4001, %4002
  %4004 = add nsw i32 %4003, 1
  store i32 %4004, ptr %41, align 4, !tbaa !9
  %4005 = load ptr, ptr %28, align 8, !tbaa !5
  %4006 = load i32, ptr %74, align 4, !tbaa !9
  %4007 = load i32, ptr %77, align 4, !tbaa !9
  %4008 = add nsw i32 %4007, 1
  %4009 = load ptr, ptr %19, align 8, !tbaa !5
  %4010 = load i32, ptr %4009, align 4, !tbaa !9
  %4011 = mul nsw i32 %4008, %4010
  %4012 = add nsw i32 %4006, %4011
  %4013 = sext i32 %4012 to i64
  %4014 = getelementptr inbounds float, ptr %4005, i64 %4013
  call void @sscal_(ptr noundef %41, ptr noundef %61, ptr noundef %4014, ptr noundef @c__1)
  br label %4015

4015:                                             ; preds = %3985, %3812
  %4016 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %4017 = load float, ptr %4016, align 16, !tbaa !16
  %4018 = load ptr, ptr %28, align 8, !tbaa !5
  %4019 = load i32, ptr %59, align 4, !tbaa !9
  %4020 = load i32, ptr %77, align 4, !tbaa !9
  %4021 = load ptr, ptr %19, align 8, !tbaa !5
  %4022 = load i32, ptr %4021, align 4, !tbaa !9
  %4023 = mul nsw i32 %4020, %4022
  %4024 = add nsw i32 %4019, %4023
  %4025 = sext i32 %4024 to i64
  %4026 = getelementptr inbounds float, ptr %4018, i64 %4025
  store float %4017, ptr %4026, align 4, !tbaa !16
  %4027 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 2
  %4028 = load float, ptr %4027, align 8, !tbaa !16
  %4029 = load ptr, ptr %28, align 8, !tbaa !5
  %4030 = load i32, ptr %59, align 4, !tbaa !9
  %4031 = load i32, ptr %77, align 4, !tbaa !9
  %4032 = add nsw i32 %4031, 1
  %4033 = load ptr, ptr %19, align 8, !tbaa !5
  %4034 = load i32, ptr %4033, align 4, !tbaa !9
  %4035 = mul nsw i32 %4032, %4034
  %4036 = add nsw i32 %4030, %4035
  %4037 = sext i32 %4036 to i64
  %4038 = getelementptr inbounds float, ptr %4029, i64 %4037
  store float %4028, ptr %4038, align 4, !tbaa !16
  %4039 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 1
  %4040 = load float, ptr %4039, align 4, !tbaa !16
  %4041 = load ptr, ptr %28, align 8, !tbaa !5
  %4042 = load i32, ptr %59, align 4, !tbaa !9
  %4043 = add nsw i32 %4042, 1
  %4044 = load i32, ptr %77, align 4, !tbaa !9
  %4045 = load ptr, ptr %19, align 8, !tbaa !5
  %4046 = load i32, ptr %4045, align 4, !tbaa !9
  %4047 = mul nsw i32 %4044, %4046
  %4048 = add nsw i32 %4043, %4047
  %4049 = sext i32 %4048 to i64
  %4050 = getelementptr inbounds float, ptr %4041, i64 %4049
  store float %4040, ptr %4050, align 4, !tbaa !16
  %4051 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 3
  %4052 = load float, ptr %4051, align 4, !tbaa !16
  %4053 = load ptr, ptr %28, align 8, !tbaa !5
  %4054 = load i32, ptr %59, align 4, !tbaa !9
  %4055 = add nsw i32 %4054, 1
  %4056 = load i32, ptr %77, align 4, !tbaa !9
  %4057 = add nsw i32 %4056, 1
  %4058 = load ptr, ptr %19, align 8, !tbaa !5
  %4059 = load i32, ptr %4058, align 4, !tbaa !9
  %4060 = mul nsw i32 %4057, %4059
  %4061 = add nsw i32 %4055, %4060
  %4062 = sext i32 %4061 to i64
  %4063 = getelementptr inbounds float, ptr %4053, i64 %4062
  store float %4052, ptr %4063, align 4, !tbaa !16
  %4064 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %4065 = load float, ptr %4064, align 16, !tbaa !16
  %4066 = fcmp oge float %4065, 0.000000e+00
  br i1 %4066, label %4067, label %4070

4067:                                             ; preds = %4015
  %4068 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %4069 = load float, ptr %4068, align 16, !tbaa !16
  br label %4074

4070:                                             ; preds = %4015
  %4071 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 0
  %4072 = load float, ptr %4071, align 16, !tbaa !16
  %4073 = fneg float %4072
  br label %4074

4074:                                             ; preds = %4070, %4067
  %4075 = phi float [ %4069, %4067 ], [ %4073, %4070 ]
  store float %4075, ptr %42, align 4, !tbaa !16
  %4076 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 2
  %4077 = load float, ptr %4076, align 8, !tbaa !16
  %4078 = fcmp oge float %4077, 0.000000e+00
  br i1 %4078, label %4079, label %4082

4079:                                             ; preds = %4074
  %4080 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 2
  %4081 = load float, ptr %4080, align 8, !tbaa !16
  br label %4086

4082:                                             ; preds = %4074
  %4083 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 2
  %4084 = load float, ptr %4083, align 8, !tbaa !16
  %4085 = fneg float %4084
  br label %4086

4086:                                             ; preds = %4082, %4079
  %4087 = phi float [ %4081, %4079 ], [ %4085, %4082 ]
  store float %4087, ptr %43, align 4, !tbaa !16
  %4088 = load float, ptr %42, align 4, !tbaa !16
  %4089 = load float, ptr %43, align 4, !tbaa !16
  %4090 = fcmp oge float %4088, %4089
  br i1 %4090, label %4091, label %4093

4091:                                             ; preds = %4086
  %4092 = load float, ptr %42, align 4, !tbaa !16
  br label %4095

4093:                                             ; preds = %4086
  %4094 = load float, ptr %43, align 4, !tbaa !16
  br label %4095

4095:                                             ; preds = %4093, %4091
  %4096 = phi float [ %4092, %4091 ], [ %4094, %4093 ]
  store float %4096, ptr %42, align 4, !tbaa !16
  %4097 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 1
  %4098 = load float, ptr %4097, align 4, !tbaa !16
  %4099 = fcmp oge float %4098, 0.000000e+00
  br i1 %4099, label %4100, label %4103

4100:                                             ; preds = %4095
  %4101 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 1
  %4102 = load float, ptr %4101, align 4, !tbaa !16
  br label %4107

4103:                                             ; preds = %4095
  %4104 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 1
  %4105 = load float, ptr %4104, align 4, !tbaa !16
  %4106 = fneg float %4105
  br label %4107

4107:                                             ; preds = %4103, %4100
  %4108 = phi float [ %4102, %4100 ], [ %4106, %4103 ]
  store float %4108, ptr %43, align 4, !tbaa !16
  %4109 = load float, ptr %42, align 4, !tbaa !16
  %4110 = load float, ptr %43, align 4, !tbaa !16
  %4111 = fcmp oge float %4109, %4110
  br i1 %4111, label %4112, label %4114

4112:                                             ; preds = %4107
  %4113 = load float, ptr %42, align 4, !tbaa !16
  br label %4116

4114:                                             ; preds = %4107
  %4115 = load float, ptr %43, align 4, !tbaa !16
  br label %4116

4116:                                             ; preds = %4114, %4112
  %4117 = phi float [ %4113, %4112 ], [ %4115, %4114 ]
  store float %4117, ptr %42, align 4, !tbaa !16
  %4118 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 3
  %4119 = load float, ptr %4118, align 4, !tbaa !16
  %4120 = fcmp oge float %4119, 0.000000e+00
  br i1 %4120, label %4121, label %4124

4121:                                             ; preds = %4116
  %4122 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 3
  %4123 = load float, ptr %4122, align 4, !tbaa !16
  br label %4128

4124:                                             ; preds = %4116
  %4125 = getelementptr inbounds [4 x float], ptr %62, i64 0, i64 3
  %4126 = load float, ptr %4125, align 4, !tbaa !16
  %4127 = fneg float %4126
  br label %4128

4128:                                             ; preds = %4124, %4121
  %4129 = phi float [ %4123, %4121 ], [ %4127, %4124 ]
  store float %4129, ptr %43, align 4, !tbaa !16
  %4130 = load float, ptr %42, align 4, !tbaa !16
  %4131 = load float, ptr %43, align 4, !tbaa !16
  %4132 = fcmp oge float %4130, %4131
  br i1 %4132, label %4133, label %4135

4133:                                             ; preds = %4128
  %4134 = load float, ptr %42, align 4, !tbaa !16
  br label %4137

4135:                                             ; preds = %4128
  %4136 = load float, ptr %43, align 4, !tbaa !16
  br label %4137

4137:                                             ; preds = %4135, %4133
  %4138 = phi float [ %4134, %4133 ], [ %4136, %4135 ]
  store float %4138, ptr %42, align 4, !tbaa !16
  %4139 = load float, ptr %42, align 4, !tbaa !16
  %4140 = load float, ptr %56, align 4, !tbaa !16
  %4141 = fcmp oge float %4139, %4140
  br i1 %4141, label %4142, label %4144

4142:                                             ; preds = %4137
  %4143 = load float, ptr %42, align 4, !tbaa !16
  br label %4146

4144:                                             ; preds = %4137
  %4145 = load float, ptr %56, align 4, !tbaa !16
  br label %4146

4146:                                             ; preds = %4144, %4142
  %4147 = phi float [ %4143, %4142 ], [ %4145, %4144 ]
  store float %4147, ptr %56, align 4, !tbaa !16
  %4148 = load float, ptr %80, align 4, !tbaa !16
  %4149 = load float, ptr %56, align 4, !tbaa !16
  %4150 = fdiv float %4148, %4149
  store float %4150, ptr %66, align 4, !tbaa !16
  br label %4151

4151:                                             ; preds = %4146, %3750
  br label %4152

4152:                                             ; preds = %4151, %3471
  br label %4153

4153:                                             ; preds = %4152
  %4154 = load i32, ptr %59, align 4, !tbaa !9
  %4155 = add nsw i32 %4154, 1
  store i32 %4155, ptr %59, align 4, !tbaa !9
  br label %3463, !llvm.loop !39

4156:                                             ; preds = %3463
  %4157 = load i32, ptr %55, align 4, !tbaa !9
  %4158 = icmp ne i32 %4157, 0
  br i1 %4158, label %4323, label %4159

4159:                                             ; preds = %4156
  %4160 = load ptr, ptr %19, align 8, !tbaa !5
  %4161 = load i32, ptr %4160, align 4, !tbaa !9
  %4162 = load i32, ptr %74, align 4, !tbaa !9
  %4163 = sub nsw i32 %4161, %4162
  %4164 = add nsw i32 %4163, 1
  store i32 %4164, ptr %40, align 4, !tbaa !9
  %4165 = load ptr, ptr %28, align 8, !tbaa !5
  %4166 = load i32, ptr %74, align 4, !tbaa !9
  %4167 = load i32, ptr %77, align 4, !tbaa !9
  %4168 = load ptr, ptr %19, align 8, !tbaa !5
  %4169 = load i32, ptr %4168, align 4, !tbaa !9
  %4170 = mul nsw i32 %4167, %4169
  %4171 = add nsw i32 %4166, %4170
  %4172 = sext i32 %4171 to i64
  %4173 = getelementptr inbounds float, ptr %4165, i64 %4172
  %4174 = load ptr, ptr %22, align 8, !tbaa !5
  %4175 = load i32, ptr %74, align 4, !tbaa !9
  %4176 = load i32, ptr %76, align 4, !tbaa !9
  %4177 = load i32, ptr %34, align 4, !tbaa !9
  %4178 = mul nsw i32 %4176, %4177
  %4179 = add nsw i32 %4175, %4178
  %4180 = sext i32 %4179 to i64
  %4181 = getelementptr inbounds float, ptr %4174, i64 %4180
  call void @scopy_(ptr noundef %40, ptr noundef %4173, ptr noundef @c__1, ptr noundef %4181, ptr noundef @c__1)
  %4182 = load ptr, ptr %19, align 8, !tbaa !5
  %4183 = load i32, ptr %4182, align 4, !tbaa !9
  %4184 = load i32, ptr %74, align 4, !tbaa !9
  %4185 = sub nsw i32 %4183, %4184
  %4186 = add nsw i32 %4185, 1
  store i32 %4186, ptr %40, align 4, !tbaa !9
  %4187 = load ptr, ptr %28, align 8, !tbaa !5
  %4188 = load i32, ptr %74, align 4, !tbaa !9
  %4189 = load i32, ptr %77, align 4, !tbaa !9
  %4190 = add nsw i32 %4189, 1
  %4191 = load ptr, ptr %19, align 8, !tbaa !5
  %4192 = load i32, ptr %4191, align 4, !tbaa !9
  %4193 = mul nsw i32 %4190, %4192
  %4194 = add nsw i32 %4188, %4193
  %4195 = sext i32 %4194 to i64
  %4196 = getelementptr inbounds float, ptr %4187, i64 %4195
  %4197 = load ptr, ptr %22, align 8, !tbaa !5
  %4198 = load i32, ptr %74, align 4, !tbaa !9
  %4199 = load i32, ptr %76, align 4, !tbaa !9
  %4200 = add nsw i32 %4199, 1
  %4201 = load i32, ptr %34, align 4, !tbaa !9
  %4202 = mul nsw i32 %4200, %4201
  %4203 = add nsw i32 %4198, %4202
  %4204 = sext i32 %4203 to i64
  %4205 = getelementptr inbounds float, ptr %4197, i64 %4204
  call void @scopy_(ptr noundef %40, ptr noundef %4196, ptr noundef @c__1, ptr noundef %4205, ptr noundef @c__1)
  store float 0.000000e+00, ptr %48, align 4, !tbaa !16
  %4206 = load ptr, ptr %19, align 8, !tbaa !5
  %4207 = load i32, ptr %4206, align 4, !tbaa !9
  store i32 %4207, ptr %40, align 4, !tbaa !9
  %4208 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %4208, ptr %60, align 4, !tbaa !9
  br label %4209

4209:                                             ; preds = %4262, %4159
  %4210 = load i32, ptr %60, align 4, !tbaa !9
  %4211 = load i32, ptr %40, align 4, !tbaa !9
  %4212 = icmp sle i32 %4210, %4211
  br i1 %4212, label %4213, label %4265

4213:                                             ; preds = %4209
  %4214 = load float, ptr %48, align 4, !tbaa !16
  store float %4214, ptr %44, align 4, !tbaa !16
  %4215 = load ptr, ptr %22, align 8, !tbaa !5
  %4216 = load i32, ptr %60, align 4, !tbaa !9
  %4217 = load i32, ptr %76, align 4, !tbaa !9
  %4218 = load i32, ptr %34, align 4, !tbaa !9
  %4219 = mul nsw i32 %4217, %4218
  %4220 = add nsw i32 %4216, %4219
  %4221 = sext i32 %4220 to i64
  %4222 = getelementptr inbounds float, ptr %4215, i64 %4221
  %4223 = load float, ptr %4222, align 4, !tbaa !16
  store float %4223, ptr %42, align 4, !tbaa !16
  %4224 = load float, ptr %42, align 4, !tbaa !16
  %4225 = fcmp oge float %4224, 0.000000e+00
  br i1 %4225, label %4226, label %4228

4226:                                             ; preds = %4213
  %4227 = load float, ptr %42, align 4, !tbaa !16
  br label %4231

4228:                                             ; preds = %4213
  %4229 = load float, ptr %42, align 4, !tbaa !16
  %4230 = fneg float %4229
  br label %4231

4231:                                             ; preds = %4228, %4226
  %4232 = phi float [ %4227, %4226 ], [ %4230, %4228 ]
  %4233 = load ptr, ptr %22, align 8, !tbaa !5
  %4234 = load i32, ptr %60, align 4, !tbaa !9
  %4235 = load i32, ptr %76, align 4, !tbaa !9
  %4236 = add nsw i32 %4235, 1
  %4237 = load i32, ptr %34, align 4, !tbaa !9
  %4238 = mul nsw i32 %4236, %4237
  %4239 = add nsw i32 %4234, %4238
  %4240 = sext i32 %4239 to i64
  %4241 = getelementptr inbounds float, ptr %4233, i64 %4240
  %4242 = load float, ptr %4241, align 4, !tbaa !16
  store float %4242, ptr %43, align 4, !tbaa !16
  %4243 = load float, ptr %43, align 4, !tbaa !16
  %4244 = fcmp oge float %4243, 0.000000e+00
  br i1 %4244, label %4245, label %4247

4245:                                             ; preds = %4231
  %4246 = load float, ptr %43, align 4, !tbaa !16
  br label %4250

4247:                                             ; preds = %4231
  %4248 = load float, ptr %43, align 4, !tbaa !16
  %4249 = fneg float %4248
  br label %4250

4250:                                             ; preds = %4247, %4245
  %4251 = phi float [ %4246, %4245 ], [ %4249, %4247 ]
  %4252 = fadd float %4232, %4251
  store float %4252, ptr %45, align 4, !tbaa !16
  %4253 = load float, ptr %44, align 4, !tbaa !16
  %4254 = load float, ptr %45, align 4, !tbaa !16
  %4255 = fcmp oge float %4253, %4254
  br i1 %4255, label %4256, label %4258

4256:                                             ; preds = %4250
  %4257 = load float, ptr %44, align 4, !tbaa !16
  br label %4260

4258:                                             ; preds = %4250
  %4259 = load float, ptr %45, align 4, !tbaa !16
  br label %4260

4260:                                             ; preds = %4258, %4256
  %4261 = phi float [ %4257, %4256 ], [ %4259, %4258 ]
  store float %4261, ptr %48, align 4, !tbaa !16
  br label %4262

4262:                                             ; preds = %4260
  %4263 = load i32, ptr %60, align 4, !tbaa !9
  %4264 = add nsw i32 %4263, 1
  store i32 %4264, ptr %60, align 4, !tbaa !9
  br label %4209, !llvm.loop !40

4265:                                             ; preds = %4209
  %4266 = load float, ptr %48, align 4, !tbaa !16
  %4267 = fdiv float 1.000000e+00, %4266
  store float %4267, ptr %63, align 4, !tbaa !16
  %4268 = load ptr, ptr %19, align 8, !tbaa !5
  %4269 = load i32, ptr %4268, align 4, !tbaa !9
  %4270 = load i32, ptr %74, align 4, !tbaa !9
  %4271 = sub nsw i32 %4269, %4270
  %4272 = add nsw i32 %4271, 1
  store i32 %4272, ptr %40, align 4, !tbaa !9
  %4273 = load ptr, ptr %22, align 8, !tbaa !5
  %4274 = load i32, ptr %74, align 4, !tbaa !9
  %4275 = load i32, ptr %76, align 4, !tbaa !9
  %4276 = load i32, ptr %34, align 4, !tbaa !9
  %4277 = mul nsw i32 %4275, %4276
  %4278 = add nsw i32 %4274, %4277
  %4279 = sext i32 %4278 to i64
  %4280 = getelementptr inbounds float, ptr %4273, i64 %4279
  call void @sscal_(ptr noundef %40, ptr noundef %63, ptr noundef %4280, ptr noundef @c__1)
  %4281 = load ptr, ptr %19, align 8, !tbaa !5
  %4282 = load i32, ptr %4281, align 4, !tbaa !9
  %4283 = load i32, ptr %74, align 4, !tbaa !9
  %4284 = sub nsw i32 %4282, %4283
  %4285 = add nsw i32 %4284, 1
  store i32 %4285, ptr %40, align 4, !tbaa !9
  %4286 = load ptr, ptr %22, align 8, !tbaa !5
  %4287 = load i32, ptr %74, align 4, !tbaa !9
  %4288 = load i32, ptr %76, align 4, !tbaa !9
  %4289 = add nsw i32 %4288, 1
  %4290 = load i32, ptr %34, align 4, !tbaa !9
  %4291 = mul nsw i32 %4289, %4290
  %4292 = add nsw i32 %4287, %4291
  %4293 = sext i32 %4292 to i64
  %4294 = getelementptr inbounds float, ptr %4286, i64 %4293
  call void @sscal_(ptr noundef %40, ptr noundef %63, ptr noundef %4294, ptr noundef @c__1)
  %4295 = load i32, ptr %74, align 4, !tbaa !9
  %4296 = sub nsw i32 %4295, 1
  store i32 %4296, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %4297

4297:                                             ; preds = %4319, %4265
  %4298 = load i32, ptr %60, align 4, !tbaa !9
  %4299 = load i32, ptr %40, align 4, !tbaa !9
  %4300 = icmp sle i32 %4298, %4299
  br i1 %4300, label %4301, label %4322

4301:                                             ; preds = %4297
  %4302 = load ptr, ptr %22, align 8, !tbaa !5
  %4303 = load i32, ptr %60, align 4, !tbaa !9
  %4304 = load i32, ptr %76, align 4, !tbaa !9
  %4305 = load i32, ptr %34, align 4, !tbaa !9
  %4306 = mul nsw i32 %4304, %4305
  %4307 = add nsw i32 %4303, %4306
  %4308 = sext i32 %4307 to i64
  %4309 = getelementptr inbounds float, ptr %4302, i64 %4308
  store float 0.000000e+00, ptr %4309, align 4, !tbaa !16
  %4310 = load ptr, ptr %22, align 8, !tbaa !5
  %4311 = load i32, ptr %60, align 4, !tbaa !9
  %4312 = load i32, ptr %76, align 4, !tbaa !9
  %4313 = add nsw i32 %4312, 1
  %4314 = load i32, ptr %34, align 4, !tbaa !9
  %4315 = mul nsw i32 %4313, %4314
  %4316 = add nsw i32 %4311, %4315
  %4317 = sext i32 %4316 to i64
  %4318 = getelementptr inbounds float, ptr %4310, i64 %4317
  store float 0.000000e+00, ptr %4318, align 4, !tbaa !16
  br label %4319

4319:                                             ; preds = %4301
  %4320 = load i32, ptr %60, align 4, !tbaa !9
  %4321 = add nsw i32 %4320, 1
  store i32 %4321, ptr %60, align 4, !tbaa !9
  br label %4297, !llvm.loop !41

4322:                                             ; preds = %4297
  br label %4580

4323:                                             ; preds = %4156
  %4324 = load i32, ptr %72, align 4, !tbaa !9
  %4325 = icmp eq i32 %4324, 1
  br i1 %4325, label %4326, label %4536

4326:                                             ; preds = %4323
  %4327 = load i32, ptr %74, align 4, !tbaa !9
  %4328 = load ptr, ptr %19, align 8, !tbaa !5
  %4329 = load i32, ptr %4328, align 4, !tbaa !9
  %4330 = sub nsw i32 %4329, 1
  %4331 = icmp slt i32 %4327, %4330
  br i1 %4331, label %4332, label %4419

4332:                                             ; preds = %4326
  %4333 = load ptr, ptr %19, align 8, !tbaa !5
  %4334 = load i32, ptr %4333, align 4, !tbaa !9
  %4335 = load i32, ptr %74, align 4, !tbaa !9
  %4336 = sub nsw i32 %4334, %4335
  %4337 = sub nsw i32 %4336, 1
  store i32 %4337, ptr %40, align 4, !tbaa !9
  %4338 = load ptr, ptr %19, align 8, !tbaa !5
  %4339 = load ptr, ptr %22, align 8, !tbaa !5
  %4340 = load i32, ptr %74, align 4, !tbaa !9
  %4341 = add nsw i32 %4340, 2
  %4342 = load i32, ptr %34, align 4, !tbaa !9
  %4343 = mul nsw i32 %4341, %4342
  %4344 = add nsw i32 %4343, 1
  %4345 = sext i32 %4344 to i64
  %4346 = getelementptr inbounds float, ptr %4339, i64 %4345
  %4347 = load ptr, ptr %23, align 8, !tbaa !5
  %4348 = load ptr, ptr %28, align 8, !tbaa !5
  %4349 = load i32, ptr %74, align 4, !tbaa !9
  %4350 = add nsw i32 %4349, 2
  %4351 = load i32, ptr %77, align 4, !tbaa !9
  %4352 = load ptr, ptr %19, align 8, !tbaa !5
  %4353 = load i32, ptr %4352, align 4, !tbaa !9
  %4354 = mul nsw i32 %4351, %4353
  %4355 = add nsw i32 %4350, %4354
  %4356 = sext i32 %4355 to i64
  %4357 = getelementptr inbounds float, ptr %4348, i64 %4356
  %4358 = load ptr, ptr %28, align 8, !tbaa !5
  %4359 = load i32, ptr %74, align 4, !tbaa !9
  %4360 = load i32, ptr %77, align 4, !tbaa !9
  %4361 = load ptr, ptr %19, align 8, !tbaa !5
  %4362 = load i32, ptr %4361, align 4, !tbaa !9
  %4363 = mul nsw i32 %4360, %4362
  %4364 = add nsw i32 %4359, %4363
  %4365 = sext i32 %4364 to i64
  %4366 = getelementptr inbounds float, ptr %4358, i64 %4365
  %4367 = load ptr, ptr %22, align 8, !tbaa !5
  %4368 = load i32, ptr %74, align 4, !tbaa !9
  %4369 = load i32, ptr %34, align 4, !tbaa !9
  %4370 = mul nsw i32 %4368, %4369
  %4371 = add nsw i32 %4370, 1
  %4372 = sext i32 %4371 to i64
  %4373 = getelementptr inbounds float, ptr %4367, i64 %4372
  call void @sgemv_(ptr noundef @.str.10, ptr noundef %4338, ptr noundef %40, ptr noundef @c_b29, ptr noundef %4346, ptr noundef %4347, ptr noundef %4357, ptr noundef @c__1, ptr noundef %4366, ptr noundef %4373, ptr noundef @c__1)
  %4374 = load ptr, ptr %19, align 8, !tbaa !5
  %4375 = load i32, ptr %4374, align 4, !tbaa !9
  %4376 = load i32, ptr %74, align 4, !tbaa !9
  %4377 = sub nsw i32 %4375, %4376
  %4378 = sub nsw i32 %4377, 1
  store i32 %4378, ptr %40, align 4, !tbaa !9
  %4379 = load ptr, ptr %19, align 8, !tbaa !5
  %4380 = load ptr, ptr %22, align 8, !tbaa !5
  %4381 = load i32, ptr %74, align 4, !tbaa !9
  %4382 = add nsw i32 %4381, 2
  %4383 = load i32, ptr %34, align 4, !tbaa !9
  %4384 = mul nsw i32 %4382, %4383
  %4385 = add nsw i32 %4384, 1
  %4386 = sext i32 %4385 to i64
  %4387 = getelementptr inbounds float, ptr %4380, i64 %4386
  %4388 = load ptr, ptr %23, align 8, !tbaa !5
  %4389 = load ptr, ptr %28, align 8, !tbaa !5
  %4390 = load i32, ptr %74, align 4, !tbaa !9
  %4391 = add nsw i32 %4390, 2
  %4392 = load i32, ptr %77, align 4, !tbaa !9
  %4393 = add nsw i32 %4392, 1
  %4394 = load ptr, ptr %19, align 8, !tbaa !5
  %4395 = load i32, ptr %4394, align 4, !tbaa !9
  %4396 = mul nsw i32 %4393, %4395
  %4397 = add nsw i32 %4391, %4396
  %4398 = sext i32 %4397 to i64
  %4399 = getelementptr inbounds float, ptr %4389, i64 %4398
  %4400 = load ptr, ptr %28, align 8, !tbaa !5
  %4401 = load i32, ptr %74, align 4, !tbaa !9
  %4402 = add nsw i32 %4401, 1
  %4403 = load i32, ptr %77, align 4, !tbaa !9
  %4404 = add nsw i32 %4403, 1
  %4405 = load ptr, ptr %19, align 8, !tbaa !5
  %4406 = load i32, ptr %4405, align 4, !tbaa !9
  %4407 = mul nsw i32 %4404, %4406
  %4408 = add nsw i32 %4402, %4407
  %4409 = sext i32 %4408 to i64
  %4410 = getelementptr inbounds float, ptr %4400, i64 %4409
  %4411 = load ptr, ptr %22, align 8, !tbaa !5
  %4412 = load i32, ptr %74, align 4, !tbaa !9
  %4413 = add nsw i32 %4412, 1
  %4414 = load i32, ptr %34, align 4, !tbaa !9
  %4415 = mul nsw i32 %4413, %4414
  %4416 = add nsw i32 %4415, 1
  %4417 = sext i32 %4416 to i64
  %4418 = getelementptr inbounds float, ptr %4411, i64 %4417
  call void @sgemv_(ptr noundef @.str.10, ptr noundef %4379, ptr noundef %40, ptr noundef @c_b29, ptr noundef %4387, ptr noundef %4388, ptr noundef %4399, ptr noundef @c__1, ptr noundef %4410, ptr noundef %4418, ptr noundef @c__1)
  br label %4457

4419:                                             ; preds = %4326
  %4420 = load ptr, ptr %19, align 8, !tbaa !5
  %4421 = load ptr, ptr %28, align 8, !tbaa !5
  %4422 = load i32, ptr %74, align 4, !tbaa !9
  %4423 = load i32, ptr %77, align 4, !tbaa !9
  %4424 = load ptr, ptr %19, align 8, !tbaa !5
  %4425 = load i32, ptr %4424, align 4, !tbaa !9
  %4426 = mul nsw i32 %4423, %4425
  %4427 = add nsw i32 %4422, %4426
  %4428 = sext i32 %4427 to i64
  %4429 = getelementptr inbounds float, ptr %4421, i64 %4428
  %4430 = load ptr, ptr %22, align 8, !tbaa !5
  %4431 = load i32, ptr %74, align 4, !tbaa !9
  %4432 = load i32, ptr %34, align 4, !tbaa !9
  %4433 = mul nsw i32 %4431, %4432
  %4434 = add nsw i32 %4433, 1
  %4435 = sext i32 %4434 to i64
  %4436 = getelementptr inbounds float, ptr %4430, i64 %4435
  call void @sscal_(ptr noundef %4420, ptr noundef %4429, ptr noundef %4436, ptr noundef @c__1)
  %4437 = load ptr, ptr %19, align 8, !tbaa !5
  %4438 = load ptr, ptr %28, align 8, !tbaa !5
  %4439 = load i32, ptr %74, align 4, !tbaa !9
  %4440 = add nsw i32 %4439, 1
  %4441 = load i32, ptr %77, align 4, !tbaa !9
  %4442 = add nsw i32 %4441, 1
  %4443 = load ptr, ptr %19, align 8, !tbaa !5
  %4444 = load i32, ptr %4443, align 4, !tbaa !9
  %4445 = mul nsw i32 %4442, %4444
  %4446 = add nsw i32 %4440, %4445
  %4447 = sext i32 %4446 to i64
  %4448 = getelementptr inbounds float, ptr %4438, i64 %4447
  %4449 = load ptr, ptr %22, align 8, !tbaa !5
  %4450 = load i32, ptr %74, align 4, !tbaa !9
  %4451 = add nsw i32 %4450, 1
  %4452 = load i32, ptr %34, align 4, !tbaa !9
  %4453 = mul nsw i32 %4451, %4452
  %4454 = add nsw i32 %4453, 1
  %4455 = sext i32 %4454 to i64
  %4456 = getelementptr inbounds float, ptr %4449, i64 %4455
  call void @sscal_(ptr noundef %4437, ptr noundef %4448, ptr noundef %4456, ptr noundef @c__1)
  br label %4457

4457:                                             ; preds = %4419, %4332
  store float 0.000000e+00, ptr %48, align 4, !tbaa !16
  %4458 = load ptr, ptr %19, align 8, !tbaa !5
  %4459 = load i32, ptr %4458, align 4, !tbaa !9
  store i32 %4459, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %4460

4460:                                             ; preds = %4513, %4457
  %4461 = load i32, ptr %60, align 4, !tbaa !9
  %4462 = load i32, ptr %40, align 4, !tbaa !9
  %4463 = icmp sle i32 %4461, %4462
  br i1 %4463, label %4464, label %4516

4464:                                             ; preds = %4460
  %4465 = load float, ptr %48, align 4, !tbaa !16
  store float %4465, ptr %44, align 4, !tbaa !16
  %4466 = load ptr, ptr %22, align 8, !tbaa !5
  %4467 = load i32, ptr %60, align 4, !tbaa !9
  %4468 = load i32, ptr %74, align 4, !tbaa !9
  %4469 = load i32, ptr %34, align 4, !tbaa !9
  %4470 = mul nsw i32 %4468, %4469
  %4471 = add nsw i32 %4467, %4470
  %4472 = sext i32 %4471 to i64
  %4473 = getelementptr inbounds float, ptr %4466, i64 %4472
  %4474 = load float, ptr %4473, align 4, !tbaa !16
  store float %4474, ptr %42, align 4, !tbaa !16
  %4475 = load float, ptr %42, align 4, !tbaa !16
  %4476 = fcmp oge float %4475, 0.000000e+00
  br i1 %4476, label %4477, label %4479

4477:                                             ; preds = %4464
  %4478 = load float, ptr %42, align 4, !tbaa !16
  br label %4482

4479:                                             ; preds = %4464
  %4480 = load float, ptr %42, align 4, !tbaa !16
  %4481 = fneg float %4480
  br label %4482

4482:                                             ; preds = %4479, %4477
  %4483 = phi float [ %4478, %4477 ], [ %4481, %4479 ]
  %4484 = load ptr, ptr %22, align 8, !tbaa !5
  %4485 = load i32, ptr %60, align 4, !tbaa !9
  %4486 = load i32, ptr %74, align 4, !tbaa !9
  %4487 = add nsw i32 %4486, 1
  %4488 = load i32, ptr %34, align 4, !tbaa !9
  %4489 = mul nsw i32 %4487, %4488
  %4490 = add nsw i32 %4485, %4489
  %4491 = sext i32 %4490 to i64
  %4492 = getelementptr inbounds float, ptr %4484, i64 %4491
  %4493 = load float, ptr %4492, align 4, !tbaa !16
  store float %4493, ptr %43, align 4, !tbaa !16
  %4494 = load float, ptr %43, align 4, !tbaa !16
  %4495 = fcmp oge float %4494, 0.000000e+00
  br i1 %4495, label %4496, label %4498

4496:                                             ; preds = %4482
  %4497 = load float, ptr %43, align 4, !tbaa !16
  br label %4501

4498:                                             ; preds = %4482
  %4499 = load float, ptr %43, align 4, !tbaa !16
  %4500 = fneg float %4499
  br label %4501

4501:                                             ; preds = %4498, %4496
  %4502 = phi float [ %4497, %4496 ], [ %4500, %4498 ]
  %4503 = fadd float %4483, %4502
  store float %4503, ptr %45, align 4, !tbaa !16
  %4504 = load float, ptr %44, align 4, !tbaa !16
  %4505 = load float, ptr %45, align 4, !tbaa !16
  %4506 = fcmp oge float %4504, %4505
  br i1 %4506, label %4507, label %4509

4507:                                             ; preds = %4501
  %4508 = load float, ptr %44, align 4, !tbaa !16
  br label %4511

4509:                                             ; preds = %4501
  %4510 = load float, ptr %45, align 4, !tbaa !16
  br label %4511

4511:                                             ; preds = %4509, %4507
  %4512 = phi float [ %4508, %4507 ], [ %4510, %4509 ]
  store float %4512, ptr %48, align 4, !tbaa !16
  br label %4513

4513:                                             ; preds = %4511
  %4514 = load i32, ptr %60, align 4, !tbaa !9
  %4515 = add nsw i32 %4514, 1
  store i32 %4515, ptr %60, align 4, !tbaa !9
  br label %4460, !llvm.loop !42

4516:                                             ; preds = %4460
  %4517 = load float, ptr %48, align 4, !tbaa !16
  %4518 = fdiv float 1.000000e+00, %4517
  store float %4518, ptr %63, align 4, !tbaa !16
  %4519 = load ptr, ptr %19, align 8, !tbaa !5
  %4520 = load ptr, ptr %22, align 8, !tbaa !5
  %4521 = load i32, ptr %74, align 4, !tbaa !9
  %4522 = load i32, ptr %34, align 4, !tbaa !9
  %4523 = mul nsw i32 %4521, %4522
  %4524 = add nsw i32 %4523, 1
  %4525 = sext i32 %4524 to i64
  %4526 = getelementptr inbounds float, ptr %4520, i64 %4525
  call void @sscal_(ptr noundef %4519, ptr noundef %63, ptr noundef %4526, ptr noundef @c__1)
  %4527 = load ptr, ptr %19, align 8, !tbaa !5
  %4528 = load ptr, ptr %22, align 8, !tbaa !5
  %4529 = load i32, ptr %74, align 4, !tbaa !9
  %4530 = add nsw i32 %4529, 1
  %4531 = load i32, ptr %34, align 4, !tbaa !9
  %4532 = mul nsw i32 %4530, %4531
  %4533 = add nsw i32 %4532, 1
  %4534 = sext i32 %4533 to i64
  %4535 = getelementptr inbounds float, ptr %4528, i64 %4534
  call void @sscal_(ptr noundef %4527, ptr noundef %63, ptr noundef %4535, ptr noundef @c__1)
  br label %4579

4536:                                             ; preds = %4323
  %4537 = load i32, ptr %74, align 4, !tbaa !9
  %4538 = sub nsw i32 %4537, 1
  store i32 %4538, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %4539

4539:                                             ; preds = %4563, %4536
  %4540 = load i32, ptr %60, align 4, !tbaa !9
  %4541 = load i32, ptr %40, align 4, !tbaa !9
  %4542 = icmp sle i32 %4540, %4541
  br i1 %4542, label %4543, label %4566

4543:                                             ; preds = %4539
  %4544 = load ptr, ptr %28, align 8, !tbaa !5
  %4545 = load i32, ptr %60, align 4, !tbaa !9
  %4546 = load i32, ptr %77, align 4, !tbaa !9
  %4547 = load ptr, ptr %19, align 8, !tbaa !5
  %4548 = load i32, ptr %4547, align 4, !tbaa !9
  %4549 = mul nsw i32 %4546, %4548
  %4550 = add nsw i32 %4545, %4549
  %4551 = sext i32 %4550 to i64
  %4552 = getelementptr inbounds float, ptr %4544, i64 %4551
  store float 0.000000e+00, ptr %4552, align 4, !tbaa !16
  %4553 = load ptr, ptr %28, align 8, !tbaa !5
  %4554 = load i32, ptr %60, align 4, !tbaa !9
  %4555 = load i32, ptr %77, align 4, !tbaa !9
  %4556 = add nsw i32 %4555, 1
  %4557 = load ptr, ptr %19, align 8, !tbaa !5
  %4558 = load i32, ptr %4557, align 4, !tbaa !9
  %4559 = mul nsw i32 %4556, %4558
  %4560 = add nsw i32 %4554, %4559
  %4561 = sext i32 %4560 to i64
  %4562 = getelementptr inbounds float, ptr %4553, i64 %4561
  store float 0.000000e+00, ptr %4562, align 4, !tbaa !16
  br label %4563

4563:                                             ; preds = %4543
  %4564 = load i32, ptr %60, align 4, !tbaa !9
  %4565 = add nsw i32 %4564, 1
  store i32 %4565, ptr %60, align 4, !tbaa !9
  br label %4539, !llvm.loop !43

4566:                                             ; preds = %4539
  %4567 = load i32, ptr %75, align 4, !tbaa !9
  %4568 = load i32, ptr %77, align 4, !tbaa !9
  %4569 = sub nsw i32 %4568, 1
  %4570 = sext i32 %4569 to i64
  %4571 = getelementptr inbounds [128 x i32], ptr %71, i64 0, i64 %4570
  store i32 %4567, ptr %4571, align 4, !tbaa !9
  %4572 = load i32, ptr %75, align 4, !tbaa !9
  %4573 = sub nsw i32 0, %4572
  %4574 = load i32, ptr %77, align 4, !tbaa !9
  %4575 = sext i32 %4574 to i64
  %4576 = getelementptr inbounds [128 x i32], ptr %71, i64 0, i64 %4575
  store i32 %4573, ptr %4576, align 4, !tbaa !9
  %4577 = load i32, ptr %77, align 4, !tbaa !9
  %4578 = add nsw i32 %4577, 1
  store i32 %4578, ptr %77, align 4, !tbaa !9
  br label %4579

4579:                                             ; preds = %4566, %4516
  br label %4580

4580:                                             ; preds = %4579, %4322
  br label %4581

4581:                                             ; preds = %4580, %3250
  %4582 = load i32, ptr %72, align 4, !tbaa !9
  %4583 = icmp sgt i32 %4582, 1
  br i1 %4583, label %4584, label %4807

4584:                                             ; preds = %4581
  %4585 = load i32, ptr %75, align 4, !tbaa !9
  %4586 = icmp eq i32 %4585, 0
  br i1 %4586, label %4587, label %4589

4587:                                             ; preds = %4584
  %4588 = load i32, ptr %74, align 4, !tbaa !9
  store i32 %4588, ptr %82, align 4, !tbaa !9
  br label %4592

4589:                                             ; preds = %4584
  %4590 = load i32, ptr %74, align 4, !tbaa !9
  %4591 = add nsw i32 %4590, 1
  store i32 %4591, ptr %82, align 4, !tbaa !9
  br label %4592

4592:                                             ; preds = %4589, %4587
  %4593 = load i32, ptr %77, align 4, !tbaa !9
  %4594 = load i32, ptr %72, align 4, !tbaa !9
  %4595 = sub nsw i32 %4594, 1
  %4596 = icmp sge i32 %4593, %4595
  br i1 %4596, label %4602, label %4597

4597:                                             ; preds = %4592
  %4598 = load i32, ptr %82, align 4, !tbaa !9
  %4599 = load ptr, ptr %19, align 8, !tbaa !5
  %4600 = load i32, ptr %4599, align 4, !tbaa !9
  %4601 = icmp eq i32 %4598, %4600
  br i1 %4601, label %4602, label %4803

4602:                                             ; preds = %4597, %4592
  %4603 = load ptr, ptr %19, align 8, !tbaa !5
  %4604 = load i32, ptr %4603, align 4, !tbaa !9
  %4605 = load i32, ptr %82, align 4, !tbaa !9
  %4606 = sub nsw i32 %4604, %4605
  %4607 = load i32, ptr %77, align 4, !tbaa !9
  %4608 = add nsw i32 %4606, %4607
  store i32 %4608, ptr %40, align 4, !tbaa !9
  %4609 = load ptr, ptr %19, align 8, !tbaa !5
  %4610 = load ptr, ptr %22, align 8, !tbaa !5
  %4611 = load i32, ptr %82, align 4, !tbaa !9
  %4612 = load i32, ptr %77, align 4, !tbaa !9
  %4613 = sub nsw i32 %4611, %4612
  %4614 = add nsw i32 %4613, 1
  %4615 = load i32, ptr %34, align 4, !tbaa !9
  %4616 = mul nsw i32 %4614, %4615
  %4617 = add nsw i32 %4616, 1
  %4618 = sext i32 %4617 to i64
  %4619 = getelementptr inbounds float, ptr %4610, i64 %4618
  %4620 = load ptr, ptr %23, align 8, !tbaa !5
  %4621 = load ptr, ptr %28, align 8, !tbaa !5
  %4622 = load i32, ptr %82, align 4, !tbaa !9
  %4623 = load i32, ptr %77, align 4, !tbaa !9
  %4624 = sub nsw i32 %4622, %4623
  %4625 = add nsw i32 %4624, 1
  %4626 = load ptr, ptr %19, align 8, !tbaa !5
  %4627 = load i32, ptr %4626, align 4, !tbaa !9
  %4628 = add nsw i32 %4625, %4627
  %4629 = sext i32 %4628 to i64
  %4630 = getelementptr inbounds float, ptr %4621, i64 %4629
  %4631 = load ptr, ptr %19, align 8, !tbaa !5
  %4632 = load ptr, ptr %28, align 8, !tbaa !5
  %4633 = load i32, ptr %72, align 4, !tbaa !9
  %4634 = add nsw i32 %4633, 1
  %4635 = load ptr, ptr %19, align 8, !tbaa !5
  %4636 = load i32, ptr %4635, align 4, !tbaa !9
  %4637 = mul nsw i32 %4634, %4636
  %4638 = add nsw i32 %4637, 1
  %4639 = sext i32 %4638 to i64
  %4640 = getelementptr inbounds float, ptr %4632, i64 %4639
  %4641 = load ptr, ptr %19, align 8, !tbaa !5
  call void @sgemm_(ptr noundef @.str.10, ptr noundef @.str.10, ptr noundef %4609, ptr noundef %77, ptr noundef %40, ptr noundef @c_b29, ptr noundef %4619, ptr noundef %4620, ptr noundef %4630, ptr noundef %4631, ptr noundef @c_b17, ptr noundef %4640, ptr noundef %4641)
  %4642 = load i32, ptr %77, align 4, !tbaa !9
  store i32 %4642, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  br label %4643

4643:                                             ; preds = %4777, %4602
  %4644 = load i32, ptr %60, align 4, !tbaa !9
  %4645 = load i32, ptr %40, align 4, !tbaa !9
  %4646 = icmp sle i32 %4644, %4645
  br i1 %4646, label %4647, label %4780

4647:                                             ; preds = %4643
  %4648 = load i32, ptr %60, align 4, !tbaa !9
  %4649 = sub nsw i32 %4648, 1
  %4650 = sext i32 %4649 to i64
  %4651 = getelementptr inbounds [128 x i32], ptr %71, i64 0, i64 %4650
  %4652 = load i32, ptr %4651, align 4, !tbaa !9
  %4653 = icmp eq i32 %4652, 0
  br i1 %4653, label %4654, label %4689

4654:                                             ; preds = %4647
  %4655 = load ptr, ptr %19, align 8, !tbaa !5
  %4656 = load ptr, ptr %28, align 8, !tbaa !5
  %4657 = load i32, ptr %72, align 4, !tbaa !9
  %4658 = load i32, ptr %60, align 4, !tbaa !9
  %4659 = add nsw i32 %4657, %4658
  %4660 = load ptr, ptr %19, align 8, !tbaa !5
  %4661 = load i32, ptr %4660, align 4, !tbaa !9
  %4662 = mul nsw i32 %4659, %4661
  %4663 = add nsw i32 %4662, 1
  %4664 = sext i32 %4663 to i64
  %4665 = getelementptr inbounds float, ptr %4656, i64 %4664
  %4666 = call i32 @isamax_(ptr noundef %4655, ptr noundef %4665, ptr noundef @c__1)
  store i32 %4666, ptr %73, align 4, !tbaa !9
  %4667 = load ptr, ptr %28, align 8, !tbaa !5
  %4668 = load i32, ptr %73, align 4, !tbaa !9
  %4669 = load i32, ptr %72, align 4, !tbaa !9
  %4670 = load i32, ptr %60, align 4, !tbaa !9
  %4671 = add nsw i32 %4669, %4670
  %4672 = load ptr, ptr %19, align 8, !tbaa !5
  %4673 = load i32, ptr %4672, align 4, !tbaa !9
  %4674 = mul nsw i32 %4671, %4673
  %4675 = add nsw i32 %4668, %4674
  %4676 = sext i32 %4675 to i64
  %4677 = getelementptr inbounds float, ptr %4667, i64 %4676
  %4678 = load float, ptr %4677, align 4, !tbaa !16
  store float %4678, ptr %42, align 4, !tbaa !16
  %4679 = load float, ptr %42, align 4, !tbaa !16
  %4680 = fcmp oge float %4679, 0.000000e+00
  br i1 %4680, label %4681, label %4683

4681:                                             ; preds = %4654
  %4682 = load float, ptr %42, align 4, !tbaa !16
  br label %4686

4683:                                             ; preds = %4654
  %4684 = load float, ptr %42, align 4, !tbaa !16
  %4685 = fneg float %4684
  br label %4686

4686:                                             ; preds = %4683, %4681
  %4687 = phi float [ %4682, %4681 ], [ %4685, %4683 ]
  %4688 = fdiv float 1.000000e+00, %4687
  store float %4688, ptr %63, align 4, !tbaa !16
  br label %4765

4689:                                             ; preds = %4647
  %4690 = load i32, ptr %60, align 4, !tbaa !9
  %4691 = sub nsw i32 %4690, 1
  %4692 = sext i32 %4691 to i64
  %4693 = getelementptr inbounds [128 x i32], ptr %71, i64 0, i64 %4692
  %4694 = load i32, ptr %4693, align 4, !tbaa !9
  %4695 = icmp eq i32 %4694, 1
  br i1 %4695, label %4696, label %4764

4696:                                             ; preds = %4689
  store float 0.000000e+00, ptr %48, align 4, !tbaa !16
  %4697 = load ptr, ptr %19, align 8, !tbaa !5
  %4698 = load i32, ptr %4697, align 4, !tbaa !9
  store i32 %4698, ptr %41, align 4, !tbaa !9
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %4699

4699:                                             ; preds = %4758, %4696
  %4700 = load i32, ptr %73, align 4, !tbaa !9
  %4701 = load i32, ptr %41, align 4, !tbaa !9
  %4702 = icmp sle i32 %4700, %4701
  br i1 %4702, label %4703, label %4761

4703:                                             ; preds = %4699
  %4704 = load float, ptr %48, align 4, !tbaa !16
  store float %4704, ptr %44, align 4, !tbaa !16
  %4705 = load ptr, ptr %28, align 8, !tbaa !5
  %4706 = load i32, ptr %73, align 4, !tbaa !9
  %4707 = load i32, ptr %72, align 4, !tbaa !9
  %4708 = load i32, ptr %60, align 4, !tbaa !9
  %4709 = add nsw i32 %4707, %4708
  %4710 = load ptr, ptr %19, align 8, !tbaa !5
  %4711 = load i32, ptr %4710, align 4, !tbaa !9
  %4712 = mul nsw i32 %4709, %4711
  %4713 = add nsw i32 %4706, %4712
  %4714 = sext i32 %4713 to i64
  %4715 = getelementptr inbounds float, ptr %4705, i64 %4714
  %4716 = load float, ptr %4715, align 4, !tbaa !16
  store float %4716, ptr %42, align 4, !tbaa !16
  %4717 = load float, ptr %42, align 4, !tbaa !16
  %4718 = fcmp oge float %4717, 0.000000e+00
  br i1 %4718, label %4719, label %4721

4719:                                             ; preds = %4703
  %4720 = load float, ptr %42, align 4, !tbaa !16
  br label %4724

4721:                                             ; preds = %4703
  %4722 = load float, ptr %42, align 4, !tbaa !16
  %4723 = fneg float %4722
  br label %4724

4724:                                             ; preds = %4721, %4719
  %4725 = phi float [ %4720, %4719 ], [ %4723, %4721 ]
  %4726 = load ptr, ptr %28, align 8, !tbaa !5
  %4727 = load i32, ptr %73, align 4, !tbaa !9
  %4728 = load i32, ptr %72, align 4, !tbaa !9
  %4729 = load i32, ptr %60, align 4, !tbaa !9
  %4730 = add nsw i32 %4728, %4729
  %4731 = add nsw i32 %4730, 1
  %4732 = load ptr, ptr %19, align 8, !tbaa !5
  %4733 = load i32, ptr %4732, align 4, !tbaa !9
  %4734 = mul nsw i32 %4731, %4733
  %4735 = add nsw i32 %4727, %4734
  %4736 = sext i32 %4735 to i64
  %4737 = getelementptr inbounds float, ptr %4726, i64 %4736
  %4738 = load float, ptr %4737, align 4, !tbaa !16
  store float %4738, ptr %43, align 4, !tbaa !16
  %4739 = load float, ptr %43, align 4, !tbaa !16
  %4740 = fcmp oge float %4739, 0.000000e+00
  br i1 %4740, label %4741, label %4743

4741:                                             ; preds = %4724
  %4742 = load float, ptr %43, align 4, !tbaa !16
  br label %4746

4743:                                             ; preds = %4724
  %4744 = load float, ptr %43, align 4, !tbaa !16
  %4745 = fneg float %4744
  br label %4746

4746:                                             ; preds = %4743, %4741
  %4747 = phi float [ %4742, %4741 ], [ %4745, %4743 ]
  %4748 = fadd float %4725, %4747
  store float %4748, ptr %45, align 4, !tbaa !16
  %4749 = load float, ptr %44, align 4, !tbaa !16
  %4750 = load float, ptr %45, align 4, !tbaa !16
  %4751 = fcmp oge float %4749, %4750
  br i1 %4751, label %4752, label %4754

4752:                                             ; preds = %4746
  %4753 = load float, ptr %44, align 4, !tbaa !16
  br label %4756

4754:                                             ; preds = %4746
  %4755 = load float, ptr %45, align 4, !tbaa !16
  br label %4756

4756:                                             ; preds = %4754, %4752
  %4757 = phi float [ %4753, %4752 ], [ %4755, %4754 ]
  store float %4757, ptr %48, align 4, !tbaa !16
  br label %4758

4758:                                             ; preds = %4756
  %4759 = load i32, ptr %73, align 4, !tbaa !9
  %4760 = add nsw i32 %4759, 1
  store i32 %4760, ptr %73, align 4, !tbaa !9
  br label %4699, !llvm.loop !44

4761:                                             ; preds = %4699
  %4762 = load float, ptr %48, align 4, !tbaa !16
  %4763 = fdiv float 1.000000e+00, %4762
  store float %4763, ptr %63, align 4, !tbaa !16
  br label %4764

4764:                                             ; preds = %4761, %4689
  br label %4765

4765:                                             ; preds = %4764, %4686
  %4766 = load ptr, ptr %19, align 8, !tbaa !5
  %4767 = load ptr, ptr %28, align 8, !tbaa !5
  %4768 = load i32, ptr %72, align 4, !tbaa !9
  %4769 = load i32, ptr %60, align 4, !tbaa !9
  %4770 = add nsw i32 %4768, %4769
  %4771 = load ptr, ptr %19, align 8, !tbaa !5
  %4772 = load i32, ptr %4771, align 4, !tbaa !9
  %4773 = mul nsw i32 %4770, %4772
  %4774 = add nsw i32 %4773, 1
  %4775 = sext i32 %4774 to i64
  %4776 = getelementptr inbounds float, ptr %4767, i64 %4775
  call void @sscal_(ptr noundef %4766, ptr noundef %63, ptr noundef %4776, ptr noundef @c__1)
  br label %4777

4777:                                             ; preds = %4765
  %4778 = load i32, ptr %60, align 4, !tbaa !9
  %4779 = add nsw i32 %4778, 1
  store i32 %4779, ptr %60, align 4, !tbaa !9
  br label %4643, !llvm.loop !45

4780:                                             ; preds = %4643
  %4781 = load ptr, ptr %19, align 8, !tbaa !5
  %4782 = load ptr, ptr %28, align 8, !tbaa !5
  %4783 = load i32, ptr %72, align 4, !tbaa !9
  %4784 = add nsw i32 %4783, 1
  %4785 = load ptr, ptr %19, align 8, !tbaa !5
  %4786 = load i32, ptr %4785, align 4, !tbaa !9
  %4787 = mul nsw i32 %4784, %4786
  %4788 = add nsw i32 %4787, 1
  %4789 = sext i32 %4788 to i64
  %4790 = getelementptr inbounds float, ptr %4782, i64 %4789
  %4791 = load ptr, ptr %19, align 8, !tbaa !5
  %4792 = load ptr, ptr %22, align 8, !tbaa !5
  %4793 = load i32, ptr %82, align 4, !tbaa !9
  %4794 = load i32, ptr %77, align 4, !tbaa !9
  %4795 = sub nsw i32 %4793, %4794
  %4796 = add nsw i32 %4795, 1
  %4797 = load i32, ptr %34, align 4, !tbaa !9
  %4798 = mul nsw i32 %4796, %4797
  %4799 = add nsw i32 %4798, 1
  %4800 = sext i32 %4799 to i64
  %4801 = getelementptr inbounds float, ptr %4792, i64 %4800
  %4802 = load ptr, ptr %23, align 8, !tbaa !5
  call void @slacpy_(ptr noundef @.str.7, ptr noundef %4781, ptr noundef %77, ptr noundef %4790, ptr noundef %4791, ptr noundef %4801, ptr noundef %4802)
  store i32 1, ptr %77, align 4, !tbaa !9
  br label %4806

4803:                                             ; preds = %4597
  %4804 = load i32, ptr %77, align 4, !tbaa !9
  %4805 = add nsw i32 %4804, 1
  store i32 %4805, ptr %77, align 4, !tbaa !9
  br label %4806

4806:                                             ; preds = %4803, %4780
  br label %4807

4807:                                             ; preds = %4806, %4581
  %4808 = load i32, ptr %76, align 4, !tbaa !9
  %4809 = add nsw i32 %4808, 1
  store i32 %4809, ptr %76, align 4, !tbaa !9
  %4810 = load i32, ptr %75, align 4, !tbaa !9
  %4811 = icmp ne i32 %4810, 0
  br i1 %4811, label %4812, label %4815

4812:                                             ; preds = %4807
  %4813 = load i32, ptr %76, align 4, !tbaa !9
  %4814 = add nsw i32 %4813, 1
  store i32 %4814, ptr %76, align 4, !tbaa !9
  br label %4815

4815:                                             ; preds = %4812, %4807
  br label %4816

4816:                                             ; preds = %4815, %2479, %2446
  br label %4817

4817:                                             ; preds = %4816
  %4818 = load i32, ptr %74, align 4, !tbaa !9
  %4819 = add nsw i32 %4818, 1
  store i32 %4819, ptr %74, align 4, !tbaa !9
  br label %2439, !llvm.loop !46

4820:                                             ; preds = %2439
  br label %4821

4821:                                             ; preds = %4820, %2433
  store i32 1, ptr %93, align 4
  br label %4822

4822:                                             ; preds = %4821, %448, %442, %434
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  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 512, 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 16, 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 4, 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 2, 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 8, 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 16, ptr %31) #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

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

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

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

declare void @slaset_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr 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 void @sgemm_(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 @slacpy_(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

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 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13}
!13 = !{!"llvm.loop.mustprogress"}
!14 = distinct !{!14, !13}
!15 = distinct !{!15, !13}
!16 = !{!17, !17, i64 0}
!17 = !{!"float", !7, i64 0}
!18 = distinct !{!18, !13}
!19 = distinct !{!19, !13}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13}
!22 = distinct !{!22, !13}
!23 = distinct !{!23, !13}
!24 = distinct !{!24, !13}
!25 = distinct !{!25, !13}
!26 = distinct !{!26, !13}
!27 = distinct !{!27, !13}
!28 = distinct !{!28, !13}
!29 = distinct !{!29, !13}
!30 = distinct !{!30, !13}
!31 = distinct !{!31, !13}
!32 = distinct !{!32, !13}
!33 = distinct !{!33, !13}
!34 = distinct !{!34, !13}
!35 = distinct !{!35, !13}
!36 = distinct !{!36, !13}
!37 = distinct !{!37, !13}
!38 = distinct !{!38, !13}
!39 = distinct !{!39, !13}
!40 = distinct !{!40, !13}
!41 = distinct !{!41, !13}
!42 = distinct !{!42, !13}
!43 = distinct !{!43, !13}
!44 = distinct !{!44, !13}
!45 = distinct !{!45, !13}
!46 = distinct !{!46, !13}


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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i32, align 4
@c__1 = external hidden global i32, align 4
@.str.5 = external hidden unnamed_addr constant [7 x i8], align 1
@c_n1 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@c_b17 = external hidden global float, align 4
@.str.8 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [10 x i8], align 1
@c_false = external hidden global i32, align 4
@c_b29 = external hidden global float, align 4
@.str.10 = 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 @strevc3_(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 readonly %13, ptr nocapture noundef %14) local_unnamed_addr #0 {
  %16 = ptrtoint ptr %4 to i64
  %17 = ptrtoint ptr %12 to i64
  %18 = ptrtoint ptr %4 to i64
  %19 = ptrtoint ptr %12 to i64
  %20 = alloca [2 x ptr], align 16
  %21 = alloca [2 x i32], align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca float, align 4
  %26 = alloca [2 x i8], align 1
  %27 = alloca i32, align 4
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca float, align 4
  %32 = alloca [4 x float], align 16
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca [128 x i32], align 16
  %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
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 8, 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 2, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 4, 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 16, 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
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #6
  %41 = getelementptr inbounds i8, ptr %2, i64 -4
  %42 = load i32, ptr %5, align 4, !tbaa !5
  %narrow = xor i32 %42, -1
  %43 = sext i32 %narrow to i64
  %44 = getelementptr inbounds float, ptr %4, i64 %43
  %45 = load i32, ptr %7, align 4, !tbaa !5
  %narrow1362 = xor i32 %45, -1
  %46 = sext i32 %narrow1362 to i64
  %47 = getelementptr inbounds float, ptr %6, i64 %46
  %48 = load i32, ptr %9, align 4, !tbaa !5
  %narrow1404 = xor i32 %48, -1
  %49 = sext i32 %narrow1404 to i64
  %50 = getelementptr inbounds float, ptr %8, i64 %49
  %51 = getelementptr i8, ptr %12, i64 -4
  %52 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %53 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %54 = icmp ne i32 %53, 0
  %55 = icmp ne i32 %52, 0
  %56 = select i1 %54, i1 true, i1 %55
  %57 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  %58 = icmp ne i32 %57, 0
  %59 = select i1 %58, i1 true, i1 %55
  %60 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.3) #6
  %61 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str) #6
  %62 = tail call i32 @lsame_(ptr noundef %1, ptr noundef nonnull @.str.4) #6
  store i32 0, ptr %14, align 4, !tbaa !5
  store i32 1, ptr %21, align 4, !tbaa !5
  store ptr %0, ptr %20, align 16, !tbaa !9
  %63 = getelementptr inbounds i8, ptr %21, i64 4
  store i32 1, ptr %63, align 4, !tbaa !5
  %64 = getelementptr inbounds i8, ptr %20, i64 8
  store ptr %1, ptr %64, align 8, !tbaa !9
  %65 = load i32, ptr @c__2, align 4, !tbaa !5
  %66 = icmp sgt i32 %65, 0
  br i1 %66, label %.lr.ph1505, label %.lr.ph1510.preheader

.preheader1497:                                   ; preds = %._crit_edge
  %67 = icmp sgt i32 %72, 0
  br i1 %67, label %.lr.ph1510.preheader, label %._crit_edge1511

.lr.ph1510.preheader:                             ; preds = %15, %.preheader1497
  %.0.lcssa2029 = phi ptr [ %.1.lcssa, %.preheader1497 ], [ %26, %15 ]
  %.01271.lcssa2028 = phi i32 [ %72, %.preheader1497 ], [ 2, %15 ]
  %68 = zext nneg i32 %.01271.lcssa2028 to i64
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %.0.lcssa2029, i8 32, i64 %68, i1 false), !tbaa !11
  br label %._crit_edge1511

.lr.ph1505:                                       ; preds = %15, %._crit_edge
  %69 = phi i32 [ %87, %._crit_edge ], [ %65, %15 ]
  %indvars.iv = phi i64 [ %indvars.iv.next, %._crit_edge ], [ 0, %15 ]
  %.01503 = phi ptr [ %.1.lcssa, %._crit_edge ], [ %26, %15 ]
  %.012711502 = phi i32 [ %72, %._crit_edge ], [ 2, %15 ]
  %70 = getelementptr inbounds [2 x i32], ptr %21, i64 0, i64 %indvars.iv
  %71 = load i32, ptr %70, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.smin.i32(i32 %71, i32 %.012711502)
  %72 = sub nsw i32 %.012711502, %spec.select
  %73 = icmp sgt i32 %spec.select, 0
  br i1 %73, label %.lr.ph.preheader, label %._crit_edge

.lr.ph.preheader:                                 ; preds = %.lr.ph1505
  %.015032156 = ptrtoint ptr %.01503 to i64
  %74 = getelementptr inbounds [2 x ptr], ptr %20, i64 0, i64 %indvars.iv
  %75 = load ptr, ptr %74, align 8, !tbaa !9
  %76 = add nsw i32 %spec.select, -1
  %77 = zext nneg i32 %76 to i64
  %scevgep = getelementptr i8, ptr %.01503, i64 %77
  %78 = zext nneg i32 %spec.select to i64
  %min.iters.check = icmp ult i32 %spec.select, 32
  %79 = ptrtoint ptr %75 to i64
  %80 = sub i64 %.015032156, %79
  %diff.check = icmp ult i64 %80, 32
  %or.cond2395 = select i1 %min.iters.check, i1 true, i1 %diff.check
  br i1 %or.cond2395, label %.lr.ph.preheader2418, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph.preheader
  %n.vec = and i64 %78, 2147483616
  %ind.end = getelementptr i8, ptr %.01503, i64 %n.vec
  %ind.end2157 = getelementptr i8, ptr %75, i64 %n.vec
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %next.gep = getelementptr i8, ptr %.01503, i64 %index
  %next.gep2160 = getelementptr i8, ptr %75, i64 %index
  %81 = getelementptr i8, ptr %next.gep2160, i64 16
  %wide.load = load <16 x i8>, ptr %next.gep2160, align 1, !tbaa !11
  %wide.load2162 = load <16 x i8>, ptr %81, align 1, !tbaa !11
  %82 = getelementptr i8, ptr %next.gep, i64 16
  store <16 x i8> %wide.load, ptr %next.gep, align 1, !tbaa !11
  store <16 x i8> %wide.load2162, ptr %82, align 1, !tbaa !11
  %index.next = add nuw i64 %index, 32
  %83 = icmp eq i64 %index.next, %n.vec
  br i1 %83, label %middle.block, label %vector.body, !llvm.loop !12

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %78
  br i1 %cmp.n, label %._crit_edge.loopexit, label %.lr.ph.preheader2418

.lr.ph.preheader2418:                             ; preds = %middle.block, %.lr.ph.preheader
  %.11500.ph = phi ptr [ %.01503, %.lr.ph.preheader ], [ %ind.end, %middle.block ]
  %.012701499.ph = phi ptr [ %75, %.lr.ph.preheader ], [ %ind.end2157, %middle.block ]
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader2418, %.lr.ph
  %.11500 = phi ptr [ %86, %.lr.ph ], [ %.11500.ph, %.lr.ph.preheader2418 ]
  %.012701499 = phi ptr [ %84, %.lr.ph ], [ %.012701499.ph, %.lr.ph.preheader2418 ]
  %84 = getelementptr inbounds i8, ptr %.012701499, i64 1
  %85 = load i8, ptr %.012701499, align 1, !tbaa !11
  %86 = getelementptr inbounds i8, ptr %.11500, i64 1
  store i8 %85, ptr %.11500, align 1, !tbaa !11
  %exitcond.not = icmp eq ptr %.11500, %scevgep
  br i1 %exitcond.not, label %._crit_edge.loopexit, label %.lr.ph, !llvm.loop !16

._crit_edge.loopexit:                             ; preds = %.lr.ph, %middle.block
  %.lcssa2154 = phi ptr [ %ind.end, %middle.block ], [ %86, %.lr.ph ]
  %.pre = load i32, ptr @c__2, align 4, !tbaa !5
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %.lr.ph1505
  %87 = phi i32 [ %69, %.lr.ph1505 ], [ %.pre, %._crit_edge.loopexit ]
  %.1.lcssa = phi ptr [ %.01503, %.lr.ph1505 ], [ %.lcssa2154, %._crit_edge.loopexit ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %88 = sext i32 %87 to i64
  %89 = icmp slt i64 %indvars.iv.next, %88
  br i1 %89, label %.lr.ph1505, label %.preheader1497, !llvm.loop !17

._crit_edge1511:                                  ; preds = %.lr.ph1510.preheader, %.preheader1497
  %90 = call i32 @ilaenv_(ptr noundef nonnull @c__1, ptr noundef nonnull @.str.5, ptr noundef nonnull %26, ptr noundef %3, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, ptr noundef nonnull @c_n1, i32 noundef 6, i32 noundef 2) #6
  %91 = load i32, ptr %3, align 4, !tbaa !5
  %92 = shl i32 %90, 1
  %93 = or disjoint i32 %92, 1
  %94 = mul i32 %93, %91
  %95 = sitofp i32 %94 to float
  store float %95, ptr %12, align 4, !tbaa !18
  %96 = load i32, ptr %13, align 4, !tbaa !5
  %97 = icmp eq i32 %96, -1
  %or.cond = select i1 %56, i1 true, i1 %59
  br i1 %or.cond, label %98, label %.thread.sink.split

98:                                               ; preds = %._crit_edge1511
  %99 = icmp ne i32 %60, 0
  %100 = icmp ne i32 %61, 0
  %or.cond3 = select i1 %99, i1 true, i1 %100
  %101 = icmp ne i32 %62, 0
  %or.cond5 = select i1 %or.cond3, i1 true, i1 %101
  br i1 %or.cond5, label %102, label %.thread.sink.split

102:                                              ; preds = %98
  %103 = icmp slt i32 %91, 0
  br i1 %103, label %.thread.sink.split, label %104

104:                                              ; preds = %102
  %105 = load i32, ptr %5, align 4, !tbaa !5
  %spec.select1409 = call i32 @llvm.umax.i32(i32 %91, i32 1)
  %106 = icmp slt i32 %105, %spec.select1409
  br i1 %106, label %.thread.sink.split, label %107

107:                                              ; preds = %104
  %108 = load i32, ptr %7, align 4, !tbaa !5
  %109 = icmp slt i32 %108, 1
  %110 = icmp ult i32 %108, %91
  %or.cond1456 = select i1 %59, i1 %110, i1 false
  %or.cond1458 = select i1 %109, i1 true, i1 %or.cond1456
  br i1 %or.cond1458, label %.thread.sink.split, label %111

111:                                              ; preds = %107
  %112 = load i32, ptr %9, align 4, !tbaa !5
  %113 = icmp slt i32 %112, 1
  %114 = icmp ult i32 %112, %91
  %or.cond1457 = select i1 %56, i1 %114, i1 false
  %or.cond1459 = select i1 %113, i1 true, i1 %or.cond1457
  br i1 %or.cond1459, label %.thread.sink.split, label %115

115:                                              ; preds = %111
  store i32 1, ptr %22, align 4, !tbaa !5
  %116 = mul nuw nsw i32 %91, 3
  store i32 %116, ptr %23, align 4, !tbaa !5
  %117 = icmp eq i32 %91, 0
  %118 = select i1 %117, i32 1, i32 %116
  %119 = icmp sge i32 %96, %118
  %or.cond7 = or i1 %119, %97
  br i1 %or.cond7, label %120, label %.thread.sink.split

120:                                              ; preds = %115
  br i1 %101, label %121, label %156

121:                                              ; preds = %120
  store i32 0, ptr %11, align 4, !tbaa !5
  %122 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %122, ptr %22, align 4, !tbaa !5
  %.not1512 = icmp slt i32 %122, 1
  br i1 %.not1512, label %.loopexit1496, label %.lr.ph1516.preheader

.lr.ph1516.preheader:                             ; preds = %121
  %123 = sext i32 %42 to i64
  %124 = add nuw i32 %122, 1
  %wide.trip.count = zext i32 %124 to i64
  %invariant.gep = getelementptr i8, ptr %44, i64 4
  br label %.lr.ph1516

.lr.ph1516:                                       ; preds = %.lr.ph1516.preheader, %155
  %indvars.iv1817 = phi i64 [ 1, %.lr.ph1516.preheader ], [ %indvars.iv.next1818, %155 ]
  %.013351513 = phi i32 [ 0, %.lr.ph1516.preheader ], [ %.11336, %155 ]
  %.not1363 = icmp eq i32 %.013351513, 0
  br i1 %.not1363, label %127, label %125

125:                                              ; preds = %.lr.ph1516
  %126 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv1817
  store i32 0, ptr %126, align 4, !tbaa !5
  br label %155

127:                                              ; preds = %.lr.ph1516
  %128 = load i32, ptr %3, align 4, !tbaa !5
  %129 = sext i32 %128 to i64
  %130 = icmp slt i64 %indvars.iv1817, %129
  br i1 %130, label %131, label %149

131:                                              ; preds = %127
  %132 = mul nsw i64 %indvars.iv1817, %123
  %gep2052 = getelementptr float, ptr %invariant.gep, i64 %indvars.iv1817
  %133 = getelementptr float, ptr %gep2052, i64 %132
  %134 = load float, ptr %133, align 4, !tbaa !18
  %135 = fcmp oeq float %134, 0.000000e+00
  %136 = getelementptr inbounds i32, ptr %41, i64 %indvars.iv1817
  %137 = load i32, ptr %136, align 4, !tbaa !5
  %.not1367 = icmp eq i32 %137, 0
  br i1 %135, label %138, label %142

138:                                              ; preds = %131
  br i1 %.not1367, label %155, label %139

139:                                              ; preds = %138
  %140 = load i32, ptr %11, align 4, !tbaa !5
  %141 = add nsw i32 %140, 1
  store i32 %141, ptr %11, align 4, !tbaa !5
  br label %155

142:                                              ; preds = %131
  br i1 %.not1367, label %143, label %146

143:                                              ; preds = %142
  %144 = getelementptr i32, ptr %2, i64 %indvars.iv1817
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %.not1366 = icmp eq i32 %145, 0
  br i1 %.not1366, label %155, label %146

146:                                              ; preds = %143, %142
  store i32 1, ptr %136, align 4, !tbaa !5
  %147 = load i32, ptr %11, align 4, !tbaa !5
  %148 = add nsw i32 %147, 2
  store i32 %148, ptr %11, align 4, !tbaa !5
  br label %155

149:                                              ; preds = %127
  %150 = getelementptr inbounds i32, ptr %41, i64 %129
  %151 = load i32, ptr %150, align 4, !tbaa !5
  %.not1364 = icmp eq i32 %151, 0
  br i1 %.not1364, label %155, label %152

152:                                              ; preds = %149
  %153 = load i32, ptr %11, align 4, !tbaa !5
  %154 = add nsw i32 %153, 1
  store i32 %154, ptr %11, align 4, !tbaa !5
  br label %155

155:                                              ; preds = %125, %149, %152, %139, %138, %146, %143
  %.11336 = phi i32 [ 0, %125 ], [ 0, %139 ], [ 0, %138 ], [ 1, %146 ], [ 1, %143 ], [ 0, %152 ], [ 0, %149 ]
  %indvars.iv.next1818 = add nuw nsw i64 %indvars.iv1817, 1
  %exitcond1820.not = icmp eq i64 %indvars.iv.next1818, %wide.trip.count
  br i1 %exitcond1820.not, label %.loopexit1496.loopexit, label %.lr.ph1516, !llvm.loop !20

156:                                              ; preds = %120
  store i32 %91, ptr %11, align 4, !tbaa !5
  br label %.loopexit1496

.loopexit1496.loopexit:                           ; preds = %155
  %.pre1956 = load i32, ptr %11, align 4, !tbaa !5
  br label %.loopexit1496

.loopexit1496:                                    ; preds = %.loopexit1496.loopexit, %121, %156
  %157 = phi i32 [ %.pre1956, %.loopexit1496.loopexit ], [ 0, %121 ], [ %91, %156 ]
  %158 = load i32, ptr %10, align 4, !tbaa !5
  %159 = icmp slt i32 %158, %157
  br i1 %159, label %.thread.sink.split, label %160

160:                                              ; preds = %.loopexit1496
  %.pr = load i32, ptr %14, align 4, !tbaa !5
  %.not1368 = icmp eq i32 %.pr, 0
  br i1 %.not1368, label %164, label %.thread

.thread.sink.split:                               ; preds = %.loopexit1496, %115, %111, %107, %104, %102, %98, %._crit_edge1511
  %.sink = phi i32 [ -1, %._crit_edge1511 ], [ -2, %98 ], [ -4, %102 ], [ -6, %104 ], [ -8, %107 ], [ -10, %111 ], [ -14, %115 ], [ -11, %.loopexit1496 ]
  store i32 %.sink, ptr %14, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %160
  %161 = phi i32 [ %.pr, %160 ], [ %.sink, %.thread.sink.split ]
  %162 = sub nsw i32 0, %161
  store i32 %162, ptr %22, align 4, !tbaa !5
  %163 = call i32 @xerbla_(ptr noundef nonnull @.str.6, ptr noundef nonnull %22, i32 noundef 7) #6
  br label %.loopexit1491

164:                                              ; preds = %160
  br i1 %97, label %.loopexit1491, label %165

165:                                              ; preds = %164
  %166 = load i32, ptr %3, align 4, !tbaa !5
  %167 = icmp eq i32 %166, 0
  br i1 %167, label %.loopexit1491, label %168

168:                                              ; preds = %165
  %.not1369 = icmp eq i32 %61, 0
  br i1 %.not1369, label %179, label %169

169:                                              ; preds = %168
  %170 = load i32, ptr %13, align 4, !tbaa !5
  %171 = mul i32 %166, 17
  %.not1370 = icmp slt i32 %170, %171
  br i1 %.not1370, label %179, label %172

172:                                              ; preds = %169
  %173 = sub nsw i32 %170, %166
  %174 = shl i32 %166, 1
  %175 = sdiv i32 %173, %174
  %176 = call i32 @llvm.smin.i32(i32 %175, i32 128)
  %177 = shl i32 %176, 1
  %178 = or disjoint i32 %177, 1
  store i32 %178, ptr %22, align 4, !tbaa !5
  call void @slaset_(ptr noundef nonnull @.str.7, ptr noundef nonnull %3, ptr noundef nonnull %22, ptr noundef nonnull @c_b17, ptr noundef nonnull @c_b17, ptr noundef nonnull %12, ptr noundef nonnull %3) #6
  br label %179

179:                                              ; preds = %168, %169, %172
  %.01287 = phi i32 [ %176, %172 ], [ 1, %169 ], [ 1, %168 ]
  %180 = call float @slamch_(ptr noundef nonnull @.str.8) #6
  store float %180, ptr %28, align 4, !tbaa !18
  %181 = fdiv float 1.000000e+00, %180
  store float %181, ptr %29, align 4, !tbaa !18
  call void @slabad_(ptr noundef nonnull %28, ptr noundef nonnull %29) #6
  %182 = call float @slamch_(ptr noundef nonnull @.str.9) #6
  %183 = load float, ptr %28, align 4, !tbaa !18
  %184 = load i32, ptr %3, align 4, !tbaa !5
  %185 = sitofp i32 %184 to float
  %186 = fdiv float %185, %182
  %187 = fmul float %183, %186
  %188 = fsub float 1.000000e+00, %182
  %189 = fdiv float %188, %187
  store float 0.000000e+00, ptr %12, align 4, !tbaa !18
  %.not13711518 = icmp slt i32 %184, 2
  br i1 %.not13711518, label %216, label %.lr.ph1521.preheader

.lr.ph1521.preheader:                             ; preds = %179
  %190 = sext i32 %42 to i64
  %191 = add nuw i32 %184, 1
  %wide.trip.count1830 = zext i32 %191 to i64
  br label %.lr.ph1521

.lr.ph1521:                                       ; preds = %.lr.ph1521.preheader, %214
  %indvar = phi i64 [ 0, %.lr.ph1521.preheader ], [ %indvar.next, %214 ]
  %indvars.iv1827 = phi i64 [ 2, %.lr.ph1521.preheader ], [ %indvars.iv.next1828, %214 ]
  %192 = getelementptr inbounds float, ptr %51, i64 %indvars.iv1827
  store float 0.000000e+00, ptr %192, align 4, !tbaa !18
  %193 = mul nsw i64 %indvars.iv1827, %190
  %invariant.gep2053 = getelementptr float, ptr %44, i64 %193
  %194 = icmp eq i64 %indvar, 0
  br i1 %194, label %.unr-lcssa, label %.lr.ph1521.new

.lr.ph1521.new:                                   ; preds = %.lr.ph1521
  %195 = add i64 %indvar, 1
  %unroll_iter = and i64 %195, -2
  %invariant.gep2460 = getelementptr i8, ptr %invariant.gep2053, i64 4
  br label %196

196:                                              ; preds = %196, %.lr.ph1521.new
  %indvars.iv1821 = phi i64 [ 1, %.lr.ph1521.new ], [ %indvars.iv.next1822.1, %196 ]
  %197 = phi float [ 0.000000e+00, %.lr.ph1521.new ], [ %207, %196 ]
  %niter = phi i64 [ 0, %.lr.ph1521.new ], [ %niter.next.1, %196 ]
  %gep2054 = getelementptr float, ptr %invariant.gep2053, i64 %indvars.iv1821
  %198 = load float, ptr %gep2054, align 4, !tbaa !18
  %199 = fcmp oge float %198, 0.000000e+00
  %200 = fneg float %198
  %201 = select i1 %199, float %198, float %200
  %202 = fadd float %197, %201
  store float %202, ptr %192, align 4, !tbaa !18
  %gep2461 = getelementptr float, ptr %invariant.gep2460, i64 %indvars.iv1821
  %203 = load float, ptr %gep2461, align 4, !tbaa !18
  %204 = fcmp oge float %203, 0.000000e+00
  %205 = fneg float %203
  %206 = select i1 %204, float %203, float %205
  %207 = fadd float %202, %206
  store float %207, ptr %192, align 4, !tbaa !18
  %indvars.iv.next1822.1 = add nuw nsw i64 %indvars.iv1821, 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 %196, !llvm.loop !21

.unr-lcssa:                                       ; preds = %196, %.lr.ph1521
  %.lcssa2417.ph = phi float [ poison, %.lr.ph1521 ], [ %203, %196 ]
  %indvars.iv1821.unr = phi i64 [ 1, %.lr.ph1521 ], [ %indvars.iv.next1822.1, %196 ]
  %.unr = phi float [ 0.000000e+00, %.lr.ph1521 ], [ %207, %196 ]
  %208 = and i64 %indvar, 1
  %lcmp.mod.not.not = icmp eq i64 %208, 0
  br i1 %lcmp.mod.not.not, label %.epilog-lcssa, label %214

.epilog-lcssa:                                    ; preds = %.unr-lcssa
  %gep2054.epil = getelementptr float, ptr %invariant.gep2053, i64 %indvars.iv1821.unr
  %209 = load float, ptr %gep2054.epil, align 4, !tbaa !18
  %210 = fcmp oge float %209, 0.000000e+00
  %211 = fneg float %209
  %212 = select i1 %210, float %209, float %211
  %213 = fadd float %.unr, %212
  store float %213, ptr %192, align 4, !tbaa !18
  br label %214

214:                                              ; preds = %.unr-lcssa, %.epilog-lcssa
  %.lcssa2417 = phi float [ %.lcssa2417.ph, %.unr-lcssa ], [ %209, %.epilog-lcssa ]
  %indvars.iv.next1828 = add nuw nsw i64 %indvars.iv1827, 1
  %exitcond1831.not = icmp eq i64 %indvars.iv.next1828, %wide.trip.count1830
  %indvar.next = add i64 %indvar, 1
  br i1 %exitcond1831.not, label %._crit_edge1522, label %.lr.ph1521, !llvm.loop !22

._crit_edge1522:                                  ; preds = %214
  %215 = add nsw i32 %184, -1
  store i32 %215, ptr %23, align 4, !tbaa !5
  store float %.lcssa2417, ptr %25, align 4, !tbaa !18
  br label %216

216:                                              ; preds = %._crit_edge1522, %179
  br i1 %56, label %217, label %.loopexit1495

217:                                              ; preds = %216
  %spec.select1410 = call i32 @llvm.smax.i32(i32 %.01287, i32 2)
  store i32 %spec.select1410, ptr %37, align 4, !tbaa !5
  %218 = load i32, ptr %11, align 4, !tbaa !5
  %invariant.gep1631 = getelementptr i8, ptr %2, i64 -8
  %invariant.gep1633 = getelementptr i8, ptr %50, i64 4
  store i32 %184, ptr %36, align 4, !tbaa !5
  %219 = icmp sgt i32 %184, 0
  br i1 %219, label %.lr.ph1681, label %.loopexit1495

.lr.ph1681:                                       ; preds = %217
  %.not1391 = icmp eq i32 %62, 0
  %220 = add i32 %42, 1
  %invariant.gep1530 = getelementptr i8, ptr %44, i64 4
  %221 = getelementptr inbounds i8, ptr %32, i64 8
  %222 = getelementptr inbounds i8, ptr %32, i64 4
  %223 = getelementptr inbounds i8, ptr %32, i64 12
  %224 = icmp eq i32 %.01287, 1
  %225 = icmp sgt i32 %.01287, 1
  %226 = add nsw i32 %.01287, 1
  %227 = sext i32 %42 to i64
  %228 = shl nsw i64 %49, 2
  %scevgep1881 = getelementptr i8, ptr %8, i64 %228
  %229 = sext i32 %.01287 to i64
  %230 = add i64 %19, -4
  %scevgep2211 = getelementptr i8, ptr %12, i64 -4
  %scevgep2214 = getelementptr i8, ptr %12, i64 -4
  %231 = shl nsw i64 %43, 2
  %232 = add nsw i64 %231, 4
  %scevgep2217 = getelementptr i8, ptr %4, i64 %232
  %scevgep2219 = getelementptr i8, ptr %4, i64 %231
  %scevgep2222 = getelementptr i8, ptr %4, i64 %232
  %scevgep2224 = getelementptr i8, ptr %4, i64 %231
  br label %233

233:                                              ; preds = %.lr.ph1681, %994
  %.012781679 = phi i32 [ %218, %.lr.ph1681 ], [ %.11279, %994 ]
  %.012811678 = phi i32 [ 0, %.lr.ph1681 ], [ %.21283, %994 ]
  %storemerge13721677 = phi i32 [ %184, %.lr.ph1681 ], [ %996, %994 ]
  %234 = icmp eq i32 %.012811678, -1
  br i1 %234, label %994, label %235

235:                                              ; preds = %233
  %236 = icmp eq i32 %storemerge13721677, 1
  br i1 %236, label %.thread1418, label %237

237:                                              ; preds = %235
  %238 = add nsw i32 %storemerge13721677, -1
  %239 = mul nsw i32 %238, %42
  %240 = add nsw i32 %239, %storemerge13721677
  %241 = sext i32 %240 to i64
  %242 = getelementptr inbounds float, ptr %44, i64 %241
  %243 = load float, ptr %242, align 4, !tbaa !18
  %244 = fcmp oeq float %243, 0.000000e+00
  br i1 %.not1391, label %260, label %245

.thread1418:                                      ; preds = %235
  br i1 %.not1391, label %.thread1423, label %.thread1420

245:                                              ; preds = %237
  br i1 %244, label %.thread1420, label %249

.thread1420:                                      ; preds = %.thread1418, %245
  %246 = zext nneg i32 %storemerge13721677 to i64
  %247 = getelementptr inbounds i32, ptr %41, i64 %246
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %.not1393 = icmp eq i32 %248, 0
  br i1 %.not1393, label %994, label %.thread1423

249:                                              ; preds = %245
  %250 = zext nneg i32 %storemerge13721677 to i64
  %gep1632 = getelementptr i32, ptr %invariant.gep1631, i64 %250
  %251 = load i32, ptr %gep1632, align 4, !tbaa !5
  %.not1392 = icmp eq i32 %251, 0
  br i1 %.not1392, label %994, label %.thread1424

.thread1424:                                      ; preds = %249
  %252 = mul i32 %storemerge13721677, %220
  %253 = sext i32 %252 to i64
  %254 = getelementptr inbounds float, ptr %44, i64 %253
  %255 = load float, ptr %254, align 4, !tbaa !18
  store float %255, ptr %39, align 4, !tbaa !18
  br label %265

.thread1423:                                      ; preds = %.thread1418, %.thread1420
  %256 = mul i32 %storemerge13721677, %220
  %257 = sext i32 %256 to i64
  %258 = getelementptr inbounds float, ptr %44, i64 %257
  %259 = load float, ptr %258, align 4, !tbaa !18
  store float %259, ptr %39, align 4, !tbaa !18
  store float 0.000000e+00, ptr %38, align 4, !tbaa !18
  br label %285

260:                                              ; preds = %237
  %261 = mul i32 %storemerge13721677, %220
  %262 = sext i32 %261 to i64
  %263 = getelementptr inbounds float, ptr %44, i64 %262
  %264 = load float, ptr %263, align 4, !tbaa !18
  store float %264, ptr %39, align 4, !tbaa !18
  store float 0.000000e+00, ptr %38, align 4, !tbaa !18
  br i1 %244, label %285, label %265

265:                                              ; preds = %.thread1424, %260
  %266 = fcmp oge float %243, 0.000000e+00
  %267 = fneg float %243
  %268 = select i1 %266, float %243, float %267
  %269 = fpext float %268 to double
  %270 = call double @sqrt(double noundef %269) #6
  %271 = load i32, ptr %36, align 4, !tbaa !5
  %272 = add nsw i32 %271, -1
  %273 = mul nsw i32 %271, %42
  %274 = add nsw i32 %272, %273
  %275 = sext i32 %274 to i64
  %276 = getelementptr inbounds float, ptr %44, i64 %275
  %277 = load float, ptr %276, align 4, !tbaa !18
  %278 = fcmp oge float %277, 0.000000e+00
  %279 = fneg float %277
  %280 = select i1 %278, float %277, float %279
  %281 = fpext float %280 to double
  %282 = call double @sqrt(double noundef %281) #6
  %283 = fmul double %270, %282
  %284 = fptrunc double %283 to float
  store float %284, ptr %38, align 4, !tbaa !18
  %.pre1957 = load float, ptr %39, align 4
  br label %285

285:                                              ; preds = %.thread1423, %265, %260
  %286 = phi float [ 0.000000e+00, %.thread1423 ], [ %284, %265 ], [ 0.000000e+00, %260 ]
  %287 = phi float [ %259, %.thread1423 ], [ %.pre1957, %265 ], [ %264, %260 ]
  %288 = phi i1 [ true, %.thread1423 ], [ false, %265 ], [ true, %260 ]
  %289 = fcmp oge float %287, 0.000000e+00
  %290 = fneg float %287
  %291 = select i1 %289, float %287, float %290
  %292 = fcmp oge float %286, 0.000000e+00
  %293 = fneg float %286
  %294 = select i1 %292, float %286, float %293
  %295 = fadd float %291, %294
  %296 = fmul float %182, %295
  store float %296, ptr %25, align 4, !tbaa !18
  %297 = fcmp oge float %296, %187
  %298 = select i1 %297, float %296, float %187
  store float %298, ptr %30, align 4, !tbaa !18
  %299 = load i32, ptr %36, align 4, !tbaa !5
  br i1 %288, label %300, label %517

300:                                              ; preds = %285
  %301 = load i32, ptr %37, align 4, !tbaa !5
  %302 = load i32, ptr %3, align 4, !tbaa !5
  %303 = mul nsw i32 %302, %301
  %304 = add nsw i32 %303, %299
  %305 = sext i32 %304 to i64
  %306 = getelementptr inbounds float, ptr %51, i64 %305
  store float 1.000000e+00, ptr %306, align 4, !tbaa !18
  %307 = add nsw i32 %299, -1
  store i32 %307, ptr %22, align 4, !tbaa !5
  %.not1401.not1581 = icmp sgt i32 %299, 1
  br i1 %.not1401.not1581, label %.lr.ph1584, label %._crit_edge1604

.lr.ph1584:                                       ; preds = %300
  %308 = mul nsw i32 %299, %42
  %309 = sext i32 %308 to i64
  %310 = sext i32 %303 to i64
  %wide.trip.count1871 = zext nneg i32 %299 to i64
  %invariant.gep2079 = getelementptr float, ptr %44, i64 %309
  %invariant.gep2081 = getelementptr float, ptr %51, i64 %310
  %311 = add nsw i64 %wide.trip.count1871, -1
  %min.iters.check2167 = icmp ult i32 %299, 9
  br i1 %min.iters.check2167, label %scalar.ph2166.preheader, label %vector.memcheck2163

scalar.ph2166.preheader:                          ; preds = %middle.block2165, %vector.memcheck2163, %.lr.ph1584
  %indvars.iv1868.ph = phi i64 [ 1, %vector.memcheck2163 ], [ 1, %.lr.ph1584 ], [ %ind.end2171, %middle.block2165 ]
  %312 = sub nsw i64 %wide.trip.count1871, %indvars.iv1868.ph
  %xtraiter2429 = and i64 %312, 3
  %lcmp.mod2430.not = icmp eq i64 %xtraiter2429, 0
  br i1 %lcmp.mod2430.not, label %scalar.ph2166.prol.loopexit, label %scalar.ph2166.prol

scalar.ph2166.prol:                               ; preds = %scalar.ph2166.preheader, %scalar.ph2166.prol
  %indvars.iv1868.prol = phi i64 [ %indvars.iv.next1869.prol, %scalar.ph2166.prol ], [ %indvars.iv1868.ph, %scalar.ph2166.preheader ]
  %prol.iter2431 = phi i64 [ %prol.iter2431.next, %scalar.ph2166.prol ], [ 0, %scalar.ph2166.preheader ]
  %gep2080.prol = getelementptr float, ptr %invariant.gep2079, i64 %indvars.iv1868.prol
  %313 = load float, ptr %gep2080.prol, align 4, !tbaa !18
  %314 = fneg float %313
  %gep2082.prol = getelementptr float, ptr %invariant.gep2081, i64 %indvars.iv1868.prol
  store float %314, ptr %gep2082.prol, align 4, !tbaa !18
  %indvars.iv.next1869.prol = add nuw nsw i64 %indvars.iv1868.prol, 1
  %prol.iter2431.next = add i64 %prol.iter2431, 1
  %prol.iter2431.cmp.not = icmp eq i64 %prol.iter2431.next, %xtraiter2429
  br i1 %prol.iter2431.cmp.not, label %scalar.ph2166.prol.loopexit, label %scalar.ph2166.prol, !llvm.loop !23

scalar.ph2166.prol.loopexit:                      ; preds = %scalar.ph2166.prol, %scalar.ph2166.preheader
  %indvars.iv1868.unr = phi i64 [ %indvars.iv1868.ph, %scalar.ph2166.preheader ], [ %indvars.iv.next1869.prol, %scalar.ph2166.prol ]
  %315 = sub nsw i64 %indvars.iv1868.ph, %wide.trip.count1871
  %316 = icmp ugt i64 %315, -4
  br i1 %316, label %.preheader, label %scalar.ph2166

vector.memcheck2163:                              ; preds = %.lr.ph1584
  %317 = shl nsw i64 %310, 2
  %318 = add i64 %230, %317
  %319 = add nsw i64 %43, %309
  %320 = shl nsw i64 %319, 2
  %321 = add i64 %320, %18
  %322 = sub i64 %318, %321
  %diff.check2164 = icmp ult i64 %322, 32
  br i1 %diff.check2164, label %scalar.ph2166.preheader, label %vector.ph2168

vector.ph2168:                                    ; preds = %vector.memcheck2163
  %n.vec2170 = and i64 %311, -8
  %ind.end2171 = or disjoint i64 %n.vec2170, 1
  br label %vector.body2173

vector.body2173:                                  ; preds = %vector.body2173, %vector.ph2168
  %index2174 = phi i64 [ 0, %vector.ph2168 ], [ %index.next2177, %vector.body2173 ]
  %offset.idx = or disjoint i64 %index2174, 1
  %323 = getelementptr float, ptr %invariant.gep2079, i64 %offset.idx
  %324 = getelementptr i8, ptr %323, i64 16
  %wide.load2175 = load <4 x float>, ptr %323, align 4, !tbaa !18
  %wide.load2176 = load <4 x float>, ptr %324, align 4, !tbaa !18
  %325 = fneg <4 x float> %wide.load2175
  %326 = fneg <4 x float> %wide.load2176
  %327 = getelementptr float, ptr %invariant.gep2081, i64 %offset.idx
  %328 = getelementptr i8, ptr %327, i64 16
  store <4 x float> %325, ptr %327, align 4, !tbaa !18
  store <4 x float> %326, ptr %328, align 4, !tbaa !18
  %index.next2177 = add nuw i64 %index2174, 8
  %329 = icmp eq i64 %index.next2177, %n.vec2170
  br i1 %329, label %middle.block2165, label %vector.body2173, !llvm.loop !25

middle.block2165:                                 ; preds = %vector.body2173
  %cmp.n2178 = icmp eq i64 %311, %n.vec2170
  br i1 %cmp.n2178, label %.preheader, label %scalar.ph2166.preheader

.preheader:                                       ; preds = %scalar.ph2166.prol.loopexit, %scalar.ph2166, %middle.block2165
  br i1 %.not1401.not1581, label %.lr.ph1603.preheader, label %._crit_edge1604

.lr.ph1603.preheader:                             ; preds = %.preheader
  %330 = zext nneg i32 %299 to i64
  %331 = add nsw i64 %330, -1
  br label %.lr.ph1603

scalar.ph2166:                                    ; preds = %scalar.ph2166.prol.loopexit, %scalar.ph2166
  %indvars.iv1868 = phi i64 [ %indvars.iv.next1869.3, %scalar.ph2166 ], [ %indvars.iv1868.unr, %scalar.ph2166.prol.loopexit ]
  %gep2080 = getelementptr float, ptr %invariant.gep2079, i64 %indvars.iv1868
  %332 = load float, ptr %gep2080, align 4, !tbaa !18
  %333 = fneg float %332
  %gep2082 = getelementptr float, ptr %invariant.gep2081, i64 %indvars.iv1868
  store float %333, ptr %gep2082, align 4, !tbaa !18
  %indvars.iv.next1869 = add nuw nsw i64 %indvars.iv1868, 1
  %gep2080.1 = getelementptr float, ptr %invariant.gep2079, i64 %indvars.iv.next1869
  %334 = load float, ptr %gep2080.1, align 4, !tbaa !18
  %335 = fneg float %334
  %gep2082.1 = getelementptr float, ptr %invariant.gep2081, i64 %indvars.iv.next1869
  store float %335, ptr %gep2082.1, align 4, !tbaa !18
  %indvars.iv.next1869.1 = add nuw nsw i64 %indvars.iv1868, 2
  %gep2080.2 = getelementptr float, ptr %invariant.gep2079, i64 %indvars.iv.next1869.1
  %336 = load float, ptr %gep2080.2, align 4, !tbaa !18
  %337 = fneg float %336
  %gep2082.2 = getelementptr float, ptr %invariant.gep2081, i64 %indvars.iv.next1869.1
  store float %337, ptr %gep2082.2, align 4, !tbaa !18
  %indvars.iv.next1869.2 = add nuw nsw i64 %indvars.iv1868, 3
  %gep2080.3 = getelementptr float, ptr %invariant.gep2079, i64 %indvars.iv.next1869.2
  %338 = load float, ptr %gep2080.3, align 4, !tbaa !18
  %339 = fneg float %338
  %gep2082.3 = getelementptr float, ptr %invariant.gep2081, i64 %indvars.iv.next1869.2
  store float %339, ptr %gep2082.3, align 4, !tbaa !18
  %indvars.iv.next1869.3 = add nuw nsw i64 %indvars.iv1868, 4
  %exitcond1872.not.3 = icmp eq i64 %indvars.iv.next1869.3, %wide.trip.count1871
  br i1 %exitcond1872.not.3, label %.preheader, label %scalar.ph2166, !llvm.loop !26

.lr.ph1603:                                       ; preds = %.lr.ph1603.preheader, %.lr.ph1603._crit_edge
  %indvars.iv1873 = phi i64 [ %331, %.lr.ph1603.preheader ], [ %.pre2016, %.lr.ph1603._crit_edge ]
  %.013091601 = phi i32 [ %307, %.lr.ph1603.preheader ], [ %.21311, %.lr.ph1603._crit_edge ]
  %indvars1875 = trunc i64 %indvars.iv1873 to i32
  %340 = sext i32 %.013091601 to i64
  %341 = icmp sgt i64 %indvars.iv1873, %340
  %.pre2016 = add nsw i64 %indvars.iv1873, -1
  br i1 %341, label %.lr.ph1603._crit_edge, label %342

342:                                              ; preds = %.lr.ph1603
  %.not1407 = icmp eq i64 %indvars.iv1873, 1
  br i1 %.not1407, label %..thread1425_crit_edge, label %343

..thread1425_crit_edge:                           ; preds = %342
  %.pre1964 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1966 = load i32, ptr %3, align 4, !tbaa !5
  br label %.thread1425

343:                                              ; preds = %342
  %344 = add nsw i32 %indvars1875, -1
  %345 = mul nsw i32 %344, %42
  %346 = sext i32 %345 to i64
  %347 = getelementptr float, ptr %44, i64 %indvars.iv1873
  %348 = getelementptr float, ptr %347, i64 %346
  %349 = load float, ptr %348, align 4, !tbaa !18
  %350 = fcmp une float %349, 0.000000e+00
  %351 = trunc nuw nsw i64 %.pre2016 to i32
  %.pre1965 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1967 = load i32, ptr %3, align 4, !tbaa !5
  br i1 %350, label %.thread1429, label %.thread1425

.thread1429:                                      ; preds = %343
  %352 = mul nsw i64 %.pre2016, %227
  %353 = getelementptr float, ptr %44, i64 %.pre2016
  %354 = getelementptr float, ptr %353, i64 %346
  %355 = mul nsw i32 %.pre1967, %.pre1965
  %356 = sext i32 %355 to i64
  %357 = getelementptr float, ptr %51, i64 %.pre2016
  %358 = getelementptr float, ptr %357, i64 %356
  call void @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull @c_b29, ptr noundef %354, ptr noundef nonnull %5, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b29, ptr noundef nonnull %358, ptr noundef nonnull %3, ptr noundef nonnull %39, ptr noundef nonnull @c_b17, ptr noundef nonnull %32, ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull %34, ptr noundef nonnull %27) #6
  %359 = load float, ptr %34, align 4, !tbaa !18
  %360 = fcmp ogt float %359, 1.000000e+00
  br i1 %360, label %401, label %thread-pre-split1435

.thread1425:                                      ; preds = %..thread1425_crit_edge, %343
  %361 = phi i32 [ %.pre1967, %343 ], [ %.pre1966, %..thread1425_crit_edge ]
  %362 = phi i32 [ %.pre1965, %343 ], [ %.pre1964, %..thread1425_crit_edge ]
  %.113101428 = phi i32 [ %351, %343 ], [ 0, %..thread1425_crit_edge ]
  %363 = mul nsw i32 %42, %indvars1875
  %364 = sext i32 %363 to i64
  %365 = getelementptr float, ptr %44, i64 %indvars.iv1873
  %366 = getelementptr float, ptr %365, i64 %364
  %367 = mul nsw i32 %361, %362
  %368 = sext i32 %367 to i64
  %369 = getelementptr float, ptr %51, i64 %indvars.iv1873
  %370 = getelementptr float, ptr %369, i64 %368
  call void @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull @c_b29, ptr noundef %366, ptr noundef nonnull %5, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b29, ptr noundef nonnull %370, ptr noundef nonnull %3, ptr noundef nonnull %39, ptr noundef nonnull @c_b17, ptr noundef nonnull %32, ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull %34, ptr noundef nonnull %27) #6
  %371 = load float, ptr %34, align 4, !tbaa !18
  %372 = fcmp ogt float %371, 1.000000e+00
  br i1 %372, label %373, label %thread-pre-split1433

373:                                              ; preds = %.thread1425
  %374 = getelementptr inbounds float, ptr %51, i64 %indvars.iv1873
  %375 = load float, ptr %374, align 4, !tbaa !18
  %376 = fdiv float %189, %371
  %377 = fcmp ogt float %375, %376
  br i1 %377, label %378, label %thread-pre-split1433

378:                                              ; preds = %373
  %379 = load float, ptr %32, align 16, !tbaa !18
  %380 = fdiv float %379, %371
  store float %380, ptr %32, align 16, !tbaa !18
  %381 = load float, ptr %31, align 4, !tbaa !18
  %382 = fdiv float %381, %371
  store float %382, ptr %31, align 4, !tbaa !18
  br label %383

thread-pre-split1433:                             ; preds = %.thread1425, %373
  %.pr1434 = load float, ptr %31, align 4, !tbaa !18
  br label %383

383:                                              ; preds = %thread-pre-split1433, %378
  %384 = phi float [ %.pr1434, %thread-pre-split1433 ], [ %382, %378 ]
  %385 = fcmp une float %384, 1.000000e+00
  br i1 %385, label %386, label %391

386:                                              ; preds = %383
  %387 = load i32, ptr %37, align 4, !tbaa !5
  %388 = load i32, ptr %3, align 4, !tbaa !5
  %389 = mul nsw i32 %388, %387
  %390 = sext i32 %389 to i64
  %gep1596 = getelementptr float, ptr %12, i64 %390
  call void @sscal_(ptr noundef nonnull %36, ptr noundef nonnull %31, ptr noundef %gep1596, ptr noundef nonnull @c__1) #6
  br label %391

391:                                              ; preds = %386, %383
  %392 = load float, ptr %32, align 16, !tbaa !18
  %393 = load i32, ptr %37, align 4, !tbaa !5
  %394 = load i32, ptr %3, align 4, !tbaa !5
  %395 = mul nsw i32 %394, %393
  %396 = sext i32 %395 to i64
  %397 = getelementptr float, ptr %51, i64 %indvars.iv1873
  %398 = getelementptr float, ptr %397, i64 %396
  store float %392, ptr %398, align 4, !tbaa !18
  %399 = trunc nuw nsw i64 %.pre2016 to i32
  store i32 %399, ptr %22, align 4, !tbaa !5
  %400 = fneg float %392
  store float %400, ptr %25, align 4, !tbaa !18
  br label %.lr.ph1603._crit_edge.sink.split

401:                                              ; preds = %.thread1429
  %402 = getelementptr inbounds float, ptr %51, i64 %.pre2016
  %403 = load float, ptr %402, align 4, !tbaa !18
  store float %403, ptr %25, align 4, !tbaa !18
  %404 = getelementptr inbounds float, ptr %51, i64 %indvars.iv1873
  %405 = load float, ptr %404, align 4, !tbaa !18
  %406 = fcmp oge float %403, %405
  %407 = select i1 %406, float %403, float %405
  %408 = fdiv float %189, %359
  %409 = fcmp ogt float %407, %408
  br i1 %409, label %410, label %thread-pre-split1435

410:                                              ; preds = %401
  %411 = load <2 x float>, ptr %32, align 16, !tbaa !18
  %412 = insertelement <2 x float> poison, float %359, i64 0
  %413 = shufflevector <2 x float> %412, <2 x float> poison, <2 x i32> zeroinitializer
  %414 = fdiv <2 x float> %411, %413
  store <2 x float> %414, ptr %32, align 16, !tbaa !18
  %415 = load float, ptr %31, align 4, !tbaa !18
  %416 = fdiv float %415, %359
  store float %416, ptr %31, align 4, !tbaa !18
  br label %417

thread-pre-split1435:                             ; preds = %.thread1429, %401
  %.pr1436 = load float, ptr %31, align 4, !tbaa !18
  br label %417

417:                                              ; preds = %thread-pre-split1435, %410
  %418 = phi float [ %.pr1436, %thread-pre-split1435 ], [ %416, %410 ]
  %419 = fcmp une float %418, 1.000000e+00
  br i1 %419, label %420, label %425

420:                                              ; preds = %417
  %421 = load i32, ptr %37, align 4, !tbaa !5
  %422 = load i32, ptr %3, align 4, !tbaa !5
  %423 = mul nsw i32 %422, %421
  %424 = sext i32 %423 to i64
  %gep1586 = getelementptr float, ptr %12, i64 %424
  call void @sscal_(ptr noundef nonnull %36, ptr noundef nonnull %31, ptr noundef %gep1586, ptr noundef nonnull @c__1) #6
  br label %425

425:                                              ; preds = %420, %417
  %426 = load i32, ptr %37, align 4, !tbaa !5
  %427 = load i32, ptr %3, align 4, !tbaa !5
  %428 = mul nsw i32 %427, %426
  %429 = sext i32 %428 to i64
  %430 = getelementptr float, ptr %51, i64 %.pre2016
  %431 = getelementptr float, ptr %430, i64 %429
  %432 = load <2 x float>, ptr %32, align 16, !tbaa !18
  store <2 x float> %432, ptr %431, align 4, !tbaa !18
  %433 = trunc i64 %indvars.iv1873 to i32
  %434 = add i32 %433, -2
  store i32 %434, ptr %22, align 4, !tbaa !5
  %435 = extractelement <2 x float> %432, i64 0
  %436 = fneg float %435
  store float %436, ptr %25, align 4, !tbaa !18
  %gep1588 = getelementptr float, ptr %invariant.gep1530, i64 %352
  %gep1590 = getelementptr float, ptr %12, i64 %429
  call void @saxpy_(ptr noundef nonnull %22, ptr noundef nonnull %25, ptr noundef %gep1588, ptr noundef nonnull @c__1, ptr noundef %gep1590, ptr noundef nonnull @c__1) #6
  store i32 %434, ptr %22, align 4, !tbaa !5
  %437 = load float, ptr %222, align 4, !tbaa !18
  %438 = fneg float %437
  store float %438, ptr %25, align 4, !tbaa !18
  %439 = load i32, ptr %37, align 4, !tbaa !5
  %440 = load i32, ptr %3, align 4, !tbaa !5
  %441 = mul nsw i32 %440, %439
  %442 = sext i32 %441 to i64
  br label %.lr.ph1603._crit_edge.sink.split

.lr.ph1603._crit_edge.sink.split:                 ; preds = %391, %425
  %.sink2119 = phi i64 [ %442, %425 ], [ %396, %391 ]
  %.21311.ph = phi i32 [ %434, %425 ], [ %.113101428, %391 ]
  %.pn = mul nsw i64 %indvars.iv1873, %227
  %gep1592.sink = getelementptr float, ptr %invariant.gep1530, i64 %.pn
  %gep1594 = getelementptr float, ptr %12, i64 %.sink2119
  call void @saxpy_(ptr noundef nonnull %22, ptr noundef nonnull %25, ptr noundef %gep1592.sink, ptr noundef nonnull @c__1, ptr noundef %gep1594, ptr noundef nonnull @c__1) #6
  br label %.lr.ph1603._crit_edge

.lr.ph1603._crit_edge:                            ; preds = %.lr.ph1603._crit_edge.sink.split, %.lr.ph1603
  %.21311 = phi i32 [ %.013091601, %.lr.ph1603 ], [ %.21311.ph, %.lr.ph1603._crit_edge.sink.split ]
  %443 = icmp sgt i64 %indvars.iv1873, 1
  br i1 %443, label %.lr.ph1603, label %._crit_edge1604, !llvm.loop !27

._crit_edge1604:                                  ; preds = %.lr.ph1603._crit_edge, %300, %.preheader
  br i1 %.not1369, label %444, label %471

444:                                              ; preds = %._crit_edge1604
  %445 = load i32, ptr %37, align 4, !tbaa !5
  %446 = load i32, ptr %3, align 4, !tbaa !5
  %447 = mul nsw i32 %446, %445
  %448 = sext i32 %447 to i64
  %gep1666 = getelementptr float, ptr %12, i64 %448
  %449 = mul nsw i32 %.012781679, %48
  %450 = sext i32 %449 to i64
  %gep1668 = getelementptr float, ptr %invariant.gep1633, i64 %450
  call void @scopy_(ptr noundef nonnull %36, ptr noundef %gep1666, ptr noundef nonnull @c__1, ptr noundef %gep1668, ptr noundef nonnull @c__1) #6
  %451 = call i32 @isamax_(ptr noundef nonnull %36, ptr noundef %gep1668, ptr noundef nonnull @c__1) #6
  %452 = add nsw i32 %451, %449
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds float, ptr %50, i64 %453
  %455 = load float, ptr %454, align 4, !tbaa !18
  store float %455, ptr %25, align 4, !tbaa !18
  %456 = fcmp oge float %455, 0.000000e+00
  %457 = fneg float %455
  %458 = select i1 %456, float %455, float %457
  %459 = fdiv float 1.000000e+00, %458
  store float %459, ptr %33, align 4, !tbaa !18
  call void @sscal_(ptr noundef nonnull %36, ptr noundef nonnull %33, ptr noundef %gep1668, ptr noundef nonnull @c__1) #6
  %460 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %460, ptr %22, align 4, !tbaa !5
  %461 = load i32, ptr %36, align 4, !tbaa !5
  %.not1402.not1610 = icmp slt i32 %461, %460
  br i1 %.not1402.not1610, label %.lr.ph1613.preheader, label %.loopexit1492

.lr.ph1613.preheader:                             ; preds = %444
  %462 = add nsw i32 %461, 1
  %463 = add i32 %462, %449
  %464 = sext i32 %463 to i64
  %465 = shl nsw i64 %464, 2
  %scevgep1882 = getelementptr i8, ptr %scevgep1881, i64 %465
  %466 = xor i32 %461, -1
  %467 = add i32 %460, %466
  %468 = zext i32 %467 to i64
  %469 = shl nuw nsw i64 %468, 2
  %470 = add nuw nsw i64 %469, 4
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep1882, i8 0, i64 %470, i1 false), !tbaa !18
  br label %.loopexit1492

471:                                              ; preds = %._crit_edge1604
  br i1 %224, label %472, label %501

472:                                              ; preds = %471
  %473 = load i32, ptr %36, align 4, !tbaa !5
  %474 = icmp sgt i32 %473, 1
  br i1 %474, label %475, label %.thread1449

475:                                              ; preds = %472
  %476 = add nsw i32 %473, -1
  store i32 %476, ptr %22, align 4, !tbaa !5
  %477 = load i32, ptr %37, align 4, !tbaa !5
  %478 = load i32, ptr %3, align 4, !tbaa !5
  %479 = mul nsw i32 %478, %477
  %480 = sext i32 %479 to i64
  %gep1658 = getelementptr float, ptr %12, i64 %480
  %481 = add nsw i32 %479, %473
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds float, ptr %51, i64 %482
  %484 = mul nsw i32 %473, %48
  %485 = sext i32 %484 to i64
  %gep1660 = getelementptr float, ptr %invariant.gep1633, i64 %485
  call void @sgemv_(ptr noundef nonnull @.str.10, ptr noundef nonnull %3, ptr noundef nonnull %22, ptr noundef nonnull @c_b29, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %gep1658, ptr noundef nonnull @c__1, ptr noundef nonnull %483, ptr noundef %gep1660, ptr noundef nonnull @c__1) #6
  %.pre1969 = load i32, ptr %36, align 4, !tbaa !5
  br label %.thread1449

.thread1449:                                      ; preds = %472, %475
  %486 = phi i32 [ %473, %472 ], [ %.pre1969, %475 ]
  %487 = mul nsw i32 %486, %48
  %488 = sext i32 %487 to i64
  %gep1662 = getelementptr float, ptr %invariant.gep1633, i64 %488
  %489 = call i32 @isamax_(ptr noundef nonnull %3, ptr noundef %gep1662, ptr noundef nonnull @c__1) #6
  %490 = load i32, ptr %36, align 4, !tbaa !5
  %491 = mul nsw i32 %490, %48
  %492 = add nsw i32 %491, %489
  %493 = sext i32 %492 to i64
  %494 = getelementptr inbounds float, ptr %50, i64 %493
  %495 = load float, ptr %494, align 4, !tbaa !18
  store float %495, ptr %25, align 4, !tbaa !18
  %496 = fcmp oge float %495, 0.000000e+00
  %497 = fneg float %495
  %498 = select i1 %496, float %495, float %497
  %499 = fdiv float 1.000000e+00, %498
  store float %499, ptr %33, align 4, !tbaa !18
  %500 = sext i32 %491 to i64
  %gep1664 = getelementptr float, ptr %invariant.gep1633, i64 %500
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1664, ptr noundef nonnull @c__1) #6
  br label %993

501:                                              ; preds = %471
  %502 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %502, ptr %22, align 4, !tbaa !5
  %503 = load i32, ptr %36, align 4, !tbaa !5
  %.not1403.not1605 = icmp slt i32 %503, %502
  %.pre1968 = load i32, ptr %37, align 4, !tbaa !5
  br i1 %.not1403.not1605, label %.lr.ph1608, label %._crit_edge1609

.lr.ph1608:                                       ; preds = %501
  %504 = mul nsw i32 %.pre1968, %502
  %505 = add nsw i32 %503, 1
  %506 = add i32 %505, %504
  %507 = sext i32 %506 to i64
  %508 = shl nsw i64 %507, 2
  %scevgep1877 = getelementptr i8, ptr %51, i64 %508
  %509 = xor i32 %503, -1
  %510 = add i32 %502, %509
  %511 = zext i32 %510 to i64
  %512 = shl nuw nsw i64 %511, 2
  %513 = add nuw nsw i64 %512, 4
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %scevgep1877, i8 0, i64 %513, i1 false), !tbaa !18
  br label %._crit_edge1609

._crit_edge1609:                                  ; preds = %.lr.ph1608, %501
  %514 = add nsw i32 %.pre1968, -1
  %515 = sext i32 %514 to i64
  %516 = getelementptr inbounds [128 x i32], ptr %35, i64 0, i64 %515
  store i32 0, ptr %516, align 4, !tbaa !5
  br label %.loopexit1492

517:                                              ; preds = %285
  %518 = add nsw i32 %299, -1
  %519 = mul nsw i32 %299, %42
  %520 = add nsw i32 %518, %519
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds float, ptr %44, i64 %521
  %523 = load float, ptr %522, align 4, !tbaa !18
  store float %523, ptr %25, align 4, !tbaa !18
  %524 = fcmp oge float %523, 0.000000e+00
  %525 = fneg float %523
  %526 = select i1 %524, float %523, float %525
  %527 = mul nsw i32 %518, %42
  %528 = add nsw i32 %527, %299
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds float, ptr %44, i64 %529
  %531 = load float, ptr %530, align 4, !tbaa !18
  %532 = fcmp oge float %531, 0.000000e+00
  %533 = fneg float %531
  %534 = select i1 %532, float %531, float %533
  %535 = fcmp ult float %526, %534
  br i1 %535, label %547, label %536

536:                                              ; preds = %517
  %537 = load i32, ptr %37, align 4, !tbaa !5
  %538 = add nsw i32 %537, -1
  %539 = load i32, ptr %3, align 4, !tbaa !5
  %540 = mul nsw i32 %538, %539
  %541 = add nsw i32 %540, %518
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds float, ptr %51, i64 %542
  store float 1.000000e+00, ptr %543, align 4, !tbaa !18
  %544 = load float, ptr %522, align 4, !tbaa !18
  %545 = fdiv float %286, %544
  %546 = mul nsw i32 %539, %537
  br label %557

547:                                              ; preds = %517
  %548 = fdiv float %293, %531
  %549 = load i32, ptr %37, align 4, !tbaa !5
  %550 = add nsw i32 %549, -1
  %551 = load i32, ptr %3, align 4, !tbaa !5
  %552 = mul nsw i32 %550, %551
  %553 = add nsw i32 %552, %518
  %554 = sext i32 %553 to i64
  %555 = getelementptr inbounds float, ptr %51, i64 %554
  store float %548, ptr %555, align 4, !tbaa !18
  %556 = mul nsw i32 %551, %549
  br label %557

557:                                              ; preds = %547, %536
  %.sink2124 = phi i32 [ %556, %547 ], [ %546, %536 ]
  %.sink2120 = phi float [ 1.000000e+00, %547 ], [ %545, %536 ]
  %.pre-phi2002 = phi i32 [ %552, %547 ], [ %540, %536 ]
  %558 = add nsw i32 %.sink2124, %299
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds float, ptr %51, i64 %559
  store float %.sink2120, ptr %560, align 4, !tbaa !18
  %561 = add nsw i32 %.pre-phi2002, %299
  %562 = sext i32 %561 to i64
  %563 = getelementptr inbounds float, ptr %51, i64 %562
  store float 0.000000e+00, ptr %563, align 4, !tbaa !18
  %564 = add nsw i32 %.sink2124, %518
  %565 = sext i32 %564 to i64
  %566 = getelementptr inbounds float, ptr %51, i64 %565
  store float 0.000000e+00, ptr %566, align 4, !tbaa !18
  %567 = add i32 %299, -2
  store i32 %567, ptr %22, align 4, !tbaa !5
  %.not13951524 = icmp slt i32 %299, 3
  br i1 %.not13951524, label %._crit_edge1555, label %.lr.ph1527

.lr.ph1527:                                       ; preds = %557
  %568 = add nsw i32 %.pre-phi2002, %518
  %569 = sext i32 %568 to i64
  %570 = getelementptr inbounds float, ptr %51, i64 %569
  %571 = add i32 %.sink2124, %299
  %572 = sext i32 %571 to i64
  %573 = getelementptr float, ptr %51, i64 %572
  %574 = sext i32 %527 to i64
  %575 = sext i32 %.pre-phi2002 to i64
  %576 = sext i32 %519 to i64
  %577 = sext i32 %.sink2124 to i64
  %wide.trip.count1835 = zext nneg i32 %518 to i64
  %invariant.gep2055 = getelementptr float, ptr %44, i64 %574
  %invariant.gep2057 = getelementptr float, ptr %51, i64 %575
  %invariant.gep2059 = getelementptr float, ptr %44, i64 %576
  %invariant.gep2061 = getelementptr float, ptr %51, i64 %577
  %578 = add nsw i64 %wide.trip.count1835, -1
  %min.iters.check2259 = icmp ult i64 %578, 20
  br i1 %min.iters.check2259, label %scalar.ph2258.preheader, label %vector.memcheck2209

scalar.ph2258.preheader:                          ; preds = %middle.block2257, %vector.memcheck2209, %.lr.ph1527
  %indvars.iv1832.ph = phi i64 [ 1, %vector.memcheck2209 ], [ 1, %.lr.ph1527 ], [ %ind.end2263, %middle.block2257 ]
  %579 = and i32 %299, 1
  %lcmp.mod2423.not = icmp eq i32 %579, 0
  br i1 %lcmp.mod2423.not, label %scalar.ph2258.prol.loopexit, label %scalar.ph2258.prol

scalar.ph2258.prol:                               ; preds = %scalar.ph2258.preheader
  %580 = load float, ptr %570, align 4, !tbaa !18
  %581 = fneg float %580
  %gep2056.prol = getelementptr float, ptr %invariant.gep2055, i64 %indvars.iv1832.ph
  %582 = load float, ptr %gep2056.prol, align 4, !tbaa !18
  %583 = fmul float %582, %581
  %gep2058.prol = getelementptr float, ptr %invariant.gep2057, i64 %indvars.iv1832.ph
  store float %583, ptr %gep2058.prol, align 4, !tbaa !18
  %584 = load float, ptr %573, align 4, !tbaa !18
  %585 = fneg float %584
  %gep2060.prol = getelementptr float, ptr %invariant.gep2059, i64 %indvars.iv1832.ph
  %586 = load float, ptr %gep2060.prol, align 4, !tbaa !18
  %587 = fmul float %586, %585
  %gep2062.prol = getelementptr float, ptr %invariant.gep2061, i64 %indvars.iv1832.ph
  store float %587, ptr %gep2062.prol, align 4, !tbaa !18
  %indvars.iv.next1833.prol = add nuw nsw i64 %indvars.iv1832.ph, 1
  br label %scalar.ph2258.prol.loopexit

scalar.ph2258.prol.loopexit:                      ; preds = %scalar.ph2258.prol, %scalar.ph2258.preheader
  %indvars.iv1832.unr = phi i64 [ %indvars.iv1832.ph, %scalar.ph2258.preheader ], [ %indvars.iv.next1833.prol, %scalar.ph2258.prol ]
  %588 = add nsw i64 %wide.trip.count1835, -1
  %589 = icmp eq i64 %indvars.iv1832.ph, %588
  br i1 %589, label %.lr.ph1554.preheader, label %scalar.ph2258

vector.memcheck2209:                              ; preds = %.lr.ph1527
  %590 = shl nsw i64 %575, 2
  %scevgep2210 = getelementptr i8, ptr %12, i64 %590
  %591 = shl nuw nsw i64 %wide.trip.count1835, 2
  %592 = getelementptr i8, ptr %scevgep2211, i64 %590
  %scevgep2212 = getelementptr i8, ptr %592, i64 %591
  %593 = shl nsw i64 %577, 2
  %scevgep2213 = getelementptr i8, ptr %12, i64 %593
  %594 = getelementptr i8, ptr %scevgep2214, i64 %593
  %scevgep2215 = getelementptr i8, ptr %594, i64 %591
  %595 = shl nsw i64 %569, 2
  %scevgep2216 = getelementptr i8, ptr %12, i64 %595
  %596 = shl nsw i64 %574, 2
  %scevgep2218 = getelementptr i8, ptr %scevgep2217, i64 %596
  %597 = getelementptr i8, ptr %scevgep2219, i64 %596
  %scevgep2220 = getelementptr i8, ptr %597, i64 %591
  %598 = shl nsw i64 %572, 2
  %scevgep2221 = getelementptr i8, ptr %12, i64 %598
  %599 = shl nsw i64 %576, 2
  %scevgep2223 = getelementptr i8, ptr %scevgep2222, i64 %599
  %600 = getelementptr i8, ptr %scevgep2224, i64 %599
  %scevgep2225 = getelementptr i8, ptr %600, i64 %591
  %bound0 = icmp ult ptr %scevgep2210, %scevgep2215
  %bound1 = icmp ult ptr %scevgep2213, %scevgep2212
  %found.conflict = and i1 %bound0, %bound1
  %bound02226 = icmp ult ptr %scevgep2210, %scevgep2216
  %bound12227 = icmp ult ptr %570, %scevgep2212
  %found.conflict2228 = and i1 %bound02226, %bound12227
  %conflict.rdx = or i1 %found.conflict, %found.conflict2228
  %bound02229 = icmp ult ptr %scevgep2210, %scevgep2220
  %bound12230 = icmp ult ptr %scevgep2218, %scevgep2212
  %found.conflict2231 = and i1 %bound02229, %bound12230
  %conflict.rdx2232 = or i1 %conflict.rdx, %found.conflict2231
  %bound02233 = icmp ult ptr %scevgep2210, %scevgep2221
  %bound12234 = icmp ult ptr %573, %scevgep2212
  %found.conflict2235 = and i1 %bound02233, %bound12234
  %conflict.rdx2236 = or i1 %conflict.rdx2232, %found.conflict2235
  %bound02237 = icmp ult ptr %scevgep2210, %scevgep2225
  %bound12238 = icmp ult ptr %scevgep2223, %scevgep2212
  %found.conflict2239 = and i1 %bound02237, %bound12238
  %conflict.rdx2240 = or i1 %conflict.rdx2236, %found.conflict2239
  %bound02241 = icmp ult ptr %scevgep2213, %scevgep2216
  %bound12242 = icmp ult ptr %570, %scevgep2215
  %found.conflict2243 = and i1 %bound02241, %bound12242
  %conflict.rdx2244 = or i1 %conflict.rdx2240, %found.conflict2243
  %bound02245 = icmp ult ptr %scevgep2213, %scevgep2220
  %bound12246 = icmp ult ptr %scevgep2218, %scevgep2215
  %found.conflict2247 = and i1 %bound02245, %bound12246
  %conflict.rdx2248 = or i1 %conflict.rdx2244, %found.conflict2247
  %bound02249 = icmp ult ptr %scevgep2213, %scevgep2221
  %bound12250 = icmp ult ptr %573, %scevgep2215
  %found.conflict2251 = and i1 %bound02249, %bound12250
  %conflict.rdx2252 = or i1 %conflict.rdx2248, %found.conflict2251
  %bound02253 = icmp ult ptr %scevgep2213, %scevgep2225
  %bound12254 = icmp ult ptr %scevgep2223, %scevgep2215
  %found.conflict2255 = and i1 %bound02253, %bound12254
  %conflict.rdx2256 = or i1 %conflict.rdx2252, %found.conflict2255
  br i1 %conflict.rdx2256, label %scalar.ph2258.preheader, label %vector.ph2260

vector.ph2260:                                    ; preds = %vector.memcheck2209
  %n.vec2262 = and i64 %578, -4
  %ind.end2263 = or disjoint i64 %n.vec2262, 1
  %601 = load float, ptr %570, align 4, !tbaa !18, !alias.scope !28
  %broadcast.splatinsert = insertelement <4 x float> poison, float %601, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  %602 = fneg <4 x float> %broadcast.splat
  %603 = load float, ptr %573, align 4, !tbaa !18, !alias.scope !31
  %broadcast.splatinsert2269 = insertelement <4 x float> poison, float %603, i64 0
  %broadcast.splat2270 = shufflevector <4 x float> %broadcast.splatinsert2269, <4 x float> poison, <4 x i32> zeroinitializer
  %604 = fneg <4 x float> %broadcast.splat2270
  br label %vector.body2265

vector.body2265:                                  ; preds = %vector.body2265, %vector.ph2260
  %index2266 = phi i64 [ 0, %vector.ph2260 ], [ %index.next2272, %vector.body2265 ]
  %offset.idx2267 = or disjoint i64 %index2266, 1
  %605 = getelementptr float, ptr %invariant.gep2055, i64 %offset.idx2267
  %wide.load2268 = load <4 x float>, ptr %605, align 4, !tbaa !18, !alias.scope !33
  %606 = fmul <4 x float> %wide.load2268, %602
  %607 = getelementptr float, ptr %invariant.gep2057, i64 %offset.idx2267
  store <4 x float> %606, ptr %607, align 4, !tbaa !18, !alias.scope !35, !noalias !37
  %608 = getelementptr float, ptr %invariant.gep2059, i64 %offset.idx2267
  %wide.load2271 = load <4 x float>, ptr %608, align 4, !tbaa !18, !alias.scope !40
  %609 = fmul <4 x float> %wide.load2271, %604
  %610 = getelementptr float, ptr %invariant.gep2061, i64 %offset.idx2267
  store <4 x float> %609, ptr %610, align 4, !tbaa !18, !alias.scope !41, !noalias !42
  %index.next2272 = add nuw i64 %index2266, 4
  %611 = icmp eq i64 %index.next2272, %n.vec2262
  br i1 %611, label %middle.block2257, label %vector.body2265, !llvm.loop !43

middle.block2257:                                 ; preds = %vector.body2265
  %cmp.n2273 = icmp eq i64 %578, %n.vec2262
  br i1 %cmp.n2273, label %.lr.ph1554.preheader, label %scalar.ph2258.preheader

.lr.ph1554.preheader:                             ; preds = %scalar.ph2258.prol.loopexit, %scalar.ph2258, %middle.block2257
  %612 = zext nneg i32 %567 to i64
  br label %.lr.ph1554

scalar.ph2258:                                    ; preds = %scalar.ph2258.prol.loopexit, %scalar.ph2258
  %indvars.iv1832 = phi i64 [ %indvars.iv.next1833.1, %scalar.ph2258 ], [ %indvars.iv1832.unr, %scalar.ph2258.prol.loopexit ]
  %613 = load float, ptr %570, align 4, !tbaa !18
  %614 = fneg float %613
  %gep2056 = getelementptr float, ptr %invariant.gep2055, i64 %indvars.iv1832
  %615 = load float, ptr %gep2056, align 4, !tbaa !18
  %616 = fmul float %615, %614
  %gep2058 = getelementptr float, ptr %invariant.gep2057, i64 %indvars.iv1832
  store float %616, ptr %gep2058, align 4, !tbaa !18
  %617 = load float, ptr %573, align 4, !tbaa !18
  %618 = fneg float %617
  %gep2060 = getelementptr float, ptr %invariant.gep2059, i64 %indvars.iv1832
  %619 = load float, ptr %gep2060, align 4, !tbaa !18
  %620 = fmul float %619, %618
  %gep2062 = getelementptr float, ptr %invariant.gep2061, i64 %indvars.iv1832
  store float %620, ptr %gep2062, align 4, !tbaa !18
  %indvars.iv.next1833 = add nuw nsw i64 %indvars.iv1832, 1
  %621 = load float, ptr %570, align 4, !tbaa !18
  %622 = fneg float %621
  %gep2056.1 = getelementptr float, ptr %invariant.gep2055, i64 %indvars.iv.next1833
  %623 = load float, ptr %gep2056.1, align 4, !tbaa !18
  %624 = fmul float %623, %622
  %gep2058.1 = getelementptr float, ptr %invariant.gep2057, i64 %indvars.iv.next1833
  store float %624, ptr %gep2058.1, align 4, !tbaa !18
  %625 = load float, ptr %573, align 4, !tbaa !18
  %626 = fneg float %625
  %gep2060.1 = getelementptr float, ptr %invariant.gep2059, i64 %indvars.iv.next1833
  %627 = load float, ptr %gep2060.1, align 4, !tbaa !18
  %628 = fmul float %627, %626
  %gep2062.1 = getelementptr float, ptr %invariant.gep2061, i64 %indvars.iv.next1833
  store float %628, ptr %gep2062.1, align 4, !tbaa !18
  %indvars.iv.next1833.1 = add nuw nsw i64 %indvars.iv1832, 2
  %exitcond1836.not.1 = icmp eq i64 %indvars.iv.next1833.1, %wide.trip.count1835
  br i1 %exitcond1836.not.1, label %.lr.ph1554.preheader, label %scalar.ph2258, !llvm.loop !44

.lr.ph1554:                                       ; preds = %.lr.ph1554.preheader, %.lr.ph1554._crit_edge
  %indvars.iv1837 = phi i64 [ %612, %.lr.ph1554.preheader ], [ %.pre2017, %.lr.ph1554._crit_edge ]
  %.313121552 = phi i32 [ %567, %.lr.ph1554.preheader ], [ %.51314, %.lr.ph1554._crit_edge ]
  %indvars1839 = trunc i64 %indvars.iv1837 to i32
  %629 = sext i32 %.313121552 to i64
  %630 = icmp sgt i64 %indvars.iv1837, %629
  %.pre2017 = add nsw i64 %indvars.iv1837, -1
  br i1 %630, label %.lr.ph1554._crit_edge, label %631

631:                                              ; preds = %.lr.ph1554
  %.not1400 = icmp eq i64 %indvars.iv1837, 1
  br i1 %.not1400, label %..thread1437_crit_edge, label %632

..thread1437_crit_edge:                           ; preds = %631
  %.pre1958 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1960 = load i32, ptr %3, align 4, !tbaa !5
  br label %.thread1437

632:                                              ; preds = %631
  %633 = add nsw i32 %indvars1839, -1
  %634 = mul nsw i32 %633, %42
  %635 = sext i32 %634 to i64
  %636 = getelementptr float, ptr %44, i64 %indvars.iv1837
  %637 = getelementptr float, ptr %636, i64 %635
  %638 = load float, ptr %637, align 4, !tbaa !18
  %639 = fcmp une float %638, 0.000000e+00
  %640 = trunc nuw nsw i64 %.pre2017 to i32
  %.pre1959 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1961 = load i32, ptr %3, align 4, !tbaa !5
  br i1 %639, label %.thread1441, label %.thread1437

.thread1441:                                      ; preds = %632
  %641 = mul nsw i64 %.pre2017, %227
  %642 = getelementptr float, ptr %44, i64 %.pre2017
  %643 = getelementptr float, ptr %642, i64 %635
  %644 = add nsw i32 %.pre1959, -1
  %645 = mul nsw i32 %644, %.pre1961
  %646 = sext i32 %645 to i64
  %647 = getelementptr float, ptr %51, i64 %.pre2017
  %648 = getelementptr float, ptr %647, i64 %646
  call void @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef nonnull %30, ptr noundef nonnull @c_b29, ptr noundef %643, ptr noundef nonnull %5, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b29, ptr noundef nonnull %648, ptr noundef nonnull %3, ptr noundef nonnull %39, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull %34, ptr noundef nonnull %27) #6
  %649 = load float, ptr %34, align 4, !tbaa !18
  %650 = fcmp ogt float %649, 1.000000e+00
  br i1 %650, label %707, label %thread-pre-split1447

.thread1437:                                      ; preds = %..thread1437_crit_edge, %632
  %651 = phi i32 [ %.pre1961, %632 ], [ %.pre1960, %..thread1437_crit_edge ]
  %652 = phi i32 [ %.pre1959, %632 ], [ %.pre1958, %..thread1437_crit_edge ]
  %.413131440 = phi i32 [ %640, %632 ], [ 0, %..thread1437_crit_edge ]
  %653 = mul nsw i64 %indvars.iv1837, %227
  %654 = mul nsw i32 %42, %indvars1839
  %655 = sext i32 %654 to i64
  %656 = getelementptr float, ptr %44, i64 %indvars.iv1837
  %657 = getelementptr float, ptr %656, i64 %655
  %658 = add nsw i32 %652, -1
  %659 = mul nsw i32 %658, %651
  %660 = sext i32 %659 to i64
  %661 = getelementptr float, ptr %51, i64 %indvars.iv1837
  %662 = getelementptr float, ptr %661, i64 %660
  call void @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__1, ptr noundef nonnull @c__2, ptr noundef nonnull %30, ptr noundef nonnull @c_b29, ptr noundef %657, ptr noundef nonnull %5, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b29, ptr noundef nonnull %662, ptr noundef nonnull %3, ptr noundef nonnull %39, ptr noundef nonnull %38, ptr noundef nonnull %32, ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull %34, ptr noundef nonnull %27) #6
  %663 = load float, ptr %34, align 4, !tbaa !18
  %664 = fcmp ogt float %663, 1.000000e+00
  br i1 %664, label %665, label %thread-pre-split1445

665:                                              ; preds = %.thread1437
  %666 = getelementptr inbounds float, ptr %51, i64 %indvars.iv1837
  %667 = load float, ptr %666, align 4, !tbaa !18
  %668 = fdiv float %189, %663
  %669 = fcmp ogt float %667, %668
  br i1 %669, label %670, label %thread-pre-split1445

670:                                              ; preds = %665
  %671 = load float, ptr %32, align 16, !tbaa !18
  %672 = fdiv float %671, %663
  store float %672, ptr %32, align 16, !tbaa !18
  %673 = load float, ptr %221, align 8, !tbaa !18
  %674 = fdiv float %673, %663
  store float %674, ptr %221, align 8, !tbaa !18
  %675 = load float, ptr %31, align 4, !tbaa !18
  %676 = fdiv float %675, %663
  store float %676, ptr %31, align 4, !tbaa !18
  br label %677

thread-pre-split1445:                             ; preds = %.thread1437, %665
  %.pr1446 = load float, ptr %31, align 4, !tbaa !18
  br label %677

677:                                              ; preds = %thread-pre-split1445, %670
  %678 = phi float [ %.pr1446, %thread-pre-split1445 ], [ %676, %670 ]
  %679 = fcmp une float %678, 1.000000e+00
  br i1 %679, label %680, label %690

680:                                              ; preds = %677
  %681 = load i32, ptr %37, align 4, !tbaa !5
  %682 = add nsw i32 %681, -1
  %683 = load i32, ptr %3, align 4, !tbaa !5
  %684 = mul nsw i32 %682, %683
  %685 = sext i32 %684 to i64
  %gep1543 = getelementptr float, ptr %12, i64 %685
  call void @sscal_(ptr noundef nonnull %36, ptr noundef nonnull %31, ptr noundef %gep1543, ptr noundef nonnull @c__1) #6
  %686 = load i32, ptr %37, align 4, !tbaa !5
  %687 = load i32, ptr %3, align 4, !tbaa !5
  %688 = mul nsw i32 %687, %686
  %689 = sext i32 %688 to i64
  %gep1545 = getelementptr float, ptr %12, i64 %689
  call void @sscal_(ptr noundef nonnull %36, ptr noundef nonnull %31, ptr noundef %gep1545, ptr noundef nonnull @c__1) #6
  br label %690

690:                                              ; preds = %680, %677
  %691 = load float, ptr %32, align 16, !tbaa !18
  %692 = load i32, ptr %37, align 4, !tbaa !5
  %693 = add nsw i32 %692, -1
  %694 = load i32, ptr %3, align 4, !tbaa !5
  %695 = mul nsw i32 %693, %694
  %696 = sext i32 %695 to i64
  %697 = getelementptr float, ptr %51, i64 %indvars.iv1837
  %698 = getelementptr float, ptr %697, i64 %696
  store float %691, ptr %698, align 4, !tbaa !18
  %699 = load float, ptr %221, align 8, !tbaa !18
  %700 = mul nsw i32 %694, %692
  %701 = sext i32 %700 to i64
  %702 = getelementptr float, ptr %51, i64 %indvars.iv1837
  %703 = getelementptr float, ptr %702, i64 %701
  store float %699, ptr %703, align 4, !tbaa !18
  %704 = trunc nuw nsw i64 %.pre2017 to i32
  store i32 %704, ptr %22, align 4, !tbaa !5
  %705 = fneg float %691
  store float %705, ptr %25, align 4, !tbaa !18
  %gep1547 = getelementptr float, ptr %invariant.gep1530, i64 %653
  %gep1549 = getelementptr float, ptr %12, i64 %696
  call void @saxpy_(ptr noundef nonnull %22, ptr noundef nonnull %25, ptr noundef %gep1547, ptr noundef nonnull @c__1, ptr noundef %gep1549, ptr noundef nonnull @c__1) #6
  store i32 %704, ptr %22, align 4, !tbaa !5
  %706 = load float, ptr %221, align 8, !tbaa !18
  br label %.lr.ph1554._crit_edge.sink.split

707:                                              ; preds = %.thread1441
  %708 = getelementptr inbounds float, ptr %51, i64 %.pre2017
  %709 = load float, ptr %708, align 4, !tbaa !18
  store float %709, ptr %25, align 4, !tbaa !18
  %710 = getelementptr inbounds float, ptr %51, i64 %indvars.iv1837
  %711 = load float, ptr %710, align 4, !tbaa !18
  %712 = fcmp oge float %709, %711
  %713 = select i1 %712, float %709, float %711
  %714 = fdiv float %189, %649
  %715 = fcmp ogt float %713, %714
  br i1 %715, label %716, label %thread-pre-split1447

716:                                              ; preds = %707
  %717 = fdiv float 1.000000e+00, %649
  store float %717, ptr %40, align 4, !tbaa !18
  %718 = load <4 x float>, ptr %32, align 16, !tbaa !18
  %719 = insertelement <4 x float> poison, float %717, i64 0
  %720 = shufflevector <4 x float> %719, <4 x float> poison, <4 x i32> zeroinitializer
  %721 = fmul <4 x float> %720, %718
  store <4 x float> %721, ptr %32, align 16, !tbaa !18
  %722 = load float, ptr %31, align 4, !tbaa !18
  %723 = fmul float %717, %722
  store float %723, ptr %31, align 4, !tbaa !18
  br label %724

thread-pre-split1447:                             ; preds = %.thread1441, %707
  %.pr1448 = load float, ptr %31, align 4, !tbaa !18
  br label %724

724:                                              ; preds = %thread-pre-split1447, %716
  %725 = phi float [ %.pr1448, %thread-pre-split1447 ], [ %723, %716 ]
  %726 = fcmp une float %725, 1.000000e+00
  br i1 %726, label %727, label %737

727:                                              ; preds = %724
  %728 = load i32, ptr %37, align 4, !tbaa !5
  %729 = add nsw i32 %728, -1
  %730 = load i32, ptr %3, align 4, !tbaa !5
  %731 = mul nsw i32 %729, %730
  %732 = sext i32 %731 to i64
  %gep = getelementptr float, ptr %12, i64 %732
  call void @sscal_(ptr noundef nonnull %36, ptr noundef nonnull %31, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %733 = load i32, ptr %37, align 4, !tbaa !5
  %734 = load i32, ptr %3, align 4, !tbaa !5
  %735 = mul nsw i32 %734, %733
  %736 = sext i32 %735 to i64
  %gep1529 = getelementptr float, ptr %12, i64 %736
  call void @sscal_(ptr noundef nonnull %36, ptr noundef nonnull %31, ptr noundef %gep1529, ptr noundef nonnull @c__1) #6
  br label %737

737:                                              ; preds = %727, %724
  %738 = load i32, ptr %37, align 4, !tbaa !5
  %739 = add nsw i32 %738, -1
  %740 = load i32, ptr %3, align 4, !tbaa !5
  %741 = mul nsw i32 %739, %740
  %742 = sext i32 %741 to i64
  %743 = getelementptr float, ptr %51, i64 %.pre2017
  %744 = getelementptr float, ptr %743, i64 %742
  %745 = load <2 x float>, ptr %32, align 16, !tbaa !18
  store <2 x float> %745, ptr %744, align 4, !tbaa !18
  %746 = mul nsw i32 %740, %738
  %747 = sext i32 %746 to i64
  %748 = getelementptr float, ptr %51, i64 %.pre2017
  %749 = getelementptr float, ptr %748, i64 %747
  %750 = load <2 x float>, ptr %221, align 8, !tbaa !18
  store <2 x float> %750, ptr %749, align 4, !tbaa !18
  %751 = trunc i64 %indvars.iv1837 to i32
  %752 = add i32 %751, -2
  store i32 %752, ptr %22, align 4, !tbaa !5
  %753 = extractelement <2 x float> %745, i64 0
  %754 = fneg float %753
  store float %754, ptr %25, align 4, !tbaa !18
  %gep1531 = getelementptr float, ptr %invariant.gep1530, i64 %641
  %gep1533 = getelementptr float, ptr %12, i64 %742
  call void @saxpy_(ptr noundef nonnull %22, ptr noundef nonnull %25, ptr noundef %gep1531, ptr noundef nonnull @c__1, ptr noundef %gep1533, ptr noundef nonnull @c__1) #6
  store i32 %752, ptr %22, align 4, !tbaa !5
  %755 = load float, ptr %222, align 4, !tbaa !18
  %756 = fneg float %755
  store float %756, ptr %25, align 4, !tbaa !18
  %757 = mul nsw i64 %indvars.iv1837, %227
  %gep1535 = getelementptr float, ptr %invariant.gep1530, i64 %757
  %758 = load i32, ptr %37, align 4, !tbaa !5
  %759 = add nsw i32 %758, -1
  %760 = load i32, ptr %3, align 4, !tbaa !5
  %761 = mul nsw i32 %759, %760
  %762 = sext i32 %761 to i64
  %gep1537 = getelementptr float, ptr %12, i64 %762
  call void @saxpy_(ptr noundef nonnull %22, ptr noundef nonnull %25, ptr noundef %gep1535, ptr noundef nonnull @c__1, ptr noundef %gep1537, ptr noundef nonnull @c__1) #6
  store i32 %752, ptr %22, align 4, !tbaa !5
  %763 = load float, ptr %221, align 8, !tbaa !18
  %764 = fneg float %763
  store float %764, ptr %25, align 4, !tbaa !18
  %765 = load i32, ptr %37, align 4, !tbaa !5
  %766 = load i32, ptr %3, align 4, !tbaa !5
  %767 = mul nsw i32 %766, %765
  %768 = sext i32 %767 to i64
  %gep1539 = getelementptr float, ptr %12, i64 %768
  call void @saxpy_(ptr noundef nonnull %22, ptr noundef nonnull %25, ptr noundef %gep1531, ptr noundef nonnull @c__1, ptr noundef %gep1539, ptr noundef nonnull @c__1) #6
  store i32 %752, ptr %22, align 4, !tbaa !5
  %769 = load float, ptr %223, align 4, !tbaa !18
  br label %.lr.ph1554._crit_edge.sink.split

.lr.ph1554._crit_edge.sink.split:                 ; preds = %690, %737
  %.sink2396 = phi float [ %706, %690 ], [ %769, %737 ]
  %gep1535.sink = phi ptr [ %gep1547, %690 ], [ %gep1535, %737 ]
  %.51314.ph = phi i32 [ %.413131440, %690 ], [ %752, %737 ]
  %770 = fneg float %.sink2396
  store float %770, ptr %25, align 4, !tbaa !18
  %.sink2128 = load i32, ptr %37, align 4, !tbaa !5
  %771 = load i32, ptr %3, align 4, !tbaa !5
  %772 = mul nsw i32 %771, %.sink2128
  %773 = sext i32 %772 to i64
  %gep1541 = getelementptr float, ptr %12, i64 %773
  call void @saxpy_(ptr noundef nonnull %22, ptr noundef nonnull %25, ptr noundef %gep1535.sink, ptr noundef nonnull @c__1, ptr noundef %gep1541, ptr noundef nonnull @c__1) #6
  br label %.lr.ph1554._crit_edge

.lr.ph1554._crit_edge:                            ; preds = %.lr.ph1554._crit_edge.sink.split, %.lr.ph1554
  %.51314 = phi i32 [ %.313121552, %.lr.ph1554 ], [ %.51314.ph, %.lr.ph1554._crit_edge.sink.split ]
  %774 = icmp sgt i64 %indvars.iv1837, 1
  br i1 %774, label %.lr.ph1554, label %._crit_edge1555, !llvm.loop !45

._crit_edge1555:                                  ; preds = %.lr.ph1554._crit_edge, %557
  br i1 %.not1369, label %775, label %820

775:                                              ; preds = %._crit_edge1555
  %776 = load i32, ptr %37, align 4, !tbaa !5
  %777 = add nsw i32 %776, -1
  %778 = load i32, ptr %3, align 4, !tbaa !5
  %779 = mul nsw i32 %777, %778
  %780 = sext i32 %779 to i64
  %gep1650 = getelementptr float, ptr %12, i64 %780
  %781 = add nsw i32 %.012781679, -1
  %782 = mul nsw i32 %781, %48
  %783 = sext i32 %782 to i64
  %gep1652 = getelementptr float, ptr %invariant.gep1633, i64 %783
  call void @scopy_(ptr noundef nonnull %36, ptr noundef %gep1650, ptr noundef nonnull @c__1, ptr noundef %gep1652, ptr noundef nonnull @c__1) #6
  %784 = load i32, ptr %37, align 4, !tbaa !5
  %785 = load i32, ptr %3, align 4, !tbaa !5
  %786 = mul nsw i32 %785, %784
  %787 = sext i32 %786 to i64
  %gep1654 = getelementptr float, ptr %12, i64 %787
  %788 = mul nsw i32 %.012781679, %48
  %789 = sext i32 %788 to i64
  %gep1656 = getelementptr float, ptr %invariant.gep1633, i64 %789
  call void @scopy_(ptr noundef nonnull %36, ptr noundef %gep1654, ptr noundef nonnull @c__1, ptr noundef %gep1656, ptr noundef nonnull @c__1) #6
  %790 = load i32, ptr %36, align 4, !tbaa !5
  store i32 %790, ptr %22, align 4, !tbaa !5
  %.not13961569 = icmp slt i32 %790, 1
  br i1 %.not13961569, label %803, label %.lr.ph1573.preheader

.lr.ph1573.preheader:                             ; preds = %775
  %791 = add nuw i32 %790, 1
  %wide.trip.count1857 = zext i32 %791 to i64
  %invariant.gep2071 = getelementptr float, ptr %50, i64 %783
  %invariant.gep2073 = getelementptr float, ptr %50, i64 %789
  br label %.lr.ph1573

.lr.ph1573:                                       ; preds = %.lr.ph1573.preheader, %.lr.ph1573
  %indvars.iv1854 = phi i64 [ 1, %.lr.ph1573.preheader ], [ %indvars.iv.next1855, %.lr.ph1573 ]
  %.013291570 = phi float [ 0.000000e+00, %.lr.ph1573.preheader ], [ %802, %.lr.ph1573 ]
  %gep2072 = getelementptr float, ptr %invariant.gep2071, i64 %indvars.iv1854
  %792 = load float, ptr %gep2072, align 4, !tbaa !18
  %793 = fcmp oge float %792, 0.000000e+00
  %794 = fneg float %792
  %795 = select i1 %793, float %792, float %794
  %gep2074 = getelementptr float, ptr %invariant.gep2073, i64 %indvars.iv1854
  %796 = load float, ptr %gep2074, align 4, !tbaa !18
  %797 = fcmp oge float %796, 0.000000e+00
  %798 = fneg float %796
  %799 = select i1 %797, float %796, float %798
  %800 = fadd float %795, %799
  %801 = fcmp oge float %.013291570, %800
  %802 = select i1 %801, float %.013291570, float %800
  %indvars.iv.next1855 = add nuw nsw i64 %indvars.iv1854, 1
  %exitcond1858.not = icmp eq i64 %indvars.iv.next1855, %wide.trip.count1857
  br i1 %exitcond1858.not, label %._crit_edge1574, label %.lr.ph1573, !llvm.loop !46

._crit_edge1574:                                  ; preds = %.lr.ph1573
  store float %792, ptr %25, align 4, !tbaa !18
  br label %803

803:                                              ; preds = %._crit_edge1574, %775
  %.01329.lcssa = phi float [ %802, %._crit_edge1574 ], [ 0.000000e+00, %775 ]
  %804 = fdiv float 1.000000e+00, %.01329.lcssa
  store float %804, ptr %33, align 4, !tbaa !18
  call void @sscal_(ptr noundef nonnull %36, ptr noundef nonnull %33, ptr noundef %gep1652, ptr noundef nonnull @c__1) #6
  call void @sscal_(ptr noundef nonnull %36, ptr noundef nonnull %33, ptr noundef %gep1656, ptr noundef nonnull @c__1) #6
  %805 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %805, ptr %22, align 4, !tbaa !5
  %806 = load i32, ptr %36, align 4, !tbaa !5
  %.not1397.not1577 = icmp slt i32 %806, %805
  br i1 %.not1397.not1577, label %.lr.ph1580.preheader, label %.loopexit1492

.lr.ph1580.preheader:                             ; preds = %803
  %807 = sext i32 %806 to i64
  %wide.trip.count1866 = sext i32 %805 to i64
  %invariant.gep2075 = getelementptr float, ptr %50, i64 %783
  %invariant.gep2077 = getelementptr float, ptr %50, i64 %789
  %808 = sub nsw i64 %wide.trip.count1866, %807
  %min.iters.check2183 = icmp ult i64 %808, 8
  br i1 %min.iters.check2183, label %.lr.ph1580.preheader2410, label %vector.memcheck2179

vector.memcheck2179:                              ; preds = %.lr.ph1580.preheader
  %809 = sub nsw i64 %789, %783
  %810 = and i64 %809, 4611686018427387896
  %diff.check2180 = icmp eq i64 %810, 0
  br i1 %diff.check2180, label %.lr.ph1580.preheader2410, label %vector.ph2184

vector.ph2184:                                    ; preds = %vector.memcheck2179
  %n.vec2186 = and i64 %808, -8
  %ind.end2187 = add nsw i64 %n.vec2186, %807
  br label %vector.body2189

vector.body2189:                                  ; preds = %vector.body2189, %vector.ph2184
  %index2190 = phi i64 [ 0, %vector.ph2184 ], [ %index.next2192, %vector.body2189 ]
  %offset.idx2191 = add i64 %index2190, %807
  %811 = add nsw i64 %offset.idx2191, 1
  %812 = getelementptr float, ptr %invariant.gep2075, i64 %811
  %813 = getelementptr i8, ptr %812, i64 16
  store <4 x float> zeroinitializer, ptr %812, align 4, !tbaa !18
  store <4 x float> zeroinitializer, ptr %813, align 4, !tbaa !18
  %814 = getelementptr float, ptr %invariant.gep2077, i64 %811
  %815 = getelementptr i8, ptr %814, i64 16
  store <4 x float> zeroinitializer, ptr %814, align 4, !tbaa !18
  store <4 x float> zeroinitializer, ptr %815, align 4, !tbaa !18
  %index.next2192 = add nuw i64 %index2190, 8
  %816 = icmp eq i64 %index.next2192, %n.vec2186
  br i1 %816, label %middle.block2181, label %vector.body2189, !llvm.loop !47

middle.block2181:                                 ; preds = %vector.body2189
  %cmp.n2193 = icmp eq i64 %808, %n.vec2186
  br i1 %cmp.n2193, label %.loopexit1492, label %.lr.ph1580.preheader2410

.lr.ph1580.preheader2410:                         ; preds = %middle.block2181, %vector.memcheck2179, %.lr.ph1580.preheader
  %indvars.iv1863.ph = phi i64 [ %807, %vector.memcheck2179 ], [ %807, %.lr.ph1580.preheader ], [ %ind.end2187, %middle.block2181 ]
  %817 = sub nsw i64 %wide.trip.count1866, %indvars.iv1863.ph
  %xtraiter2426 = and i64 %817, 3
  %lcmp.mod2427.not = icmp eq i64 %xtraiter2426, 0
  br i1 %lcmp.mod2427.not, label %.lr.ph1580.prol.loopexit, label %.lr.ph1580.prol

.lr.ph1580.prol:                                  ; preds = %.lr.ph1580.preheader2410, %.lr.ph1580.prol
  %indvars.iv1863.prol = phi i64 [ %indvars.iv.next1864.prol, %.lr.ph1580.prol ], [ %indvars.iv1863.ph, %.lr.ph1580.preheader2410 ]
  %prol.iter2428 = phi i64 [ %prol.iter2428.next, %.lr.ph1580.prol ], [ 0, %.lr.ph1580.preheader2410 ]
  %indvars.iv.next1864.prol = add nsw i64 %indvars.iv1863.prol, 1
  %gep2076.prol = getelementptr float, ptr %invariant.gep2075, i64 %indvars.iv.next1864.prol
  store float 0.000000e+00, ptr %gep2076.prol, align 4, !tbaa !18
  %gep2078.prol = getelementptr float, ptr %invariant.gep2077, i64 %indvars.iv.next1864.prol
  store float 0.000000e+00, ptr %gep2078.prol, align 4, !tbaa !18
  %prol.iter2428.next = add i64 %prol.iter2428, 1
  %prol.iter2428.cmp.not = icmp eq i64 %prol.iter2428.next, %xtraiter2426
  br i1 %prol.iter2428.cmp.not, label %.lr.ph1580.prol.loopexit, label %.lr.ph1580.prol, !llvm.loop !48

.lr.ph1580.prol.loopexit:                         ; preds = %.lr.ph1580.prol, %.lr.ph1580.preheader2410
  %indvars.iv1863.unr = phi i64 [ %indvars.iv1863.ph, %.lr.ph1580.preheader2410 ], [ %indvars.iv.next1864.prol, %.lr.ph1580.prol ]
  %818 = sub nsw i64 %indvars.iv1863.ph, %wide.trip.count1866
  %819 = icmp ugt i64 %818, -4
  br i1 %819, label %.loopexit1492, label %.lr.ph1580

.lr.ph1580:                                       ; preds = %.lr.ph1580.prol.loopexit, %.lr.ph1580
  %indvars.iv1863 = phi i64 [ %indvars.iv.next1864.3, %.lr.ph1580 ], [ %indvars.iv1863.unr, %.lr.ph1580.prol.loopexit ]
  %indvars.iv.next1864 = add nsw i64 %indvars.iv1863, 1
  %gep2076 = getelementptr float, ptr %invariant.gep2075, i64 %indvars.iv.next1864
  store float 0.000000e+00, ptr %gep2076, align 4, !tbaa !18
  %gep2078 = getelementptr float, ptr %invariant.gep2077, i64 %indvars.iv.next1864
  store float 0.000000e+00, ptr %gep2078, align 4, !tbaa !18
  %indvars.iv.next1864.1 = add nsw i64 %indvars.iv1863, 2
  %gep2076.1 = getelementptr float, ptr %invariant.gep2075, i64 %indvars.iv.next1864.1
  store float 0.000000e+00, ptr %gep2076.1, align 4, !tbaa !18
  %gep2078.1 = getelementptr float, ptr %invariant.gep2077, i64 %indvars.iv.next1864.1
  store float 0.000000e+00, ptr %gep2078.1, align 4, !tbaa !18
  %indvars.iv.next1864.2 = add nsw i64 %indvars.iv1863, 3
  %gep2076.2 = getelementptr float, ptr %invariant.gep2075, i64 %indvars.iv.next1864.2
  store float 0.000000e+00, ptr %gep2076.2, align 4, !tbaa !18
  %gep2078.2 = getelementptr float, ptr %invariant.gep2077, i64 %indvars.iv.next1864.2
  store float 0.000000e+00, ptr %gep2078.2, align 4, !tbaa !18
  %indvars.iv.next1864.3 = add nsw i64 %indvars.iv1863, 4
  %gep2076.3 = getelementptr float, ptr %invariant.gep2075, i64 %indvars.iv.next1864.3
  store float 0.000000e+00, ptr %gep2076.3, align 4, !tbaa !18
  %gep2078.3 = getelementptr float, ptr %invariant.gep2077, i64 %indvars.iv.next1864.3
  store float 0.000000e+00, ptr %gep2078.3, align 4, !tbaa !18
  %exitcond1867.not.3 = icmp eq i64 %indvars.iv.next1864.3, %wide.trip.count1866
  br i1 %exitcond1867.not.3, label %.loopexit1492, label %.lr.ph1580, !llvm.loop !49

820:                                              ; preds = %._crit_edge1555
  br i1 %224, label %821, label %891

821:                                              ; preds = %820
  %822 = load i32, ptr %36, align 4, !tbaa !5
  %823 = icmp sgt i32 %822, 2
  br i1 %823, label %824, label %848

824:                                              ; preds = %821
  %825 = add nsw i32 %822, -2
  store i32 %825, ptr %22, align 4, !tbaa !5
  %826 = load i32, ptr %37, align 4, !tbaa !5
  %827 = add nsw i32 %826, -1
  %828 = load i32, ptr %3, align 4, !tbaa !5
  %829 = mul nsw i32 %827, %828
  %830 = sext i32 %829 to i64
  %gep1638 = getelementptr float, ptr %12, i64 %830
  %831 = add nsw i32 %822, -1
  %832 = add nsw i32 %829, %831
  %833 = sext i32 %832 to i64
  %834 = getelementptr inbounds float, ptr %51, i64 %833
  %835 = mul nsw i32 %831, %48
  %836 = sext i32 %835 to i64
  %gep1640 = getelementptr float, ptr %invariant.gep1633, i64 %836
  call void @sgemv_(ptr noundef nonnull @.str.10, ptr noundef nonnull %3, ptr noundef nonnull %22, ptr noundef nonnull @c_b29, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %gep1638, ptr noundef nonnull @c__1, ptr noundef nonnull %834, ptr noundef %gep1640, ptr noundef nonnull @c__1) #6
  %837 = load i32, ptr %36, align 4, !tbaa !5
  %838 = add nsw i32 %837, -2
  store i32 %838, ptr %22, align 4, !tbaa !5
  %839 = load i32, ptr %37, align 4, !tbaa !5
  %840 = load i32, ptr %3, align 4, !tbaa !5
  %841 = mul nsw i32 %840, %839
  %842 = sext i32 %841 to i64
  %gep1642 = getelementptr float, ptr %12, i64 %842
  %843 = add nsw i32 %841, %837
  %844 = sext i32 %843 to i64
  %845 = getelementptr inbounds float, ptr %51, i64 %844
  %846 = mul nsw i32 %837, %48
  %847 = sext i32 %846 to i64
  %gep1644 = getelementptr float, ptr %invariant.gep1633, i64 %847
  call void @sgemv_(ptr noundef nonnull @.str.10, ptr noundef nonnull %3, ptr noundef nonnull %22, ptr noundef nonnull @c_b29, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %gep1642, ptr noundef nonnull @c__1, ptr noundef nonnull %845, ptr noundef %gep1644, ptr noundef nonnull @c__1) #6
  br label %868

848:                                              ; preds = %821
  %849 = add nsw i32 %822, -1
  %850 = load i32, ptr %37, align 4, !tbaa !5
  %851 = add nsw i32 %850, -1
  %852 = load i32, ptr %3, align 4, !tbaa !5
  %853 = mul nsw i32 %851, %852
  %854 = add nsw i32 %853, %849
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds float, ptr %51, i64 %855
  %857 = mul nsw i32 %849, %48
  %858 = sext i32 %857 to i64
  %gep1634 = getelementptr float, ptr %invariant.gep1633, i64 %858
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %856, ptr noundef %gep1634, ptr noundef nonnull @c__1) #6
  %859 = load i32, ptr %36, align 4, !tbaa !5
  %860 = load i32, ptr %37, align 4, !tbaa !5
  %861 = load i32, ptr %3, align 4, !tbaa !5
  %862 = mul nsw i32 %861, %860
  %863 = add nsw i32 %862, %859
  %864 = sext i32 %863 to i64
  %865 = getelementptr inbounds float, ptr %51, i64 %864
  %866 = mul nsw i32 %859, %48
  %867 = sext i32 %866 to i64
  %gep1636 = getelementptr float, ptr %invariant.gep1633, i64 %867
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %865, ptr noundef %gep1636, ptr noundef nonnull @c__1) #6
  br label %868

868:                                              ; preds = %848, %824
  %869 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %869, ptr %22, align 4, !tbaa !5
  %.not13991561 = icmp slt i32 %869, 1
  %.pre1963 = load i32, ptr %36, align 4, !tbaa !5
  %.pre2018 = add nsw i32 %.pre1963, -1
  %.pre2020 = mul nsw i32 %.pre2018, %48
  br i1 %.not13991561, label %._crit_edge2004, label %.lr.ph1565

._crit_edge2004:                                  ; preds = %868
  %.pre2022 = sext i32 %.pre2020 to i64
  br label %886

.lr.ph1565:                                       ; preds = %868
  %870 = mul nsw i32 %.pre1963, %48
  %871 = sext i32 %.pre2020 to i64
  %872 = sext i32 %870 to i64
  %873 = add nuw i32 %869, 1
  %wide.trip.count1852 = zext i32 %873 to i64
  %invariant.gep2067 = getelementptr float, ptr %50, i64 %871
  %invariant.gep2069 = getelementptr float, ptr %50, i64 %872
  br label %874

874:                                              ; preds = %.lr.ph1565, %874
  %indvars.iv1849 = phi i64 [ 1, %.lr.ph1565 ], [ %indvars.iv.next1850, %874 ]
  %.113301562 = phi float [ 0.000000e+00, %.lr.ph1565 ], [ %885, %874 ]
  %gep2068 = getelementptr float, ptr %invariant.gep2067, i64 %indvars.iv1849
  %875 = load float, ptr %gep2068, align 4, !tbaa !18
  %876 = fcmp oge float %875, 0.000000e+00
  %877 = fneg float %875
  %878 = select i1 %876, float %875, float %877
  %gep2070 = getelementptr float, ptr %invariant.gep2069, i64 %indvars.iv1849
  %879 = load float, ptr %gep2070, align 4, !tbaa !18
  %880 = fcmp oge float %879, 0.000000e+00
  %881 = fneg float %879
  %882 = select i1 %880, float %879, float %881
  %883 = fadd float %878, %882
  %884 = fcmp oge float %.113301562, %883
  %885 = select i1 %884, float %.113301562, float %883
  %indvars.iv.next1850 = add nuw nsw i64 %indvars.iv1849, 1
  %exitcond1853.not = icmp eq i64 %indvars.iv.next1850, %wide.trip.count1852
  br i1 %exitcond1853.not, label %._crit_edge1566, label %874, !llvm.loop !50

._crit_edge1566:                                  ; preds = %874
  store float %875, ptr %25, align 4, !tbaa !18
  br label %886

886:                                              ; preds = %._crit_edge2004, %._crit_edge1566
  %.pre-phi2023 = phi i64 [ %.pre2022, %._crit_edge2004 ], [ %871, %._crit_edge1566 ]
  %.11330.lcssa = phi float [ 0.000000e+00, %._crit_edge2004 ], [ %885, %._crit_edge1566 ]
  %887 = fdiv float 1.000000e+00, %.11330.lcssa
  store float %887, ptr %33, align 4, !tbaa !18
  %gep1646 = getelementptr float, ptr %invariant.gep1633, i64 %.pre-phi2023
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1646, ptr noundef nonnull @c__1) #6
  %888 = load i32, ptr %36, align 4, !tbaa !5
  %889 = mul nsw i32 %888, %48
  %890 = sext i32 %889 to i64
  %gep1648 = getelementptr float, ptr %invariant.gep1633, i64 %890
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1648, ptr noundef nonnull @c__1) #6
  br label %.loopexit1492

891:                                              ; preds = %820
  %892 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %892, ptr %22, align 4, !tbaa !5
  %893 = load i32, ptr %36, align 4, !tbaa !5
  %.not1398.not1556 = icmp slt i32 %893, %892
  %.pre1962 = load i32, ptr %37, align 4, !tbaa !5
  %894 = add nsw i32 %.pre1962, -1
  br i1 %.not1398.not1556, label %.lr.ph1559, label %._crit_edge1560

.lr.ph1559:                                       ; preds = %891
  %895 = mul nsw i32 %894, %892
  %896 = mul nsw i32 %.pre1962, %892
  %897 = sext i32 %893 to i64
  %898 = sext i32 %895 to i64
  %899 = sext i32 %896 to i64
  %wide.trip.count1847 = sext i32 %892 to i64
  %invariant.gep2063 = getelementptr float, ptr %12, i64 %898
  %invariant.gep2065 = getelementptr float, ptr %12, i64 %899
  %900 = sub nsw i64 %wide.trip.count1847, %897
  %min.iters.check2198 = icmp ult i64 %900, 8
  br i1 %min.iters.check2198, label %scalar.ph2197.preheader, label %vector.memcheck2194

vector.memcheck2194:                              ; preds = %.lr.ph1559
  %901 = sub nsw i64 %899, %898
  %902 = and i64 %901, 4611686018427387896
  %diff.check2195 = icmp eq i64 %902, 0
  br i1 %diff.check2195, label %scalar.ph2197.preheader, label %vector.ph2199

vector.ph2199:                                    ; preds = %vector.memcheck2194
  %n.vec2201 = and i64 %900, -8
  %ind.end2202 = add nsw i64 %n.vec2201, %897
  br label %vector.body2204

vector.body2204:                                  ; preds = %vector.body2204, %vector.ph2199
  %index2205 = phi i64 [ 0, %vector.ph2199 ], [ %index.next2207, %vector.body2204 ]
  %offset.idx2206 = add i64 %index2205, %897
  %903 = getelementptr float, ptr %invariant.gep2063, i64 %offset.idx2206
  %904 = getelementptr i8, ptr %903, i64 16
  store <4 x float> zeroinitializer, ptr %903, align 4, !tbaa !18
  store <4 x float> zeroinitializer, ptr %904, align 4, !tbaa !18
  %905 = getelementptr float, ptr %invariant.gep2065, i64 %offset.idx2206
  %906 = getelementptr i8, ptr %905, i64 16
  store <4 x float> zeroinitializer, ptr %905, align 4, !tbaa !18
  store <4 x float> zeroinitializer, ptr %906, align 4, !tbaa !18
  %index.next2207 = add nuw i64 %index2205, 8
  %907 = icmp eq i64 %index.next2207, %n.vec2201
  br i1 %907, label %middle.block2196, label %vector.body2204, !llvm.loop !51

middle.block2196:                                 ; preds = %vector.body2204
  %cmp.n2208 = icmp eq i64 %900, %n.vec2201
  br i1 %cmp.n2208, label %._crit_edge1560, label %scalar.ph2197.preheader

scalar.ph2197.preheader:                          ; preds = %middle.block2196, %vector.memcheck2194, %.lr.ph1559
  %indvars.iv1844.ph = phi i64 [ %897, %vector.memcheck2194 ], [ %897, %.lr.ph1559 ], [ %ind.end2202, %middle.block2196 ]
  %908 = sub nsw i64 %wide.trip.count1847, %indvars.iv1844.ph
  %xtraiter2424 = and i64 %908, 3
  %lcmp.mod2425.not = icmp eq i64 %xtraiter2424, 0
  br i1 %lcmp.mod2425.not, label %scalar.ph2197.prol.loopexit, label %scalar.ph2197.prol

scalar.ph2197.prol:                               ; preds = %scalar.ph2197.preheader, %scalar.ph2197.prol
  %indvars.iv1844.prol = phi i64 [ %indvars.iv.next1845.prol, %scalar.ph2197.prol ], [ %indvars.iv1844.ph, %scalar.ph2197.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph2197.prol ], [ 0, %scalar.ph2197.preheader ]
  %indvars.iv.next1845.prol = add nsw i64 %indvars.iv1844.prol, 1
  %gep2064.prol = getelementptr float, ptr %invariant.gep2063, i64 %indvars.iv1844.prol
  store float 0.000000e+00, ptr %gep2064.prol, align 4, !tbaa !18
  %gep2066.prol = getelementptr float, ptr %invariant.gep2065, i64 %indvars.iv1844.prol
  store float 0.000000e+00, ptr %gep2066.prol, align 4, !tbaa !18
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter2424
  br i1 %prol.iter.cmp.not, label %scalar.ph2197.prol.loopexit, label %scalar.ph2197.prol, !llvm.loop !52

scalar.ph2197.prol.loopexit:                      ; preds = %scalar.ph2197.prol, %scalar.ph2197.preheader
  %indvars.iv1844.unr = phi i64 [ %indvars.iv1844.ph, %scalar.ph2197.preheader ], [ %indvars.iv.next1845.prol, %scalar.ph2197.prol ]
  %909 = sub nsw i64 %indvars.iv1844.ph, %wide.trip.count1847
  %910 = icmp ugt i64 %909, -4
  br i1 %910, label %._crit_edge1560, label %scalar.ph2197

scalar.ph2197:                                    ; preds = %scalar.ph2197.prol.loopexit, %scalar.ph2197
  %indvars.iv1844 = phi i64 [ %indvars.iv.next1845.3, %scalar.ph2197 ], [ %indvars.iv1844.unr, %scalar.ph2197.prol.loopexit ]
  %indvars.iv.next1845 = add nsw i64 %indvars.iv1844, 1
  %gep2064 = getelementptr float, ptr %invariant.gep2063, i64 %indvars.iv1844
  store float 0.000000e+00, ptr %gep2064, align 4, !tbaa !18
  %gep2066 = getelementptr float, ptr %invariant.gep2065, i64 %indvars.iv1844
  store float 0.000000e+00, ptr %gep2066, align 4, !tbaa !18
  %indvars.iv.next1845.1 = add nsw i64 %indvars.iv1844, 2
  %gep2064.1 = getelementptr float, ptr %invariant.gep2063, i64 %indvars.iv.next1845
  store float 0.000000e+00, ptr %gep2064.1, align 4, !tbaa !18
  %gep2066.1 = getelementptr float, ptr %invariant.gep2065, i64 %indvars.iv.next1845
  store float 0.000000e+00, ptr %gep2066.1, align 4, !tbaa !18
  %indvars.iv.next1845.2 = add nsw i64 %indvars.iv1844, 3
  %gep2064.2 = getelementptr float, ptr %invariant.gep2063, i64 %indvars.iv.next1845.1
  store float 0.000000e+00, ptr %gep2064.2, align 4, !tbaa !18
  %gep2066.2 = getelementptr float, ptr %invariant.gep2065, i64 %indvars.iv.next1845.1
  store float 0.000000e+00, ptr %gep2066.2, align 4, !tbaa !18
  %indvars.iv.next1845.3 = add nsw i64 %indvars.iv1844, 4
  %gep2064.3 = getelementptr float, ptr %invariant.gep2063, i64 %indvars.iv.next1845.2
  store float 0.000000e+00, ptr %gep2064.3, align 4, !tbaa !18
  %gep2066.3 = getelementptr float, ptr %invariant.gep2065, i64 %indvars.iv.next1845.2
  store float 0.000000e+00, ptr %gep2066.3, align 4, !tbaa !18
  %exitcond1848.not.3 = icmp eq i64 %indvars.iv.next1845.3, %wide.trip.count1847
  br i1 %exitcond1848.not.3, label %._crit_edge1560, label %scalar.ph2197, !llvm.loop !53

._crit_edge1560:                                  ; preds = %scalar.ph2197.prol.loopexit, %scalar.ph2197, %middle.block2196, %891
  %911 = add nsw i32 %.pre1962, -2
  %912 = sext i32 %911 to i64
  %913 = getelementptr inbounds [128 x i32], ptr %35, i64 0, i64 %912
  store i32 1, ptr %913, align 4, !tbaa !5
  %914 = sext i32 %894 to i64
  %915 = getelementptr inbounds [128 x i32], ptr %35, i64 0, i64 %914
  store i32 -1, ptr %915, align 4, !tbaa !5
  store i32 %894, ptr %37, align 4, !tbaa !5
  br label %.loopexit1492

.loopexit1492:                                    ; preds = %.lr.ph1580.prol.loopexit, %.lr.ph1580, %middle.block2181, %.lr.ph1613.preheader, %803, %444, %._crit_edge1560, %886, %._crit_edge1609
  br i1 %225, label %916, label %993

916:                                              ; preds = %.loopexit1492
  %917 = load i32, ptr %36, align 4
  %not.1461 = xor i1 %288, true
  %918 = sext i1 %not.1461 to i32
  %.01276 = add nsw i32 %917, %918
  %919 = load i32, ptr %37, align 4, !tbaa !5
  %920 = icmp slt i32 %919, 3
  %921 = icmp eq i32 %.01276, 1
  %or.cond9 = select i1 %920, i1 true, i1 %921
  br i1 %or.cond9, label %922, label %991

922:                                              ; preds = %916
  %923 = sub i32 %226, %919
  store i32 %923, ptr %22, align 4, !tbaa !5
  %924 = add nsw i32 %.01276, %.01287
  %925 = sub i32 %924, %919
  store i32 %925, ptr %23, align 4, !tbaa !5
  %926 = load i32, ptr %3, align 4, !tbaa !5
  %927 = mul nsw i32 %926, %919
  %928 = sext i32 %927 to i64
  %gep1670 = getelementptr float, ptr %12, i64 %928
  %929 = add nsw i32 %919, %.01287
  %930 = mul nsw i32 %926, %929
  %931 = sext i32 %930 to i64
  %gep1672 = getelementptr float, ptr %12, i64 %931
  call void @sgemm_(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.10, ptr noundef nonnull %3, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull @c_b29, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %gep1670, ptr noundef nonnull %3, ptr noundef nonnull @c_b17, ptr noundef %gep1672, ptr noundef nonnull %3) #6
  store i32 %.01287, ptr %22, align 4, !tbaa !5
  %932 = load i32, ptr %37, align 4, !tbaa !5
  %.not14051626 = icmp sgt i32 %932, %.01287
  br i1 %.not14051626, label %._crit_edge1630, label %.lr.ph1629.preheader

.lr.ph1629.preheader:                             ; preds = %922
  %933 = sext i32 %932 to i64
  br label %.lr.ph1629

.lr.ph1629:                                       ; preds = %.lr.ph1629.preheader, %976
  %indvars.iv1891 = phi i64 [ %933, %.lr.ph1629.preheader ], [ %indvars.iv.next1892, %976 ]
  %934 = add nsw i64 %indvars.iv1891, -1
  %935 = getelementptr inbounds [128 x i32], ptr %35, i64 0, i64 %934
  %936 = load i32, ptr %935, align 4, !tbaa !5
  switch i32 %936, label %.lr.ph1629._crit_edge [
    i32 0, label %937
    i32 1, label %954
  ]

.lr.ph1629._crit_edge:                            ; preds = %.lr.ph1629
  %.pre1970 = load i32, ptr %3, align 4, !tbaa !5
  br label %976

937:                                              ; preds = %.lr.ph1629
  %938 = add nsw i64 %indvars.iv1891, %229
  %939 = load i32, ptr %3, align 4, !tbaa !5
  %940 = sext i32 %939 to i64
  %941 = mul nsw i64 %938, %940
  %gep1623 = getelementptr float, ptr %12, i64 %941
  %942 = call i32 @isamax_(ptr noundef nonnull %3, ptr noundef %gep1623, ptr noundef nonnull @c__1) #6
  %943 = load i32, ptr %3, align 4, !tbaa !5
  %944 = trunc nsw i64 %938 to i32
  %945 = mul nsw i32 %943, %944
  %946 = add nsw i32 %945, %942
  %947 = sext i32 %946 to i64
  %948 = getelementptr inbounds float, ptr %51, i64 %947
  %949 = load float, ptr %948, align 4, !tbaa !18
  store float %949, ptr %25, align 4, !tbaa !18
  %950 = fcmp oge float %949, 0.000000e+00
  %951 = fneg float %949
  %952 = select i1 %950, float %949, float %951
  %953 = fdiv float 1.000000e+00, %952
  store float %953, ptr %33, align 4, !tbaa !18
  br label %976

954:                                              ; preds = %.lr.ph1629
  %955 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %955, ptr %23, align 4, !tbaa !5
  %.not14061614 = icmp slt i32 %955, 1
  br i1 %.not14061614, label %974, label %.lr.ph1618

.lr.ph1618:                                       ; preds = %954
  %956 = add nsw i64 %indvars.iv1891, %229
  %957 = zext nneg i32 %955 to i64
  %958 = mul nsw i64 %956, %957
  %959 = add nsw i64 %956, 1
  %960 = mul nsw i64 %959, %957
  %961 = add nuw i32 %955, 1
  %wide.trip.count1889 = zext i32 %961 to i64
  %invariant.gep2083 = getelementptr float, ptr %51, i64 %958
  %invariant.gep2085 = getelementptr float, ptr %51, i64 %960
  br label %962

962:                                              ; preds = %.lr.ph1618, %962
  %indvars.iv1886 = phi i64 [ 1, %.lr.ph1618 ], [ %indvars.iv.next1887, %962 ]
  %.213311615 = phi float [ 0.000000e+00, %.lr.ph1618 ], [ %973, %962 ]
  %gep2084 = getelementptr float, ptr %invariant.gep2083, i64 %indvars.iv1886
  %963 = load float, ptr %gep2084, align 4, !tbaa !18
  %964 = fcmp oge float %963, 0.000000e+00
  %965 = fneg float %963
  %966 = select i1 %964, float %963, float %965
  %gep2086 = getelementptr float, ptr %invariant.gep2085, i64 %indvars.iv1886
  %967 = load float, ptr %gep2086, align 4, !tbaa !18
  %968 = fcmp oge float %967, 0.000000e+00
  %969 = fneg float %967
  %970 = select i1 %968, float %967, float %969
  %971 = fadd float %966, %970
  %972 = fcmp oge float %.213311615, %971
  %973 = select i1 %972, float %.213311615, float %971
  %indvars.iv.next1887 = add nuw nsw i64 %indvars.iv1886, 1
  %exitcond1890.not = icmp eq i64 %indvars.iv.next1887, %wide.trip.count1889
  br i1 %exitcond1890.not, label %._crit_edge1619, label %962, !llvm.loop !54

._crit_edge1619:                                  ; preds = %962
  store float %963, ptr %25, align 4, !tbaa !18
  br label %974

974:                                              ; preds = %._crit_edge1619, %954
  %.21331.lcssa = phi float [ %973, %._crit_edge1619 ], [ 0.000000e+00, %954 ]
  %975 = fdiv float 1.000000e+00, %.21331.lcssa
  store float %975, ptr %33, align 4, !tbaa !18
  br label %976

976:                                              ; preds = %.lr.ph1629._crit_edge, %974, %937
  %977 = phi i32 [ %.pre1970, %.lr.ph1629._crit_edge ], [ %955, %974 ], [ %943, %937 ]
  %978 = add nsw i64 %indvars.iv1891, %229
  %979 = sext i32 %977 to i64
  %980 = mul nsw i64 %978, %979
  %gep1625 = getelementptr float, ptr %12, i64 %980
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1625, ptr noundef nonnull @c__1) #6
  %indvars.iv.next1892 = add nsw i64 %indvars.iv1891, 1
  %981 = load i32, ptr %22, align 4, !tbaa !5
  %982 = sext i32 %981 to i64
  %.not1405.not = icmp slt i64 %indvars.iv1891, %982
  br i1 %.not1405.not, label %.lr.ph1629, label %._crit_edge1630.loopexit, !llvm.loop !55

._crit_edge1630.loopexit:                         ; preds = %976
  %.pre1971 = load i32, ptr %37, align 4, !tbaa !5
  br label %._crit_edge1630

._crit_edge1630:                                  ; preds = %._crit_edge1630.loopexit, %922
  %983 = phi i32 [ %.pre1971, %._crit_edge1630.loopexit ], [ %932, %922 ]
  %984 = sub i32 %226, %983
  store i32 %984, ptr %22, align 4, !tbaa !5
  %985 = add nsw i32 %983, %.01287
  %986 = load i32, ptr %3, align 4, !tbaa !5
  %987 = mul nsw i32 %986, %985
  %988 = sext i32 %987 to i64
  %gep1674 = getelementptr float, ptr %12, i64 %988
  %989 = mul nsw i32 %.01276, %48
  %990 = sext i32 %989 to i64
  %gep1676 = getelementptr float, ptr %invariant.gep1633, i64 %990
  call void @slacpy_(ptr noundef nonnull @.str.7, ptr noundef nonnull %3, ptr noundef nonnull %22, ptr noundef %gep1674, ptr noundef nonnull %3, ptr noundef %gep1676, ptr noundef nonnull %9) #6
  store i32 %.01287, ptr %37, align 4, !tbaa !5
  br label %993

991:                                              ; preds = %916
  %992 = add nsw i32 %919, -1
  store i32 %992, ptr %37, align 4, !tbaa !5
  br label %993

993:                                              ; preds = %.thread1449, %._crit_edge1630, %991, %.loopexit1492
  %not.1462 = xor i1 %288, true
  %spec.select1411 = sext i1 %not.1462 to i32
  %spec.select1412.v = select i1 %288, i32 -1, i32 -2
  %spec.select1412 = add nsw i32 %spec.select1412.v, %.012781679
  %.pre1972 = load i32, ptr %36, align 4, !tbaa !5
  br label %994

994:                                              ; preds = %993, %233, %.thread1420, %249
  %995 = phi i32 [ %storemerge13721677, %.thread1420 ], [ %storemerge13721677, %249 ], [ %storemerge13721677, %233 ], [ %.pre1972, %993 ]
  %.21283 = phi i32 [ 0, %.thread1420 ], [ -1, %249 ], [ 1, %233 ], [ %spec.select1411, %993 ]
  %.11279 = phi i32 [ %.012781679, %.thread1420 ], [ %.012781679, %249 ], [ %.012781679, %233 ], [ %spec.select1412, %993 ]
  %996 = add nsw i32 %995, -1
  store i32 %996, ptr %36, align 4, !tbaa !5
  %997 = icmp sgt i32 %995, 1
  br i1 %997, label %233, label %.loopexit1495, !llvm.loop !56

.loopexit1495:                                    ; preds = %994, %217, %216
  br i1 %59, label %998, label %.loopexit1491

998:                                              ; preds = %.loopexit1495
  store i32 1, ptr %37, align 4, !tbaa !5
  %999 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %999, ptr %22, align 4, !tbaa !5
  %invariant.gep1761 = getelementptr i8, ptr %47, i64 4
  store i32 1, ptr %36, align 4, !tbaa !5
  %.not13741793 = icmp slt i32 %999, 1
  br i1 %.not13741793, label %.loopexit1491, label %.lr.ph1798

.lr.ph1798:                                       ; preds = %998
  %.not1375 = icmp eq i32 %62, 0
  %1000 = add i32 %42, 1
  %1001 = getelementptr inbounds i8, ptr %32, i64 8
  %1002 = getelementptr inbounds i8, ptr %32, i64 4
  %1003 = getelementptr inbounds i8, ptr %32, i64 12
  %1004 = icmp eq i32 %.01287, 1
  %1005 = icmp sgt i32 %.01287, 1
  %1006 = add nsw i32 %.01287, -1
  %1007 = add nuw nsw i32 %.01287, 1
  %1008 = sext i32 %42 to i64
  %1009 = shl nsw i64 %46, 2
  %scevgep1940 = getelementptr i8, ptr %6, i64 %1009
  %1010 = sext i32 %.01287 to i64
  %1011 = add i64 %17, 4
  %scevgep2324 = getelementptr i8, ptr %12, i64 -4
  %scevgep2327 = getelementptr i8, ptr %12, i64 -4
  %scevgep2331 = getelementptr i8, ptr %4, i64 -8
  %scevgep2333 = getelementptr i8, ptr %4, i64 -4
  %scevgep2336 = getelementptr i8, ptr %4, i64 -8
  %scevgep2338 = getelementptr i8, ptr %4, i64 -4
  %ident.check2322.not = icmp eq i32 %42, 1
  %ident.check.not = icmp eq i32 %42, 1
  br label %1012

1012:                                             ; preds = %.lr.ph1798, %2077
  %1013 = phi i32 [ %999, %.lr.ph1798 ], [ %2078, %2077 ]
  %.212801796 = phi i32 [ 1, %.lr.ph1798 ], [ %.3, %2077 ]
  %.312841795 = phi i32 [ 0, %.lr.ph1798 ], [ %.5, %2077 ]
  %storemerge13731794 = phi i32 [ 1, %.lr.ph1798 ], [ %2080, %2077 ]
  %1014 = icmp eq i32 %.312841795, 1
  br i1 %1014, label %2077, label %1015

1015:                                             ; preds = %1012
  %1016 = load i32, ptr %3, align 4, !tbaa !5
  %1017 = icmp eq i32 %storemerge13731794, %1016
  br i1 %1017, label %1026, label %1018

1018:                                             ; preds = %1015
  %1019 = add nsw i32 %storemerge13731794, 1
  %1020 = mul nsw i32 %storemerge13731794, %42
  %1021 = add nsw i32 %1019, %1020
  %1022 = sext i32 %1021 to i64
  %1023 = getelementptr inbounds float, ptr %44, i64 %1022
  %1024 = load float, ptr %1023, align 4, !tbaa !18
  %1025 = fcmp oeq float %1024, 0.000000e+00
  %not. = xor i1 %1025, true
  %.1414 = zext i1 %not. to i32
  br label %1026

1026:                                             ; preds = %1018, %1015
  %.not1377 = phi i1 [ true, %1015 ], [ %1025, %1018 ]
  %.4 = phi i32 [ 0, %1015 ], [ %.1414, %1018 ]
  br i1 %.not1375, label %1031, label %1027

1027:                                             ; preds = %1026
  %1028 = sext i32 %storemerge13731794 to i64
  %1029 = getelementptr inbounds i32, ptr %41, i64 %1028
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %.not1376 = icmp eq i32 %1030, 0
  br i1 %.not1376, label %2077, label %1031

1031:                                             ; preds = %1027, %1026
  %1032 = mul i32 %storemerge13731794, %1000
  %1033 = sext i32 %1032 to i64
  %1034 = getelementptr inbounds float, ptr %44, i64 %1033
  %1035 = load float, ptr %1034, align 4, !tbaa !18
  store float %1035, ptr %39, align 4, !tbaa !18
  store float 0.000000e+00, ptr %38, align 4, !tbaa !18
  br i1 %.not1377, label %1062, label %1036

1036:                                             ; preds = %1031
  %1037 = add nsw i32 %storemerge13731794, 1
  %1038 = mul nsw i32 %1037, %42
  %1039 = add nsw i32 %1038, %storemerge13731794
  %1040 = sext i32 %1039 to i64
  %1041 = getelementptr inbounds float, ptr %44, i64 %1040
  %1042 = load float, ptr %1041, align 4, !tbaa !18
  %1043 = fcmp oge float %1042, 0.000000e+00
  %1044 = fneg float %1042
  %1045 = select i1 %1043, float %1042, float %1044
  %1046 = fpext float %1045 to double
  %1047 = call double @sqrt(double noundef %1046) #6
  %1048 = load i32, ptr %36, align 4, !tbaa !5
  %1049 = add nsw i32 %1048, 1
  %1050 = mul nsw i32 %1048, %42
  %1051 = add nsw i32 %1049, %1050
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds float, ptr %44, i64 %1052
  %1054 = load float, ptr %1053, align 4, !tbaa !18
  %1055 = fcmp oge float %1054, 0.000000e+00
  %1056 = fneg float %1054
  %1057 = select i1 %1055, float %1054, float %1056
  %1058 = fpext float %1057 to double
  %1059 = call double @sqrt(double noundef %1058) #6
  %1060 = fmul double %1047, %1059
  %1061 = fptrunc double %1060 to float
  store float %1061, ptr %38, align 4, !tbaa !18
  %.pre1973 = load float, ptr %39, align 4
  br label %1062

1062:                                             ; preds = %1036, %1031
  %1063 = phi float [ %1061, %1036 ], [ 0.000000e+00, %1031 ]
  %1064 = phi float [ %.pre1973, %1036 ], [ %1035, %1031 ]
  %1065 = fcmp oge float %1064, 0.000000e+00
  %1066 = fneg float %1064
  %1067 = select i1 %1065, float %1064, float %1066
  %1068 = fcmp oge float %1063, 0.000000e+00
  %1069 = fneg float %1063
  %1070 = select i1 %1068, float %1063, float %1069
  %1071 = fadd float %1067, %1070
  %1072 = fmul float %182, %1071
  store float %1072, ptr %25, align 4, !tbaa !18
  %1073 = fcmp oge float %1072, %187
  %1074 = select i1 %1073, float %1072, float %187
  store float %1074, ptr %30, align 4, !tbaa !18
  %1075 = load i32, ptr %36, align 4, !tbaa !5
  br i1 %.not1377, label %1076, label %1385

1076:                                             ; preds = %1062
  %1077 = load i32, ptr %37, align 4, !tbaa !5
  %1078 = load i32, ptr %3, align 4, !tbaa !5
  %1079 = mul nsw i32 %1078, %1077
  %1080 = add nsw i32 %1079, %1075
  %1081 = sext i32 %1080 to i64
  %1082 = getelementptr inbounds float, ptr %51, i64 %1081
  store float 1.000000e+00, ptr %1082, align 4, !tbaa !18
  %.not1384.not1720 = icmp slt i32 %1075, %1078
  br i1 %.not1384.not1720, label %.lr.ph1723.preheader, label %._crit_edge1724.thread

._crit_edge1724.thread:                           ; preds = %1076
  store i32 %1078, ptr %23, align 4, !tbaa !5
  br label %._crit_edge1734

.lr.ph1723.preheader:                             ; preds = %1076
  %1083 = sext i32 %1075 to i64
  %1084 = sext i32 %1079 to i64
  %wide.trip.count1930 = sext i32 %1078 to i64
  %invariant.gep2111 = getelementptr float, ptr %44, i64 %1083
  %invariant.gep2113 = getelementptr float, ptr %12, i64 %1084
  %1085 = sub nsw i64 %wide.trip.count1930, %1083
  %min.iters.check2278 = icmp ugt i64 %1085, 7
  %or.cond2397 = select i1 %min.iters.check2278, i1 %ident.check.not, i1 false
  br i1 %or.cond2397, label %vector.memcheck2274, label %.lr.ph1723.preheader2399

vector.memcheck2274:                              ; preds = %.lr.ph1723.preheader
  %1086 = shl nsw i64 %1084, 2
  %1087 = shl nsw i64 %1083, 2
  %1088 = add i64 %1011, %1086
  %1089 = add i64 %1087, %16
  %1090 = sub i64 %1088, %1089
  %diff.check2275 = icmp ult i64 %1090, 32
  br i1 %diff.check2275, label %.lr.ph1723.preheader2399, label %vector.ph2279

vector.ph2279:                                    ; preds = %vector.memcheck2274
  %n.vec2281 = and i64 %1085, -8
  %ind.end2282 = add nsw i64 %n.vec2281, %1083
  br label %vector.body2284

vector.body2284:                                  ; preds = %vector.body2284, %vector.ph2279
  %index2285 = phi i64 [ 0, %vector.ph2279 ], [ %index.next2289, %vector.body2284 ]
  %offset.idx2286 = add i64 %index2285, %1083
  %1091 = getelementptr float, ptr %invariant.gep2111, i64 %offset.idx2286
  %1092 = getelementptr i8, ptr %1091, i64 4
  %1093 = getelementptr i8, ptr %1091, i64 20
  %wide.load2287 = load <4 x float>, ptr %1092, align 4, !tbaa !18
  %wide.load2288 = load <4 x float>, ptr %1093, align 4, !tbaa !18
  %1094 = fneg <4 x float> %wide.load2287
  %1095 = fneg <4 x float> %wide.load2288
  %1096 = getelementptr float, ptr %invariant.gep2113, i64 %offset.idx2286
  %1097 = getelementptr i8, ptr %1096, i64 16
  store <4 x float> %1094, ptr %1096, align 4, !tbaa !18
  store <4 x float> %1095, ptr %1097, align 4, !tbaa !18
  %index.next2289 = add nuw i64 %index2285, 8
  %1098 = icmp eq i64 %index.next2289, %n.vec2281
  br i1 %1098, label %middle.block2276, label %vector.body2284, !llvm.loop !57

middle.block2276:                                 ; preds = %vector.body2284
  %cmp.n2290 = icmp eq i64 %1085, %n.vec2281
  br i1 %cmp.n2290, label %._crit_edge1724, label %.lr.ph1723.preheader2399

.lr.ph1723.preheader2399:                         ; preds = %middle.block2276, %vector.memcheck2274, %.lr.ph1723.preheader
  %indvars.iv1927.ph = phi i64 [ %1083, %vector.memcheck2274 ], [ %1083, %.lr.ph1723.preheader ], [ %ind.end2282, %middle.block2276 ]
  %1099 = sub nsw i64 %wide.trip.count1930, %indvars.iv1927.ph
  %xtraiter2438 = and i64 %1099, 3
  %lcmp.mod2439.not = icmp eq i64 %xtraiter2438, 0
  br i1 %lcmp.mod2439.not, label %.lr.ph1723.prol.loopexit, label %.lr.ph1723.prol

.lr.ph1723.prol:                                  ; preds = %.lr.ph1723.preheader2399, %.lr.ph1723.prol
  %indvars.iv1927.prol = phi i64 [ %indvars.iv.next1928.prol, %.lr.ph1723.prol ], [ %indvars.iv1927.ph, %.lr.ph1723.preheader2399 ]
  %prol.iter2440 = phi i64 [ %prol.iter2440.next, %.lr.ph1723.prol ], [ 0, %.lr.ph1723.preheader2399 ]
  %indvars.iv.next1928.prol = add nsw i64 %indvars.iv1927.prol, 1
  %1100 = mul nsw i64 %indvars.iv.next1928.prol, %1008
  %gep2112.prol = getelementptr float, ptr %invariant.gep2111, i64 %1100
  %1101 = load float, ptr %gep2112.prol, align 4, !tbaa !18
  %1102 = fneg float %1101
  %gep2114.prol = getelementptr float, ptr %invariant.gep2113, i64 %indvars.iv1927.prol
  store float %1102, ptr %gep2114.prol, align 4, !tbaa !18
  %prol.iter2440.next = add i64 %prol.iter2440, 1
  %prol.iter2440.cmp.not = icmp eq i64 %prol.iter2440.next, %xtraiter2438
  br i1 %prol.iter2440.cmp.not, label %.lr.ph1723.prol.loopexit, label %.lr.ph1723.prol, !llvm.loop !58

.lr.ph1723.prol.loopexit:                         ; preds = %.lr.ph1723.prol, %.lr.ph1723.preheader2399
  %indvars.iv1927.unr = phi i64 [ %indvars.iv1927.ph, %.lr.ph1723.preheader2399 ], [ %indvars.iv.next1928.prol, %.lr.ph1723.prol ]
  %1103 = sub nsw i64 %indvars.iv1927.ph, %wide.trip.count1930
  %1104 = icmp ugt i64 %1103, -4
  br i1 %1104, label %._crit_edge1724, label %.lr.ph1723

.lr.ph1723:                                       ; preds = %.lr.ph1723.prol.loopexit, %.lr.ph1723
  %indvars.iv1927 = phi i64 [ %indvars.iv.next1928.3, %.lr.ph1723 ], [ %indvars.iv1927.unr, %.lr.ph1723.prol.loopexit ]
  %indvars.iv.next1928 = add nsw i64 %indvars.iv1927, 1
  %1105 = mul nsw i64 %indvars.iv.next1928, %1008
  %gep2112 = getelementptr float, ptr %invariant.gep2111, i64 %1105
  %1106 = load float, ptr %gep2112, align 4, !tbaa !18
  %1107 = fneg float %1106
  %gep2114 = getelementptr float, ptr %invariant.gep2113, i64 %indvars.iv1927
  store float %1107, ptr %gep2114, align 4, !tbaa !18
  %indvars.iv.next1928.1 = add nsw i64 %indvars.iv1927, 2
  %1108 = mul nsw i64 %indvars.iv.next1928.1, %1008
  %gep2112.1 = getelementptr float, ptr %invariant.gep2111, i64 %1108
  %1109 = load float, ptr %gep2112.1, align 4, !tbaa !18
  %1110 = fneg float %1109
  %gep2114.1 = getelementptr float, ptr %invariant.gep2113, i64 %indvars.iv.next1928
  store float %1110, ptr %gep2114.1, align 4, !tbaa !18
  %indvars.iv.next1928.2 = add nsw i64 %indvars.iv1927, 3
  %1111 = mul nsw i64 %indvars.iv.next1928.2, %1008
  %gep2112.2 = getelementptr float, ptr %invariant.gep2111, i64 %1111
  %1112 = load float, ptr %gep2112.2, align 4, !tbaa !18
  %1113 = fneg float %1112
  %gep2114.2 = getelementptr float, ptr %invariant.gep2113, i64 %indvars.iv.next1928.1
  store float %1113, ptr %gep2114.2, align 4, !tbaa !18
  %indvars.iv.next1928.3 = add nsw i64 %indvars.iv1927, 4
  %1114 = mul nsw i64 %indvars.iv.next1928.3, %1008
  %gep2112.3 = getelementptr float, ptr %invariant.gep2111, i64 %1114
  %1115 = load float, ptr %gep2112.3, align 4, !tbaa !18
  %1116 = fneg float %1115
  %gep2114.3 = getelementptr float, ptr %invariant.gep2113, i64 %indvars.iv.next1928.2
  store float %1116, ptr %gep2114.3, align 4, !tbaa !18
  %exitcond1931.not.3 = icmp eq i64 %indvars.iv.next1928.3, %wide.trip.count1930
  br i1 %exitcond1931.not.3, label %._crit_edge1724, label %.lr.ph1723, !llvm.loop !59

._crit_edge1724:                                  ; preds = %.lr.ph1723.prol.loopexit, %.lr.ph1723, %middle.block2276
  store i32 %1078, ptr %23, align 4, !tbaa !5
  br i1 %.not1384.not1720, label %.lr.ph1733.preheader, label %._crit_edge1734

.lr.ph1733.preheader:                             ; preds = %._crit_edge1724
  %1117 = add nsw i32 %1075, 1
  %1118 = sext i32 %1075 to i64
  br label %.lr.ph1733

.lr.ph1733:                                       ; preds = %.lr.ph1733.preheader, %1294
  %1119 = phi i32 [ %1077, %.lr.ph1733.preheader ], [ %1295, %1294 ]
  %1120 = phi i32 [ %1078, %.lr.ph1733.preheader ], [ %1296, %1294 ]
  %indvars.iv1932 = phi i64 [ %1118, %.lr.ph1733.preheader ], [ %indvars.iv.next1933, %1294 ]
  %.012921730 = phi float [ %189, %.lr.ph1733.preheader ], [ %.11293, %1294 ]
  %.613151728 = phi i32 [ %1117, %.lr.ph1733.preheader ], [ %.81317, %1294 ]
  %.013211727 = phi float [ 1.000000e+00, %.lr.ph1733.preheader ], [ %.31324, %1294 ]
  %indvars1934 = trunc i64 %indvars.iv1932 to i32
  %indvars.iv.next1933 = add nsw i64 %indvars.iv1932, 1
  %indvars = trunc i64 %indvars.iv.next1933 to i32
  %1121 = sext i32 %.613151728 to i64
  %1122 = icmp slt i64 %indvars.iv.next1933, %1121
  br i1 %1122, label %1294, label %1123

1123:                                             ; preds = %.lr.ph1733
  %1124 = add nsw i64 %indvars.iv1932, 2
  %1125 = add nsw i32 %indvars1934, 2
  %1126 = sext i32 %1120 to i64
  %1127 = icmp slt i64 %indvars.iv.next1933, %1126
  br i1 %1127, label %1128, label %..thread1451_crit_edge

..thread1451_crit_edge:                           ; preds = %1123
  %.pre1984.pre = load i32, ptr %36, align 4, !tbaa !5
  br label %.thread1451

1128:                                             ; preds = %1123
  %1129 = mul nsw i64 %indvars.iv.next1933, %1008
  %1130 = getelementptr float, ptr %44, i64 %1129
  %1131 = getelementptr float, ptr %1130, i64 %1124
  %1132 = load float, ptr %1131, align 4, !tbaa !18
  %1133 = fcmp une float %1132, 0.000000e+00
  %.pre1984.pre1997 = load i32, ptr %36, align 4, !tbaa !5
  br i1 %1133, label %1134, label %.thread1451

1134:                                             ; preds = %1128
  %1135 = getelementptr float, ptr %12, i64 %indvars.iv1932
  %1136 = load float, ptr %1135, align 4, !tbaa !18
  store float %1136, ptr %25, align 4, !tbaa !18
  %1137 = getelementptr inbounds float, ptr %51, i64 %1124
  %1138 = load float, ptr %1137, align 4, !tbaa !18
  %1139 = fcmp oge float %1136, %1138
  %1140 = select i1 %1139, float %1136, float %1138
  %1141 = fcmp ogt float %1140, %.012921730
  br i1 %1141, label %1206, label %1214

.thread1451:                                      ; preds = %..thread1451_crit_edge, %1128
  %.pre1984 = phi i32 [ %.pre1984.pre, %..thread1451_crit_edge ], [ %.pre1984.pre1997, %1128 ]
  %1142 = getelementptr float, ptr %12, i64 %indvars.iv1932
  %1143 = load float, ptr %1142, align 4, !tbaa !18
  %1144 = fcmp ogt float %1143, %.012921730
  br i1 %1144, label %1145, label %1153

1145:                                             ; preds = %.thread1451
  %1146 = fdiv float 1.000000e+00, %.013211727
  store float %1146, ptr %40, align 4, !tbaa !18
  %1147 = add i32 %1120, 1
  %1148 = sub i32 %1147, %.pre1984
  store i32 %1148, ptr %24, align 4, !tbaa !5
  %1149 = mul nsw i32 %1119, %1120
  %1150 = add nsw i32 %1149, %.pre1984
  %1151 = sext i32 %1150 to i64
  %1152 = getelementptr inbounds float, ptr %51, i64 %1151
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %40, ptr noundef nonnull %1152, ptr noundef nonnull @c__1) #6
  %.pre1983 = load i32, ptr %36, align 4, !tbaa !5
  %.pre1985 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1986 = load i32, ptr %3, align 4, !tbaa !5
  br label %1153

1153:                                             ; preds = %1145, %.thread1451
  %1154 = phi i32 [ %.pre1986, %1145 ], [ %1120, %.thread1451 ]
  %1155 = phi i32 [ %.pre1985, %1145 ], [ %1119, %.thread1451 ]
  %1156 = phi i32 [ %.pre1983, %1145 ], [ %.pre1984, %.thread1451 ]
  %.11322 = phi float [ 1.000000e+00, %1145 ], [ %.013211727, %.thread1451 ]
  %1157 = sub i32 %indvars1934, %1156
  store i32 %1157, ptr %24, align 4, !tbaa !5
  %1158 = add nsw i32 %1156, 1
  %1159 = mul nsw i64 %indvars.iv.next1933, %1008
  %1160 = mul nsw i32 %42, %indvars
  %1161 = sext i32 %1158 to i64
  %1162 = getelementptr float, ptr %44, i64 %1159
  %1163 = getelementptr float, ptr %1162, i64 %1161
  %1164 = mul nsw i32 %1154, %1155
  %1165 = add nsw i32 %1164, %1158
  %1166 = sext i32 %1165 to i64
  %1167 = getelementptr inbounds float, ptr %51, i64 %1166
  %1168 = call float @sdot_(ptr noundef nonnull %24, ptr noundef %1163, ptr noundef nonnull @c__1, ptr noundef nonnull %1167, ptr noundef nonnull @c__1) #6
  %1169 = load i32, ptr %37, align 4, !tbaa !5
  %1170 = load i32, ptr %3, align 4, !tbaa !5
  %1171 = mul nsw i32 %1170, %1169
  %1172 = sext i32 %1171 to i64
  %1173 = getelementptr float, ptr %12, i64 %indvars.iv1932
  %1174 = getelementptr float, ptr %1173, i64 %1172
  %1175 = load float, ptr %1174, align 4, !tbaa !18
  %1176 = fsub float %1175, %1168
  store float %1176, ptr %1174, align 4, !tbaa !18
  %1177 = sext i32 %1160 to i64
  %1178 = getelementptr float, ptr %44, i64 %indvars.iv.next1933
  %1179 = getelementptr float, ptr %1178, i64 %1177
  call void @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull @c_b29, ptr noundef %1179, ptr noundef nonnull %5, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b29, ptr noundef nonnull %1174, ptr noundef nonnull %3, ptr noundef nonnull %39, ptr noundef nonnull @c_b17, ptr noundef nonnull %32, ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull %34, ptr noundef nonnull %27) #6
  %1180 = load float, ptr %31, align 4, !tbaa !18
  %1181 = fcmp une float %1180, 1.000000e+00
  br i1 %1181, label %1182, label %1192

1182:                                             ; preds = %1153
  %1183 = load i32, ptr %3, align 4, !tbaa !5
  %1184 = load i32, ptr %36, align 4, !tbaa !5
  %1185 = add i32 %1183, 1
  %1186 = sub i32 %1185, %1184
  store i32 %1186, ptr %24, align 4, !tbaa !5
  %1187 = load i32, ptr %37, align 4, !tbaa !5
  %1188 = mul nsw i32 %1187, %1183
  %1189 = add nsw i32 %1188, %1184
  %1190 = sext i32 %1189 to i64
  %1191 = getelementptr inbounds float, ptr %51, i64 %1190
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %1191, ptr noundef nonnull @c__1) #6
  br label %1192

1192:                                             ; preds = %1182, %1153
  %1193 = load float, ptr %32, align 16, !tbaa !18
  %1194 = load i32, ptr %37, align 4, !tbaa !5
  %1195 = load i32, ptr %3, align 4, !tbaa !5
  %1196 = mul nsw i32 %1195, %1194
  %1197 = sext i32 %1196 to i64
  %1198 = getelementptr float, ptr %12, i64 %indvars.iv1932
  %1199 = getelementptr float, ptr %1198, i64 %1197
  store float %1193, ptr %1199, align 4, !tbaa !18
  store float %1193, ptr %25, align 4, !tbaa !18
  %1200 = fcmp oge float %1193, 0.000000e+00
  %1201 = fneg float %1193
  %1202 = select i1 %1200, float %1193, float %1201
  %1203 = fcmp oge float %1202, %.11322
  %1204 = select i1 %1203, float %1202, float %.11322
  %1205 = fdiv float %189, %1204
  br label %1294

1206:                                             ; preds = %1134
  %1207 = fdiv float 1.000000e+00, %.013211727
  store float %1207, ptr %40, align 4, !tbaa !18
  %1208 = add i32 %1120, 1
  %1209 = sub i32 %1208, %.pre1984.pre1997
  store i32 %1209, ptr %24, align 4, !tbaa !5
  %1210 = mul nsw i32 %1119, %1120
  %1211 = add nsw i32 %1210, %.pre1984.pre1997
  %1212 = sext i32 %1211 to i64
  %1213 = getelementptr inbounds float, ptr %51, i64 %1212
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %40, ptr noundef nonnull %1213, ptr noundef nonnull @c__1) #6
  %.pre1987 = load i32, ptr %36, align 4, !tbaa !5
  %.pre1989 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1990 = load i32, ptr %3, align 4, !tbaa !5
  br label %1214

1214:                                             ; preds = %1206, %1134
  %1215 = phi i32 [ %.pre1990, %1206 ], [ %1120, %1134 ]
  %1216 = phi i32 [ %.pre1989, %1206 ], [ %1119, %1134 ]
  %1217 = phi i32 [ %.pre1987, %1206 ], [ %.pre1984.pre1997, %1134 ]
  %.21323 = phi float [ 1.000000e+00, %1206 ], [ %.013211727, %1134 ]
  %1218 = sub i32 %indvars1934, %1217
  store i32 %1218, ptr %24, align 4, !tbaa !5
  %1219 = add nsw i32 %1217, 1
  %1220 = mul nsw i32 %42, %indvars
  %1221 = sext i32 %1219 to i64
  %1222 = getelementptr float, ptr %44, i64 %1129
  %1223 = getelementptr float, ptr %1222, i64 %1221
  %1224 = mul nsw i32 %1215, %1216
  %1225 = add nsw i32 %1224, %1219
  %1226 = sext i32 %1225 to i64
  %1227 = getelementptr inbounds float, ptr %51, i64 %1226
  %1228 = call float @sdot_(ptr noundef nonnull %24, ptr noundef %1223, ptr noundef nonnull @c__1, ptr noundef nonnull %1227, ptr noundef nonnull @c__1) #6
  %1229 = load i32, ptr %37, align 4, !tbaa !5
  %1230 = load i32, ptr %3, align 4, !tbaa !5
  %1231 = mul nsw i32 %1230, %1229
  %1232 = sext i32 %1231 to i64
  %1233 = getelementptr float, ptr %12, i64 %indvars.iv1932
  %1234 = getelementptr float, ptr %1233, i64 %1232
  %1235 = load float, ptr %1234, align 4, !tbaa !18
  %1236 = fsub float %1235, %1228
  store float %1236, ptr %1234, align 4, !tbaa !18
  %1237 = load i32, ptr %36, align 4, !tbaa !5
  %1238 = sub i32 %indvars1934, %1237
  store i32 %1238, ptr %24, align 4, !tbaa !5
  %1239 = add nsw i32 %1237, 1
  %1240 = mul nsw i64 %1124, %1008
  %1241 = sext i32 %1239 to i64
  %1242 = getelementptr float, ptr %44, i64 %1240
  %1243 = getelementptr float, ptr %1242, i64 %1241
  %1244 = add nsw i32 %1239, %1231
  %1245 = sext i32 %1244 to i64
  %1246 = getelementptr inbounds float, ptr %51, i64 %1245
  %1247 = call float @sdot_(ptr noundef nonnull %24, ptr noundef %1243, ptr noundef nonnull @c__1, ptr noundef nonnull %1246, ptr noundef nonnull @c__1) #6
  %1248 = load i32, ptr %37, align 4, !tbaa !5
  %1249 = load i32, ptr %3, align 4, !tbaa !5
  %1250 = mul nsw i32 %1249, %1248
  %1251 = sext i32 %1250 to i64
  %1252 = getelementptr float, ptr %51, i64 %1124
  %1253 = getelementptr float, ptr %1252, i64 %1251
  %1254 = load float, ptr %1253, align 4, !tbaa !18
  %1255 = fsub float %1254, %1247
  store float %1255, ptr %1253, align 4, !tbaa !18
  %1256 = sext i32 %1220 to i64
  %1257 = getelementptr float, ptr %44, i64 %indvars.iv.next1933
  %1258 = getelementptr float, ptr %1257, i64 %1256
  %1259 = getelementptr float, ptr %12, i64 %indvars.iv1932
  %1260 = getelementptr float, ptr %1259, i64 %1251
  call void @slaln2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %30, ptr noundef nonnull @c_b29, ptr noundef %1258, ptr noundef nonnull %5, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b29, ptr noundef nonnull %1260, ptr noundef nonnull %3, ptr noundef nonnull %39, ptr noundef nonnull @c_b17, ptr noundef nonnull %32, ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull %34, ptr noundef nonnull %27) #6
  %1261 = load float, ptr %31, align 4, !tbaa !18
  %1262 = fcmp une float %1261, 1.000000e+00
  br i1 %1262, label %1263, label %1273

1263:                                             ; preds = %1214
  %1264 = load i32, ptr %3, align 4, !tbaa !5
  %1265 = load i32, ptr %36, align 4, !tbaa !5
  %1266 = add i32 %1264, 1
  %1267 = sub i32 %1266, %1265
  store i32 %1267, ptr %24, align 4, !tbaa !5
  %1268 = load i32, ptr %37, align 4, !tbaa !5
  %1269 = mul nsw i32 %1268, %1264
  %1270 = add nsw i32 %1269, %1265
  %1271 = sext i32 %1270 to i64
  %1272 = getelementptr inbounds float, ptr %51, i64 %1271
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %1272, ptr noundef nonnull @c__1) #6
  br label %1273

1273:                                             ; preds = %1263, %1214
  %1274 = load i32, ptr %37, align 4, !tbaa !5
  %1275 = load i32, ptr %3, align 4, !tbaa !5
  %1276 = mul nsw i32 %1275, %1274
  %1277 = sext i32 %1276 to i64
  %1278 = getelementptr float, ptr %12, i64 %indvars.iv1932
  %1279 = getelementptr float, ptr %1278, i64 %1277
  %1280 = load <2 x float>, ptr %32, align 16, !tbaa !18
  store <2 x float> %1280, ptr %1279, align 4, !tbaa !18
  %1281 = extractelement <2 x float> %1280, i64 0
  store float %1281, ptr %25, align 4, !tbaa !18
  %1282 = fcmp oge <2 x float> %1280, zeroinitializer
  %1283 = fneg <2 x float> %1280
  %1284 = select <2 x i1> %1282, <2 x float> %1280, <2 x float> %1283
  %1285 = extractelement <2 x float> %1284, i64 0
  %1286 = extractelement <2 x float> %1284, i64 1
  %1287 = fcmp oge float %1285, %1286
  %1288 = select i1 %1287, float %1285, float %1286
  %1289 = fcmp oge float %1288, %.21323
  %1290 = select i1 %1289, float %1288, float %.21323
  %1291 = fdiv float %189, %1290
  %1292 = trunc i64 %indvars.iv1932 to i32
  %1293 = add i32 %1292, 3
  br label %1294

1294:                                             ; preds = %.lr.ph1733, %1273, %1192
  %1295 = phi i32 [ %1119, %.lr.ph1733 ], [ %1194, %1192 ], [ %1274, %1273 ]
  %1296 = phi i32 [ %1120, %.lr.ph1733 ], [ %1195, %1192 ], [ %1275, %1273 ]
  %.31324 = phi float [ %.013211727, %.lr.ph1733 ], [ %1204, %1192 ], [ %1290, %1273 ]
  %.81317 = phi i32 [ %.613151728, %.lr.ph1733 ], [ %1125, %1192 ], [ %1293, %1273 ]
  %.11293 = phi float [ %.012921730, %.lr.ph1733 ], [ %1205, %1192 ], [ %1291, %1273 ]
  %1297 = load i32, ptr %23, align 4, !tbaa !5
  %1298 = sext i32 %1297 to i64
  %.not1385.not = icmp slt i64 %indvars.iv.next1933, %1298
  br i1 %.not1385.not, label %.lr.ph1733, label %._crit_edge1734, !llvm.loop !60

._crit_edge1734:                                  ; preds = %1294, %._crit_edge1724.thread, %._crit_edge1724
  %1299 = phi i32 [ %1078, %._crit_edge1724 ], [ %1078, %._crit_edge1724.thread ], [ %1296, %1294 ]
  %1300 = phi i32 [ %1077, %._crit_edge1724 ], [ %1077, %._crit_edge1724.thread ], [ %1295, %1294 ]
  %1301 = load i32, ptr %36, align 4, !tbaa !5
  br i1 %.not1369, label %1302, label %1343

1302:                                             ; preds = %._crit_edge1734
  %1303 = add i32 %1299, 1
  %1304 = sub i32 %1303, %1301
  store i32 %1304, ptr %23, align 4, !tbaa !5
  %1305 = mul nsw i32 %1300, %1299
  %1306 = add nsw i32 %1305, %1301
  %1307 = sext i32 %1306 to i64
  %1308 = getelementptr inbounds float, ptr %51, i64 %1307
  %1309 = mul nsw i32 %.212801796, %45
  %1310 = add nsw i32 %1301, %1309
  %1311 = sext i32 %1310 to i64
  %1312 = getelementptr inbounds float, ptr %47, i64 %1311
  call void @scopy_(ptr noundef nonnull %23, ptr noundef nonnull %1308, ptr noundef nonnull @c__1, ptr noundef %1312, ptr noundef nonnull @c__1) #6
  %1313 = load i32, ptr %3, align 4, !tbaa !5
  %1314 = load i32, ptr %36, align 4, !tbaa !5
  %1315 = add i32 %1313, 1
  %1316 = sub i32 %1315, %1314
  store i32 %1316, ptr %23, align 4, !tbaa !5
  %1317 = add nsw i32 %1314, %1309
  %1318 = sext i32 %1317 to i64
  %1319 = getelementptr inbounds float, ptr %47, i64 %1318
  %1320 = call i32 @isamax_(ptr noundef nonnull %23, ptr noundef %1319, ptr noundef nonnull @c__1) #6
  %1321 = load i32, ptr %36, align 4, !tbaa !5
  %1322 = add i32 %1321, %1309
  %1323 = add i32 %1322, -1
  %1324 = add i32 %1323, %1320
  %1325 = sext i32 %1324 to i64
  %1326 = getelementptr inbounds float, ptr %47, i64 %1325
  %1327 = load float, ptr %1326, align 4, !tbaa !18
  store float %1327, ptr %25, align 4, !tbaa !18
  %1328 = fcmp oge float %1327, 0.000000e+00
  %1329 = fneg float %1327
  %1330 = select i1 %1328, float %1327, float %1329
  %1331 = fdiv float 1.000000e+00, %1330
  store float %1331, ptr %33, align 4, !tbaa !18
  %1332 = load i32, ptr %3, align 4, !tbaa !5
  %reass.sub = sub i32 %1332, %1321
  %1333 = add i32 %reass.sub, 1
  store i32 %1333, ptr %23, align 4, !tbaa !5
  %1334 = sext i32 %1322 to i64
  %1335 = getelementptr inbounds float, ptr %47, i64 %1334
  call void @sscal_(ptr noundef nonnull %23, ptr noundef nonnull %33, ptr noundef %1335, ptr noundef nonnull @c__1) #6
  %1336 = load i32, ptr %36, align 4, !tbaa !5
  %1337 = add i32 %1336, -1
  store i32 %1337, ptr %23, align 4, !tbaa !5
  %.not1386.not1740 = icmp sgt i32 %1336, 1
  br i1 %.not1386.not1740, label %.lr.ph1743.preheader, label %.loopexit

.lr.ph1743.preheader:                             ; preds = %1302
  %1338 = add i32 %1309, 1
  %1339 = sext i32 %1338 to i64
  %1340 = shl nsw i64 %1339, 2
  %scevgep1941 = getelementptr i8, ptr %scevgep1940, i64 %1340
  %1341 = zext nneg i32 %1337 to i64
  %1342 = shl nuw nsw i64 %1341, 2
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep1941, i8 0, i64 %1342, i1 false), !tbaa !18
  br label %.loopexit

1343:                                             ; preds = %._crit_edge1734
  br i1 %1004, label %1344, label %1375

1344:                                             ; preds = %1343
  %1345 = icmp slt i32 %1301, %1299
  br i1 %1345, label %1346, label %.thread1455

1346:                                             ; preds = %1344
  %1347 = sub nsw i32 %1299, %1301
  store i32 %1347, ptr %23, align 4, !tbaa !5
  %1348 = add nsw i32 %1301, 1
  %1349 = mul nsw i32 %1348, %45
  %1350 = sext i32 %1349 to i64
  %gep1778 = getelementptr float, ptr %invariant.gep1761, i64 %1350
  %1351 = mul nsw i32 %1300, %1299
  %1352 = add nsw i32 %1351, %1348
  %1353 = sext i32 %1352 to i64
  %1354 = getelementptr inbounds float, ptr %51, i64 %1353
  %1355 = add nsw i32 %1351, %1301
  %1356 = sext i32 %1355 to i64
  %1357 = getelementptr inbounds float, ptr %51, i64 %1356
  %1358 = mul nsw i32 %1301, %45
  %1359 = sext i32 %1358 to i64
  %gep1780 = getelementptr float, ptr %invariant.gep1761, i64 %1359
  call void @sgemv_(ptr noundef nonnull @.str.10, ptr noundef nonnull %3, ptr noundef nonnull %23, ptr noundef nonnull @c_b29, ptr noundef %gep1778, ptr noundef nonnull %7, ptr noundef nonnull %1354, ptr noundef nonnull @c__1, ptr noundef nonnull %1357, ptr noundef %gep1780, ptr noundef nonnull @c__1) #6
  %.pre1991 = load i32, ptr %36, align 4, !tbaa !5
  br label %.thread1455

.thread1455:                                      ; preds = %1344, %1346
  %1360 = phi i32 [ %1301, %1344 ], [ %.pre1991, %1346 ]
  %1361 = mul nsw i32 %1360, %45
  %1362 = sext i32 %1361 to i64
  %gep1782 = getelementptr float, ptr %invariant.gep1761, i64 %1362
  %1363 = call i32 @isamax_(ptr noundef nonnull %3, ptr noundef %gep1782, ptr noundef nonnull @c__1) #6
  %1364 = load i32, ptr %36, align 4, !tbaa !5
  %1365 = mul nsw i32 %1364, %45
  %1366 = add nsw i32 %1365, %1363
  %1367 = sext i32 %1366 to i64
  %1368 = getelementptr inbounds float, ptr %47, i64 %1367
  %1369 = load float, ptr %1368, align 4, !tbaa !18
  store float %1369, ptr %25, align 4, !tbaa !18
  %1370 = fcmp oge float %1369, 0.000000e+00
  %1371 = fneg float %1369
  %1372 = select i1 %1370, float %1369, float %1371
  %1373 = fdiv float 1.000000e+00, %1372
  store float %1373, ptr %33, align 4, !tbaa !18
  %1374 = sext i32 %1365 to i64
  %gep1784 = getelementptr float, ptr %invariant.gep1761, i64 %1374
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1784, ptr noundef nonnull @c__1) #6
  br label %2076

1375:                                             ; preds = %1343
  %1376 = add i32 %1301, -1
  store i32 %1376, ptr %23, align 4, !tbaa !5
  %.not1387.not1735 = icmp sgt i32 %1301, 1
  br i1 %.not1387.not1735, label %.lr.ph1738, label %._crit_edge1739

.lr.ph1738:                                       ; preds = %1375
  %1377 = mul nsw i32 %1299, %1300
  %1378 = sext i32 %1377 to i64
  %1379 = shl nsw i64 %1378, 2
  %scevgep1935 = getelementptr i8, ptr %12, i64 %1379
  %1380 = zext nneg i32 %1376 to i64
  %1381 = shl nuw nsw i64 %1380, 2
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep1935, i8 0, i64 %1381, i1 false), !tbaa !18
  br label %._crit_edge1739

._crit_edge1739:                                  ; preds = %.lr.ph1738, %1375
  %1382 = add nsw i32 %1300, -1
  %1383 = sext i32 %1382 to i64
  %1384 = getelementptr inbounds [128 x i32], ptr %35, i64 0, i64 %1383
  store i32 0, ptr %1384, align 4, !tbaa !5
  br label %.loopexit

1385:                                             ; preds = %1062
  %1386 = add nsw i32 %1075, 1
  %1387 = mul nsw i32 %1386, %42
  %1388 = add nsw i32 %1387, %1075
  %1389 = sext i32 %1388 to i64
  %1390 = getelementptr inbounds float, ptr %44, i64 %1389
  %1391 = load float, ptr %1390, align 4, !tbaa !18
  store float %1391, ptr %25, align 4, !tbaa !18
  %1392 = fcmp oge float %1391, 0.000000e+00
  %1393 = fneg float %1391
  %1394 = select i1 %1392, float %1391, float %1393
  %1395 = mul nsw i32 %1075, %42
  %1396 = add nsw i32 %1386, %1395
  %1397 = sext i32 %1396 to i64
  %1398 = getelementptr inbounds float, ptr %44, i64 %1397
  %1399 = load float, ptr %1398, align 4, !tbaa !18
  %1400 = fcmp oge float %1399, 0.000000e+00
  %1401 = fneg float %1399
  %1402 = select i1 %1400, float %1399, float %1401
  %1403 = fcmp ult float %1394, %1402
  br i1 %1403, label %1412, label %1404

1404:                                             ; preds = %1385
  %1405 = fdiv float %1063, %1391
  %1406 = load i32, ptr %37, align 4, !tbaa !5
  %1407 = load i32, ptr %3, align 4, !tbaa !5
  %1408 = mul nsw i32 %1407, %1406
  %1409 = add nsw i32 %1408, %1075
  %1410 = sext i32 %1409 to i64
  %1411 = getelementptr inbounds float, ptr %51, i64 %1410
  store float %1405, ptr %1411, align 4, !tbaa !18
  br label %1421

1412:                                             ; preds = %1385
  %1413 = load i32, ptr %37, align 4, !tbaa !5
  %1414 = load i32, ptr %3, align 4, !tbaa !5
  %1415 = mul nsw i32 %1414, %1413
  %1416 = add nsw i32 %1415, %1075
  %1417 = sext i32 %1416 to i64
  %1418 = getelementptr inbounds float, ptr %51, i64 %1417
  store float 1.000000e+00, ptr %1418, align 4, !tbaa !18
  %1419 = load float, ptr %1398, align 4, !tbaa !18
  %1420 = fdiv float %1069, %1419
  br label %1421

1421:                                             ; preds = %1412, %1404
  %.sink2136 = phi i32 [ %1413, %1412 ], [ %1406, %1404 ]
  %.sink2135 = phi i32 [ %1414, %1412 ], [ %1407, %1404 ]
  %.sink2129 = phi float [ %1420, %1412 ], [ 1.000000e+00, %1404 ]
  %.pre-phi = phi i32 [ %1415, %1412 ], [ %1408, %1404 ]
  %1422 = add nsw i32 %.sink2136, 1
  %1423 = mul nsw i32 %1422, %.sink2135
  %1424 = add nsw i32 %1423, %1386
  %1425 = sext i32 %1424 to i64
  %1426 = getelementptr inbounds float, ptr %51, i64 %1425
  store float %.sink2129, ptr %1426, align 4, !tbaa !18
  %1427 = add nsw i32 %.pre-phi, %1386
  %1428 = sext i32 %1427 to i64
  %1429 = getelementptr inbounds float, ptr %51, i64 %1428
  store float 0.000000e+00, ptr %1429, align 4, !tbaa !18
  %1430 = add nsw i32 %1423, %1075
  %1431 = sext i32 %1430 to i64
  %1432 = getelementptr inbounds float, ptr %51, i64 %1431
  store float 0.000000e+00, ptr %1432, align 4, !tbaa !18
  %1433 = add nsw i32 %1075, 2
  %.not13781682 = icmp sgt i32 %1433, %.sink2135
  br i1 %.not13781682, label %._crit_edge1686.thread, label %.lr.ph1685

._crit_edge1686.thread:                           ; preds = %1421
  store i32 %.sink2135, ptr %23, align 4, !tbaa !5
  br label %._crit_edge1694

.lr.ph1685:                                       ; preds = %1421
  %1434 = add i32 %.pre-phi, %1075
  %1435 = sext i32 %1434 to i64
  %1436 = getelementptr float, ptr %51, i64 %1435
  %1437 = add i32 %1423, %1386
  %1438 = sext i32 %1437 to i64
  %1439 = getelementptr float, ptr %51, i64 %1438
  %1440 = sext i32 %1433 to i64
  %1441 = sext i32 %1075 to i64
  %1442 = sext i32 %1386 to i64
  %1443 = sext i32 %.pre-phi to i64
  %1444 = sext i32 %1423 to i64
  %1445 = add i32 %.sink2135, 1
  %invariant.gep2087 = getelementptr float, ptr %44, i64 %1441
  %invariant.gep2089 = getelementptr float, ptr %51, i64 %1443
  %invariant.gep2091 = getelementptr float, ptr %44, i64 %1442
  %invariant.gep2093 = getelementptr float, ptr %51, i64 %1444
  %1446 = add i32 %.sink2135, -2
  %1447 = sub i32 %1446, %1075
  %1448 = zext i32 %1447 to i64
  %1449 = add nuw nsw i64 %1448, 1
  %min.iters.check2377 = icmp ugt i32 %1447, 18
  %or.cond2398 = select i1 %min.iters.check2377, i1 %ident.check2322.not, i1 false
  br i1 %or.cond2398, label %vector.memcheck2323, label %scalar.ph2376.preheader

vector.memcheck2323:                              ; preds = %.lr.ph1685
  %1450 = add nsw i64 %1443, %1440
  %1451 = shl nsw i64 %1450, 2
  %scevgep2325 = getelementptr i8, ptr %scevgep2324, i64 %1451
  %1452 = add i32 %.sink2135, -2
  %1453 = sub i32 %1452, %1075
  %1454 = zext i32 %1453 to i64
  %1455 = shl nuw nsw i64 %1454, 2
  %1456 = getelementptr i8, ptr %12, i64 %1451
  %scevgep2326 = getelementptr i8, ptr %1456, i64 %1455
  %1457 = add nsw i64 %1444, %1440
  %1458 = shl nsw i64 %1457, 2
  %scevgep2328 = getelementptr i8, ptr %scevgep2327, i64 %1458
  %1459 = getelementptr i8, ptr %12, i64 %1458
  %scevgep2329 = getelementptr i8, ptr %1459, i64 %1455
  %1460 = shl nsw i64 %1435, 2
  %scevgep2330 = getelementptr i8, ptr %12, i64 %1460
  %1461 = add nsw i64 %1441, %1440
  %1462 = shl nsw i64 %1461, 2
  %scevgep2332 = getelementptr i8, ptr %scevgep2331, i64 %1462
  %1463 = getelementptr i8, ptr %scevgep2333, i64 %1462
  %scevgep2334 = getelementptr i8, ptr %1463, i64 %1455
  %1464 = shl nsw i64 %1438, 2
  %scevgep2335 = getelementptr i8, ptr %12, i64 %1464
  %1465 = add nsw i64 %1440, %1442
  %1466 = shl nsw i64 %1465, 2
  %scevgep2337 = getelementptr i8, ptr %scevgep2336, i64 %1466
  %1467 = getelementptr i8, ptr %scevgep2338, i64 %1466
  %scevgep2339 = getelementptr i8, ptr %1467, i64 %1455
  %bound02340 = icmp ult ptr %scevgep2325, %scevgep2329
  %bound12341 = icmp ult ptr %scevgep2328, %scevgep2326
  %found.conflict2342 = and i1 %bound02340, %bound12341
  %bound02343 = icmp ult ptr %scevgep2325, %scevgep2330
  %bound12344 = icmp ult ptr %1436, %scevgep2326
  %found.conflict2345 = and i1 %bound02343, %bound12344
  %conflict.rdx2346 = or i1 %found.conflict2342, %found.conflict2345
  %bound02347 = icmp ult ptr %scevgep2325, %scevgep2334
  %bound12348 = icmp ult ptr %scevgep2332, %scevgep2326
  %found.conflict2349 = and i1 %bound02347, %bound12348
  %conflict.rdx2350 = or i1 %conflict.rdx2346, %found.conflict2349
  %bound02351 = icmp ult ptr %scevgep2325, %scevgep2335
  %bound12352 = icmp ult ptr %1439, %scevgep2326
  %found.conflict2353 = and i1 %bound02351, %bound12352
  %conflict.rdx2354 = or i1 %conflict.rdx2350, %found.conflict2353
  %bound02355 = icmp ult ptr %scevgep2325, %scevgep2339
  %bound12356 = icmp ult ptr %scevgep2337, %scevgep2326
  %found.conflict2357 = and i1 %bound02355, %bound12356
  %conflict.rdx2358 = or i1 %conflict.rdx2354, %found.conflict2357
  %bound02359 = icmp ult ptr %scevgep2328, %scevgep2330
  %bound12360 = icmp ult ptr %1436, %scevgep2329
  %found.conflict2361 = and i1 %bound02359, %bound12360
  %conflict.rdx2362 = or i1 %conflict.rdx2358, %found.conflict2361
  %bound02363 = icmp ult ptr %scevgep2328, %scevgep2334
  %bound12364 = icmp ult ptr %scevgep2332, %scevgep2329
  %found.conflict2365 = and i1 %bound02363, %bound12364
  %conflict.rdx2366 = or i1 %conflict.rdx2362, %found.conflict2365
  %bound02367 = icmp ult ptr %scevgep2328, %scevgep2335
  %bound12368 = icmp ult ptr %1439, %scevgep2329
  %found.conflict2369 = and i1 %bound02367, %bound12368
  %conflict.rdx2370 = or i1 %conflict.rdx2366, %found.conflict2369
  %bound02371 = icmp ult ptr %scevgep2328, %scevgep2339
  %bound12372 = icmp ult ptr %scevgep2337, %scevgep2329
  %found.conflict2373 = and i1 %bound02371, %bound12372
  %conflict.rdx2374 = or i1 %conflict.rdx2370, %found.conflict2373
  br i1 %conflict.rdx2374, label %scalar.ph2376.preheader, label %vector.ph2378

vector.ph2378:                                    ; preds = %vector.memcheck2323
  %n.vec2380 = and i64 %1449, 8589934588
  %ind.end2381 = add nsw i64 %n.vec2380, %1440
  %1468 = load float, ptr %1436, align 4, !tbaa !18, !alias.scope !61
  %broadcast.splatinsert2386 = insertelement <4 x float> poison, float %1468, i64 0
  %broadcast.splat2387 = shufflevector <4 x float> %broadcast.splatinsert2386, <4 x float> poison, <4 x i32> zeroinitializer
  %1469 = fneg <4 x float> %broadcast.splat2387
  %1470 = load float, ptr %1439, align 4, !tbaa !18, !alias.scope !64
  %broadcast.splatinsert2389 = insertelement <4 x float> poison, float %1470, i64 0
  %broadcast.splat2390 = shufflevector <4 x float> %broadcast.splatinsert2389, <4 x float> poison, <4 x i32> zeroinitializer
  %1471 = fneg <4 x float> %broadcast.splat2390
  br label %vector.body2383

vector.body2383:                                  ; preds = %vector.body2383, %vector.ph2378
  %index2384 = phi i64 [ 0, %vector.ph2378 ], [ %index.next2392, %vector.body2383 ]
  %offset.idx2385 = add i64 %index2384, %1440
  %1472 = getelementptr float, ptr %invariant.gep2087, i64 %offset.idx2385
  %wide.load2388 = load <4 x float>, ptr %1472, align 4, !tbaa !18, !alias.scope !66
  %1473 = fmul <4 x float> %wide.load2388, %1469
  %1474 = getelementptr float, ptr %invariant.gep2089, i64 %offset.idx2385
  store <4 x float> %1473, ptr %1474, align 4, !tbaa !18, !alias.scope !68, !noalias !70
  %1475 = getelementptr float, ptr %invariant.gep2091, i64 %offset.idx2385
  %wide.load2391 = load <4 x float>, ptr %1475, align 4, !tbaa !18, !alias.scope !73
  %1476 = fmul <4 x float> %wide.load2391, %1471
  %1477 = getelementptr float, ptr %invariant.gep2093, i64 %offset.idx2385
  store <4 x float> %1476, ptr %1477, align 4, !tbaa !18, !alias.scope !74, !noalias !75
  %index.next2392 = add nuw i64 %index2384, 4
  %1478 = icmp eq i64 %index.next2392, %n.vec2380
  br i1 %1478, label %middle.block2375, label %vector.body2383, !llvm.loop !76

middle.block2375:                                 ; preds = %vector.body2383
  %cmp.n2393 = icmp eq i64 %1449, %n.vec2380
  br i1 %cmp.n2393, label %._crit_edge1686, label %scalar.ph2376.preheader

scalar.ph2376.preheader:                          ; preds = %middle.block2375, %vector.memcheck2323, %.lr.ph1685
  %indvars.iv1894.ph = phi i64 [ %1440, %vector.memcheck2323 ], [ %1440, %.lr.ph1685 ], [ %ind.end2381, %middle.block2375 ]
  br label %scalar.ph2376

scalar.ph2376:                                    ; preds = %scalar.ph2376.preheader, %scalar.ph2376
  %indvars.iv1894 = phi i64 [ %indvars.iv.next1895, %scalar.ph2376 ], [ %indvars.iv1894.ph, %scalar.ph2376.preheader ]
  %1479 = load float, ptr %1436, align 4, !tbaa !18
  %1480 = fneg float %1479
  %1481 = mul nsw i64 %indvars.iv1894, %1008
  %gep2088 = getelementptr float, ptr %invariant.gep2087, i64 %1481
  %1482 = load float, ptr %gep2088, align 4, !tbaa !18
  %1483 = fmul float %1482, %1480
  %gep2090 = getelementptr float, ptr %invariant.gep2089, i64 %indvars.iv1894
  store float %1483, ptr %gep2090, align 4, !tbaa !18
  %1484 = load float, ptr %1439, align 4, !tbaa !18
  %1485 = fneg float %1484
  %gep2092 = getelementptr float, ptr %invariant.gep2091, i64 %1481
  %1486 = load float, ptr %gep2092, align 4, !tbaa !18
  %1487 = fmul float %1486, %1485
  %gep2094 = getelementptr float, ptr %invariant.gep2093, i64 %indvars.iv1894
  store float %1487, ptr %gep2094, align 4, !tbaa !18
  %indvars.iv.next1895 = add nsw i64 %indvars.iv1894, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next1895 to i32
  %exitcond1897.not = icmp eq i32 %1445, %lftr.wideiv
  br i1 %exitcond1897.not, label %._crit_edge1686, label %scalar.ph2376, !llvm.loop !77

._crit_edge1686:                                  ; preds = %scalar.ph2376, %middle.block2375
  store i32 %.sink2135, ptr %23, align 4, !tbaa !5
  br i1 %.not13781682, label %._crit_edge1694, label %.lr.ph1693.preheader

.lr.ph1693.preheader:                             ; preds = %._crit_edge1686
  %1488 = sext i32 %1433 to i64
  br label %.lr.ph1693

.lr.ph1693:                                       ; preds = %.lr.ph1693.preheader, %.lr.ph1693._crit_edge
  %1489 = phi i32 [ %.sink2136, %.lr.ph1693.preheader ], [ %1814, %.lr.ph1693._crit_edge ]
  %1490 = phi i32 [ %.sink2135, %.lr.ph1693.preheader ], [ %1815, %.lr.ph1693._crit_edge ]
  %indvars.iv1898 = phi i64 [ %1488, %.lr.ph1693.preheader ], [ %.pre2015, %.lr.ph1693._crit_edge ]
  %.212941691 = phi float [ %189, %.lr.ph1693.preheader ], [ %.31295, %.lr.ph1693._crit_edge ]
  %.913181689 = phi i32 [ %1433, %.lr.ph1693.preheader ], [ %.111320, %.lr.ph1693._crit_edge ]
  %.413251688 = phi float [ 1.000000e+00, %.lr.ph1693.preheader ], [ %.71328, %.lr.ph1693._crit_edge ]
  %indvars1900 = trunc i64 %indvars.iv1898 to i32
  %1491 = sext i32 %.913181689 to i64
  %1492 = icmp slt i64 %indvars.iv1898, %1491
  %.pre2015 = add nsw i64 %indvars.iv1898, 1
  br i1 %1492, label %.lr.ph1693._crit_edge, label %1493

1493:                                             ; preds = %.lr.ph1693
  %1494 = add nsw i32 %indvars1900, 1
  %1495 = sext i32 %1490 to i64
  %1496 = icmp slt i64 %indvars.iv1898, %1495
  br i1 %1496, label %1497, label %.thread2030

1497:                                             ; preds = %1493
  %1498 = mul nsw i64 %indvars.iv1898, %1008
  %1499 = getelementptr float, ptr %44, i64 %.pre2015
  %1500 = getelementptr float, ptr %1499, i64 %1498
  %1501 = load float, ptr %1500, align 4, !tbaa !18
  %1502 = fcmp une float %1501, 0.000000e+00
  br i1 %1502, label %1503, label %.thread2030

1503:                                             ; preds = %1497
  %1504 = trunc i64 %indvars.iv1898 to i32
  %1505 = add i32 %1504, 2
  %1506 = getelementptr inbounds float, ptr %51, i64 %indvars.iv1898
  %1507 = load float, ptr %1506, align 4, !tbaa !18
  store float %1507, ptr %25, align 4, !tbaa !18
  %1508 = getelementptr float, ptr %12, i64 %indvars.iv1898
  %1509 = load float, ptr %1508, align 4, !tbaa !18
  %1510 = fcmp oge float %1507, %1509
  %1511 = select i1 %1510, float %1507, float %1509
  %1512 = fcmp ogt float %1511, %.212941691
  %.pre1975 = load i32, ptr %36, align 4, !tbaa !5
  br i1 %1512, label %1637, label %1655

.thread2030:                                      ; preds = %1493, %1497
  %1513 = getelementptr inbounds float, ptr %51, i64 %indvars.iv1898
  %1514 = load float, ptr %1513, align 4, !tbaa !18
  %1515 = fcmp ogt float %1514, %.212941691
  %.pre1979 = load i32, ptr %36, align 4, !tbaa !5
  br i1 %1515, label %1516, label %1534

1516:                                             ; preds = %.thread2030
  %1517 = fdiv float 1.000000e+00, %.413251688
  store float %1517, ptr %40, align 4, !tbaa !18
  %1518 = add i32 %1490, 1
  %1519 = sub i32 %1518, %.pre1979
  store i32 %1519, ptr %24, align 4, !tbaa !5
  %1520 = mul nsw i32 %1489, %1490
  %1521 = add nsw i32 %1520, %.pre1979
  %1522 = sext i32 %1521 to i64
  %1523 = getelementptr inbounds float, ptr %51, i64 %1522
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %40, ptr noundef nonnull %1523, ptr noundef nonnull @c__1) #6
  %1524 = load i32, ptr %3, align 4, !tbaa !5
  %1525 = load i32, ptr %36, align 4, !tbaa !5
  %1526 = add i32 %1524, 1
  %1527 = sub i32 %1526, %1525
  store i32 %1527, ptr %24, align 4, !tbaa !5
  %1528 = load i32, ptr %37, align 4, !tbaa !5
  %1529 = add nsw i32 %1528, 1
  %1530 = mul nsw i32 %1529, %1524
  %1531 = add nsw i32 %1530, %1525
  %1532 = sext i32 %1531 to i64
  %1533 = getelementptr inbounds float, ptr %51, i64 %1532
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %40, ptr noundef nonnull %1533, ptr noundef nonnull @c__1) #6
  %.pre1978 = load i32, ptr %36, align 4, !tbaa !5
  %.pre1980 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1981 = load i32, ptr %3, align 4, !tbaa !5
  br label %1534

1534:                                             ; preds = %1516, %.thread2030
  %1535 = phi i32 [ %.pre1981, %1516 ], [ %1490, %.thread2030 ]
  %1536 = phi i32 [ %.pre1980, %1516 ], [ %1489, %.thread2030 ]
  %1537 = phi i32 [ %.pre1978, %1516 ], [ %.pre1979, %.thread2030 ]
  %.51326 = phi float [ 1.000000e+00, %1516 ], [ %.413251688, %.thread2030 ]
  %1538 = add i32 %indvars1900, -2
  %1539 = sub i32 %1538, %1537
  store i32 %1539, ptr %24, align 4, !tbaa !5
  %1540 = add nsw i32 %1537, 2
  %1541 = mul nsw i64 %indvars.iv1898, %1008
  %1542 = mul nsw i32 %42, %indvars1900
  %1543 = sext i32 %1540 to i64
  %1544 = getelementptr float, ptr %44, i64 %1541
  %1545 = getelementptr float, ptr %1544, i64 %1543
  %1546 = mul nsw i32 %1535, %1536
  %1547 = add nsw i32 %1546, %1540
  %1548 = sext i32 %1547 to i64
  %1549 = getelementptr inbounds float, ptr %51, i64 %1548
  %1550 = call float @sdot_(ptr noundef nonnull %24, ptr noundef %1545, ptr noundef nonnull @c__1, ptr noundef nonnull %1549, ptr noundef nonnull @c__1) #6
  %1551 = load i32, ptr %37, align 4, !tbaa !5
  %1552 = load i32, ptr %3, align 4, !tbaa !5
  %1553 = mul nsw i32 %1552, %1551
  %1554 = sext i32 %1553 to i64
  %1555 = getelementptr float, ptr %51, i64 %indvars.iv1898
  %1556 = getelementptr float, ptr %1555, i64 %1554
  %1557 = load float, ptr %1556, align 4, !tbaa !18
  %1558 = fsub float %1557, %1550
  store float %1558, ptr %1556, align 4, !tbaa !18
  %1559 = load i32, ptr %36, align 4, !tbaa !5
  %1560 = sub i32 %1538, %1559
  store i32 %1560, ptr %24, align 4, !tbaa !5
  %1561 = add nsw i32 %1559, 2
  %1562 = sext i32 %1561 to i64
  %1563 = getelementptr float, ptr %44, i64 %1541
  %1564 = getelementptr float, ptr %1563, i64 %1562
  %1565 = add nsw i32 %1551, 1
  %1566 = mul nsw i32 %1565, %1552
  %1567 = add nsw i32 %1561, %1566
  %1568 = sext i32 %1567 to i64
  %1569 = getelementptr inbounds float, ptr %51, i64 %1568
  %1570 = call float @sdot_(ptr noundef nonnull %24, ptr noundef %1564, ptr noundef nonnull @c__1, ptr noundef nonnull %1569, ptr noundef nonnull @c__1) #6
  %1571 = load i32, ptr %37, align 4, !tbaa !5
  %1572 = add nsw i32 %1571, 1
  %1573 = load i32, ptr %3, align 4, !tbaa !5
  %1574 = mul nsw i32 %1572, %1573
  %1575 = sext i32 %1574 to i64
  %1576 = getelementptr float, ptr %51, i64 %indvars.iv1898
  %1577 = getelementptr float, ptr %1576, i64 %1575
  %1578 = load float, ptr %1577, align 4, !tbaa !18
  %1579 = fsub float %1578, %1570
  store float %1579, ptr %1577, align 4, !tbaa !18
  %1580 = load float, ptr %38, align 4, !tbaa !18
  %1581 = fneg float %1580
  store float %1581, ptr %25, align 4, !tbaa !18
  %1582 = sext i32 %1542 to i64
  %1583 = getelementptr float, ptr %44, i64 %indvars.iv1898
  %1584 = getelementptr float, ptr %1583, i64 %1582
  %1585 = mul nsw i32 %1573, %1571
  %1586 = sext i32 %1585 to i64
  %1587 = getelementptr float, ptr %51, i64 %indvars.iv1898
  %1588 = getelementptr float, ptr %1587, i64 %1586
  call void @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__1, ptr noundef nonnull @c__2, ptr noundef nonnull %30, ptr noundef nonnull @c_b29, ptr noundef %1584, ptr noundef nonnull %5, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b29, ptr noundef nonnull %1588, ptr noundef nonnull %3, ptr noundef nonnull %39, ptr noundef nonnull %25, ptr noundef nonnull %32, ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull %34, ptr noundef nonnull %27) #6
  %1589 = load float, ptr %31, align 4, !tbaa !18
  %1590 = fcmp une float %1589, 1.000000e+00
  br i1 %1590, label %1591, label %1611

1591:                                             ; preds = %1534
  %1592 = load i32, ptr %3, align 4, !tbaa !5
  %1593 = load i32, ptr %36, align 4, !tbaa !5
  %1594 = add i32 %1592, 1
  %1595 = sub i32 %1594, %1593
  store i32 %1595, ptr %24, align 4, !tbaa !5
  %1596 = load i32, ptr %37, align 4, !tbaa !5
  %1597 = mul nsw i32 %1596, %1592
  %1598 = add nsw i32 %1597, %1593
  %1599 = sext i32 %1598 to i64
  %1600 = getelementptr inbounds float, ptr %51, i64 %1599
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %1600, ptr noundef nonnull @c__1) #6
  %1601 = load i32, ptr %3, align 4, !tbaa !5
  %1602 = load i32, ptr %36, align 4, !tbaa !5
  %1603 = add i32 %1601, 1
  %1604 = sub i32 %1603, %1602
  store i32 %1604, ptr %24, align 4, !tbaa !5
  %1605 = load i32, ptr %37, align 4, !tbaa !5
  %1606 = add nsw i32 %1605, 1
  %1607 = mul nsw i32 %1606, %1601
  %1608 = add nsw i32 %1607, %1602
  %1609 = sext i32 %1608 to i64
  %1610 = getelementptr inbounds float, ptr %51, i64 %1609
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %1610, ptr noundef nonnull @c__1) #6
  br label %1611

1611:                                             ; preds = %1591, %1534
  %1612 = load float, ptr %32, align 16, !tbaa !18
  %1613 = load i32, ptr %37, align 4, !tbaa !5
  %1614 = load i32, ptr %3, align 4, !tbaa !5
  %1615 = mul nsw i32 %1614, %1613
  %1616 = sext i32 %1615 to i64
  %1617 = getelementptr float, ptr %51, i64 %indvars.iv1898
  %1618 = getelementptr float, ptr %1617, i64 %1616
  store float %1612, ptr %1618, align 4, !tbaa !18
  %1619 = load float, ptr %1001, align 8, !tbaa !18
  %1620 = add nsw i32 %1613, 1
  %1621 = mul nsw i32 %1620, %1614
  %1622 = sext i32 %1621 to i64
  %1623 = getelementptr float, ptr %51, i64 %indvars.iv1898
  %1624 = getelementptr float, ptr %1623, i64 %1622
  store float %1619, ptr %1624, align 4, !tbaa !18
  %1625 = load float, ptr %1618, align 4, !tbaa !18
  store float %1625, ptr %25, align 4, !tbaa !18
  %1626 = fcmp oge float %1625, 0.000000e+00
  %1627 = fneg float %1625
  %1628 = select i1 %1626, float %1625, float %1627
  %1629 = fcmp oge float %1619, 0.000000e+00
  %1630 = fneg float %1619
  %1631 = select i1 %1629, float %1619, float %1630
  %1632 = fcmp oge float %1628, %1631
  %1633 = select i1 %1632, float %1628, float %1631
  %1634 = fcmp oge float %1633, %.51326
  %1635 = select i1 %1634, float %1633, float %.51326
  %1636 = fdiv float %189, %1635
  br label %.lr.ph1693._crit_edge

1637:                                             ; preds = %1503
  %1638 = fdiv float 1.000000e+00, %.413251688
  store float %1638, ptr %40, align 4, !tbaa !18
  %1639 = add i32 %1490, 1
  %1640 = sub i32 %1639, %.pre1975
  store i32 %1640, ptr %24, align 4, !tbaa !5
  %1641 = mul nsw i32 %1489, %1490
  %1642 = add nsw i32 %1641, %.pre1975
  %1643 = sext i32 %1642 to i64
  %1644 = getelementptr inbounds float, ptr %51, i64 %1643
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %40, ptr noundef nonnull %1644, ptr noundef nonnull @c__1) #6
  %1645 = load i32, ptr %3, align 4, !tbaa !5
  %1646 = load i32, ptr %36, align 4, !tbaa !5
  %1647 = add i32 %1645, 1
  %1648 = sub i32 %1647, %1646
  store i32 %1648, ptr %24, align 4, !tbaa !5
  %1649 = load i32, ptr %37, align 4, !tbaa !5
  %1650 = add nsw i32 %1649, 1
  %1651 = mul nsw i32 %1650, %1645
  %1652 = add nsw i32 %1651, %1646
  %1653 = sext i32 %1652 to i64
  %1654 = getelementptr inbounds float, ptr %51, i64 %1653
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %40, ptr noundef nonnull %1654, ptr noundef nonnull @c__1) #6
  %.pre1974 = load i32, ptr %36, align 4, !tbaa !5
  %.pre1976 = load i32, ptr %37, align 4, !tbaa !5
  %.pre1977 = load i32, ptr %3, align 4, !tbaa !5
  br label %1655

1655:                                             ; preds = %1637, %1503
  %1656 = phi i32 [ %.pre1977, %1637 ], [ %1490, %1503 ]
  %1657 = phi i32 [ %.pre1976, %1637 ], [ %1489, %1503 ]
  %1658 = phi i32 [ %.pre1974, %1637 ], [ %.pre1975, %1503 ]
  %.61327 = phi float [ 1.000000e+00, %1637 ], [ %.413251688, %1503 ]
  %1659 = add i32 %indvars1900, -2
  %1660 = sub i32 %1659, %1658
  store i32 %1660, ptr %24, align 4, !tbaa !5
  %1661 = add nsw i32 %1658, 2
  %1662 = mul nsw i64 %indvars.iv1898, %1008
  %1663 = mul nsw i32 %42, %indvars1900
  %1664 = sext i32 %1661 to i64
  %1665 = getelementptr float, ptr %44, i64 %1662
  %1666 = getelementptr float, ptr %1665, i64 %1664
  %1667 = mul nsw i32 %1656, %1657
  %1668 = add nsw i32 %1667, %1661
  %1669 = sext i32 %1668 to i64
  %1670 = getelementptr inbounds float, ptr %51, i64 %1669
  %1671 = call float @sdot_(ptr noundef nonnull %24, ptr noundef %1666, ptr noundef nonnull @c__1, ptr noundef nonnull %1670, ptr noundef nonnull @c__1) #6
  %1672 = load i32, ptr %37, align 4, !tbaa !5
  %1673 = load i32, ptr %3, align 4, !tbaa !5
  %1674 = mul nsw i32 %1673, %1672
  %1675 = sext i32 %1674 to i64
  %1676 = getelementptr float, ptr %51, i64 %indvars.iv1898
  %1677 = getelementptr float, ptr %1676, i64 %1675
  %1678 = load float, ptr %1677, align 4, !tbaa !18
  %1679 = fsub float %1678, %1671
  store float %1679, ptr %1677, align 4, !tbaa !18
  %1680 = load i32, ptr %36, align 4, !tbaa !5
  %1681 = sub i32 %1659, %1680
  store i32 %1681, ptr %24, align 4, !tbaa !5
  %1682 = add nsw i32 %1680, 2
  %1683 = sext i32 %1682 to i64
  %1684 = getelementptr float, ptr %44, i64 %1662
  %1685 = getelementptr float, ptr %1684, i64 %1683
  %1686 = add nsw i32 %1672, 1
  %1687 = mul nsw i32 %1686, %1673
  %1688 = add nsw i32 %1682, %1687
  %1689 = sext i32 %1688 to i64
  %1690 = getelementptr inbounds float, ptr %51, i64 %1689
  %1691 = call float @sdot_(ptr noundef nonnull %24, ptr noundef %1685, ptr noundef nonnull @c__1, ptr noundef nonnull %1690, ptr noundef nonnull @c__1) #6
  %1692 = load i32, ptr %37, align 4, !tbaa !5
  %1693 = add nsw i32 %1692, 1
  %1694 = load i32, ptr %3, align 4, !tbaa !5
  %1695 = mul nsw i32 %1693, %1694
  %1696 = sext i32 %1695 to i64
  %1697 = getelementptr float, ptr %51, i64 %indvars.iv1898
  %1698 = getelementptr float, ptr %1697, i64 %1696
  %1699 = load float, ptr %1698, align 4, !tbaa !18
  %1700 = fsub float %1699, %1691
  store float %1700, ptr %1698, align 4, !tbaa !18
  %1701 = load i32, ptr %36, align 4, !tbaa !5
  %1702 = sub i32 %1659, %1701
  store i32 %1702, ptr %24, align 4, !tbaa !5
  %1703 = add nsw i32 %1701, 2
  %1704 = mul nsw i64 %.pre2015, %1008
  %1705 = sext i32 %1703 to i64
  %1706 = getelementptr float, ptr %44, i64 %1704
  %1707 = getelementptr float, ptr %1706, i64 %1705
  %1708 = mul nsw i32 %1694, %1692
  %1709 = add nsw i32 %1703, %1708
  %1710 = sext i32 %1709 to i64
  %1711 = getelementptr inbounds float, ptr %51, i64 %1710
  %1712 = call float @sdot_(ptr noundef nonnull %24, ptr noundef %1707, ptr noundef nonnull @c__1, ptr noundef nonnull %1711, ptr noundef nonnull @c__1) #6
  %1713 = load i32, ptr %37, align 4, !tbaa !5
  %1714 = load i32, ptr %3, align 4, !tbaa !5
  %1715 = mul nsw i32 %1714, %1713
  %1716 = sext i32 %1715 to i64
  %1717 = getelementptr float, ptr %12, i64 %indvars.iv1898
  %1718 = getelementptr float, ptr %1717, i64 %1716
  %1719 = load float, ptr %1718, align 4, !tbaa !18
  %1720 = fsub float %1719, %1712
  store float %1720, ptr %1718, align 4, !tbaa !18
  %1721 = load i32, ptr %36, align 4, !tbaa !5
  %1722 = sub i32 %1659, %1721
  store i32 %1722, ptr %24, align 4, !tbaa !5
  %1723 = add nsw i32 %1721, 2
  %1724 = sext i32 %1723 to i64
  %1725 = getelementptr float, ptr %44, i64 %1704
  %1726 = getelementptr float, ptr %1725, i64 %1724
  %1727 = add nsw i32 %1713, 1
  %1728 = mul nsw i32 %1727, %1714
  %1729 = add nsw i32 %1723, %1728
  %1730 = sext i32 %1729 to i64
  %1731 = getelementptr inbounds float, ptr %51, i64 %1730
  %1732 = call float @sdot_(ptr noundef nonnull %24, ptr noundef %1726, ptr noundef nonnull @c__1, ptr noundef nonnull %1731, ptr noundef nonnull @c__1) #6
  %1733 = load i32, ptr %37, align 4, !tbaa !5
  %1734 = add nsw i32 %1733, 1
  %1735 = load i32, ptr %3, align 4, !tbaa !5
  %1736 = mul nsw i32 %1734, %1735
  %1737 = sext i32 %1736 to i64
  %1738 = getelementptr float, ptr %12, i64 %indvars.iv1898
  %1739 = getelementptr float, ptr %1738, i64 %1737
  %1740 = load float, ptr %1739, align 4, !tbaa !18
  %1741 = fsub float %1740, %1732
  store float %1741, ptr %1739, align 4, !tbaa !18
  %1742 = load float, ptr %38, align 4, !tbaa !18
  %1743 = fneg float %1742
  store float %1743, ptr %25, align 4, !tbaa !18
  %1744 = sext i32 %1663 to i64
  %1745 = getelementptr float, ptr %44, i64 %indvars.iv1898
  %1746 = getelementptr float, ptr %1745, i64 %1744
  %1747 = mul nsw i32 %1735, %1733
  %1748 = sext i32 %1747 to i64
  %1749 = getelementptr float, ptr %51, i64 %indvars.iv1898
  %1750 = getelementptr float, ptr %1749, i64 %1748
  call void @slaln2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef nonnull %30, ptr noundef nonnull @c_b29, ptr noundef %1746, ptr noundef nonnull %5, ptr noundef nonnull @c_b29, ptr noundef nonnull @c_b29, ptr noundef nonnull %1750, ptr noundef nonnull %3, ptr noundef nonnull %39, ptr noundef nonnull %25, ptr noundef nonnull %32, ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull %34, ptr noundef nonnull %27) #6
  %1751 = load float, ptr %31, align 4, !tbaa !18
  %1752 = fcmp une float %1751, 1.000000e+00
  br i1 %1752, label %1753, label %1773

1753:                                             ; preds = %1655
  %1754 = load i32, ptr %3, align 4, !tbaa !5
  %1755 = load i32, ptr %36, align 4, !tbaa !5
  %1756 = add i32 %1754, 1
  %1757 = sub i32 %1756, %1755
  store i32 %1757, ptr %24, align 4, !tbaa !5
  %1758 = load i32, ptr %37, align 4, !tbaa !5
  %1759 = mul nsw i32 %1758, %1754
  %1760 = add nsw i32 %1759, %1755
  %1761 = sext i32 %1760 to i64
  %1762 = getelementptr inbounds float, ptr %51, i64 %1761
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %1762, ptr noundef nonnull @c__1) #6
  %1763 = load i32, ptr %3, align 4, !tbaa !5
  %1764 = load i32, ptr %36, align 4, !tbaa !5
  %1765 = add i32 %1763, 1
  %1766 = sub i32 %1765, %1764
  store i32 %1766, ptr %24, align 4, !tbaa !5
  %1767 = load i32, ptr %37, align 4, !tbaa !5
  %1768 = add nsw i32 %1767, 1
  %1769 = mul nsw i32 %1768, %1763
  %1770 = add nsw i32 %1769, %1764
  %1771 = sext i32 %1770 to i64
  %1772 = getelementptr inbounds float, ptr %51, i64 %1771
  call void @sscal_(ptr noundef nonnull %24, ptr noundef nonnull %31, ptr noundef nonnull %1772, ptr noundef nonnull @c__1) #6
  br label %1773

1773:                                             ; preds = %1753, %1655
  %1774 = load float, ptr %32, align 16
  %1775 = load i32, ptr %37, align 4, !tbaa !5
  %1776 = load i32, ptr %3, align 4, !tbaa !5
  %1777 = mul nsw i32 %1776, %1775
  %1778 = sext i32 %1777 to i64
  %1779 = getelementptr float, ptr %51, i64 %indvars.iv1898
  %1780 = getelementptr float, ptr %1779, i64 %1778
  store float %1774, ptr %1780, align 4, !tbaa !18
  %1781 = load float, ptr %1001, align 8
  %1782 = add nsw i32 %1775, 1
  %1783 = mul nsw i32 %1782, %1776
  %1784 = sext i32 %1783 to i64
  %1785 = getelementptr float, ptr %51, i64 %indvars.iv1898
  %1786 = getelementptr float, ptr %1785, i64 %1784
  store float %1781, ptr %1786, align 4, !tbaa !18
  %1787 = load float, ptr %1002, align 4
  %1788 = getelementptr float, ptr %12, i64 %indvars.iv1898
  %1789 = getelementptr float, ptr %1788, i64 %1778
  store float %1787, ptr %1789, align 4, !tbaa !18
  %1790 = load float, ptr %1003, align 4
  %1791 = getelementptr float, ptr %12, i64 %indvars.iv1898
  %1792 = getelementptr float, ptr %1791, i64 %1784
  store float %1790, ptr %1792, align 4, !tbaa !18
  %1793 = fcmp oge float %1774, 0.000000e+00
  %1794 = fneg float %1774
  %1795 = select i1 %1793, float %1774, float %1794
  %1796 = fcmp oge float %1781, 0.000000e+00
  %1797 = fneg float %1781
  %1798 = select i1 %1796, float %1781, float %1797
  %1799 = fcmp oge float %1795, %1798
  %1800 = select i1 %1799, float %1795, float %1798
  %1801 = fcmp oge float %1787, 0.000000e+00
  %1802 = fneg float %1787
  %1803 = select i1 %1801, float %1787, float %1802
  %1804 = fcmp oge float %1800, %1803
  %1805 = select i1 %1804, float %1800, float %1803
  %1806 = fcmp oge float %1790, 0.000000e+00
  %1807 = fneg float %1790
  %1808 = select i1 %1806, float %1790, float %1807
  %1809 = fcmp oge float %1805, %1808
  %1810 = select i1 %1809, float %1805, float %1808
  store float %1810, ptr %25, align 4, !tbaa !18
  %1811 = fcmp oge float %1810, %.61327
  %1812 = select i1 %1811, float %1810, float %.61327
  %1813 = fdiv float %189, %1812
  br label %.lr.ph1693._crit_edge

.lr.ph1693._crit_edge:                            ; preds = %.lr.ph1693, %1773, %1611
  %1814 = phi i32 [ %1775, %1773 ], [ %1613, %1611 ], [ %1489, %.lr.ph1693 ]
  %1815 = phi i32 [ %1776, %1773 ], [ %1614, %1611 ], [ %1490, %.lr.ph1693 ]
  %.71328 = phi float [ %1812, %1773 ], [ %1635, %1611 ], [ %.413251688, %.lr.ph1693 ]
  %.111320 = phi i32 [ %1505, %1773 ], [ %1494, %1611 ], [ %.913181689, %.lr.ph1693 ]
  %.31295 = phi float [ %1813, %1773 ], [ %1636, %1611 ], [ %.212941691, %.lr.ph1693 ]
  %1816 = load i32, ptr %23, align 4, !tbaa !5
  %1817 = sext i32 %1816 to i64
  %.not1379.not = icmp slt i64 %indvars.iv1898, %1817
  br i1 %.not1379.not, label %.lr.ph1693, label %._crit_edge1694, !llvm.loop !78

._crit_edge1694:                                  ; preds = %.lr.ph1693._crit_edge, %._crit_edge1686.thread, %._crit_edge1686
  %1818 = phi i32 [ %.sink2135, %._crit_edge1686 ], [ %.sink2135, %._crit_edge1686.thread ], [ %1815, %.lr.ph1693._crit_edge ]
  %1819 = phi i32 [ %.sink2136, %._crit_edge1686 ], [ %.sink2136, %._crit_edge1686.thread ], [ %1814, %.lr.ph1693._crit_edge ]
  %1820 = load i32, ptr %36, align 4, !tbaa !5
  br i1 %.not1369, label %1821, label %1892

1821:                                             ; preds = %._crit_edge1694
  %1822 = add i32 %1818, 1
  %1823 = sub i32 %1822, %1820
  store i32 %1823, ptr %23, align 4, !tbaa !5
  %1824 = mul nsw i32 %1819, %1818
  %1825 = add nsw i32 %1824, %1820
  %1826 = sext i32 %1825 to i64
  %1827 = getelementptr inbounds float, ptr %51, i64 %1826
  %1828 = mul nsw i32 %.212801796, %45
  %1829 = add nsw i32 %1820, %1828
  %1830 = sext i32 %1829 to i64
  %1831 = getelementptr inbounds float, ptr %47, i64 %1830
  call void @scopy_(ptr noundef nonnull %23, ptr noundef nonnull %1827, ptr noundef nonnull @c__1, ptr noundef %1831, ptr noundef nonnull @c__1) #6
  %1832 = load i32, ptr %3, align 4, !tbaa !5
  %1833 = load i32, ptr %36, align 4, !tbaa !5
  %1834 = add i32 %1832, 1
  %1835 = sub i32 %1834, %1833
  store i32 %1835, ptr %23, align 4, !tbaa !5
  %1836 = load i32, ptr %37, align 4, !tbaa !5
  %1837 = add nsw i32 %1836, 1
  %1838 = mul nsw i32 %1837, %1832
  %1839 = add nsw i32 %1838, %1833
  %1840 = sext i32 %1839 to i64
  %1841 = getelementptr inbounds float, ptr %51, i64 %1840
  %1842 = add nsw i32 %.212801796, 1
  %1843 = mul nsw i32 %1842, %45
  %1844 = add nsw i32 %1833, %1843
  %1845 = sext i32 %1844 to i64
  %1846 = getelementptr inbounds float, ptr %47, i64 %1845
  call void @scopy_(ptr noundef nonnull %23, ptr noundef nonnull %1841, ptr noundef nonnull @c__1, ptr noundef %1846, ptr noundef nonnull @c__1) #6
  %1847 = load i32, ptr %3, align 4, !tbaa !5
  %1848 = load i32, ptr %36, align 4, !tbaa !5
  %.not13801708 = icmp sgt i32 %1848, %1847
  br i1 %.not13801708, label %._crit_edge2006, label %.lr.ph1712.preheader

._crit_edge2006:                                  ; preds = %1821
  %.pre2007 = add nsw i32 %1847, 1
  br label %1864

.lr.ph1712.preheader:                             ; preds = %1821
  %1849 = sext i32 %1848 to i64
  %1850 = sext i32 %1828 to i64
  %1851 = sext i32 %1843 to i64
  %1852 = add i32 %1847, 1
  %invariant.gep2103 = getelementptr float, ptr %47, i64 %1850
  %invariant.gep2105 = getelementptr float, ptr %47, i64 %1851
  br label %.lr.ph1712

.lr.ph1712:                                       ; preds = %.lr.ph1712.preheader, %.lr.ph1712
  %indvars.iv1913 = phi i64 [ %1849, %.lr.ph1712.preheader ], [ %indvars.iv.next1914, %.lr.ph1712 ]
  %.313321709 = phi float [ 0.000000e+00, %.lr.ph1712.preheader ], [ %1863, %.lr.ph1712 ]
  %gep2104 = getelementptr float, ptr %invariant.gep2103, i64 %indvars.iv1913
  %1853 = load float, ptr %gep2104, align 4, !tbaa !18
  %1854 = fcmp oge float %1853, 0.000000e+00
  %1855 = fneg float %1853
  %1856 = select i1 %1854, float %1853, float %1855
  %gep2106 = getelementptr float, ptr %invariant.gep2105, i64 %indvars.iv1913
  %1857 = load float, ptr %gep2106, align 4, !tbaa !18
  %1858 = fcmp oge float %1857, 0.000000e+00
  %1859 = fneg float %1857
  %1860 = select i1 %1858, float %1857, float %1859
  %1861 = fadd float %1856, %1860
  %1862 = fcmp oge float %.313321709, %1861
  %1863 = select i1 %1862, float %.313321709, float %1861
  %indvars.iv.next1914 = add nsw i64 %indvars.iv1913, 1
  %lftr.wideiv1916 = trunc i64 %indvars.iv.next1914 to i32
  %exitcond1917.not = icmp eq i32 %1852, %lftr.wideiv1916
  br i1 %exitcond1917.not, label %._crit_edge1713, label %.lr.ph1712, !llvm.loop !79

._crit_edge1713:                                  ; preds = %.lr.ph1712
  store float %1853, ptr %25, align 4, !tbaa !18
  br label %1864

1864:                                             ; preds = %._crit_edge2006, %._crit_edge1713
  %.pre-phi2008 = phi i32 [ %.pre2007, %._crit_edge2006 ], [ %1852, %._crit_edge1713 ]
  %.31332.lcssa = phi float [ 0.000000e+00, %._crit_edge2006 ], [ %1863, %._crit_edge1713 ]
  %1865 = fdiv float 1.000000e+00, %.31332.lcssa
  store float %1865, ptr %33, align 4, !tbaa !18
  %1866 = sub i32 %.pre-phi2008, %1848
  store i32 %1866, ptr %23, align 4, !tbaa !5
  %1867 = add nsw i32 %1848, %1828
  %1868 = sext i32 %1867 to i64
  %1869 = getelementptr inbounds float, ptr %47, i64 %1868
  call void @sscal_(ptr noundef nonnull %23, ptr noundef nonnull %33, ptr noundef %1869, ptr noundef nonnull @c__1) #6
  %1870 = load i32, ptr %3, align 4, !tbaa !5
  %1871 = load i32, ptr %36, align 4, !tbaa !5
  %1872 = add i32 %1870, 1
  %1873 = sub i32 %1872, %1871
  store i32 %1873, ptr %23, align 4, !tbaa !5
  %1874 = add nsw i32 %1871, %1843
  %1875 = sext i32 %1874 to i64
  %1876 = getelementptr inbounds float, ptr %47, i64 %1875
  call void @sscal_(ptr noundef nonnull %23, ptr noundef nonnull %33, ptr noundef %1876, ptr noundef nonnull @c__1) #6
  %1877 = load i32, ptr %36, align 4, !tbaa !5
  %1878 = add nsw i32 %1877, -1
  store i32 %1878, ptr %23, align 4, !tbaa !5
  %.not1381.not1716 = icmp sgt i32 %1877, 1
  br i1 %.not1381.not1716, label %.lr.ph1719.preheader, label %.loopexit

.lr.ph1719.preheader:                             ; preds = %1864
  %1879 = sext i32 %1828 to i64
  %1880 = sext i32 %1843 to i64
  %wide.trip.count1925 = zext nneg i32 %1877 to i64
  %invariant.gep2107 = getelementptr float, ptr %47, i64 %1879
  %invariant.gep2109 = getelementptr float, ptr %47, i64 %1880
  %1881 = add nsw i64 %wide.trip.count1925, -1
  %min.iters.check2295 = icmp ult i32 %1877, 9
  br i1 %min.iters.check2295, label %.lr.ph1719.preheader2400, label %vector.memcheck2291

vector.memcheck2291:                              ; preds = %.lr.ph1719.preheader
  %1882 = sub nsw i64 %1880, %1879
  %1883 = and i64 %1882, 4611686018427387896
  %diff.check2292 = icmp eq i64 %1883, 0
  br i1 %diff.check2292, label %.lr.ph1719.preheader2400, label %vector.ph2296

vector.ph2296:                                    ; preds = %vector.memcheck2291
  %n.vec2298 = and i64 %1881, -8
  %ind.end2299 = or disjoint i64 %n.vec2298, 1
  br label %vector.body2301

vector.body2301:                                  ; preds = %vector.body2301, %vector.ph2296
  %index2302 = phi i64 [ 0, %vector.ph2296 ], [ %index.next2304, %vector.body2301 ]
  %offset.idx2303 = or disjoint i64 %index2302, 1
  %1884 = getelementptr float, ptr %invariant.gep2107, i64 %offset.idx2303
  %1885 = getelementptr i8, ptr %1884, i64 16
  store <4 x float> zeroinitializer, ptr %1884, align 4, !tbaa !18
  store <4 x float> zeroinitializer, ptr %1885, align 4, !tbaa !18
  %1886 = getelementptr float, ptr %invariant.gep2109, i64 %offset.idx2303
  %1887 = getelementptr i8, ptr %1886, i64 16
  store <4 x float> zeroinitializer, ptr %1886, align 4, !tbaa !18
  store <4 x float> zeroinitializer, ptr %1887, align 4, !tbaa !18
  %index.next2304 = add nuw i64 %index2302, 8
  %1888 = icmp eq i64 %index.next2304, %n.vec2298
  br i1 %1888, label %middle.block2293, label %vector.body2301, !llvm.loop !80

middle.block2293:                                 ; preds = %vector.body2301
  %cmp.n2305 = icmp eq i64 %1881, %n.vec2298
  br i1 %cmp.n2305, label %.loopexit, label %.lr.ph1719.preheader2400

.lr.ph1719.preheader2400:                         ; preds = %middle.block2293, %vector.memcheck2291, %.lr.ph1719.preheader
  %indvars.iv1922.ph = phi i64 [ 1, %vector.memcheck2291 ], [ 1, %.lr.ph1719.preheader ], [ %ind.end2299, %middle.block2293 ]
  %1889 = sub nsw i64 %wide.trip.count1925, %indvars.iv1922.ph
  %xtraiter2435 = and i64 %1889, 3
  %lcmp.mod2436.not = icmp eq i64 %xtraiter2435, 0
  br i1 %lcmp.mod2436.not, label %.lr.ph1719.prol.loopexit, label %.lr.ph1719.prol

.lr.ph1719.prol:                                  ; preds = %.lr.ph1719.preheader2400, %.lr.ph1719.prol
  %indvars.iv1922.prol = phi i64 [ %indvars.iv.next1923.prol, %.lr.ph1719.prol ], [ %indvars.iv1922.ph, %.lr.ph1719.preheader2400 ]
  %prol.iter2437 = phi i64 [ %prol.iter2437.next, %.lr.ph1719.prol ], [ 0, %.lr.ph1719.preheader2400 ]
  %gep2108.prol = getelementptr float, ptr %invariant.gep2107, i64 %indvars.iv1922.prol
  store float 0.000000e+00, ptr %gep2108.prol, align 4, !tbaa !18
  %gep2110.prol = getelementptr float, ptr %invariant.gep2109, i64 %indvars.iv1922.prol
  store float 0.000000e+00, ptr %gep2110.prol, align 4, !tbaa !18
  %indvars.iv.next1923.prol = add nuw nsw i64 %indvars.iv1922.prol, 1
  %prol.iter2437.next = add i64 %prol.iter2437, 1
  %prol.iter2437.cmp.not = icmp eq i64 %prol.iter2437.next, %xtraiter2435
  br i1 %prol.iter2437.cmp.not, label %.lr.ph1719.prol.loopexit, label %.lr.ph1719.prol, !llvm.loop !81

.lr.ph1719.prol.loopexit:                         ; preds = %.lr.ph1719.prol, %.lr.ph1719.preheader2400
  %indvars.iv1922.unr = phi i64 [ %indvars.iv1922.ph, %.lr.ph1719.preheader2400 ], [ %indvars.iv.next1923.prol, %.lr.ph1719.prol ]
  %1890 = sub nsw i64 %indvars.iv1922.ph, %wide.trip.count1925
  %1891 = icmp ugt i64 %1890, -4
  br i1 %1891, label %.loopexit, label %.lr.ph1719

.lr.ph1719:                                       ; preds = %.lr.ph1719.prol.loopexit, %.lr.ph1719
  %indvars.iv1922 = phi i64 [ %indvars.iv.next1923.3, %.lr.ph1719 ], [ %indvars.iv1922.unr, %.lr.ph1719.prol.loopexit ]
  %gep2108 = getelementptr float, ptr %invariant.gep2107, i64 %indvars.iv1922
  store float 0.000000e+00, ptr %gep2108, align 4, !tbaa !18
  %gep2110 = getelementptr float, ptr %invariant.gep2109, i64 %indvars.iv1922
  store float 0.000000e+00, ptr %gep2110, align 4, !tbaa !18
  %indvars.iv.next1923 = add nuw nsw i64 %indvars.iv1922, 1
  %gep2108.1 = getelementptr float, ptr %invariant.gep2107, i64 %indvars.iv.next1923
  store float 0.000000e+00, ptr %gep2108.1, align 4, !tbaa !18
  %gep2110.1 = getelementptr float, ptr %invariant.gep2109, i64 %indvars.iv.next1923
  store float 0.000000e+00, ptr %gep2110.1, align 4, !tbaa !18
  %indvars.iv.next1923.1 = add nuw nsw i64 %indvars.iv1922, 2
  %gep2108.2 = getelementptr float, ptr %invariant.gep2107, i64 %indvars.iv.next1923.1
  store float 0.000000e+00, ptr %gep2108.2, align 4, !tbaa !18
  %gep2110.2 = getelementptr float, ptr %invariant.gep2109, i64 %indvars.iv.next1923.1
  store float 0.000000e+00, ptr %gep2110.2, align 4, !tbaa !18
  %indvars.iv.next1923.2 = add nuw nsw i64 %indvars.iv1922, 3
  %gep2108.3 = getelementptr float, ptr %invariant.gep2107, i64 %indvars.iv.next1923.2
  store float 0.000000e+00, ptr %gep2108.3, align 4, !tbaa !18
  %gep2110.3 = getelementptr float, ptr %invariant.gep2109, i64 %indvars.iv.next1923.2
  store float 0.000000e+00, ptr %gep2110.3, align 4, !tbaa !18
  %indvars.iv.next1923.3 = add nuw nsw i64 %indvars.iv1922, 4
  %exitcond1926.not.3 = icmp eq i64 %indvars.iv.next1923.3, %wide.trip.count1925
  br i1 %exitcond1926.not.3, label %.loopexit, label %.lr.ph1719, !llvm.loop !82

1892:                                             ; preds = %._crit_edge1694
  br i1 %1004, label %1893, label %1973

1893:                                             ; preds = %1892
  %1894 = add nsw i32 %1818, -1
  %1895 = icmp slt i32 %1820, %1894
  br i1 %1895, label %1896, label %1930

1896:                                             ; preds = %1893
  %1897 = xor i32 %1820, -1
  %1898 = add i32 %1818, %1897
  store i32 %1898, ptr %23, align 4, !tbaa !5
  %1899 = add nsw i32 %1820, 2
  %1900 = mul nsw i32 %1899, %45
  %1901 = sext i32 %1900 to i64
  %gep1766 = getelementptr float, ptr %invariant.gep1761, i64 %1901
  %1902 = mul nsw i32 %1819, %1818
  %1903 = add nsw i32 %1902, %1899
  %1904 = sext i32 %1903 to i64
  %1905 = getelementptr inbounds float, ptr %51, i64 %1904
  %1906 = add nsw i32 %1902, %1820
  %1907 = sext i32 %1906 to i64
  %1908 = getelementptr inbounds float, ptr %51, i64 %1907
  %1909 = mul nsw i32 %1820, %45
  %1910 = sext i32 %1909 to i64
  %gep1768 = getelementptr float, ptr %invariant.gep1761, i64 %1910
  call void @sgemv_(ptr noundef nonnull @.str.10, ptr noundef nonnull %3, ptr noundef nonnull %23, ptr noundef nonnull @c_b29, ptr noundef %gep1766, ptr noundef nonnull %7, ptr noundef nonnull %1905, ptr noundef nonnull @c__1, ptr noundef nonnull %1908, ptr noundef %gep1768, ptr noundef nonnull @c__1) #6
  %1911 = load i32, ptr %3, align 4, !tbaa !5
  %1912 = load i32, ptr %36, align 4, !tbaa !5
  %1913 = xor i32 %1912, -1
  %1914 = add i32 %1911, %1913
  store i32 %1914, ptr %23, align 4, !tbaa !5
  %1915 = add nsw i32 %1912, 2
  %1916 = mul nsw i32 %1915, %45
  %1917 = sext i32 %1916 to i64
  %gep1770 = getelementptr float, ptr %invariant.gep1761, i64 %1917
  %1918 = load i32, ptr %37, align 4, !tbaa !5
  %1919 = add nsw i32 %1918, 1
  %1920 = mul nsw i32 %1919, %1911
  %1921 = add nsw i32 %1920, %1915
  %1922 = sext i32 %1921 to i64
  %1923 = getelementptr inbounds float, ptr %51, i64 %1922
  %1924 = add nsw i32 %1912, 1
  %1925 = add nsw i32 %1920, %1924
  %1926 = sext i32 %1925 to i64
  %1927 = getelementptr inbounds float, ptr %51, i64 %1926
  %1928 = mul nsw i32 %1924, %45
  %1929 = sext i32 %1928 to i64
  %gep1772 = getelementptr float, ptr %invariant.gep1761, i64 %1929
  call void @sgemv_(ptr noundef nonnull @.str.10, ptr noundef nonnull %3, ptr noundef nonnull %23, ptr noundef nonnull @c_b29, ptr noundef %gep1770, ptr noundef nonnull %7, ptr noundef nonnull %1923, ptr noundef nonnull @c__1, ptr noundef nonnull %1927, ptr noundef %gep1772, ptr noundef nonnull @c__1) #6
  br label %1948

1930:                                             ; preds = %1893
  %1931 = mul nsw i32 %1819, %1818
  %1932 = add nsw i32 %1931, %1820
  %1933 = sext i32 %1932 to i64
  %1934 = getelementptr inbounds float, ptr %51, i64 %1933
  %1935 = mul nsw i32 %1820, %45
  %1936 = sext i32 %1935 to i64
  %gep1762 = getelementptr float, ptr %invariant.gep1761, i64 %1936
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %1934, ptr noundef %gep1762, ptr noundef nonnull @c__1) #6
  %1937 = load i32, ptr %36, align 4, !tbaa !5
  %1938 = add nsw i32 %1937, 1
  %1939 = load i32, ptr %37, align 4, !tbaa !5
  %1940 = add nsw i32 %1939, 1
  %1941 = load i32, ptr %3, align 4, !tbaa !5
  %1942 = mul nsw i32 %1940, %1941
  %1943 = add nsw i32 %1942, %1938
  %1944 = sext i32 %1943 to i64
  %1945 = getelementptr inbounds float, ptr %51, i64 %1944
  %1946 = mul nsw i32 %1938, %45
  %1947 = sext i32 %1946 to i64
  %gep1764 = getelementptr float, ptr %invariant.gep1761, i64 %1947
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %1945, ptr noundef %gep1764, ptr noundef nonnull @c__1) #6
  br label %1948

1948:                                             ; preds = %1930, %1896
  %1949 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %1949, ptr %23, align 4, !tbaa !5
  %.not13831700 = icmp slt i32 %1949, 1
  %.pre1982 = load i32, ptr %36, align 4, !tbaa !5
  %.pre2009 = mul nsw i32 %.pre1982, %45
  br i1 %.not13831700, label %._crit_edge2005, label %.lr.ph1704

._crit_edge2005:                                  ; preds = %1948
  %.pre2011 = sext i32 %.pre2009 to i64
  br label %1967

.lr.ph1704:                                       ; preds = %1948
  %1950 = add nsw i32 %.pre1982, 1
  %1951 = mul nsw i32 %1950, %45
  %1952 = sext i32 %.pre2009 to i64
  %1953 = sext i32 %1951 to i64
  %1954 = add nuw i32 %1949, 1
  %wide.trip.count1911 = zext i32 %1954 to i64
  %invariant.gep2099 = getelementptr float, ptr %47, i64 %1952
  %invariant.gep2101 = getelementptr float, ptr %47, i64 %1953
  br label %1955

1955:                                             ; preds = %.lr.ph1704, %1955
  %indvars.iv1908 = phi i64 [ 1, %.lr.ph1704 ], [ %indvars.iv.next1909, %1955 ]
  %.413331701 = phi float [ 0.000000e+00, %.lr.ph1704 ], [ %1966, %1955 ]
  %gep2100 = getelementptr float, ptr %invariant.gep2099, i64 %indvars.iv1908
  %1956 = load float, ptr %gep2100, align 4, !tbaa !18
  %1957 = fcmp oge float %1956, 0.000000e+00
  %1958 = fneg float %1956
  %1959 = select i1 %1957, float %1956, float %1958
  %gep2102 = getelementptr float, ptr %invariant.gep2101, i64 %indvars.iv1908
  %1960 = load float, ptr %gep2102, align 4, !tbaa !18
  %1961 = fcmp oge float %1960, 0.000000e+00
  %1962 = fneg float %1960
  %1963 = select i1 %1961, float %1960, float %1962
  %1964 = fadd float %1959, %1963
  %1965 = fcmp oge float %.413331701, %1964
  %1966 = select i1 %1965, float %.413331701, float %1964
  %indvars.iv.next1909 = add nuw nsw i64 %indvars.iv1908, 1
  %exitcond1912.not = icmp eq i64 %indvars.iv.next1909, %wide.trip.count1911
  br i1 %exitcond1912.not, label %._crit_edge1705, label %1955, !llvm.loop !83

._crit_edge1705:                                  ; preds = %1955
  store float %1956, ptr %25, align 4, !tbaa !18
  br label %1967

1967:                                             ; preds = %._crit_edge2005, %._crit_edge1705
  %.pre-phi2012 = phi i64 [ %.pre2011, %._crit_edge2005 ], [ %1952, %._crit_edge1705 ]
  %.41333.lcssa = phi float [ 0.000000e+00, %._crit_edge2005 ], [ %1966, %._crit_edge1705 ]
  %1968 = fdiv float 1.000000e+00, %.41333.lcssa
  store float %1968, ptr %33, align 4, !tbaa !18
  %gep1774 = getelementptr float, ptr %invariant.gep1761, i64 %.pre-phi2012
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1774, ptr noundef nonnull @c__1) #6
  %1969 = load i32, ptr %36, align 4, !tbaa !5
  %1970 = add nsw i32 %1969, 1
  %1971 = mul nsw i32 %1970, %45
  %1972 = sext i32 %1971 to i64
  %gep1776 = getelementptr float, ptr %invariant.gep1761, i64 %1972
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1776, ptr noundef nonnull @c__1) #6
  br label %.loopexit

1973:                                             ; preds = %1892
  %1974 = add nsw i32 %1820, -1
  store i32 %1974, ptr %23, align 4, !tbaa !5
  %.not1382.not1695 = icmp sgt i32 %1820, 1
  br i1 %.not1382.not1695, label %.lr.ph1698, label %.._crit_edge1699_crit_edge

.._crit_edge1699_crit_edge:                       ; preds = %1973
  %.pre2013 = add nsw i32 %1819, 1
  br label %._crit_edge1699

.lr.ph1698:                                       ; preds = %1973
  %1975 = mul nsw i32 %1818, %1819
  %1976 = add nsw i32 %1819, 1
  %1977 = mul nsw i32 %1976, %1818
  %1978 = sext i32 %1975 to i64
  %1979 = sext i32 %1977 to i64
  %wide.trip.count1906 = zext nneg i32 %1820 to i64
  %invariant.gep2095 = getelementptr float, ptr %51, i64 %1978
  %invariant.gep2097 = getelementptr float, ptr %51, i64 %1979
  %1980 = add nsw i64 %wide.trip.count1906, -1
  %min.iters.check2310 = icmp ult i32 %1820, 9
  br i1 %min.iters.check2310, label %scalar.ph2309.preheader, label %vector.memcheck2306

vector.memcheck2306:                              ; preds = %.lr.ph1698
  %1981 = sub nsw i64 %1979, %1978
  %1982 = and i64 %1981, 4611686018427387896
  %diff.check2307 = icmp eq i64 %1982, 0
  br i1 %diff.check2307, label %scalar.ph2309.preheader, label %vector.ph2311

vector.ph2311:                                    ; preds = %vector.memcheck2306
  %n.vec2313 = and i64 %1980, -8
  %ind.end2314 = or disjoint i64 %n.vec2313, 1
  br label %vector.body2316

vector.body2316:                                  ; preds = %vector.body2316, %vector.ph2311
  %index2317 = phi i64 [ 0, %vector.ph2311 ], [ %index.next2319, %vector.body2316 ]
  %offset.idx2318 = or disjoint i64 %index2317, 1
  %1983 = getelementptr float, ptr %invariant.gep2095, i64 %offset.idx2318
  %1984 = getelementptr i8, ptr %1983, i64 16
  store <4 x float> zeroinitializer, ptr %1983, align 4, !tbaa !18
  store <4 x float> zeroinitializer, ptr %1984, align 4, !tbaa !18
  %1985 = getelementptr float, ptr %invariant.gep2097, i64 %offset.idx2318
  %1986 = getelementptr i8, ptr %1985, i64 16
  store <4 x float> zeroinitializer, ptr %1985, align 4, !tbaa !18
  store <4 x float> zeroinitializer, ptr %1986, align 4, !tbaa !18
  %index.next2319 = add nuw i64 %index2317, 8
  %1987 = icmp eq i64 %index.next2319, %n.vec2313
  br i1 %1987, label %middle.block2308, label %vector.body2316, !llvm.loop !84

middle.block2308:                                 ; preds = %vector.body2316
  %cmp.n2320 = icmp eq i64 %1980, %n.vec2313
  br i1 %cmp.n2320, label %._crit_edge1699, label %scalar.ph2309.preheader

scalar.ph2309.preheader:                          ; preds = %middle.block2308, %vector.memcheck2306, %.lr.ph1698
  %indvars.iv1903.ph = phi i64 [ 1, %vector.memcheck2306 ], [ 1, %.lr.ph1698 ], [ %ind.end2314, %middle.block2308 ]
  %1988 = sub nsw i64 %wide.trip.count1906, %indvars.iv1903.ph
  %xtraiter2432 = and i64 %1988, 3
  %lcmp.mod2433.not = icmp eq i64 %xtraiter2432, 0
  br i1 %lcmp.mod2433.not, label %scalar.ph2309.prol.loopexit, label %scalar.ph2309.prol

scalar.ph2309.prol:                               ; preds = %scalar.ph2309.preheader, %scalar.ph2309.prol
  %indvars.iv1903.prol = phi i64 [ %indvars.iv.next1904.prol, %scalar.ph2309.prol ], [ %indvars.iv1903.ph, %scalar.ph2309.preheader ]
  %prol.iter2434 = phi i64 [ %prol.iter2434.next, %scalar.ph2309.prol ], [ 0, %scalar.ph2309.preheader ]
  %gep2096.prol = getelementptr float, ptr %invariant.gep2095, i64 %indvars.iv1903.prol
  store float 0.000000e+00, ptr %gep2096.prol, align 4, !tbaa !18
  %gep2098.prol = getelementptr float, ptr %invariant.gep2097, i64 %indvars.iv1903.prol
  store float 0.000000e+00, ptr %gep2098.prol, align 4, !tbaa !18
  %indvars.iv.next1904.prol = add nuw nsw i64 %indvars.iv1903.prol, 1
  %prol.iter2434.next = add i64 %prol.iter2434, 1
  %prol.iter2434.cmp.not = icmp eq i64 %prol.iter2434.next, %xtraiter2432
  br i1 %prol.iter2434.cmp.not, label %scalar.ph2309.prol.loopexit, label %scalar.ph2309.prol, !llvm.loop !85

scalar.ph2309.prol.loopexit:                      ; preds = %scalar.ph2309.prol, %scalar.ph2309.preheader
  %indvars.iv1903.unr = phi i64 [ %indvars.iv1903.ph, %scalar.ph2309.preheader ], [ %indvars.iv.next1904.prol, %scalar.ph2309.prol ]
  %1989 = sub nsw i64 %indvars.iv1903.ph, %wide.trip.count1906
  %1990 = icmp ugt i64 %1989, -4
  br i1 %1990, label %._crit_edge1699, label %scalar.ph2309

scalar.ph2309:                                    ; preds = %scalar.ph2309.prol.loopexit, %scalar.ph2309
  %indvars.iv1903 = phi i64 [ %indvars.iv.next1904.3, %scalar.ph2309 ], [ %indvars.iv1903.unr, %scalar.ph2309.prol.loopexit ]
  %gep2096 = getelementptr float, ptr %invariant.gep2095, i64 %indvars.iv1903
  store float 0.000000e+00, ptr %gep2096, align 4, !tbaa !18
  %gep2098 = getelementptr float, ptr %invariant.gep2097, i64 %indvars.iv1903
  store float 0.000000e+00, ptr %gep2098, align 4, !tbaa !18
  %indvars.iv.next1904 = add nuw nsw i64 %indvars.iv1903, 1
  %gep2096.1 = getelementptr float, ptr %invariant.gep2095, i64 %indvars.iv.next1904
  store float 0.000000e+00, ptr %gep2096.1, align 4, !tbaa !18
  %gep2098.1 = getelementptr float, ptr %invariant.gep2097, i64 %indvars.iv.next1904
  store float 0.000000e+00, ptr %gep2098.1, align 4, !tbaa !18
  %indvars.iv.next1904.1 = add nuw nsw i64 %indvars.iv1903, 2
  %gep2096.2 = getelementptr float, ptr %invariant.gep2095, i64 %indvars.iv.next1904.1
  store float 0.000000e+00, ptr %gep2096.2, align 4, !tbaa !18
  %gep2098.2 = getelementptr float, ptr %invariant.gep2097, i64 %indvars.iv.next1904.1
  store float 0.000000e+00, ptr %gep2098.2, align 4, !tbaa !18
  %indvars.iv.next1904.2 = add nuw nsw i64 %indvars.iv1903, 3
  %gep2096.3 = getelementptr float, ptr %invariant.gep2095, i64 %indvars.iv.next1904.2
  store float 0.000000e+00, ptr %gep2096.3, align 4, !tbaa !18
  %gep2098.3 = getelementptr float, ptr %invariant.gep2097, i64 %indvars.iv.next1904.2
  store float 0.000000e+00, ptr %gep2098.3, align 4, !tbaa !18
  %indvars.iv.next1904.3 = add nuw nsw i64 %indvars.iv1903, 4
  %exitcond1907.not.3 = icmp eq i64 %indvars.iv.next1904.3, %wide.trip.count1906
  br i1 %exitcond1907.not.3, label %._crit_edge1699, label %scalar.ph2309, !llvm.loop !86

._crit_edge1699:                                  ; preds = %scalar.ph2309.prol.loopexit, %scalar.ph2309, %middle.block2308, %.._crit_edge1699_crit_edge
  %.pre-phi2014 = phi i32 [ %.pre2013, %.._crit_edge1699_crit_edge ], [ %1976, %middle.block2308 ], [ %1976, %scalar.ph2309 ], [ %1976, %scalar.ph2309.prol.loopexit ]
  %1991 = add nsw i32 %1819, -1
  %1992 = sext i32 %1991 to i64
  %1993 = getelementptr inbounds [128 x i32], ptr %35, i64 0, i64 %1992
  store i32 1, ptr %1993, align 4, !tbaa !5
  %1994 = sext i32 %1819 to i64
  %1995 = getelementptr inbounds [128 x i32], ptr %35, i64 0, i64 %1994
  store i32 -1, ptr %1995, align 4, !tbaa !5
  store i32 %.pre-phi2014, ptr %37, align 4, !tbaa !5
  br label %.loopexit

.loopexit:                                        ; preds = %.lr.ph1719.prol.loopexit, %.lr.ph1719, %middle.block2293, %.lr.ph1743.preheader, %1864, %1302, %._crit_edge1699, %1967, %._crit_edge1739
  br i1 %1005, label %1996, label %2076

1996:                                             ; preds = %.loopexit
  %1997 = load i32, ptr %36, align 4
  %not..not1377 = xor i1 %.not1377, true
  %1998 = zext i1 %not..not1377 to i32
  %.11277 = add nsw i32 %1997, %1998
  %1999 = load i32, ptr %37, align 4, !tbaa !5
  %.not1388 = icmp sge i32 %1999, %1006
  %.pre1992 = load i32, ptr %3, align 4, !tbaa !5
  %2000 = icmp eq i32 %.11277, %.pre1992
  %or.cond2137 = select i1 %.not1388, i1 true, i1 %2000
  br i1 %or.cond2137, label %2001, label %2074

2001:                                             ; preds = %1996
  %2002 = sub i32 %1999, %.11277
  %2003 = add i32 %2002, %.pre1992
  store i32 %2003, ptr %23, align 4, !tbaa !5
  %2004 = sub nsw i32 %.11277, %1999
  %2005 = add nsw i32 %2004, 1
  %2006 = mul nsw i32 %2005, %45
  %2007 = sext i32 %2006 to i64
  %gep1786 = getelementptr float, ptr %invariant.gep1761, i64 %2007
  %2008 = add nsw i32 %.pre1992, %2005
  %2009 = sext i32 %2008 to i64
  %2010 = getelementptr inbounds float, ptr %51, i64 %2009
  %2011 = mul nsw i32 %.pre1992, %1007
  %2012 = sext i32 %2011 to i64
  %gep1788 = getelementptr float, ptr %12, i64 %2012
  call void @sgemm_(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.10, ptr noundef nonnull %3, ptr noundef nonnull %37, ptr noundef nonnull %23, ptr noundef nonnull @c_b29, ptr noundef %gep1786, ptr noundef nonnull %7, ptr noundef nonnull %2010, ptr noundef nonnull %3, ptr noundef nonnull @c_b17, ptr noundef %gep1788, ptr noundef nonnull %3) #6
  %2013 = load i32, ptr %37, align 4, !tbaa !5
  store i32 %2013, ptr %23, align 4, !tbaa !5
  %.not13891756 = icmp slt i32 %2013, 1
  br i1 %.not13891756, label %._crit_edge1760, label %.lr.ph1759

.lr.ph1759:                                       ; preds = %2001, %2059
  %indvars.iv1952 = phi i64 [ %indvars.iv.next1953, %2059 ], [ 1, %2001 ]
  %2014 = add nsw i64 %indvars.iv1952, -1
  %2015 = getelementptr inbounds [128 x i32], ptr %35, i64 0, i64 %2014
  %2016 = load i32, ptr %2015, align 4, !tbaa !5
  switch i32 %2016, label %.lr.ph1759._crit_edge [
    i32 0, label %2017
    i32 1, label %2034
  ]

.lr.ph1759._crit_edge:                            ; preds = %.lr.ph1759
  %.pre1993 = load i32, ptr %3, align 4, !tbaa !5
  br label %2059

2017:                                             ; preds = %.lr.ph1759
  %2018 = add nuw nsw i64 %indvars.iv1952, %1010
  %2019 = load i32, ptr %3, align 4, !tbaa !5
  %2020 = sext i32 %2019 to i64
  %2021 = mul nsw i64 %2018, %2020
  %gep1753 = getelementptr float, ptr %12, i64 %2021
  %2022 = call i32 @isamax_(ptr noundef nonnull %3, ptr noundef %gep1753, ptr noundef nonnull @c__1) #6
  %2023 = load i32, ptr %3, align 4, !tbaa !5
  %2024 = trunc nsw i64 %2018 to i32
  %2025 = mul nsw i32 %2023, %2024
  %2026 = add nsw i32 %2025, %2022
  %2027 = sext i32 %2026 to i64
  %2028 = getelementptr inbounds float, ptr %51, i64 %2027
  %2029 = load float, ptr %2028, align 4, !tbaa !18
  store float %2029, ptr %25, align 4, !tbaa !18
  %2030 = fcmp oge float %2029, 0.000000e+00
  %2031 = fneg float %2029
  %2032 = select i1 %2030, float %2029, float %2031
  %2033 = fdiv float 1.000000e+00, %2032
  store float %2033, ptr %33, align 4, !tbaa !18
  br label %2059

2034:                                             ; preds = %.lr.ph1759
  %2035 = load i32, ptr %3, align 4, !tbaa !5
  store i32 %2035, ptr %24, align 4, !tbaa !5
  %.not13901744 = icmp slt i32 %2035, 1
  br i1 %.not13901744, label %2057, label %.lr.ph1748

.lr.ph1748:                                       ; preds = %2034
  %2036 = add nuw nsw i64 %indvars.iv1952, %1010
  %2037 = trunc nsw i64 %2036 to i32
  %2038 = mul nuw nsw i32 %2035, %2037
  %2039 = trunc i64 %2036 to i32
  %2040 = add i32 %2039, 1
  %2041 = mul nuw nsw i32 %2035, %2040
  %2042 = zext i32 %2038 to i64
  %2043 = zext i32 %2041 to i64
  %2044 = add nuw i32 %2035, 1
  %wide.trip.count1950 = zext i32 %2044 to i64
  %invariant.gep2115 = getelementptr inbounds float, ptr %51, i64 %2042
  %invariant.gep2117 = getelementptr inbounds float, ptr %51, i64 %2043
  br label %2045

2045:                                             ; preds = %.lr.ph1748, %2045
  %indvars.iv1946 = phi i64 [ 1, %.lr.ph1748 ], [ %indvars.iv.next1947, %2045 ]
  %.513341745 = phi float [ 0.000000e+00, %.lr.ph1748 ], [ %2056, %2045 ]
  %gep2116 = getelementptr inbounds float, ptr %invariant.gep2115, i64 %indvars.iv1946
  %2046 = load float, ptr %gep2116, align 4, !tbaa !18
  %2047 = fcmp oge float %2046, 0.000000e+00
  %2048 = fneg float %2046
  %2049 = select i1 %2047, float %2046, float %2048
  %gep2118 = getelementptr inbounds float, ptr %invariant.gep2117, i64 %indvars.iv1946
  %2050 = load float, ptr %gep2118, align 4, !tbaa !18
  %2051 = fcmp oge float %2050, 0.000000e+00
  %2052 = fneg float %2050
  %2053 = select i1 %2051, float %2050, float %2052
  %2054 = fadd float %2049, %2053
  %2055 = fcmp oge float %.513341745, %2054
  %2056 = select i1 %2055, float %.513341745, float %2054
  %indvars.iv.next1947 = add nuw nsw i64 %indvars.iv1946, 1
  %exitcond1951.not = icmp eq i64 %indvars.iv.next1947, %wide.trip.count1950
  br i1 %exitcond1951.not, label %._crit_edge1749, label %2045, !llvm.loop !87

._crit_edge1749:                                  ; preds = %2045
  store float %2046, ptr %25, align 4, !tbaa !18
  br label %2057

2057:                                             ; preds = %._crit_edge1749, %2034
  %.51334.lcssa = phi float [ %2056, %._crit_edge1749 ], [ 0.000000e+00, %2034 ]
  %2058 = fdiv float 1.000000e+00, %.51334.lcssa
  store float %2058, ptr %33, align 4, !tbaa !18
  br label %2059

2059:                                             ; preds = %.lr.ph1759._crit_edge, %2057, %2017
  %2060 = phi i32 [ %.pre1993, %.lr.ph1759._crit_edge ], [ %2035, %2057 ], [ %2023, %2017 ]
  %2061 = add nuw nsw i64 %indvars.iv1952, %1010
  %2062 = sext i32 %2060 to i64
  %2063 = mul nsw i64 %2061, %2062
  %gep1755 = getelementptr float, ptr %12, i64 %2063
  call void @sscal_(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1755, ptr noundef nonnull @c__1) #6
  %indvars.iv.next1953 = add nuw nsw i64 %indvars.iv1952, 1
  %2064 = load i32, ptr %23, align 4, !tbaa !5
  %2065 = sext i32 %2064 to i64
  %.not1389.not = icmp slt i64 %indvars.iv1952, %2065
  br i1 %.not1389.not, label %.lr.ph1759, label %._crit_edge1760.loopexit, !llvm.loop !88

._crit_edge1760.loopexit:                         ; preds = %2059
  %.pre1994 = load i32, ptr %37, align 4, !tbaa !5
  br label %._crit_edge1760

._crit_edge1760:                                  ; preds = %._crit_edge1760.loopexit, %2001
  %2066 = phi i32 [ %.pre1994, %._crit_edge1760.loopexit ], [ %2013, %2001 ]
  %2067 = load i32, ptr %3, align 4, !tbaa !5
  %2068 = mul nsw i32 %2067, %1007
  %2069 = sext i32 %2068 to i64
  %gep1790 = getelementptr float, ptr %12, i64 %2069
  %2070 = add i32 %.11277, 1
  %2071 = sub i32 %2070, %2066
  %2072 = mul nsw i32 %2071, %45
  %2073 = sext i32 %2072 to i64
  %gep1792 = getelementptr float, ptr %invariant.gep1761, i64 %2073
  call void @slacpy_(ptr noundef nonnull @.str.7, ptr noundef nonnull %3, ptr noundef nonnull %37, ptr noundef %gep1790, ptr noundef nonnull %3, ptr noundef %gep1792, ptr noundef nonnull %7) #6
  store i32 1, ptr %37, align 4, !tbaa !5
  br label %2076

2074:                                             ; preds = %1996
  %2075 = add nsw i32 %1999, 1
  store i32 %2075, ptr %37, align 4, !tbaa !5
  br label %2076

2076:                                             ; preds = %.thread1455, %._crit_edge1760, %2074, %.loopexit
  %not..not13771460 = xor i1 %.not1377, true
  %spec.select1415 = zext i1 %not..not13771460 to i32
  %spec.select1416.v = select i1 %.not1377, i32 1, i32 2
  %spec.select1416 = add nsw i32 %spec.select1416.v, %.212801796
  %.pre1995 = load i32, ptr %36, align 4, !tbaa !5
  %.pre1996 = load i32, ptr %22, align 4, !tbaa !5
  br label %2077

2077:                                             ; preds = %2076, %1012, %1027
  %2078 = phi i32 [ %1013, %1027 ], [ %1013, %1012 ], [ %.pre1996, %2076 ]
  %2079 = phi i32 [ %storemerge13731794, %1027 ], [ %storemerge13731794, %1012 ], [ %.pre1995, %2076 ]
  %.5 = phi i32 [ %.4, %1027 ], [ -1, %1012 ], [ %spec.select1415, %2076 ]
  %.3 = phi i32 [ %.212801796, %1027 ], [ %.212801796, %1012 ], [ %spec.select1416, %2076 ]
  %2080 = add nsw i32 %2079, 1
  store i32 %2080, ptr %36, align 4, !tbaa !5
  %.not1374.not = icmp slt i32 %2079, %2078
  br i1 %.not1374.not, label %1012, label %.loopexit1491, !llvm.loop !89

.loopexit1491:                                    ; preds = %2077, %998, %.loopexit1495, %165, %164, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %35) #6
  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 16, 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 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 2, 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 8, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #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

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

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

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

declare void @slaset_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr 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 void @sgemm_(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 @slacpy_(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: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smin.i32(i32, i32) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.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 = !{!"any pointer", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = distinct !{!12, !13, !14, !15}
!13 = !{!"llvm.loop.mustprogress"}
!14 = !{!"llvm.loop.isvectorized", i32 1}
!15 = !{!"llvm.loop.unroll.runtime.disable"}
!16 = distinct !{!16, !13, !14}
!17 = distinct !{!17, !13}
!18 = !{!19, !19, i64 0}
!19 = !{!"float", !7, i64 0}
!20 = distinct !{!20, !13}
!21 = distinct !{!21, !13}
!22 = distinct !{!22, !13}
!23 = distinct !{!23, !24}
!24 = !{!"llvm.loop.unroll.disable"}
!25 = distinct !{!25, !13, !14, !15}
!26 = distinct !{!26, !13, !14}
!27 = distinct !{!27, !13}
!28 = !{!29}
!29 = distinct !{!29, !30}
!30 = distinct !{!30, !"LVerDomain"}
!31 = !{!32}
!32 = distinct !{!32, !30}
!33 = !{!34}
!34 = distinct !{!34, !30}
!35 = !{!36}
!36 = distinct !{!36, !30}
!37 = !{!38, !29, !34, !32, !39}
!38 = distinct !{!38, !30}
!39 = distinct !{!39, !30}
!40 = !{!39}
!41 = !{!38}
!42 = !{!29, !34, !32, !39}
!43 = distinct !{!43, !13, !14, !15}
!44 = distinct !{!44, !13, !14}
!45 = distinct !{!45, !13}
!46 = distinct !{!46, !13}
!47 = distinct !{!47, !13, !14, !15}
!48 = distinct !{!48, !24}
!49 = distinct !{!49, !13, !14}
!50 = distinct !{!50, !13}
!51 = distinct !{!51, !13, !14, !15}
!52 = distinct !{!52, !24}
!53 = distinct !{!53, !13, !14}
!54 = distinct !{!54, !13}
!55 = distinct !{!55, !13}
!56 = distinct !{!56, !13}
!57 = distinct !{!57, !13, !14, !15}
!58 = distinct !{!58, !24}
!59 = distinct !{!59, !13, !14}
!60 = distinct !{!60, !13}
!61 = !{!62}
!62 = distinct !{!62, !63}
!63 = distinct !{!63, !"LVerDomain"}
!64 = !{!65}
!65 = distinct !{!65, !63}
!66 = !{!67}
!67 = distinct !{!67, !63}
!68 = !{!69}
!69 = distinct !{!69, !63}
!70 = !{!71, !62, !67, !65, !72}
!71 = distinct !{!71, !63}
!72 = distinct !{!72, !63}
!73 = !{!72}
!74 = !{!71}
!75 = !{!62, !67, !65, !72}
!76 = distinct !{!76, !13, !14, !15}
!77 = distinct !{!77, !13, !14}
!78 = distinct !{!78, !13}
!79 = distinct !{!79, !13}
!80 = distinct !{!80, !13, !14, !15}
!81 = distinct !{!81, !24}
!82 = distinct !{!82, !13, !14}
!83 = distinct !{!83, !13}
!84 = distinct !{!84, !13, !14, !15}
!85 = distinct !{!85, !24}
!86 = distinct !{!86, !13, !14}
!87 = distinct !{!87, !13}
!88 = distinct !{!88, !13}
!89 = distinct !{!89, !13}


; 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,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass