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

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

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

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

113:                                              ; preds = %14
  %114 = load i64, ptr %72, align 8, !tbaa !9
  %115 = icmp ne i64 %114, 0
  br label %116

116:                                              ; preds = %113, %14
  %117 = phi i1 [ true, %14 ], [ %115, %113 ]
  %118 = zext i1 %117 to i32
  %119 = sext i32 %118 to i64
  store i64 %119, ptr %77, align 8, !tbaa !9
  %120 = load ptr, ptr %16, align 8, !tbaa !5
  %121 = call i64 @lsame_(ptr noundef %120, ptr noundef @.str.2)
  %122 = icmp ne i64 %121, 0
  br i1 %122, label %126, label %123

123:                                              ; preds = %116
  %124 = load i64, ptr %72, align 8, !tbaa !9
  %125 = icmp ne i64 %124, 0
  br label %126

126:                                              ; preds = %123, %116
  %127 = phi i1 [ true, %116 ], [ %125, %123 ]
  %128 = zext i1 %127 to i32
  %129 = sext i32 %128 to i64
  store i64 %129, ptr %71, align 8, !tbaa !9
  %130 = load ptr, ptr %17, align 8, !tbaa !5
  %131 = call i64 @lsame_(ptr noundef %130, ptr noundef @.str.3)
  store i64 %131, ptr %61, align 8, !tbaa !9
  %132 = load ptr, ptr %17, align 8, !tbaa !5
  %133 = call i64 @lsame_(ptr noundef %132, ptr noundef @.str)
  store i64 %133, ptr %66, align 8, !tbaa !9
  %134 = load ptr, ptr %17, align 8, !tbaa !5
  %135 = call i64 @lsame_(ptr noundef %134, ptr noundef @.str.4)
  store i64 %135, ptr %74, align 8, !tbaa !9
  %136 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 0, ptr %136, align 8, !tbaa !9
  %137 = load i64, ptr %77, align 8, !tbaa !9
  %138 = icmp ne i64 %137, 0
  br i1 %138, label %144, label %139

139:                                              ; preds = %126
  %140 = load i64, ptr %71, align 8, !tbaa !9
  %141 = icmp ne i64 %140, 0
  br i1 %141, label %144, label %142

142:                                              ; preds = %139
  %143 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -1, ptr %143, align 8, !tbaa !9
  br label %309

144:                                              ; preds = %139, %126
  %145 = load i64, ptr %61, align 8, !tbaa !9
  %146 = icmp ne i64 %145, 0
  br i1 %146, label %155, label %147

147:                                              ; preds = %144
  %148 = load i64, ptr %66, align 8, !tbaa !9
  %149 = icmp ne i64 %148, 0
  br i1 %149, label %155, label %150

150:                                              ; preds = %147
  %151 = load i64, ptr %74, align 8, !tbaa !9
  %152 = icmp ne i64 %151, 0
  br i1 %152, label %155, label %153

153:                                              ; preds = %150
  %154 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -2, ptr %154, align 8, !tbaa !9
  br label %308

155:                                              ; preds = %150, %147, %144
  %156 = load ptr, ptr %19, align 8, !tbaa !5
  %157 = load i64, ptr %156, align 8, !tbaa !9
  %158 = icmp slt i64 %157, 0
  br i1 %158, label %159, label %161

159:                                              ; preds = %155
  %160 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -4, ptr %160, align 8, !tbaa !9
  br label %307

161:                                              ; preds = %155
  %162 = load ptr, ptr %21, align 8, !tbaa !5
  %163 = load i64, ptr %162, align 8, !tbaa !9
  %164 = load ptr, ptr %19, align 8, !tbaa !5
  %165 = load i64, ptr %164, align 8, !tbaa !9
  %166 = icmp sge i64 1, %165
  br i1 %166, label %167, label %168

167:                                              ; preds = %161
  br label %171

168:                                              ; preds = %161
  %169 = load ptr, ptr %19, align 8, !tbaa !5
  %170 = load i64, ptr %169, align 8, !tbaa !9
  br label %171

171:                                              ; preds = %168, %167
  %172 = phi i64 [ 1, %167 ], [ %170, %168 ]
  %173 = icmp slt i64 %163, %172
  br i1 %173, label %174, label %176

174:                                              ; preds = %171
  %175 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -6, ptr %175, align 8, !tbaa !9
  br label %306

176:                                              ; preds = %171
  %177 = load ptr, ptr %23, align 8, !tbaa !5
  %178 = load i64, ptr %177, align 8, !tbaa !9
  %179 = icmp slt i64 %178, 1
  br i1 %179, label %189, label %180

180:                                              ; preds = %176
  %181 = load i64, ptr %71, align 8, !tbaa !9
  %182 = icmp ne i64 %181, 0
  br i1 %182, label %183, label %191

183:                                              ; preds = %180
  %184 = load ptr, ptr %23, align 8, !tbaa !5
  %185 = load i64, ptr %184, align 8, !tbaa !9
  %186 = load ptr, ptr %19, align 8, !tbaa !5
  %187 = load i64, ptr %186, align 8, !tbaa !9
  %188 = icmp slt i64 %185, %187
  br i1 %188, label %189, label %191

189:                                              ; preds = %183, %176
  %190 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -8, ptr %190, align 8, !tbaa !9
  br label %305

191:                                              ; preds = %183, %180
  %192 = load ptr, ptr %25, align 8, !tbaa !5
  %193 = load i64, ptr %192, align 8, !tbaa !9
  %194 = icmp slt i64 %193, 1
  br i1 %194, label %204, label %195

195:                                              ; preds = %191
  %196 = load i64, ptr %77, align 8, !tbaa !9
  %197 = icmp ne i64 %196, 0
  br i1 %197, label %198, label %206

198:                                              ; preds = %195
  %199 = load ptr, ptr %25, align 8, !tbaa !5
  %200 = load i64, ptr %199, align 8, !tbaa !9
  %201 = load ptr, ptr %19, align 8, !tbaa !5
  %202 = load i64, ptr %201, align 8, !tbaa !9
  %203 = icmp slt i64 %200, %202
  br i1 %203, label %204, label %206

204:                                              ; preds = %198, %191
  %205 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -10, ptr %205, align 8, !tbaa !9
  br label %304

206:                                              ; preds = %198, %195
  %207 = load i64, ptr %74, align 8, !tbaa !9
  %208 = icmp ne i64 %207, 0
  br i1 %208, label %209, label %291

209:                                              ; preds = %206
  %210 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 0, ptr %210, align 8, !tbaa !9
  store i64 0, ptr %60, align 8, !tbaa !9
  %211 = load ptr, ptr %19, align 8, !tbaa !5
  %212 = load i64, ptr %211, align 8, !tbaa !9
  store i64 %212, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %44, align 8, !tbaa !9
  br label %213

213:                                              ; preds = %287, %209
  %214 = load i64, ptr %44, align 8, !tbaa !9
  %215 = load i64, ptr %36, align 8, !tbaa !9
  %216 = icmp sle i64 %214, %215
  br i1 %216, label %217, label %290

217:                                              ; preds = %213
  %218 = load i64, ptr %60, align 8, !tbaa !9
  %219 = icmp ne i64 %218, 0
  br i1 %219, label %220, label %224

220:                                              ; preds = %217
  store i64 0, ptr %60, align 8, !tbaa !9
  %221 = load ptr, ptr %18, align 8, !tbaa !5
  %222 = load i64, ptr %44, align 8, !tbaa !9
  %223 = getelementptr inbounds i64, ptr %221, i64 %222
  store i64 0, ptr %223, align 8, !tbaa !9
  br label %286

224:                                              ; preds = %217
  %225 = load i64, ptr %44, align 8, !tbaa !9
  %226 = load ptr, ptr %19, align 8, !tbaa !5
  %227 = load i64, ptr %226, align 8, !tbaa !9
  %228 = icmp slt i64 %225, %227
  br i1 %228, label %229, label %273

229:                                              ; preds = %224
  %230 = load ptr, ptr %20, align 8, !tbaa !5
  %231 = load i64, ptr %44, align 8, !tbaa !9
  %232 = add nsw i64 %231, 1
  %233 = load i64, ptr %44, align 8, !tbaa !9
  %234 = load i64, ptr %30, align 8, !tbaa !9
  %235 = mul nsw i64 %233, %234
  %236 = add nsw i64 %232, %235
  %237 = getelementptr inbounds float, ptr %230, i64 %236
  %238 = load float, ptr %237, align 4, !tbaa !11
  %239 = fcmp oeq float %238, 0.000000e+00
  br i1 %239, label %240, label %251

240:                                              ; preds = %229
  %241 = load ptr, ptr %18, align 8, !tbaa !5
  %242 = load i64, ptr %44, align 8, !tbaa !9
  %243 = getelementptr inbounds i64, ptr %241, i64 %242
  %244 = load i64, ptr %243, align 8, !tbaa !9
  %245 = icmp ne i64 %244, 0
  br i1 %245, label %246, label %250

246:                                              ; preds = %240
  %247 = load ptr, ptr %27, align 8, !tbaa !5
  %248 = load i64, ptr %247, align 8, !tbaa !9
  %249 = add nsw i64 %248, 1
  store i64 %249, ptr %247, align 8, !tbaa !9
  br label %250

250:                                              ; preds = %246, %240
  br label %272

251:                                              ; preds = %229
  store i64 1, ptr %60, align 8, !tbaa !9
  %252 = load ptr, ptr %18, align 8, !tbaa !5
  %253 = load i64, ptr %44, align 8, !tbaa !9
  %254 = getelementptr inbounds i64, ptr %252, i64 %253
  %255 = load i64, ptr %254, align 8, !tbaa !9
  %256 = icmp ne i64 %255, 0
  br i1 %256, label %264, label %257

257:                                              ; preds = %251
  %258 = load ptr, ptr %18, align 8, !tbaa !5
  %259 = load i64, ptr %44, align 8, !tbaa !9
  %260 = add nsw i64 %259, 1
  %261 = getelementptr inbounds i64, ptr %258, i64 %260
  %262 = load i64, ptr %261, align 8, !tbaa !9
  %263 = icmp ne i64 %262, 0
  br i1 %263, label %264, label %271

264:                                              ; preds = %257, %251
  %265 = load ptr, ptr %18, align 8, !tbaa !5
  %266 = load i64, ptr %44, align 8, !tbaa !9
  %267 = getelementptr inbounds i64, ptr %265, i64 %266
  store i64 1, ptr %267, align 8, !tbaa !9
  %268 = load ptr, ptr %27, align 8, !tbaa !5
  %269 = load i64, ptr %268, align 8, !tbaa !9
  %270 = add nsw i64 %269, 2
  store i64 %270, ptr %268, align 8, !tbaa !9
  br label %271

271:                                              ; preds = %264, %257
  br label %272

272:                                              ; preds = %271, %250
  br label %285

273:                                              ; preds = %224
  %274 = load ptr, ptr %18, align 8, !tbaa !5
  %275 = load ptr, ptr %19, align 8, !tbaa !5
  %276 = load i64, ptr %275, align 8, !tbaa !9
  %277 = getelementptr inbounds i64, ptr %274, i64 %276
  %278 = load i64, ptr %277, align 8, !tbaa !9
  %279 = icmp ne i64 %278, 0
  br i1 %279, label %280, label %284

280:                                              ; preds = %273
  %281 = load ptr, ptr %27, align 8, !tbaa !5
  %282 = load i64, ptr %281, align 8, !tbaa !9
  %283 = add nsw i64 %282, 1
  store i64 %283, ptr %281, align 8, !tbaa !9
  br label %284

284:                                              ; preds = %280, %273
  br label %285

285:                                              ; preds = %284, %272
  br label %286

286:                                              ; preds = %285, %220
  br label %287

287:                                              ; preds = %286
  %288 = load i64, ptr %44, align 8, !tbaa !9
  %289 = add nsw i64 %288, 1
  store i64 %289, ptr %44, align 8, !tbaa !9
  br label %213, !llvm.loop !13

290:                                              ; preds = %213
  br label %295

291:                                              ; preds = %206
  %292 = load ptr, ptr %19, align 8, !tbaa !5
  %293 = load i64, ptr %292, align 8, !tbaa !9
  %294 = load ptr, ptr %27, align 8, !tbaa !5
  store i64 %293, ptr %294, align 8, !tbaa !9
  br label %295

295:                                              ; preds = %291, %290
  %296 = load ptr, ptr %26, align 8, !tbaa !5
  %297 = load i64, ptr %296, align 8, !tbaa !9
  %298 = load ptr, ptr %27, align 8, !tbaa !5
  %299 = load i64, ptr %298, align 8, !tbaa !9
  %300 = icmp slt i64 %297, %299
  br i1 %300, label %301, label %303

301:                                              ; preds = %295
  %302 = load ptr, ptr %29, align 8, !tbaa !5
  store i64 -11, ptr %302, align 8, !tbaa !9
  br label %303

303:                                              ; preds = %301, %295
  br label %304

304:                                              ; preds = %303, %204
  br label %305

305:                                              ; preds = %304, %189
  br label %306

306:                                              ; preds = %305, %174
  br label %307

307:                                              ; preds = %306, %159
  br label %308

308:                                              ; preds = %307, %153
  br label %309

309:                                              ; preds = %308, %142
  %310 = load ptr, ptr %29, align 8, !tbaa !5
  %311 = load i64, ptr %310, align 8, !tbaa !9
  %312 = icmp ne i64 %311, 0
  br i1 %312, label %313, label %318

313:                                              ; preds = %309
  %314 = load ptr, ptr %29, align 8, !tbaa !5
  %315 = load i64, ptr %314, align 8, !tbaa !9
  %316 = sub nsw i64 0, %315
  store i64 %316, ptr %36, align 8, !tbaa !9
  %317 = call i32 @xerbla_(ptr noundef @.str.5, ptr noundef %36)
  store i32 0, ptr %15, align 4
  store i32 1, ptr %79, align 4
  br label %3652

318:                                              ; preds = %309
  %319 = load ptr, ptr %19, align 8, !tbaa !5
  %320 = load i64, ptr %319, align 8, !tbaa !9
  %321 = icmp eq i64 %320, 0
  br i1 %321, label %322, label %323

322:                                              ; preds = %318
  store i32 0, ptr %15, align 4
  store i32 1, ptr %79, align 4
  br label %3652

323:                                              ; preds = %318
  %324 = call double @slamch_(ptr noundef @.str.6)
  %325 = fptrunc double %324 to float
  store float %325, ptr %63, align 4, !tbaa !11
  %326 = load float, ptr %63, align 4, !tbaa !11
  %327 = fdiv float 1.000000e+00, %326
  store float %327, ptr %64, align 4, !tbaa !11
  %328 = call i32 @slabad_(ptr noundef %63, ptr noundef %64)
  %329 = call double @slamch_(ptr noundef @.str.7)
  %330 = fptrunc double %329 to float
  store float %330, ptr %57, align 4, !tbaa !11
  %331 = load float, ptr %63, align 4, !tbaa !11
  %332 = load ptr, ptr %19, align 8, !tbaa !5
  %333 = load i64, ptr %332, align 8, !tbaa !9
  %334 = sitofp i64 %333 to float
  %335 = load float, ptr %57, align 4, !tbaa !11
  %336 = fdiv float %334, %335
  %337 = fmul float %331, %336
  store float %337, ptr %78, align 4, !tbaa !11
  %338 = load float, ptr %57, align 4, !tbaa !11
  %339 = fsub float 1.000000e+00, %338
  %340 = load float, ptr %78, align 4, !tbaa !11
  %341 = fdiv float %339, %340
  store float %341, ptr %76, align 4, !tbaa !11
  %342 = load ptr, ptr %28, align 8, !tbaa !5
  %343 = getelementptr inbounds float, ptr %342, i64 1
  store float 0.000000e+00, ptr %343, align 4, !tbaa !11
  %344 = load ptr, ptr %19, align 8, !tbaa !5
  %345 = load i64, ptr %344, align 8, !tbaa !9
  store i64 %345, ptr %36, align 8, !tbaa !9
  store i64 2, ptr %44, align 8, !tbaa !9
  br label %346

346:                                              ; preds = %390, %323
  %347 = load i64, ptr %44, align 8, !tbaa !9
  %348 = load i64, ptr %36, align 8, !tbaa !9
  %349 = icmp sle i64 %347, %348
  br i1 %349, label %350, label %393

350:                                              ; preds = %346
  %351 = load ptr, ptr %28, align 8, !tbaa !5
  %352 = load i64, ptr %44, align 8, !tbaa !9
  %353 = getelementptr inbounds float, ptr %351, i64 %352
  store float 0.000000e+00, ptr %353, align 4, !tbaa !11
  %354 = load i64, ptr %44, align 8, !tbaa !9
  %355 = sub nsw i64 %354, 1
  store i64 %355, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %43, align 8, !tbaa !9
  br label %356

356:                                              ; preds = %386, %350
  %357 = load i64, ptr %43, align 8, !tbaa !9
  %358 = load i64, ptr %37, align 8, !tbaa !9
  %359 = icmp sle i64 %357, %358
  br i1 %359, label %360, label %389

360:                                              ; preds = %356
  %361 = load ptr, ptr %20, align 8, !tbaa !5
  %362 = load i64, ptr %43, align 8, !tbaa !9
  %363 = load i64, ptr %44, align 8, !tbaa !9
  %364 = load i64, ptr %30, align 8, !tbaa !9
  %365 = mul nsw i64 %363, %364
  %366 = add nsw i64 %362, %365
  %367 = getelementptr inbounds float, ptr %361, i64 %366
  %368 = load float, ptr %367, align 4, !tbaa !11
  store float %368, ptr %39, align 4, !tbaa !11
  %369 = load float, ptr %39, align 4, !tbaa !11
  %370 = fcmp oge float %369, 0.000000e+00
  br i1 %370, label %371, label %373

371:                                              ; preds = %360
  %372 = load float, ptr %39, align 4, !tbaa !11
  br label %376

373:                                              ; preds = %360
  %374 = load float, ptr %39, align 4, !tbaa !11
  %375 = fneg float %374
  br label %376

376:                                              ; preds = %373, %371
  %377 = phi float [ %372, %371 ], [ %375, %373 ]
  %378 = fpext float %377 to double
  %379 = load ptr, ptr %28, align 8, !tbaa !5
  %380 = load i64, ptr %44, align 8, !tbaa !9
  %381 = getelementptr inbounds float, ptr %379, i64 %380
  %382 = load float, ptr %381, align 4, !tbaa !11
  %383 = fpext float %382 to double
  %384 = fadd double %383, %378
  %385 = fptrunc double %384 to float
  store float %385, ptr %381, align 4, !tbaa !11
  br label %386

386:                                              ; preds = %376
  %387 = load i64, ptr %43, align 8, !tbaa !9
  %388 = add nsw i64 %387, 1
  store i64 %388, ptr %43, align 8, !tbaa !9
  br label %356, !llvm.loop !15

389:                                              ; preds = %356
  br label %390

390:                                              ; preds = %389
  %391 = load i64, ptr %44, align 8, !tbaa !9
  %392 = add nsw i64 %391, 1
  store i64 %392, ptr %44, align 8, !tbaa !9
  br label %346, !llvm.loop !16

393:                                              ; preds = %346
  %394 = load ptr, ptr %19, align 8, !tbaa !5
  %395 = load i64, ptr %394, align 8, !tbaa !9
  %396 = shl i64 %395, 1
  store i64 %396, ptr %49, align 8, !tbaa !9
  %397 = load i64, ptr %77, align 8, !tbaa !9
  %398 = icmp ne i64 %397, 0
  br i1 %398, label %399, label %1780

399:                                              ; preds = %393
  store i64 0, ptr %52, align 8, !tbaa !9
  %400 = load ptr, ptr %27, align 8, !tbaa !5
  %401 = load i64, ptr %400, align 8, !tbaa !9
  store i64 %401, ptr %53, align 8, !tbaa !9
  %402 = load ptr, ptr %19, align 8, !tbaa !5
  %403 = load i64, ptr %402, align 8, !tbaa !9
  store i64 %403, ptr %51, align 8, !tbaa !9
  br label %404

404:                                              ; preds = %1776, %399
  %405 = load i64, ptr %51, align 8, !tbaa !9
  %406 = icmp sge i64 %405, 1
  br i1 %406, label %407, label %1779

407:                                              ; preds = %404
  %408 = load i64, ptr %52, align 8, !tbaa !9
  %409 = icmp eq i64 %408, 1
  br i1 %409, label %410, label %411

410:                                              ; preds = %407
  br label %1767

411:                                              ; preds = %407
  %412 = load i64, ptr %51, align 8, !tbaa !9
  %413 = icmp eq i64 %412, 1
  br i1 %413, label %414, label %415

414:                                              ; preds = %411
  br label %428

415:                                              ; preds = %411
  %416 = load ptr, ptr %20, align 8, !tbaa !5
  %417 = load i64, ptr %51, align 8, !tbaa !9
  %418 = load i64, ptr %51, align 8, !tbaa !9
  %419 = sub nsw i64 %418, 1
  %420 = load i64, ptr %30, align 8, !tbaa !9
  %421 = mul nsw i64 %419, %420
  %422 = add nsw i64 %417, %421
  %423 = getelementptr inbounds float, ptr %416, i64 %422
  %424 = load float, ptr %423, align 4, !tbaa !11
  %425 = fcmp oeq float %424, 0.000000e+00
  br i1 %425, label %426, label %427

426:                                              ; preds = %415
  br label %428

427:                                              ; preds = %415
  store i64 -1, ptr %52, align 8, !tbaa !9
  br label %428

428:                                              ; preds = %427, %426, %414
  %429 = load i64, ptr %74, align 8, !tbaa !9
  %430 = icmp ne i64 %429, 0
  br i1 %430, label %431, label %452

431:                                              ; preds = %428
  %432 = load i64, ptr %52, align 8, !tbaa !9
  %433 = icmp eq i64 %432, 0
  br i1 %433, label %434, label %442

434:                                              ; preds = %431
  %435 = load ptr, ptr %18, align 8, !tbaa !5
  %436 = load i64, ptr %51, align 8, !tbaa !9
  %437 = getelementptr inbounds i64, ptr %435, i64 %436
  %438 = load i64, ptr %437, align 8, !tbaa !9
  %439 = icmp ne i64 %438, 0
  br i1 %439, label %441, label %440

440:                                              ; preds = %434
  br label %1767

441:                                              ; preds = %434
  br label %451

442:                                              ; preds = %431
  %443 = load ptr, ptr %18, align 8, !tbaa !5
  %444 = load i64, ptr %51, align 8, !tbaa !9
  %445 = sub nsw i64 %444, 1
  %446 = getelementptr inbounds i64, ptr %443, i64 %445
  %447 = load i64, ptr %446, align 8, !tbaa !9
  %448 = icmp ne i64 %447, 0
  br i1 %448, label %450, label %449

449:                                              ; preds = %442
  br label %1767

450:                                              ; preds = %442
  br label %451

451:                                              ; preds = %450, %441
  br label %452

452:                                              ; preds = %451, %428
  %453 = load ptr, ptr %20, align 8, !tbaa !5
  %454 = load i64, ptr %51, align 8, !tbaa !9
  %455 = load i64, ptr %51, align 8, !tbaa !9
  %456 = load i64, ptr %30, align 8, !tbaa !9
  %457 = mul nsw i64 %455, %456
  %458 = add nsw i64 %454, %457
  %459 = getelementptr inbounds float, ptr %453, i64 %458
  %460 = load float, ptr %459, align 4, !tbaa !11
  store float %460, ptr %55, align 4, !tbaa !11
  store float 0.000000e+00, ptr %54, align 4, !tbaa !11
  %461 = load i64, ptr %52, align 8, !tbaa !9
  %462 = icmp ne i64 %461, 0
  br i1 %462, label %463, label %506

463:                                              ; preds = %452
  %464 = load ptr, ptr %20, align 8, !tbaa !5
  %465 = load i64, ptr %51, align 8, !tbaa !9
  %466 = load i64, ptr %51, align 8, !tbaa !9
  %467 = sub nsw i64 %466, 1
  %468 = load i64, ptr %30, align 8, !tbaa !9
  %469 = mul nsw i64 %467, %468
  %470 = add nsw i64 %465, %469
  %471 = getelementptr inbounds float, ptr %464, i64 %470
  %472 = load float, ptr %471, align 4, !tbaa !11
  store float %472, ptr %39, align 4, !tbaa !11
  %473 = load float, ptr %39, align 4, !tbaa !11
  %474 = fcmp oge float %473, 0.000000e+00
  br i1 %474, label %475, label %477

475:                                              ; preds = %463
  %476 = load float, ptr %39, align 4, !tbaa !11
  br label %480

477:                                              ; preds = %463
  %478 = load float, ptr %39, align 4, !tbaa !11
  %479 = fneg float %478
  br label %480

480:                                              ; preds = %477, %475
  %481 = phi float [ %476, %475 ], [ %479, %477 ]
  %482 = fpext float %481 to double
  %483 = call double @sqrt(double noundef %482) #4
  %484 = load ptr, ptr %20, align 8, !tbaa !5
  %485 = load i64, ptr %51, align 8, !tbaa !9
  %486 = sub nsw i64 %485, 1
  %487 = load i64, ptr %51, align 8, !tbaa !9
  %488 = load i64, ptr %30, align 8, !tbaa !9
  %489 = mul nsw i64 %487, %488
  %490 = add nsw i64 %486, %489
  %491 = getelementptr inbounds float, ptr %484, i64 %490
  %492 = load float, ptr %491, align 4, !tbaa !11
  store float %492, ptr %40, align 4, !tbaa !11
  %493 = load float, ptr %40, align 4, !tbaa !11
  %494 = fcmp oge float %493, 0.000000e+00
  br i1 %494, label %495, label %497

495:                                              ; preds = %480
  %496 = load float, ptr %40, align 4, !tbaa !11
  br label %500

497:                                              ; preds = %480
  %498 = load float, ptr %40, align 4, !tbaa !11
  %499 = fneg float %498
  br label %500

500:                                              ; preds = %497, %495
  %501 = phi float [ %496, %495 ], [ %499, %497 ]
  %502 = fpext float %501 to double
  %503 = call double @sqrt(double noundef %502) #4
  %504 = fmul double %483, %503
  %505 = fptrunc double %504 to float
  store float %505, ptr %54, align 4, !tbaa !11
  br label %506

506:                                              ; preds = %500, %452
  %507 = load float, ptr %57, align 4, !tbaa !11
  %508 = fpext float %507 to double
  %509 = load float, ptr %55, align 4, !tbaa !11
  %510 = fcmp oge float %509, 0.000000e+00
  br i1 %510, label %511, label %513

511:                                              ; preds = %506
  %512 = load float, ptr %55, align 4, !tbaa !11
  br label %516

513:                                              ; preds = %506
  %514 = load float, ptr %55, align 4, !tbaa !11
  %515 = fneg float %514
  br label %516

516:                                              ; preds = %513, %511
  %517 = phi float [ %512, %511 ], [ %515, %513 ]
  %518 = fpext float %517 to double
  %519 = load float, ptr %54, align 4, !tbaa !11
  %520 = fcmp oge float %519, 0.000000e+00
  br i1 %520, label %521, label %523

521:                                              ; preds = %516
  %522 = load float, ptr %54, align 4, !tbaa !11
  br label %526

523:                                              ; preds = %516
  %524 = load float, ptr %54, align 4, !tbaa !11
  %525 = fneg float %524
  br label %526

526:                                              ; preds = %523, %521
  %527 = phi float [ %522, %521 ], [ %525, %523 ]
  %528 = fpext float %527 to double
  %529 = fadd double %518, %528
  %530 = fmul double %508, %529
  %531 = fptrunc double %530 to float
  store float %531, ptr %39, align 4, !tbaa !11
  %532 = load float, ptr %39, align 4, !tbaa !11
  %533 = load float, ptr %78, align 4, !tbaa !11
  %534 = fcmp oge float %532, %533
  br i1 %534, label %535, label %537

535:                                              ; preds = %526
  %536 = load float, ptr %39, align 4, !tbaa !11
  br label %539

537:                                              ; preds = %526
  %538 = load float, ptr %78, align 4, !tbaa !11
  br label %539

539:                                              ; preds = %537, %535
  %540 = phi float [ %536, %535 ], [ %538, %537 ]
  %541 = fpext float %540 to double
  %542 = fptrunc double %541 to float
  store float %542, ptr %65, align 4, !tbaa !11
  %543 = load i64, ptr %52, align 8, !tbaa !9
  %544 = icmp eq i64 %543, 0
  br i1 %544, label %545, label %959

545:                                              ; preds = %539
  %546 = load ptr, ptr %28, align 8, !tbaa !5
  %547 = load i64, ptr %51, align 8, !tbaa !9
  %548 = load ptr, ptr %19, align 8, !tbaa !5
  %549 = load i64, ptr %548, align 8, !tbaa !9
  %550 = add nsw i64 %547, %549
  %551 = getelementptr inbounds float, ptr %546, i64 %550
  store float 1.000000e+00, ptr %551, align 4, !tbaa !11
  %552 = load i64, ptr %51, align 8, !tbaa !9
  %553 = sub nsw i64 %552, 1
  store i64 %553, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %554

554:                                              ; preds = %574, %545
  %555 = load i64, ptr %45, align 8, !tbaa !9
  %556 = load i64, ptr %36, align 8, !tbaa !9
  %557 = icmp sle i64 %555, %556
  br i1 %557, label %558, label %577

558:                                              ; preds = %554
  %559 = load ptr, ptr %20, align 8, !tbaa !5
  %560 = load i64, ptr %45, align 8, !tbaa !9
  %561 = load i64, ptr %51, align 8, !tbaa !9
  %562 = load i64, ptr %30, align 8, !tbaa !9
  %563 = mul nsw i64 %561, %562
  %564 = add nsw i64 %560, %563
  %565 = getelementptr inbounds float, ptr %559, i64 %564
  %566 = load float, ptr %565, align 4, !tbaa !11
  %567 = fneg float %566
  %568 = load ptr, ptr %28, align 8, !tbaa !5
  %569 = load i64, ptr %45, align 8, !tbaa !9
  %570 = load ptr, ptr %19, align 8, !tbaa !5
  %571 = load i64, ptr %570, align 8, !tbaa !9
  %572 = add nsw i64 %569, %571
  %573 = getelementptr inbounds float, ptr %568, i64 %572
  store float %567, ptr %573, align 4, !tbaa !11
  br label %574

574:                                              ; preds = %558
  %575 = load i64, ptr %45, align 8, !tbaa !9
  %576 = add nsw i64 %575, 1
  store i64 %576, ptr %45, align 8, !tbaa !9
  br label %554, !llvm.loop !17

577:                                              ; preds = %554
  %578 = load i64, ptr %51, align 8, !tbaa !9
  %579 = sub nsw i64 %578, 1
  store i64 %579, ptr %68, align 8, !tbaa !9
  %580 = load i64, ptr %51, align 8, !tbaa !9
  %581 = sub nsw i64 %580, 1
  store i64 %581, ptr %44, align 8, !tbaa !9
  br label %582

582:                                              ; preds = %819, %577
  %583 = load i64, ptr %44, align 8, !tbaa !9
  %584 = icmp sge i64 %583, 1
  br i1 %584, label %585, label %822

585:                                              ; preds = %582
  %586 = load i64, ptr %44, align 8, !tbaa !9
  %587 = load i64, ptr %68, align 8, !tbaa !9
  %588 = icmp sgt i64 %586, %587
  br i1 %588, label %589, label %590

589:                                              ; preds = %585
  br label %818

590:                                              ; preds = %585
  %591 = load i64, ptr %44, align 8, !tbaa !9
  store i64 %591, ptr %47, align 8, !tbaa !9
  %592 = load i64, ptr %44, align 8, !tbaa !9
  store i64 %592, ptr %48, align 8, !tbaa !9
  %593 = load i64, ptr %44, align 8, !tbaa !9
  %594 = sub nsw i64 %593, 1
  store i64 %594, ptr %68, align 8, !tbaa !9
  %595 = load i64, ptr %44, align 8, !tbaa !9
  %596 = icmp sgt i64 %595, 1
  br i1 %596, label %597, label %614

597:                                              ; preds = %590
  %598 = load ptr, ptr %20, align 8, !tbaa !5
  %599 = load i64, ptr %44, align 8, !tbaa !9
  %600 = load i64, ptr %44, align 8, !tbaa !9
  %601 = sub nsw i64 %600, 1
  %602 = load i64, ptr %30, align 8, !tbaa !9
  %603 = mul nsw i64 %601, %602
  %604 = add nsw i64 %599, %603
  %605 = getelementptr inbounds float, ptr %598, i64 %604
  %606 = load float, ptr %605, align 4, !tbaa !11
  %607 = fcmp une float %606, 0.000000e+00
  br i1 %607, label %608, label %613

608:                                              ; preds = %597
  %609 = load i64, ptr %44, align 8, !tbaa !9
  %610 = sub nsw i64 %609, 1
  store i64 %610, ptr %47, align 8, !tbaa !9
  %611 = load i64, ptr %44, align 8, !tbaa !9
  %612 = sub nsw i64 %611, 2
  store i64 %612, ptr %68, align 8, !tbaa !9
  br label %613

613:                                              ; preds = %608, %597
  br label %614

614:                                              ; preds = %613, %590
  %615 = load i64, ptr %47, align 8, !tbaa !9
  %616 = load i64, ptr %48, align 8, !tbaa !9
  %617 = icmp eq i64 %615, %616
  br i1 %617, label %618, label %692

618:                                              ; preds = %614
  %619 = load ptr, ptr %20, align 8, !tbaa !5
  %620 = load i64, ptr %44, align 8, !tbaa !9
  %621 = load i64, ptr %44, align 8, !tbaa !9
  %622 = load i64, ptr %30, align 8, !tbaa !9
  %623 = mul nsw i64 %621, %622
  %624 = add nsw i64 %620, %623
  %625 = getelementptr inbounds float, ptr %619, i64 %624
  %626 = load ptr, ptr %21, align 8, !tbaa !5
  %627 = load ptr, ptr %28, align 8, !tbaa !5
  %628 = load i64, ptr %44, align 8, !tbaa !9
  %629 = load ptr, ptr %19, align 8, !tbaa !5
  %630 = load i64, ptr %629, align 8, !tbaa !9
  %631 = add nsw i64 %628, %630
  %632 = getelementptr inbounds float, ptr %627, i64 %631
  %633 = load ptr, ptr %19, align 8, !tbaa !5
  %634 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %635 = call i32 @slaln2_(ptr noundef @c_false, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %65, ptr noundef @c_b22, ptr noundef %625, ptr noundef %626, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %632, ptr noundef %633, ptr noundef %55, ptr noundef @c_b25, ptr noundef %634, ptr noundef @c__2, ptr noundef %69, ptr noundef %75, ptr noundef %62)
  %636 = load float, ptr %75, align 4, !tbaa !11
  %637 = fcmp ogt float %636, 1.000000e+00
  br i1 %637, label %638, label %656

638:                                              ; preds = %618
  %639 = load ptr, ptr %28, align 8, !tbaa !5
  %640 = load i64, ptr %44, align 8, !tbaa !9
  %641 = getelementptr inbounds float, ptr %639, i64 %640
  %642 = load float, ptr %641, align 4, !tbaa !11
  %643 = load float, ptr %76, align 4, !tbaa !11
  %644 = load float, ptr %75, align 4, !tbaa !11
  %645 = fdiv float %643, %644
  %646 = fcmp ogt float %642, %645
  br i1 %646, label %647, label %655

647:                                              ; preds = %638
  %648 = load float, ptr %75, align 4, !tbaa !11
  %649 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %650 = load float, ptr %649, align 16, !tbaa !11
  %651 = fdiv float %650, %648
  store float %651, ptr %649, align 16, !tbaa !11
  %652 = load float, ptr %75, align 4, !tbaa !11
  %653 = load float, ptr %69, align 4, !tbaa !11
  %654 = fdiv float %653, %652
  store float %654, ptr %69, align 4, !tbaa !11
  br label %655

655:                                              ; preds = %647, %638
  br label %656

656:                                              ; preds = %655, %618
  %657 = load float, ptr %69, align 4, !tbaa !11
  %658 = fcmp une float %657, 1.000000e+00
  br i1 %658, label %659, label %666

659:                                              ; preds = %656
  %660 = load ptr, ptr %28, align 8, !tbaa !5
  %661 = load ptr, ptr %19, align 8, !tbaa !5
  %662 = load i64, ptr %661, align 8, !tbaa !9
  %663 = add nsw i64 %662, 1
  %664 = getelementptr inbounds float, ptr %660, i64 %663
  %665 = call i32 @f2c_sscal(ptr noundef %51, ptr noundef %69, ptr noundef %664, ptr noundef @c__1)
  br label %666

666:                                              ; preds = %659, %656
  %667 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %668 = load float, ptr %667, align 16, !tbaa !11
  %669 = load ptr, ptr %28, align 8, !tbaa !5
  %670 = load i64, ptr %44, align 8, !tbaa !9
  %671 = load ptr, ptr %19, align 8, !tbaa !5
  %672 = load i64, ptr %671, align 8, !tbaa !9
  %673 = add nsw i64 %670, %672
  %674 = getelementptr inbounds float, ptr %669, i64 %673
  store float %668, ptr %674, align 4, !tbaa !11
  %675 = load i64, ptr %44, align 8, !tbaa !9
  %676 = sub nsw i64 %675, 1
  store i64 %676, ptr %36, align 8, !tbaa !9
  %677 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %678 = load float, ptr %677, align 16, !tbaa !11
  %679 = fneg float %678
  store float %679, ptr %39, align 4, !tbaa !11
  %680 = load ptr, ptr %20, align 8, !tbaa !5
  %681 = load i64, ptr %44, align 8, !tbaa !9
  %682 = load i64, ptr %30, align 8, !tbaa !9
  %683 = mul nsw i64 %681, %682
  %684 = add nsw i64 %683, 1
  %685 = getelementptr inbounds float, ptr %680, i64 %684
  %686 = load ptr, ptr %28, align 8, !tbaa !5
  %687 = load ptr, ptr %19, align 8, !tbaa !5
  %688 = load i64, ptr %687, align 8, !tbaa !9
  %689 = add nsw i64 %688, 1
  %690 = getelementptr inbounds float, ptr %686, i64 %689
  %691 = call i32 @f2c_saxpy(ptr noundef %36, ptr noundef %39, ptr noundef %685, ptr noundef @c__1, ptr noundef %690, ptr noundef @c__1)
  br label %817

692:                                              ; preds = %614
  %693 = load ptr, ptr %20, align 8, !tbaa !5
  %694 = load i64, ptr %44, align 8, !tbaa !9
  %695 = sub nsw i64 %694, 1
  %696 = load i64, ptr %44, align 8, !tbaa !9
  %697 = sub nsw i64 %696, 1
  %698 = load i64, ptr %30, align 8, !tbaa !9
  %699 = mul nsw i64 %697, %698
  %700 = add nsw i64 %695, %699
  %701 = getelementptr inbounds float, ptr %693, i64 %700
  %702 = load ptr, ptr %21, align 8, !tbaa !5
  %703 = load ptr, ptr %28, align 8, !tbaa !5
  %704 = load i64, ptr %44, align 8, !tbaa !9
  %705 = sub nsw i64 %704, 1
  %706 = load ptr, ptr %19, align 8, !tbaa !5
  %707 = load i64, ptr %706, align 8, !tbaa !9
  %708 = add nsw i64 %705, %707
  %709 = getelementptr inbounds float, ptr %703, i64 %708
  %710 = load ptr, ptr %19, align 8, !tbaa !5
  %711 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %712 = call i32 @slaln2_(ptr noundef @c_false, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %65, ptr noundef @c_b22, ptr noundef %701, ptr noundef %702, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %709, ptr noundef %710, ptr noundef %55, ptr noundef @c_b25, ptr noundef %711, ptr noundef @c__2, ptr noundef %69, ptr noundef %75, ptr noundef %62)
  %713 = load float, ptr %75, align 4, !tbaa !11
  %714 = fcmp ogt float %713, 1.000000e+00
  br i1 %714, label %715, label %754

715:                                              ; preds = %692
  %716 = load ptr, ptr %28, align 8, !tbaa !5
  %717 = load i64, ptr %44, align 8, !tbaa !9
  %718 = sub nsw i64 %717, 1
  %719 = getelementptr inbounds float, ptr %716, i64 %718
  %720 = load float, ptr %719, align 4, !tbaa !11
  store float %720, ptr %39, align 4, !tbaa !11
  %721 = load ptr, ptr %28, align 8, !tbaa !5
  %722 = load i64, ptr %44, align 8, !tbaa !9
  %723 = getelementptr inbounds float, ptr %721, i64 %722
  %724 = load float, ptr %723, align 4, !tbaa !11
  store float %724, ptr %40, align 4, !tbaa !11
  %725 = load float, ptr %39, align 4, !tbaa !11
  %726 = load float, ptr %40, align 4, !tbaa !11
  %727 = fcmp oge float %725, %726
  br i1 %727, label %728, label %730

728:                                              ; preds = %715
  %729 = load float, ptr %39, align 4, !tbaa !11
  br label %732

730:                                              ; preds = %715
  %731 = load float, ptr %40, align 4, !tbaa !11
  br label %732

732:                                              ; preds = %730, %728
  %733 = phi float [ %729, %728 ], [ %731, %730 ]
  %734 = fpext float %733 to double
  %735 = fptrunc double %734 to float
  store float %735, ptr %58, align 4, !tbaa !11
  %736 = load float, ptr %58, align 4, !tbaa !11
  %737 = load float, ptr %76, align 4, !tbaa !11
  %738 = load float, ptr %75, align 4, !tbaa !11
  %739 = fdiv float %737, %738
  %740 = fcmp ogt float %736, %739
  br i1 %740, label %741, label %753

741:                                              ; preds = %732
  %742 = load float, ptr %75, align 4, !tbaa !11
  %743 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %744 = load float, ptr %743, align 16, !tbaa !11
  %745 = fdiv float %744, %742
  store float %745, ptr %743, align 16, !tbaa !11
  %746 = load float, ptr %75, align 4, !tbaa !11
  %747 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 1
  %748 = load float, ptr %747, align 4, !tbaa !11
  %749 = fdiv float %748, %746
  store float %749, ptr %747, align 4, !tbaa !11
  %750 = load float, ptr %75, align 4, !tbaa !11
  %751 = load float, ptr %69, align 4, !tbaa !11
  %752 = fdiv float %751, %750
  store float %752, ptr %69, align 4, !tbaa !11
  br label %753

753:                                              ; preds = %741, %732
  br label %754

754:                                              ; preds = %753, %692
  %755 = load float, ptr %69, align 4, !tbaa !11
  %756 = fcmp une float %755, 1.000000e+00
  br i1 %756, label %757, label %764

757:                                              ; preds = %754
  %758 = load ptr, ptr %28, align 8, !tbaa !5
  %759 = load ptr, ptr %19, align 8, !tbaa !5
  %760 = load i64, ptr %759, align 8, !tbaa !9
  %761 = add nsw i64 %760, 1
  %762 = getelementptr inbounds float, ptr %758, i64 %761
  %763 = call i32 @f2c_sscal(ptr noundef %51, ptr noundef %69, ptr noundef %762, ptr noundef @c__1)
  br label %764

764:                                              ; preds = %757, %754
  %765 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %766 = load float, ptr %765, align 16, !tbaa !11
  %767 = load ptr, ptr %28, align 8, !tbaa !5
  %768 = load i64, ptr %44, align 8, !tbaa !9
  %769 = sub nsw i64 %768, 1
  %770 = load ptr, ptr %19, align 8, !tbaa !5
  %771 = load i64, ptr %770, align 8, !tbaa !9
  %772 = add nsw i64 %769, %771
  %773 = getelementptr inbounds float, ptr %767, i64 %772
  store float %766, ptr %773, align 4, !tbaa !11
  %774 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 1
  %775 = load float, ptr %774, align 4, !tbaa !11
  %776 = load ptr, ptr %28, align 8, !tbaa !5
  %777 = load i64, ptr %44, align 8, !tbaa !9
  %778 = load ptr, ptr %19, align 8, !tbaa !5
  %779 = load i64, ptr %778, align 8, !tbaa !9
  %780 = add nsw i64 %777, %779
  %781 = getelementptr inbounds float, ptr %776, i64 %780
  store float %775, ptr %781, align 4, !tbaa !11
  %782 = load i64, ptr %44, align 8, !tbaa !9
  %783 = sub nsw i64 %782, 2
  store i64 %783, ptr %36, align 8, !tbaa !9
  %784 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %785 = load float, ptr %784, align 16, !tbaa !11
  %786 = fneg float %785
  store float %786, ptr %39, align 4, !tbaa !11
  %787 = load ptr, ptr %20, align 8, !tbaa !5
  %788 = load i64, ptr %44, align 8, !tbaa !9
  %789 = sub nsw i64 %788, 1
  %790 = load i64, ptr %30, align 8, !tbaa !9
  %791 = mul nsw i64 %789, %790
  %792 = add nsw i64 %791, 1
  %793 = getelementptr inbounds float, ptr %787, i64 %792
  %794 = load ptr, ptr %28, align 8, !tbaa !5
  %795 = load ptr, ptr %19, align 8, !tbaa !5
  %796 = load i64, ptr %795, align 8, !tbaa !9
  %797 = add nsw i64 %796, 1
  %798 = getelementptr inbounds float, ptr %794, i64 %797
  %799 = call i32 @f2c_saxpy(ptr noundef %36, ptr noundef %39, ptr noundef %793, ptr noundef @c__1, ptr noundef %798, ptr noundef @c__1)
  %800 = load i64, ptr %44, align 8, !tbaa !9
  %801 = sub nsw i64 %800, 2
  store i64 %801, ptr %36, align 8, !tbaa !9
  %802 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 1
  %803 = load float, ptr %802, align 4, !tbaa !11
  %804 = fneg float %803
  store float %804, ptr %39, align 4, !tbaa !11
  %805 = load ptr, ptr %20, align 8, !tbaa !5
  %806 = load i64, ptr %44, align 8, !tbaa !9
  %807 = load i64, ptr %30, align 8, !tbaa !9
  %808 = mul nsw i64 %806, %807
  %809 = add nsw i64 %808, 1
  %810 = getelementptr inbounds float, ptr %805, i64 %809
  %811 = load ptr, ptr %28, align 8, !tbaa !5
  %812 = load ptr, ptr %19, align 8, !tbaa !5
  %813 = load i64, ptr %812, align 8, !tbaa !9
  %814 = add nsw i64 %813, 1
  %815 = getelementptr inbounds float, ptr %811, i64 %814
  %816 = call i32 @f2c_saxpy(ptr noundef %36, ptr noundef %39, ptr noundef %810, ptr noundef @c__1, ptr noundef %815, ptr noundef @c__1)
  br label %817

817:                                              ; preds = %764, %666
  br label %818

818:                                              ; preds = %817, %589
  br label %819

819:                                              ; preds = %818
  %820 = load i64, ptr %44, align 8, !tbaa !9
  %821 = add nsw i64 %820, -1
  store i64 %821, ptr %44, align 8, !tbaa !9
  br label %582, !llvm.loop !18

822:                                              ; preds = %582
  %823 = load i64, ptr %66, align 8, !tbaa !9
  %824 = icmp ne i64 %823, 0
  br i1 %824, label %892, label %825

825:                                              ; preds = %822
  %826 = load ptr, ptr %28, align 8, !tbaa !5
  %827 = load ptr, ptr %19, align 8, !tbaa !5
  %828 = load i64, ptr %827, align 8, !tbaa !9
  %829 = add nsw i64 %828, 1
  %830 = getelementptr inbounds float, ptr %826, i64 %829
  %831 = load ptr, ptr %24, align 8, !tbaa !5
  %832 = load i64, ptr %53, align 8, !tbaa !9
  %833 = load i64, ptr %34, align 8, !tbaa !9
  %834 = mul nsw i64 %832, %833
  %835 = add nsw i64 %834, 1
  %836 = getelementptr inbounds float, ptr %831, i64 %835
  %837 = call i32 @f2c_scopy(ptr noundef %51, ptr noundef %830, ptr noundef @c__1, ptr noundef %836, ptr noundef @c__1)
  %838 = load ptr, ptr %24, align 8, !tbaa !5
  %839 = load i64, ptr %53, align 8, !tbaa !9
  %840 = load i64, ptr %34, align 8, !tbaa !9
  %841 = mul nsw i64 %839, %840
  %842 = add nsw i64 %841, 1
  %843 = getelementptr inbounds float, ptr %838, i64 %842
  %844 = call i64 @f2c_isamax(ptr noundef %51, ptr noundef %843, ptr noundef @c__1)
  store i64 %844, ptr %50, align 8, !tbaa !9
  %845 = load ptr, ptr %24, align 8, !tbaa !5
  %846 = load i64, ptr %50, align 8, !tbaa !9
  %847 = load i64, ptr %53, align 8, !tbaa !9
  %848 = load i64, ptr %34, align 8, !tbaa !9
  %849 = mul nsw i64 %847, %848
  %850 = add nsw i64 %846, %849
  %851 = getelementptr inbounds float, ptr %845, i64 %850
  %852 = load float, ptr %851, align 4, !tbaa !11
  store float %852, ptr %39, align 4, !tbaa !11
  %853 = load float, ptr %39, align 4, !tbaa !11
  %854 = fcmp oge float %853, 0.000000e+00
  br i1 %854, label %855, label %857

855:                                              ; preds = %825
  %856 = load float, ptr %39, align 4, !tbaa !11
  br label %860

857:                                              ; preds = %825
  %858 = load float, ptr %39, align 4, !tbaa !11
  %859 = fneg float %858
  br label %860

860:                                              ; preds = %857, %855
  %861 = phi float [ %856, %855 ], [ %859, %857 ]
  %862 = fpext float %861 to double
  %863 = fdiv double 1.000000e+00, %862
  %864 = fptrunc double %863 to float
  store float %864, ptr %70, align 4, !tbaa !11
  %865 = load ptr, ptr %24, align 8, !tbaa !5
  %866 = load i64, ptr %53, align 8, !tbaa !9
  %867 = load i64, ptr %34, align 8, !tbaa !9
  %868 = mul nsw i64 %866, %867
  %869 = add nsw i64 %868, 1
  %870 = getelementptr inbounds float, ptr %865, i64 %869
  %871 = call i32 @f2c_sscal(ptr noundef %51, ptr noundef %70, ptr noundef %870, ptr noundef @c__1)
  %872 = load ptr, ptr %19, align 8, !tbaa !5
  %873 = load i64, ptr %872, align 8, !tbaa !9
  store i64 %873, ptr %36, align 8, !tbaa !9
  %874 = load i64, ptr %51, align 8, !tbaa !9
  %875 = add nsw i64 %874, 1
  store i64 %875, ptr %45, align 8, !tbaa !9
  br label %876

876:                                              ; preds = %888, %860
  %877 = load i64, ptr %45, align 8, !tbaa !9
  %878 = load i64, ptr %36, align 8, !tbaa !9
  %879 = icmp sle i64 %877, %878
  br i1 %879, label %880, label %891

880:                                              ; preds = %876
  %881 = load ptr, ptr %24, align 8, !tbaa !5
  %882 = load i64, ptr %45, align 8, !tbaa !9
  %883 = load i64, ptr %53, align 8, !tbaa !9
  %884 = load i64, ptr %34, align 8, !tbaa !9
  %885 = mul nsw i64 %883, %884
  %886 = add nsw i64 %882, %885
  %887 = getelementptr inbounds float, ptr %881, i64 %886
  store float 0.000000e+00, ptr %887, align 4, !tbaa !11
  br label %888

888:                                              ; preds = %880
  %889 = load i64, ptr %45, align 8, !tbaa !9
  %890 = add nsw i64 %889, 1
  store i64 %890, ptr %45, align 8, !tbaa !9
  br label %876, !llvm.loop !19

891:                                              ; preds = %876
  br label %958

892:                                              ; preds = %822
  %893 = load i64, ptr %51, align 8, !tbaa !9
  %894 = icmp sgt i64 %893, 1
  br i1 %894, label %895, label %921

895:                                              ; preds = %892
  %896 = load i64, ptr %51, align 8, !tbaa !9
  %897 = sub nsw i64 %896, 1
  store i64 %897, ptr %36, align 8, !tbaa !9
  %898 = load ptr, ptr %19, align 8, !tbaa !5
  %899 = load ptr, ptr %24, align 8, !tbaa !5
  %900 = load i64, ptr %35, align 8, !tbaa !9
  %901 = getelementptr inbounds float, ptr %899, i64 %900
  %902 = load ptr, ptr %25, align 8, !tbaa !5
  %903 = load ptr, ptr %28, align 8, !tbaa !5
  %904 = load ptr, ptr %19, align 8, !tbaa !5
  %905 = load i64, ptr %904, align 8, !tbaa !9
  %906 = add nsw i64 %905, 1
  %907 = getelementptr inbounds float, ptr %903, i64 %906
  %908 = load ptr, ptr %28, align 8, !tbaa !5
  %909 = load i64, ptr %51, align 8, !tbaa !9
  %910 = load ptr, ptr %19, align 8, !tbaa !5
  %911 = load i64, ptr %910, align 8, !tbaa !9
  %912 = add nsw i64 %909, %911
  %913 = getelementptr inbounds float, ptr %908, i64 %912
  %914 = load ptr, ptr %24, align 8, !tbaa !5
  %915 = load i64, ptr %51, align 8, !tbaa !9
  %916 = load i64, ptr %34, align 8, !tbaa !9
  %917 = mul nsw i64 %915, %916
  %918 = add nsw i64 %917, 1
  %919 = getelementptr inbounds float, ptr %914, i64 %918
  %920 = call i32 @f2c_sgemv(ptr noundef @.str.8, ptr noundef %898, ptr noundef %36, ptr noundef @c_b22, ptr noundef %901, ptr noundef %902, ptr noundef %907, ptr noundef @c__1, ptr noundef %913, ptr noundef %919, ptr noundef @c__1)
  br label %921

921:                                              ; preds = %895, %892
  %922 = load ptr, ptr %19, align 8, !tbaa !5
  %923 = load ptr, ptr %24, align 8, !tbaa !5
  %924 = load i64, ptr %51, align 8, !tbaa !9
  %925 = load i64, ptr %34, align 8, !tbaa !9
  %926 = mul nsw i64 %924, %925
  %927 = add nsw i64 %926, 1
  %928 = getelementptr inbounds float, ptr %923, i64 %927
  %929 = call i64 @f2c_isamax(ptr noundef %922, ptr noundef %928, ptr noundef @c__1)
  store i64 %929, ptr %50, align 8, !tbaa !9
  %930 = load ptr, ptr %24, align 8, !tbaa !5
  %931 = load i64, ptr %50, align 8, !tbaa !9
  %932 = load i64, ptr %51, align 8, !tbaa !9
  %933 = load i64, ptr %34, align 8, !tbaa !9
  %934 = mul nsw i64 %932, %933
  %935 = add nsw i64 %931, %934
  %936 = getelementptr inbounds float, ptr %930, i64 %935
  %937 = load float, ptr %936, align 4, !tbaa !11
  store float %937, ptr %39, align 4, !tbaa !11
  %938 = load float, ptr %39, align 4, !tbaa !11
  %939 = fcmp oge float %938, 0.000000e+00
  br i1 %939, label %940, label %942

940:                                              ; preds = %921
  %941 = load float, ptr %39, align 4, !tbaa !11
  br label %945

942:                                              ; preds = %921
  %943 = load float, ptr %39, align 4, !tbaa !11
  %944 = fneg float %943
  br label %945

945:                                              ; preds = %942, %940
  %946 = phi float [ %941, %940 ], [ %944, %942 ]
  %947 = fpext float %946 to double
  %948 = fdiv double 1.000000e+00, %947
  %949 = fptrunc double %948 to float
  store float %949, ptr %70, align 4, !tbaa !11
  %950 = load ptr, ptr %19, align 8, !tbaa !5
  %951 = load ptr, ptr %24, align 8, !tbaa !5
  %952 = load i64, ptr %51, align 8, !tbaa !9
  %953 = load i64, ptr %34, align 8, !tbaa !9
  %954 = mul nsw i64 %952, %953
  %955 = add nsw i64 %954, 1
  %956 = getelementptr inbounds float, ptr %951, i64 %955
  %957 = call i32 @f2c_sscal(ptr noundef %950, ptr noundef %70, ptr noundef %956, ptr noundef @c__1)
  br label %958

958:                                              ; preds = %945, %891
  br label %1758

959:                                              ; preds = %539
  %960 = load ptr, ptr %20, align 8, !tbaa !5
  %961 = load i64, ptr %51, align 8, !tbaa !9
  %962 = sub nsw i64 %961, 1
  %963 = load i64, ptr %51, align 8, !tbaa !9
  %964 = load i64, ptr %30, align 8, !tbaa !9
  %965 = mul nsw i64 %963, %964
  %966 = add nsw i64 %962, %965
  %967 = getelementptr inbounds float, ptr %960, i64 %966
  %968 = load float, ptr %967, align 4, !tbaa !11
  store float %968, ptr %39, align 4, !tbaa !11
  %969 = load float, ptr %39, align 4, !tbaa !11
  %970 = fcmp oge float %969, 0.000000e+00
  br i1 %970, label %971, label %973

971:                                              ; preds = %959
  %972 = load float, ptr %39, align 4, !tbaa !11
  br label %976

973:                                              ; preds = %959
  %974 = load float, ptr %39, align 4, !tbaa !11
  %975 = fneg float %974
  br label %976

976:                                              ; preds = %973, %971
  %977 = phi float [ %972, %971 ], [ %975, %973 ]
  %978 = fpext float %977 to double
  %979 = load ptr, ptr %20, align 8, !tbaa !5
  %980 = load i64, ptr %51, align 8, !tbaa !9
  %981 = load i64, ptr %51, align 8, !tbaa !9
  %982 = sub nsw i64 %981, 1
  %983 = load i64, ptr %30, align 8, !tbaa !9
  %984 = mul nsw i64 %982, %983
  %985 = add nsw i64 %980, %984
  %986 = getelementptr inbounds float, ptr %979, i64 %985
  %987 = load float, ptr %986, align 4, !tbaa !11
  store float %987, ptr %40, align 4, !tbaa !11
  %988 = load float, ptr %40, align 4, !tbaa !11
  %989 = fcmp oge float %988, 0.000000e+00
  br i1 %989, label %990, label %992

990:                                              ; preds = %976
  %991 = load float, ptr %40, align 4, !tbaa !11
  br label %995

992:                                              ; preds = %976
  %993 = load float, ptr %40, align 4, !tbaa !11
  %994 = fneg float %993
  br label %995

995:                                              ; preds = %992, %990
  %996 = phi float [ %991, %990 ], [ %994, %992 ]
  %997 = fpext float %996 to double
  %998 = fcmp oge double %978, %997
  br i1 %998, label %999, label %1023

999:                                              ; preds = %995
  %1000 = load ptr, ptr %28, align 8, !tbaa !5
  %1001 = load i64, ptr %51, align 8, !tbaa !9
  %1002 = sub nsw i64 %1001, 1
  %1003 = load ptr, ptr %19, align 8, !tbaa !5
  %1004 = load i64, ptr %1003, align 8, !tbaa !9
  %1005 = add nsw i64 %1002, %1004
  %1006 = getelementptr inbounds float, ptr %1000, i64 %1005
  store float 1.000000e+00, ptr %1006, align 4, !tbaa !11
  %1007 = load float, ptr %54, align 4, !tbaa !11
  %1008 = load ptr, ptr %20, align 8, !tbaa !5
  %1009 = load i64, ptr %51, align 8, !tbaa !9
  %1010 = sub nsw i64 %1009, 1
  %1011 = load i64, ptr %51, align 8, !tbaa !9
  %1012 = load i64, ptr %30, align 8, !tbaa !9
  %1013 = mul nsw i64 %1011, %1012
  %1014 = add nsw i64 %1010, %1013
  %1015 = getelementptr inbounds float, ptr %1008, i64 %1014
  %1016 = load float, ptr %1015, align 4, !tbaa !11
  %1017 = fdiv float %1007, %1016
  %1018 = load ptr, ptr %28, align 8, !tbaa !5
  %1019 = load i64, ptr %51, align 8, !tbaa !9
  %1020 = load i64, ptr %49, align 8, !tbaa !9
  %1021 = add nsw i64 %1019, %1020
  %1022 = getelementptr inbounds float, ptr %1018, i64 %1021
  store float %1017, ptr %1022, align 4, !tbaa !11
  br label %1048

1023:                                             ; preds = %995
  %1024 = load float, ptr %54, align 4, !tbaa !11
  %1025 = fneg float %1024
  %1026 = load ptr, ptr %20, align 8, !tbaa !5
  %1027 = load i64, ptr %51, align 8, !tbaa !9
  %1028 = load i64, ptr %51, align 8, !tbaa !9
  %1029 = sub nsw i64 %1028, 1
  %1030 = load i64, ptr %30, align 8, !tbaa !9
  %1031 = mul nsw i64 %1029, %1030
  %1032 = add nsw i64 %1027, %1031
  %1033 = getelementptr inbounds float, ptr %1026, i64 %1032
  %1034 = load float, ptr %1033, align 4, !tbaa !11
  %1035 = fdiv float %1025, %1034
  %1036 = load ptr, ptr %28, align 8, !tbaa !5
  %1037 = load i64, ptr %51, align 8, !tbaa !9
  %1038 = sub nsw i64 %1037, 1
  %1039 = load ptr, ptr %19, align 8, !tbaa !5
  %1040 = load i64, ptr %1039, align 8, !tbaa !9
  %1041 = add nsw i64 %1038, %1040
  %1042 = getelementptr inbounds float, ptr %1036, i64 %1041
  store float %1035, ptr %1042, align 4, !tbaa !11
  %1043 = load ptr, ptr %28, align 8, !tbaa !5
  %1044 = load i64, ptr %51, align 8, !tbaa !9
  %1045 = load i64, ptr %49, align 8, !tbaa !9
  %1046 = add nsw i64 %1044, %1045
  %1047 = getelementptr inbounds float, ptr %1043, i64 %1046
  store float 1.000000e+00, ptr %1047, align 4, !tbaa !11
  br label %1048

1048:                                             ; preds = %1023, %999
  %1049 = load ptr, ptr %28, align 8, !tbaa !5
  %1050 = load i64, ptr %51, align 8, !tbaa !9
  %1051 = load ptr, ptr %19, align 8, !tbaa !5
  %1052 = load i64, ptr %1051, align 8, !tbaa !9
  %1053 = add nsw i64 %1050, %1052
  %1054 = getelementptr inbounds float, ptr %1049, i64 %1053
  store float 0.000000e+00, ptr %1054, align 4, !tbaa !11
  %1055 = load ptr, ptr %28, align 8, !tbaa !5
  %1056 = load i64, ptr %51, align 8, !tbaa !9
  %1057 = sub nsw i64 %1056, 1
  %1058 = load i64, ptr %49, align 8, !tbaa !9
  %1059 = add nsw i64 %1057, %1058
  %1060 = getelementptr inbounds float, ptr %1055, i64 %1059
  store float 0.000000e+00, ptr %1060, align 4, !tbaa !11
  %1061 = load i64, ptr %51, align 8, !tbaa !9
  %1062 = sub nsw i64 %1061, 2
  store i64 %1062, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %1063

1063:                                             ; preds = %1114, %1048
  %1064 = load i64, ptr %45, align 8, !tbaa !9
  %1065 = load i64, ptr %36, align 8, !tbaa !9
  %1066 = icmp sle i64 %1064, %1065
  br i1 %1066, label %1067, label %1117

1067:                                             ; preds = %1063
  %1068 = load ptr, ptr %28, align 8, !tbaa !5
  %1069 = load i64, ptr %51, align 8, !tbaa !9
  %1070 = sub nsw i64 %1069, 1
  %1071 = load ptr, ptr %19, align 8, !tbaa !5
  %1072 = load i64, ptr %1071, align 8, !tbaa !9
  %1073 = add nsw i64 %1070, %1072
  %1074 = getelementptr inbounds float, ptr %1068, i64 %1073
  %1075 = load float, ptr %1074, align 4, !tbaa !11
  %1076 = fneg float %1075
  %1077 = load ptr, ptr %20, align 8, !tbaa !5
  %1078 = load i64, ptr %45, align 8, !tbaa !9
  %1079 = load i64, ptr %51, align 8, !tbaa !9
  %1080 = sub nsw i64 %1079, 1
  %1081 = load i64, ptr %30, align 8, !tbaa !9
  %1082 = mul nsw i64 %1080, %1081
  %1083 = add nsw i64 %1078, %1082
  %1084 = getelementptr inbounds float, ptr %1077, i64 %1083
  %1085 = load float, ptr %1084, align 4, !tbaa !11
  %1086 = fmul float %1076, %1085
  %1087 = load ptr, ptr %28, align 8, !tbaa !5
  %1088 = load i64, ptr %45, align 8, !tbaa !9
  %1089 = load ptr, ptr %19, align 8, !tbaa !5
  %1090 = load i64, ptr %1089, align 8, !tbaa !9
  %1091 = add nsw i64 %1088, %1090
  %1092 = getelementptr inbounds float, ptr %1087, i64 %1091
  store float %1086, ptr %1092, align 4, !tbaa !11
  %1093 = load ptr, ptr %28, align 8, !tbaa !5
  %1094 = load i64, ptr %51, align 8, !tbaa !9
  %1095 = load i64, ptr %49, align 8, !tbaa !9
  %1096 = add nsw i64 %1094, %1095
  %1097 = getelementptr inbounds float, ptr %1093, i64 %1096
  %1098 = load float, ptr %1097, align 4, !tbaa !11
  %1099 = fneg float %1098
  %1100 = load ptr, ptr %20, align 8, !tbaa !5
  %1101 = load i64, ptr %45, align 8, !tbaa !9
  %1102 = load i64, ptr %51, align 8, !tbaa !9
  %1103 = load i64, ptr %30, align 8, !tbaa !9
  %1104 = mul nsw i64 %1102, %1103
  %1105 = add nsw i64 %1101, %1104
  %1106 = getelementptr inbounds float, ptr %1100, i64 %1105
  %1107 = load float, ptr %1106, align 4, !tbaa !11
  %1108 = fmul float %1099, %1107
  %1109 = load ptr, ptr %28, align 8, !tbaa !5
  %1110 = load i64, ptr %45, align 8, !tbaa !9
  %1111 = load i64, ptr %49, align 8, !tbaa !9
  %1112 = add nsw i64 %1110, %1111
  %1113 = getelementptr inbounds float, ptr %1109, i64 %1112
  store float %1108, ptr %1113, align 4, !tbaa !11
  br label %1114

1114:                                             ; preds = %1067
  %1115 = load i64, ptr %45, align 8, !tbaa !9
  %1116 = add nsw i64 %1115, 1
  store i64 %1116, ptr %45, align 8, !tbaa !9
  br label %1063, !llvm.loop !20

1117:                                             ; preds = %1063
  %1118 = load i64, ptr %51, align 8, !tbaa !9
  %1119 = sub nsw i64 %1118, 2
  store i64 %1119, ptr %68, align 8, !tbaa !9
  %1120 = load i64, ptr %51, align 8, !tbaa !9
  %1121 = sub nsw i64 %1120, 2
  store i64 %1121, ptr %44, align 8, !tbaa !9
  br label %1122

1122:                                             ; preds = %1454, %1117
  %1123 = load i64, ptr %44, align 8, !tbaa !9
  %1124 = icmp sge i64 %1123, 1
  br i1 %1124, label %1125, label %1457

1125:                                             ; preds = %1122
  %1126 = load i64, ptr %44, align 8, !tbaa !9
  %1127 = load i64, ptr %68, align 8, !tbaa !9
  %1128 = icmp sgt i64 %1126, %1127
  br i1 %1128, label %1129, label %1130

1129:                                             ; preds = %1125
  br label %1453

1130:                                             ; preds = %1125
  %1131 = load i64, ptr %44, align 8, !tbaa !9
  store i64 %1131, ptr %47, align 8, !tbaa !9
  %1132 = load i64, ptr %44, align 8, !tbaa !9
  store i64 %1132, ptr %48, align 8, !tbaa !9
  %1133 = load i64, ptr %44, align 8, !tbaa !9
  %1134 = sub nsw i64 %1133, 1
  store i64 %1134, ptr %68, align 8, !tbaa !9
  %1135 = load i64, ptr %44, align 8, !tbaa !9
  %1136 = icmp sgt i64 %1135, 1
  br i1 %1136, label %1137, label %1154

1137:                                             ; preds = %1130
  %1138 = load ptr, ptr %20, align 8, !tbaa !5
  %1139 = load i64, ptr %44, align 8, !tbaa !9
  %1140 = load i64, ptr %44, align 8, !tbaa !9
  %1141 = sub nsw i64 %1140, 1
  %1142 = load i64, ptr %30, align 8, !tbaa !9
  %1143 = mul nsw i64 %1141, %1142
  %1144 = add nsw i64 %1139, %1143
  %1145 = getelementptr inbounds float, ptr %1138, i64 %1144
  %1146 = load float, ptr %1145, align 4, !tbaa !11
  %1147 = fcmp une float %1146, 0.000000e+00
  br i1 %1147, label %1148, label %1153

1148:                                             ; preds = %1137
  %1149 = load i64, ptr %44, align 8, !tbaa !9
  %1150 = sub nsw i64 %1149, 1
  store i64 %1150, ptr %47, align 8, !tbaa !9
  %1151 = load i64, ptr %44, align 8, !tbaa !9
  %1152 = sub nsw i64 %1151, 2
  store i64 %1152, ptr %68, align 8, !tbaa !9
  br label %1153

1153:                                             ; preds = %1148, %1137
  br label %1154

1154:                                             ; preds = %1153, %1130
  %1155 = load i64, ptr %47, align 8, !tbaa !9
  %1156 = load i64, ptr %48, align 8, !tbaa !9
  %1157 = icmp eq i64 %1155, %1156
  br i1 %1157, label %1158, label %1264

1158:                                             ; preds = %1154
  %1159 = load ptr, ptr %20, align 8, !tbaa !5
  %1160 = load i64, ptr %44, align 8, !tbaa !9
  %1161 = load i64, ptr %44, align 8, !tbaa !9
  %1162 = load i64, ptr %30, align 8, !tbaa !9
  %1163 = mul nsw i64 %1161, %1162
  %1164 = add nsw i64 %1160, %1163
  %1165 = getelementptr inbounds float, ptr %1159, i64 %1164
  %1166 = load ptr, ptr %21, align 8, !tbaa !5
  %1167 = load ptr, ptr %28, align 8, !tbaa !5
  %1168 = load i64, ptr %44, align 8, !tbaa !9
  %1169 = load ptr, ptr %19, align 8, !tbaa !5
  %1170 = load i64, ptr %1169, align 8, !tbaa !9
  %1171 = add nsw i64 %1168, %1170
  %1172 = getelementptr inbounds float, ptr %1167, i64 %1171
  %1173 = load ptr, ptr %19, align 8, !tbaa !5
  %1174 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %1175 = call i32 @slaln2_(ptr noundef @c_false, ptr noundef @c__1, ptr noundef @c__2, ptr noundef %65, ptr noundef @c_b22, ptr noundef %1165, ptr noundef %1166, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %1172, ptr noundef %1173, ptr noundef %55, ptr noundef %54, ptr noundef %1174, ptr noundef @c__2, ptr noundef %69, ptr noundef %75, ptr noundef %62)
  %1176 = load float, ptr %75, align 4, !tbaa !11
  %1177 = fcmp ogt float %1176, 1.000000e+00
  br i1 %1177, label %1178, label %1200

1178:                                             ; preds = %1158
  %1179 = load ptr, ptr %28, align 8, !tbaa !5
  %1180 = load i64, ptr %44, align 8, !tbaa !9
  %1181 = getelementptr inbounds float, ptr %1179, i64 %1180
  %1182 = load float, ptr %1181, align 4, !tbaa !11
  %1183 = load float, ptr %76, align 4, !tbaa !11
  %1184 = load float, ptr %75, align 4, !tbaa !11
  %1185 = fdiv float %1183, %1184
  %1186 = fcmp ogt float %1182, %1185
  br i1 %1186, label %1187, label %1199

1187:                                             ; preds = %1178
  %1188 = load float, ptr %75, align 4, !tbaa !11
  %1189 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %1190 = load float, ptr %1189, align 16, !tbaa !11
  %1191 = fdiv float %1190, %1188
  store float %1191, ptr %1189, align 16, !tbaa !11
  %1192 = load float, ptr %75, align 4, !tbaa !11
  %1193 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 2
  %1194 = load float, ptr %1193, align 8, !tbaa !11
  %1195 = fdiv float %1194, %1192
  store float %1195, ptr %1193, align 8, !tbaa !11
  %1196 = load float, ptr %75, align 4, !tbaa !11
  %1197 = load float, ptr %69, align 4, !tbaa !11
  %1198 = fdiv float %1197, %1196
  store float %1198, ptr %69, align 4, !tbaa !11
  br label %1199

1199:                                             ; preds = %1187, %1178
  br label %1200

1200:                                             ; preds = %1199, %1158
  %1201 = load float, ptr %69, align 4, !tbaa !11
  %1202 = fcmp une float %1201, 1.000000e+00
  br i1 %1202, label %1203, label %1215

1203:                                             ; preds = %1200
  %1204 = load ptr, ptr %28, align 8, !tbaa !5
  %1205 = load ptr, ptr %19, align 8, !tbaa !5
  %1206 = load i64, ptr %1205, align 8, !tbaa !9
  %1207 = add nsw i64 %1206, 1
  %1208 = getelementptr inbounds float, ptr %1204, i64 %1207
  %1209 = call i32 @f2c_sscal(ptr noundef %51, ptr noundef %69, ptr noundef %1208, ptr noundef @c__1)
  %1210 = load ptr, ptr %28, align 8, !tbaa !5
  %1211 = load i64, ptr %49, align 8, !tbaa !9
  %1212 = add nsw i64 %1211, 1
  %1213 = getelementptr inbounds float, ptr %1210, i64 %1212
  %1214 = call i32 @f2c_sscal(ptr noundef %51, ptr noundef %69, ptr noundef %1213, ptr noundef @c__1)
  br label %1215

1215:                                             ; preds = %1203, %1200
  %1216 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %1217 = load float, ptr %1216, align 16, !tbaa !11
  %1218 = load ptr, ptr %28, align 8, !tbaa !5
  %1219 = load i64, ptr %44, align 8, !tbaa !9
  %1220 = load ptr, ptr %19, align 8, !tbaa !5
  %1221 = load i64, ptr %1220, align 8, !tbaa !9
  %1222 = add nsw i64 %1219, %1221
  %1223 = getelementptr inbounds float, ptr %1218, i64 %1222
  store float %1217, ptr %1223, align 4, !tbaa !11
  %1224 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 2
  %1225 = load float, ptr %1224, align 8, !tbaa !11
  %1226 = load ptr, ptr %28, align 8, !tbaa !5
  %1227 = load i64, ptr %44, align 8, !tbaa !9
  %1228 = load i64, ptr %49, align 8, !tbaa !9
  %1229 = add nsw i64 %1227, %1228
  %1230 = getelementptr inbounds float, ptr %1226, i64 %1229
  store float %1225, ptr %1230, align 4, !tbaa !11
  %1231 = load i64, ptr %44, align 8, !tbaa !9
  %1232 = sub nsw i64 %1231, 1
  store i64 %1232, ptr %36, align 8, !tbaa !9
  %1233 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %1234 = load float, ptr %1233, align 16, !tbaa !11
  %1235 = fneg float %1234
  store float %1235, ptr %39, align 4, !tbaa !11
  %1236 = load ptr, ptr %20, align 8, !tbaa !5
  %1237 = load i64, ptr %44, align 8, !tbaa !9
  %1238 = load i64, ptr %30, align 8, !tbaa !9
  %1239 = mul nsw i64 %1237, %1238
  %1240 = add nsw i64 %1239, 1
  %1241 = getelementptr inbounds float, ptr %1236, i64 %1240
  %1242 = load ptr, ptr %28, align 8, !tbaa !5
  %1243 = load ptr, ptr %19, align 8, !tbaa !5
  %1244 = load i64, ptr %1243, align 8, !tbaa !9
  %1245 = add nsw i64 %1244, 1
  %1246 = getelementptr inbounds float, ptr %1242, i64 %1245
  %1247 = call i32 @f2c_saxpy(ptr noundef %36, ptr noundef %39, ptr noundef %1241, ptr noundef @c__1, ptr noundef %1246, ptr noundef @c__1)
  %1248 = load i64, ptr %44, align 8, !tbaa !9
  %1249 = sub nsw i64 %1248, 1
  store i64 %1249, ptr %36, align 8, !tbaa !9
  %1250 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 2
  %1251 = load float, ptr %1250, align 8, !tbaa !11
  %1252 = fneg float %1251
  store float %1252, ptr %39, align 4, !tbaa !11
  %1253 = load ptr, ptr %20, align 8, !tbaa !5
  %1254 = load i64, ptr %44, align 8, !tbaa !9
  %1255 = load i64, ptr %30, align 8, !tbaa !9
  %1256 = mul nsw i64 %1254, %1255
  %1257 = add nsw i64 %1256, 1
  %1258 = getelementptr inbounds float, ptr %1253, i64 %1257
  %1259 = load ptr, ptr %28, align 8, !tbaa !5
  %1260 = load i64, ptr %49, align 8, !tbaa !9
  %1261 = add nsw i64 %1260, 1
  %1262 = getelementptr inbounds float, ptr %1259, i64 %1261
  %1263 = call i32 @f2c_saxpy(ptr noundef %36, ptr noundef %39, ptr noundef %1258, ptr noundef @c__1, ptr noundef %1262, ptr noundef @c__1)
  br label %1452

1264:                                             ; preds = %1154
  %1265 = load ptr, ptr %20, align 8, !tbaa !5
  %1266 = load i64, ptr %44, align 8, !tbaa !9
  %1267 = sub nsw i64 %1266, 1
  %1268 = load i64, ptr %44, align 8, !tbaa !9
  %1269 = sub nsw i64 %1268, 1
  %1270 = load i64, ptr %30, align 8, !tbaa !9
  %1271 = mul nsw i64 %1269, %1270
  %1272 = add nsw i64 %1267, %1271
  %1273 = getelementptr inbounds float, ptr %1265, i64 %1272
  %1274 = load ptr, ptr %21, align 8, !tbaa !5
  %1275 = load ptr, ptr %28, align 8, !tbaa !5
  %1276 = load i64, ptr %44, align 8, !tbaa !9
  %1277 = sub nsw i64 %1276, 1
  %1278 = load ptr, ptr %19, align 8, !tbaa !5
  %1279 = load i64, ptr %1278, align 8, !tbaa !9
  %1280 = add nsw i64 %1277, %1279
  %1281 = getelementptr inbounds float, ptr %1275, i64 %1280
  %1282 = load ptr, ptr %19, align 8, !tbaa !5
  %1283 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %1284 = call i32 @slaln2_(ptr noundef @c_false, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %65, ptr noundef @c_b22, ptr noundef %1273, ptr noundef %1274, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %1281, ptr noundef %1282, ptr noundef %55, ptr noundef %54, ptr noundef %1283, ptr noundef @c__2, ptr noundef %69, ptr noundef %75, ptr noundef %62)
  %1285 = load float, ptr %75, align 4, !tbaa !11
  %1286 = fcmp ogt float %1285, 1.000000e+00
  br i1 %1286, label %1287, label %1336

1287:                                             ; preds = %1264
  %1288 = load ptr, ptr %28, align 8, !tbaa !5
  %1289 = load i64, ptr %44, align 8, !tbaa !9
  %1290 = sub nsw i64 %1289, 1
  %1291 = getelementptr inbounds float, ptr %1288, i64 %1290
  %1292 = load float, ptr %1291, align 4, !tbaa !11
  store float %1292, ptr %39, align 4, !tbaa !11
  %1293 = load ptr, ptr %28, align 8, !tbaa !5
  %1294 = load i64, ptr %44, align 8, !tbaa !9
  %1295 = getelementptr inbounds float, ptr %1293, i64 %1294
  %1296 = load float, ptr %1295, align 4, !tbaa !11
  store float %1296, ptr %40, align 4, !tbaa !11
  %1297 = load float, ptr %39, align 4, !tbaa !11
  %1298 = load float, ptr %40, align 4, !tbaa !11
  %1299 = fcmp oge float %1297, %1298
  br i1 %1299, label %1300, label %1302

1300:                                             ; preds = %1287
  %1301 = load float, ptr %39, align 4, !tbaa !11
  br label %1304

1302:                                             ; preds = %1287
  %1303 = load float, ptr %40, align 4, !tbaa !11
  br label %1304

1304:                                             ; preds = %1302, %1300
  %1305 = phi float [ %1301, %1300 ], [ %1303, %1302 ]
  %1306 = fpext float %1305 to double
  %1307 = fptrunc double %1306 to float
  store float %1307, ptr %58, align 4, !tbaa !11
  %1308 = load float, ptr %58, align 4, !tbaa !11
  %1309 = load float, ptr %76, align 4, !tbaa !11
  %1310 = load float, ptr %75, align 4, !tbaa !11
  %1311 = fdiv float %1309, %1310
  %1312 = fcmp ogt float %1308, %1311
  br i1 %1312, label %1313, label %1335

1313:                                             ; preds = %1304
  %1314 = load float, ptr %75, align 4, !tbaa !11
  %1315 = fdiv float 1.000000e+00, %1314
  store float %1315, ptr %56, align 4, !tbaa !11
  %1316 = load float, ptr %56, align 4, !tbaa !11
  %1317 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %1318 = load float, ptr %1317, align 16, !tbaa !11
  %1319 = fmul float %1318, %1316
  store float %1319, ptr %1317, align 16, !tbaa !11
  %1320 = load float, ptr %56, align 4, !tbaa !11
  %1321 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 2
  %1322 = load float, ptr %1321, align 8, !tbaa !11
  %1323 = fmul float %1322, %1320
  store float %1323, ptr %1321, align 8, !tbaa !11
  %1324 = load float, ptr %56, align 4, !tbaa !11
  %1325 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 1
  %1326 = load float, ptr %1325, align 4, !tbaa !11
  %1327 = fmul float %1326, %1324
  store float %1327, ptr %1325, align 4, !tbaa !11
  %1328 = load float, ptr %56, align 4, !tbaa !11
  %1329 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 3
  %1330 = load float, ptr %1329, align 4, !tbaa !11
  %1331 = fmul float %1330, %1328
  store float %1331, ptr %1329, align 4, !tbaa !11
  %1332 = load float, ptr %56, align 4, !tbaa !11
  %1333 = load float, ptr %69, align 4, !tbaa !11
  %1334 = fmul float %1333, %1332
  store float %1334, ptr %69, align 4, !tbaa !11
  br label %1335

1335:                                             ; preds = %1313, %1304
  br label %1336

1336:                                             ; preds = %1335, %1264
  %1337 = load float, ptr %69, align 4, !tbaa !11
  %1338 = fcmp une float %1337, 1.000000e+00
  br i1 %1338, label %1339, label %1351

1339:                                             ; preds = %1336
  %1340 = load ptr, ptr %28, align 8, !tbaa !5
  %1341 = load ptr, ptr %19, align 8, !tbaa !5
  %1342 = load i64, ptr %1341, align 8, !tbaa !9
  %1343 = add nsw i64 %1342, 1
  %1344 = getelementptr inbounds float, ptr %1340, i64 %1343
  %1345 = call i32 @f2c_sscal(ptr noundef %51, ptr noundef %69, ptr noundef %1344, ptr noundef @c__1)
  %1346 = load ptr, ptr %28, align 8, !tbaa !5
  %1347 = load i64, ptr %49, align 8, !tbaa !9
  %1348 = add nsw i64 %1347, 1
  %1349 = getelementptr inbounds float, ptr %1346, i64 %1348
  %1350 = call i32 @f2c_sscal(ptr noundef %51, ptr noundef %69, ptr noundef %1349, ptr noundef @c__1)
  br label %1351

1351:                                             ; preds = %1339, %1336
  %1352 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %1353 = load float, ptr %1352, align 16, !tbaa !11
  %1354 = load ptr, ptr %28, align 8, !tbaa !5
  %1355 = load i64, ptr %44, align 8, !tbaa !9
  %1356 = sub nsw i64 %1355, 1
  %1357 = load ptr, ptr %19, align 8, !tbaa !5
  %1358 = load i64, ptr %1357, align 8, !tbaa !9
  %1359 = add nsw i64 %1356, %1358
  %1360 = getelementptr inbounds float, ptr %1354, i64 %1359
  store float %1353, ptr %1360, align 4, !tbaa !11
  %1361 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 1
  %1362 = load float, ptr %1361, align 4, !tbaa !11
  %1363 = load ptr, ptr %28, align 8, !tbaa !5
  %1364 = load i64, ptr %44, align 8, !tbaa !9
  %1365 = load ptr, ptr %19, align 8, !tbaa !5
  %1366 = load i64, ptr %1365, align 8, !tbaa !9
  %1367 = add nsw i64 %1364, %1366
  %1368 = getelementptr inbounds float, ptr %1363, i64 %1367
  store float %1362, ptr %1368, align 4, !tbaa !11
  %1369 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 2
  %1370 = load float, ptr %1369, align 8, !tbaa !11
  %1371 = load ptr, ptr %28, align 8, !tbaa !5
  %1372 = load i64, ptr %44, align 8, !tbaa !9
  %1373 = sub nsw i64 %1372, 1
  %1374 = load i64, ptr %49, align 8, !tbaa !9
  %1375 = add nsw i64 %1373, %1374
  %1376 = getelementptr inbounds float, ptr %1371, i64 %1375
  store float %1370, ptr %1376, align 4, !tbaa !11
  %1377 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 3
  %1378 = load float, ptr %1377, align 4, !tbaa !11
  %1379 = load ptr, ptr %28, align 8, !tbaa !5
  %1380 = load i64, ptr %44, align 8, !tbaa !9
  %1381 = load i64, ptr %49, align 8, !tbaa !9
  %1382 = add nsw i64 %1380, %1381
  %1383 = getelementptr inbounds float, ptr %1379, i64 %1382
  store float %1378, ptr %1383, align 4, !tbaa !11
  %1384 = load i64, ptr %44, align 8, !tbaa !9
  %1385 = sub nsw i64 %1384, 2
  store i64 %1385, ptr %36, align 8, !tbaa !9
  %1386 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %1387 = load float, ptr %1386, align 16, !tbaa !11
  %1388 = fneg float %1387
  store float %1388, ptr %39, align 4, !tbaa !11
  %1389 = load ptr, ptr %20, align 8, !tbaa !5
  %1390 = load i64, ptr %44, align 8, !tbaa !9
  %1391 = sub nsw i64 %1390, 1
  %1392 = load i64, ptr %30, align 8, !tbaa !9
  %1393 = mul nsw i64 %1391, %1392
  %1394 = add nsw i64 %1393, 1
  %1395 = getelementptr inbounds float, ptr %1389, i64 %1394
  %1396 = load ptr, ptr %28, align 8, !tbaa !5
  %1397 = load ptr, ptr %19, align 8, !tbaa !5
  %1398 = load i64, ptr %1397, align 8, !tbaa !9
  %1399 = add nsw i64 %1398, 1
  %1400 = getelementptr inbounds float, ptr %1396, i64 %1399
  %1401 = call i32 @f2c_saxpy(ptr noundef %36, ptr noundef %39, ptr noundef %1395, ptr noundef @c__1, ptr noundef %1400, ptr noundef @c__1)
  %1402 = load i64, ptr %44, align 8, !tbaa !9
  %1403 = sub nsw i64 %1402, 2
  store i64 %1403, ptr %36, align 8, !tbaa !9
  %1404 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 1
  %1405 = load float, ptr %1404, align 4, !tbaa !11
  %1406 = fneg float %1405
  store float %1406, ptr %39, align 4, !tbaa !11
  %1407 = load ptr, ptr %20, align 8, !tbaa !5
  %1408 = load i64, ptr %44, align 8, !tbaa !9
  %1409 = load i64, ptr %30, align 8, !tbaa !9
  %1410 = mul nsw i64 %1408, %1409
  %1411 = add nsw i64 %1410, 1
  %1412 = getelementptr inbounds float, ptr %1407, i64 %1411
  %1413 = load ptr, ptr %28, align 8, !tbaa !5
  %1414 = load ptr, ptr %19, align 8, !tbaa !5
  %1415 = load i64, ptr %1414, align 8, !tbaa !9
  %1416 = add nsw i64 %1415, 1
  %1417 = getelementptr inbounds float, ptr %1413, i64 %1416
  %1418 = call i32 @f2c_saxpy(ptr noundef %36, ptr noundef %39, ptr noundef %1412, ptr noundef @c__1, ptr noundef %1417, ptr noundef @c__1)
  %1419 = load i64, ptr %44, align 8, !tbaa !9
  %1420 = sub nsw i64 %1419, 2
  store i64 %1420, ptr %36, align 8, !tbaa !9
  %1421 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 2
  %1422 = load float, ptr %1421, align 8, !tbaa !11
  %1423 = fneg float %1422
  store float %1423, ptr %39, align 4, !tbaa !11
  %1424 = load ptr, ptr %20, align 8, !tbaa !5
  %1425 = load i64, ptr %44, align 8, !tbaa !9
  %1426 = sub nsw i64 %1425, 1
  %1427 = load i64, ptr %30, align 8, !tbaa !9
  %1428 = mul nsw i64 %1426, %1427
  %1429 = add nsw i64 %1428, 1
  %1430 = getelementptr inbounds float, ptr %1424, i64 %1429
  %1431 = load ptr, ptr %28, align 8, !tbaa !5
  %1432 = load i64, ptr %49, align 8, !tbaa !9
  %1433 = add nsw i64 %1432, 1
  %1434 = getelementptr inbounds float, ptr %1431, i64 %1433
  %1435 = call i32 @f2c_saxpy(ptr noundef %36, ptr noundef %39, ptr noundef %1430, ptr noundef @c__1, ptr noundef %1434, ptr noundef @c__1)
  %1436 = load i64, ptr %44, align 8, !tbaa !9
  %1437 = sub nsw i64 %1436, 2
  store i64 %1437, ptr %36, align 8, !tbaa !9
  %1438 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 3
  %1439 = load float, ptr %1438, align 4, !tbaa !11
  %1440 = fneg float %1439
  store float %1440, ptr %39, align 4, !tbaa !11
  %1441 = load ptr, ptr %20, align 8, !tbaa !5
  %1442 = load i64, ptr %44, align 8, !tbaa !9
  %1443 = load i64, ptr %30, align 8, !tbaa !9
  %1444 = mul nsw i64 %1442, %1443
  %1445 = add nsw i64 %1444, 1
  %1446 = getelementptr inbounds float, ptr %1441, i64 %1445
  %1447 = load ptr, ptr %28, align 8, !tbaa !5
  %1448 = load i64, ptr %49, align 8, !tbaa !9
  %1449 = add nsw i64 %1448, 1
  %1450 = getelementptr inbounds float, ptr %1447, i64 %1449
  %1451 = call i32 @f2c_saxpy(ptr noundef %36, ptr noundef %39, ptr noundef %1446, ptr noundef @c__1, ptr noundef %1450, ptr noundef @c__1)
  br label %1452

1452:                                             ; preds = %1351, %1215
  br label %1453

1453:                                             ; preds = %1452, %1129
  br label %1454

1454:                                             ; preds = %1453
  %1455 = load i64, ptr %44, align 8, !tbaa !9
  %1456 = add nsw i64 %1455, -1
  store i64 %1456, ptr %44, align 8, !tbaa !9
  br label %1122, !llvm.loop !21

1457:                                             ; preds = %1122
  %1458 = load i64, ptr %66, align 8, !tbaa !9
  %1459 = icmp ne i64 %1458, 0
  br i1 %1459, label %1591, label %1460

1460:                                             ; preds = %1457
  %1461 = load ptr, ptr %28, align 8, !tbaa !5
  %1462 = load ptr, ptr %19, align 8, !tbaa !5
  %1463 = load i64, ptr %1462, align 8, !tbaa !9
  %1464 = add nsw i64 %1463, 1
  %1465 = getelementptr inbounds float, ptr %1461, i64 %1464
  %1466 = load ptr, ptr %24, align 8, !tbaa !5
  %1467 = load i64, ptr %53, align 8, !tbaa !9
  %1468 = sub nsw i64 %1467, 1
  %1469 = load i64, ptr %34, align 8, !tbaa !9
  %1470 = mul nsw i64 %1468, %1469
  %1471 = add nsw i64 %1470, 1
  %1472 = getelementptr inbounds float, ptr %1466, i64 %1471
  %1473 = call i32 @f2c_scopy(ptr noundef %51, ptr noundef %1465, ptr noundef @c__1, ptr noundef %1472, ptr noundef @c__1)
  %1474 = load ptr, ptr %28, align 8, !tbaa !5
  %1475 = load i64, ptr %49, align 8, !tbaa !9
  %1476 = add nsw i64 %1475, 1
  %1477 = getelementptr inbounds float, ptr %1474, i64 %1476
  %1478 = load ptr, ptr %24, align 8, !tbaa !5
  %1479 = load i64, ptr %53, align 8, !tbaa !9
  %1480 = load i64, ptr %34, align 8, !tbaa !9
  %1481 = mul nsw i64 %1479, %1480
  %1482 = add nsw i64 %1481, 1
  %1483 = getelementptr inbounds float, ptr %1478, i64 %1482
  %1484 = call i32 @f2c_scopy(ptr noundef %51, ptr noundef %1477, ptr noundef @c__1, ptr noundef %1483, ptr noundef @c__1)
  store float 0.000000e+00, ptr %59, align 4, !tbaa !11
  %1485 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %1485, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %1486

1486:                                             ; preds = %1542, %1460
  %1487 = load i64, ptr %45, align 8, !tbaa !9
  %1488 = load i64, ptr %36, align 8, !tbaa !9
  %1489 = icmp sle i64 %1487, %1488
  br i1 %1489, label %1490, label %1545

1490:                                             ; preds = %1486
  %1491 = load float, ptr %59, align 4, !tbaa !11
  store float %1491, ptr %41, align 4, !tbaa !11
  %1492 = load ptr, ptr %24, align 8, !tbaa !5
  %1493 = load i64, ptr %45, align 8, !tbaa !9
  %1494 = load i64, ptr %53, align 8, !tbaa !9
  %1495 = sub nsw i64 %1494, 1
  %1496 = load i64, ptr %34, align 8, !tbaa !9
  %1497 = mul nsw i64 %1495, %1496
  %1498 = add nsw i64 %1493, %1497
  %1499 = getelementptr inbounds float, ptr %1492, i64 %1498
  %1500 = load float, ptr %1499, align 4, !tbaa !11
  store float %1500, ptr %39, align 4, !tbaa !11
  %1501 = load float, ptr %39, align 4, !tbaa !11
  %1502 = fcmp oge float %1501, 0.000000e+00
  br i1 %1502, label %1503, label %1505

1503:                                             ; preds = %1490
  %1504 = load float, ptr %39, align 4, !tbaa !11
  br label %1508

1505:                                             ; preds = %1490
  %1506 = load float, ptr %39, align 4, !tbaa !11
  %1507 = fneg float %1506
  br label %1508

1508:                                             ; preds = %1505, %1503
  %1509 = phi float [ %1504, %1503 ], [ %1507, %1505 ]
  %1510 = fpext float %1509 to double
  %1511 = load ptr, ptr %24, align 8, !tbaa !5
  %1512 = load i64, ptr %45, align 8, !tbaa !9
  %1513 = load i64, ptr %53, align 8, !tbaa !9
  %1514 = load i64, ptr %34, align 8, !tbaa !9
  %1515 = mul nsw i64 %1513, %1514
  %1516 = add nsw i64 %1512, %1515
  %1517 = getelementptr inbounds float, ptr %1511, i64 %1516
  %1518 = load float, ptr %1517, align 4, !tbaa !11
  store float %1518, ptr %40, align 4, !tbaa !11
  %1519 = load float, ptr %40, align 4, !tbaa !11
  %1520 = fcmp oge float %1519, 0.000000e+00
  br i1 %1520, label %1521, label %1523

1521:                                             ; preds = %1508
  %1522 = load float, ptr %40, align 4, !tbaa !11
  br label %1526

1523:                                             ; preds = %1508
  %1524 = load float, ptr %40, align 4, !tbaa !11
  %1525 = fneg float %1524
  br label %1526

1526:                                             ; preds = %1523, %1521
  %1527 = phi float [ %1522, %1521 ], [ %1525, %1523 ]
  %1528 = fpext float %1527 to double
  %1529 = fadd double %1510, %1528
  %1530 = fptrunc double %1529 to float
  store float %1530, ptr %42, align 4, !tbaa !11
  %1531 = load float, ptr %41, align 4, !tbaa !11
  %1532 = load float, ptr %42, align 4, !tbaa !11
  %1533 = fcmp oge float %1531, %1532
  br i1 %1533, label %1534, label %1536

1534:                                             ; preds = %1526
  %1535 = load float, ptr %41, align 4, !tbaa !11
  br label %1538

1536:                                             ; preds = %1526
  %1537 = load float, ptr %42, align 4, !tbaa !11
  br label %1538

1538:                                             ; preds = %1536, %1534
  %1539 = phi float [ %1535, %1534 ], [ %1537, %1536 ]
  %1540 = fpext float %1539 to double
  %1541 = fptrunc double %1540 to float
  store float %1541, ptr %59, align 4, !tbaa !11
  br label %1542

1542:                                             ; preds = %1538
  %1543 = load i64, ptr %45, align 8, !tbaa !9
  %1544 = add nsw i64 %1543, 1
  store i64 %1544, ptr %45, align 8, !tbaa !9
  br label %1486, !llvm.loop !22

1545:                                             ; preds = %1486
  %1546 = load float, ptr %59, align 4, !tbaa !11
  %1547 = fdiv float 1.000000e+00, %1546
  store float %1547, ptr %70, align 4, !tbaa !11
  %1548 = load ptr, ptr %24, align 8, !tbaa !5
  %1549 = load i64, ptr %53, align 8, !tbaa !9
  %1550 = sub nsw i64 %1549, 1
  %1551 = load i64, ptr %34, align 8, !tbaa !9
  %1552 = mul nsw i64 %1550, %1551
  %1553 = add nsw i64 %1552, 1
  %1554 = getelementptr inbounds float, ptr %1548, i64 %1553
  %1555 = call i32 @f2c_sscal(ptr noundef %51, ptr noundef %70, ptr noundef %1554, ptr noundef @c__1)
  %1556 = load ptr, ptr %24, align 8, !tbaa !5
  %1557 = load i64, ptr %53, align 8, !tbaa !9
  %1558 = load i64, ptr %34, align 8, !tbaa !9
  %1559 = mul nsw i64 %1557, %1558
  %1560 = add nsw i64 %1559, 1
  %1561 = getelementptr inbounds float, ptr %1556, i64 %1560
  %1562 = call i32 @f2c_sscal(ptr noundef %51, ptr noundef %70, ptr noundef %1561, ptr noundef @c__1)
  %1563 = load ptr, ptr %19, align 8, !tbaa !5
  %1564 = load i64, ptr %1563, align 8, !tbaa !9
  store i64 %1564, ptr %36, align 8, !tbaa !9
  %1565 = load i64, ptr %51, align 8, !tbaa !9
  %1566 = add nsw i64 %1565, 1
  store i64 %1566, ptr %45, align 8, !tbaa !9
  br label %1567

1567:                                             ; preds = %1587, %1545
  %1568 = load i64, ptr %45, align 8, !tbaa !9
  %1569 = load i64, ptr %36, align 8, !tbaa !9
  %1570 = icmp sle i64 %1568, %1569
  br i1 %1570, label %1571, label %1590

1571:                                             ; preds = %1567
  %1572 = load ptr, ptr %24, align 8, !tbaa !5
  %1573 = load i64, ptr %45, align 8, !tbaa !9
  %1574 = load i64, ptr %53, align 8, !tbaa !9
  %1575 = sub nsw i64 %1574, 1
  %1576 = load i64, ptr %34, align 8, !tbaa !9
  %1577 = mul nsw i64 %1575, %1576
  %1578 = add nsw i64 %1573, %1577
  %1579 = getelementptr inbounds float, ptr %1572, i64 %1578
  store float 0.000000e+00, ptr %1579, align 4, !tbaa !11
  %1580 = load ptr, ptr %24, align 8, !tbaa !5
  %1581 = load i64, ptr %45, align 8, !tbaa !9
  %1582 = load i64, ptr %53, align 8, !tbaa !9
  %1583 = load i64, ptr %34, align 8, !tbaa !9
  %1584 = mul nsw i64 %1582, %1583
  %1585 = add nsw i64 %1581, %1584
  %1586 = getelementptr inbounds float, ptr %1580, i64 %1585
  store float 0.000000e+00, ptr %1586, align 4, !tbaa !11
  br label %1587

1587:                                             ; preds = %1571
  %1588 = load i64, ptr %45, align 8, !tbaa !9
  %1589 = add nsw i64 %1588, 1
  store i64 %1589, ptr %45, align 8, !tbaa !9
  br label %1567, !llvm.loop !23

1590:                                             ; preds = %1567
  br label %1757

1591:                                             ; preds = %1457
  %1592 = load i64, ptr %51, align 8, !tbaa !9
  %1593 = icmp sgt i64 %1592, 2
  br i1 %1593, label %1594, label %1645

1594:                                             ; preds = %1591
  %1595 = load i64, ptr %51, align 8, !tbaa !9
  %1596 = sub nsw i64 %1595, 2
  store i64 %1596, ptr %36, align 8, !tbaa !9
  %1597 = load ptr, ptr %19, align 8, !tbaa !5
  %1598 = load ptr, ptr %24, align 8, !tbaa !5
  %1599 = load i64, ptr %35, align 8, !tbaa !9
  %1600 = getelementptr inbounds float, ptr %1598, i64 %1599
  %1601 = load ptr, ptr %25, align 8, !tbaa !5
  %1602 = load ptr, ptr %28, align 8, !tbaa !5
  %1603 = load ptr, ptr %19, align 8, !tbaa !5
  %1604 = load i64, ptr %1603, align 8, !tbaa !9
  %1605 = add nsw i64 %1604, 1
  %1606 = getelementptr inbounds float, ptr %1602, i64 %1605
  %1607 = load ptr, ptr %28, align 8, !tbaa !5
  %1608 = load i64, ptr %51, align 8, !tbaa !9
  %1609 = sub nsw i64 %1608, 1
  %1610 = load ptr, ptr %19, align 8, !tbaa !5
  %1611 = load i64, ptr %1610, align 8, !tbaa !9
  %1612 = add nsw i64 %1609, %1611
  %1613 = getelementptr inbounds float, ptr %1607, i64 %1612
  %1614 = load ptr, ptr %24, align 8, !tbaa !5
  %1615 = load i64, ptr %51, align 8, !tbaa !9
  %1616 = sub nsw i64 %1615, 1
  %1617 = load i64, ptr %34, align 8, !tbaa !9
  %1618 = mul nsw i64 %1616, %1617
  %1619 = add nsw i64 %1618, 1
  %1620 = getelementptr inbounds float, ptr %1614, i64 %1619
  %1621 = call i32 @f2c_sgemv(ptr noundef @.str.8, ptr noundef %1597, ptr noundef %36, ptr noundef @c_b22, ptr noundef %1600, ptr noundef %1601, ptr noundef %1606, ptr noundef @c__1, ptr noundef %1613, ptr noundef %1620, ptr noundef @c__1)
  %1622 = load i64, ptr %51, align 8, !tbaa !9
  %1623 = sub nsw i64 %1622, 2
  store i64 %1623, ptr %36, align 8, !tbaa !9
  %1624 = load ptr, ptr %19, align 8, !tbaa !5
  %1625 = load ptr, ptr %24, align 8, !tbaa !5
  %1626 = load i64, ptr %35, align 8, !tbaa !9
  %1627 = getelementptr inbounds float, ptr %1625, i64 %1626
  %1628 = load ptr, ptr %25, align 8, !tbaa !5
  %1629 = load ptr, ptr %28, align 8, !tbaa !5
  %1630 = load i64, ptr %49, align 8, !tbaa !9
  %1631 = add nsw i64 %1630, 1
  %1632 = getelementptr inbounds float, ptr %1629, i64 %1631
  %1633 = load ptr, ptr %28, align 8, !tbaa !5
  %1634 = load i64, ptr %51, align 8, !tbaa !9
  %1635 = load i64, ptr %49, align 8, !tbaa !9
  %1636 = add nsw i64 %1634, %1635
  %1637 = getelementptr inbounds float, ptr %1633, i64 %1636
  %1638 = load ptr, ptr %24, align 8, !tbaa !5
  %1639 = load i64, ptr %51, align 8, !tbaa !9
  %1640 = load i64, ptr %34, align 8, !tbaa !9
  %1641 = mul nsw i64 %1639, %1640
  %1642 = add nsw i64 %1641, 1
  %1643 = getelementptr inbounds float, ptr %1638, i64 %1642
  %1644 = call i32 @f2c_sgemv(ptr noundef @.str.8, ptr noundef %1624, ptr noundef %36, ptr noundef @c_b22, ptr noundef %1627, ptr noundef %1628, ptr noundef %1632, ptr noundef @c__1, ptr noundef %1637, ptr noundef %1643, ptr noundef @c__1)
  br label %1675

1645:                                             ; preds = %1591
  %1646 = load ptr, ptr %19, align 8, !tbaa !5
  %1647 = load ptr, ptr %28, align 8, !tbaa !5
  %1648 = load i64, ptr %51, align 8, !tbaa !9
  %1649 = sub nsw i64 %1648, 1
  %1650 = load ptr, ptr %19, align 8, !tbaa !5
  %1651 = load i64, ptr %1650, align 8, !tbaa !9
  %1652 = add nsw i64 %1649, %1651
  %1653 = getelementptr inbounds float, ptr %1647, i64 %1652
  %1654 = load ptr, ptr %24, align 8, !tbaa !5
  %1655 = load i64, ptr %51, align 8, !tbaa !9
  %1656 = sub nsw i64 %1655, 1
  %1657 = load i64, ptr %34, align 8, !tbaa !9
  %1658 = mul nsw i64 %1656, %1657
  %1659 = add nsw i64 %1658, 1
  %1660 = getelementptr inbounds float, ptr %1654, i64 %1659
  %1661 = call i32 @f2c_sscal(ptr noundef %1646, ptr noundef %1653, ptr noundef %1660, ptr noundef @c__1)
  %1662 = load ptr, ptr %19, align 8, !tbaa !5
  %1663 = load ptr, ptr %28, align 8, !tbaa !5
  %1664 = load i64, ptr %51, align 8, !tbaa !9
  %1665 = load i64, ptr %49, align 8, !tbaa !9
  %1666 = add nsw i64 %1664, %1665
  %1667 = getelementptr inbounds float, ptr %1663, i64 %1666
  %1668 = load ptr, ptr %24, align 8, !tbaa !5
  %1669 = load i64, ptr %51, align 8, !tbaa !9
  %1670 = load i64, ptr %34, align 8, !tbaa !9
  %1671 = mul nsw i64 %1669, %1670
  %1672 = add nsw i64 %1671, 1
  %1673 = getelementptr inbounds float, ptr %1668, i64 %1672
  %1674 = call i32 @f2c_sscal(ptr noundef %1662, ptr noundef %1667, ptr noundef %1673, ptr noundef @c__1)
  br label %1675

1675:                                             ; preds = %1645, %1594
  store float 0.000000e+00, ptr %59, align 4, !tbaa !11
  %1676 = load ptr, ptr %19, align 8, !tbaa !5
  %1677 = load i64, ptr %1676, align 8, !tbaa !9
  store i64 %1677, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %1678

1678:                                             ; preds = %1734, %1675
  %1679 = load i64, ptr %45, align 8, !tbaa !9
  %1680 = load i64, ptr %36, align 8, !tbaa !9
  %1681 = icmp sle i64 %1679, %1680
  br i1 %1681, label %1682, label %1737

1682:                                             ; preds = %1678
  %1683 = load float, ptr %59, align 4, !tbaa !11
  store float %1683, ptr %41, align 4, !tbaa !11
  %1684 = load ptr, ptr %24, align 8, !tbaa !5
  %1685 = load i64, ptr %45, align 8, !tbaa !9
  %1686 = load i64, ptr %51, align 8, !tbaa !9
  %1687 = sub nsw i64 %1686, 1
  %1688 = load i64, ptr %34, align 8, !tbaa !9
  %1689 = mul nsw i64 %1687, %1688
  %1690 = add nsw i64 %1685, %1689
  %1691 = getelementptr inbounds float, ptr %1684, i64 %1690
  %1692 = load float, ptr %1691, align 4, !tbaa !11
  store float %1692, ptr %39, align 4, !tbaa !11
  %1693 = load float, ptr %39, align 4, !tbaa !11
  %1694 = fcmp oge float %1693, 0.000000e+00
  br i1 %1694, label %1695, label %1697

1695:                                             ; preds = %1682
  %1696 = load float, ptr %39, align 4, !tbaa !11
  br label %1700

1697:                                             ; preds = %1682
  %1698 = load float, ptr %39, align 4, !tbaa !11
  %1699 = fneg float %1698
  br label %1700

1700:                                             ; preds = %1697, %1695
  %1701 = phi float [ %1696, %1695 ], [ %1699, %1697 ]
  %1702 = fpext float %1701 to double
  %1703 = load ptr, ptr %24, align 8, !tbaa !5
  %1704 = load i64, ptr %45, align 8, !tbaa !9
  %1705 = load i64, ptr %51, align 8, !tbaa !9
  %1706 = load i64, ptr %34, align 8, !tbaa !9
  %1707 = mul nsw i64 %1705, %1706
  %1708 = add nsw i64 %1704, %1707
  %1709 = getelementptr inbounds float, ptr %1703, i64 %1708
  %1710 = load float, ptr %1709, align 4, !tbaa !11
  store float %1710, ptr %40, align 4, !tbaa !11
  %1711 = load float, ptr %40, align 4, !tbaa !11
  %1712 = fcmp oge float %1711, 0.000000e+00
  br i1 %1712, label %1713, label %1715

1713:                                             ; preds = %1700
  %1714 = load float, ptr %40, align 4, !tbaa !11
  br label %1718

1715:                                             ; preds = %1700
  %1716 = load float, ptr %40, align 4, !tbaa !11
  %1717 = fneg float %1716
  br label %1718

1718:                                             ; preds = %1715, %1713
  %1719 = phi float [ %1714, %1713 ], [ %1717, %1715 ]
  %1720 = fpext float %1719 to double
  %1721 = fadd double %1702, %1720
  %1722 = fptrunc double %1721 to float
  store float %1722, ptr %42, align 4, !tbaa !11
  %1723 = load float, ptr %41, align 4, !tbaa !11
  %1724 = load float, ptr %42, align 4, !tbaa !11
  %1725 = fcmp oge float %1723, %1724
  br i1 %1725, label %1726, label %1728

1726:                                             ; preds = %1718
  %1727 = load float, ptr %41, align 4, !tbaa !11
  br label %1730

1728:                                             ; preds = %1718
  %1729 = load float, ptr %42, align 4, !tbaa !11
  br label %1730

1730:                                             ; preds = %1728, %1726
  %1731 = phi float [ %1727, %1726 ], [ %1729, %1728 ]
  %1732 = fpext float %1731 to double
  %1733 = fptrunc double %1732 to float
  store float %1733, ptr %59, align 4, !tbaa !11
  br label %1734

1734:                                             ; preds = %1730
  %1735 = load i64, ptr %45, align 8, !tbaa !9
  %1736 = add nsw i64 %1735, 1
  store i64 %1736, ptr %45, align 8, !tbaa !9
  br label %1678, !llvm.loop !24

1737:                                             ; preds = %1678
  %1738 = load float, ptr %59, align 4, !tbaa !11
  %1739 = fdiv float 1.000000e+00, %1738
  store float %1739, ptr %70, align 4, !tbaa !11
  %1740 = load ptr, ptr %19, align 8, !tbaa !5
  %1741 = load ptr, ptr %24, align 8, !tbaa !5
  %1742 = load i64, ptr %51, align 8, !tbaa !9
  %1743 = sub nsw i64 %1742, 1
  %1744 = load i64, ptr %34, align 8, !tbaa !9
  %1745 = mul nsw i64 %1743, %1744
  %1746 = add nsw i64 %1745, 1
  %1747 = getelementptr inbounds float, ptr %1741, i64 %1746
  %1748 = call i32 @f2c_sscal(ptr noundef %1740, ptr noundef %70, ptr noundef %1747, ptr noundef @c__1)
  %1749 = load ptr, ptr %19, align 8, !tbaa !5
  %1750 = load ptr, ptr %24, align 8, !tbaa !5
  %1751 = load i64, ptr %51, align 8, !tbaa !9
  %1752 = load i64, ptr %34, align 8, !tbaa !9
  %1753 = mul nsw i64 %1751, %1752
  %1754 = add nsw i64 %1753, 1
  %1755 = getelementptr inbounds float, ptr %1750, i64 %1754
  %1756 = call i32 @f2c_sscal(ptr noundef %1749, ptr noundef %70, ptr noundef %1755, ptr noundef @c__1)
  br label %1757

1757:                                             ; preds = %1737, %1590
  br label %1758

1758:                                             ; preds = %1757, %958
  %1759 = load i64, ptr %53, align 8, !tbaa !9
  %1760 = add nsw i64 %1759, -1
  store i64 %1760, ptr %53, align 8, !tbaa !9
  %1761 = load i64, ptr %52, align 8, !tbaa !9
  %1762 = icmp ne i64 %1761, 0
  br i1 %1762, label %1763, label %1766

1763:                                             ; preds = %1758
  %1764 = load i64, ptr %53, align 8, !tbaa !9
  %1765 = add nsw i64 %1764, -1
  store i64 %1765, ptr %53, align 8, !tbaa !9
  br label %1766

1766:                                             ; preds = %1763, %1758
  br label %1767

1767:                                             ; preds = %1766, %449, %440, %410
  %1768 = load i64, ptr %52, align 8, !tbaa !9
  %1769 = icmp eq i64 %1768, 1
  br i1 %1769, label %1770, label %1771

1770:                                             ; preds = %1767
  store i64 0, ptr %52, align 8, !tbaa !9
  br label %1771

1771:                                             ; preds = %1770, %1767
  %1772 = load i64, ptr %52, align 8, !tbaa !9
  %1773 = icmp eq i64 %1772, -1
  br i1 %1773, label %1774, label %1775

1774:                                             ; preds = %1771
  store i64 1, ptr %52, align 8, !tbaa !9
  br label %1775

1775:                                             ; preds = %1774, %1771
  br label %1776

1776:                                             ; preds = %1775
  %1777 = load i64, ptr %51, align 8, !tbaa !9
  %1778 = add nsw i64 %1777, -1
  store i64 %1778, ptr %51, align 8, !tbaa !9
  br label %404, !llvm.loop !25

1779:                                             ; preds = %404
  br label %1780

1780:                                             ; preds = %1779, %393
  %1781 = load i64, ptr %71, align 8, !tbaa !9
  %1782 = icmp ne i64 %1781, 0
  br i1 %1782, label %1783, label %3651

1783:                                             ; preds = %1780
  store i64 0, ptr %52, align 8, !tbaa !9
  store i64 1, ptr %53, align 8, !tbaa !9
  %1784 = load ptr, ptr %19, align 8, !tbaa !5
  %1785 = load i64, ptr %1784, align 8, !tbaa !9
  store i64 %1785, ptr %36, align 8, !tbaa !9
  store i64 1, ptr %51, align 8, !tbaa !9
  br label %1786

1786:                                             ; preds = %3647, %1783
  %1787 = load i64, ptr %51, align 8, !tbaa !9
  %1788 = load i64, ptr %36, align 8, !tbaa !9
  %1789 = icmp sle i64 %1787, %1788
  br i1 %1789, label %1790, label %3650

1790:                                             ; preds = %1786
  %1791 = load i64, ptr %52, align 8, !tbaa !9
  %1792 = icmp eq i64 %1791, -1
  br i1 %1792, label %1793, label %1794

1793:                                             ; preds = %1790
  br label %3638

1794:                                             ; preds = %1790
  %1795 = load i64, ptr %51, align 8, !tbaa !9
  %1796 = load ptr, ptr %19, align 8, !tbaa !5
  %1797 = load i64, ptr %1796, align 8, !tbaa !9
  %1798 = icmp eq i64 %1795, %1797
  br i1 %1798, label %1799, label %1800

1799:                                             ; preds = %1794
  br label %1813

1800:                                             ; preds = %1794
  %1801 = load ptr, ptr %20, align 8, !tbaa !5
  %1802 = load i64, ptr %51, align 8, !tbaa !9
  %1803 = add nsw i64 %1802, 1
  %1804 = load i64, ptr %51, align 8, !tbaa !9
  %1805 = load i64, ptr %30, align 8, !tbaa !9
  %1806 = mul nsw i64 %1804, %1805
  %1807 = add nsw i64 %1803, %1806
  %1808 = getelementptr inbounds float, ptr %1801, i64 %1807
  %1809 = load float, ptr %1808, align 4, !tbaa !11
  %1810 = fcmp oeq float %1809, 0.000000e+00
  br i1 %1810, label %1811, label %1812

1811:                                             ; preds = %1800
  br label %1813

1812:                                             ; preds = %1800
  store i64 1, ptr %52, align 8, !tbaa !9
  br label %1813

1813:                                             ; preds = %1812, %1811, %1799
  %1814 = load i64, ptr %74, align 8, !tbaa !9
  %1815 = icmp ne i64 %1814, 0
  br i1 %1815, label %1816, label %1824

1816:                                             ; preds = %1813
  %1817 = load ptr, ptr %18, align 8, !tbaa !5
  %1818 = load i64, ptr %51, align 8, !tbaa !9
  %1819 = getelementptr inbounds i64, ptr %1817, i64 %1818
  %1820 = load i64, ptr %1819, align 8, !tbaa !9
  %1821 = icmp ne i64 %1820, 0
  br i1 %1821, label %1823, label %1822

1822:                                             ; preds = %1816
  br label %3638

1823:                                             ; preds = %1816
  br label %1824

1824:                                             ; preds = %1823, %1813
  %1825 = load ptr, ptr %20, align 8, !tbaa !5
  %1826 = load i64, ptr %51, align 8, !tbaa !9
  %1827 = load i64, ptr %51, align 8, !tbaa !9
  %1828 = load i64, ptr %30, align 8, !tbaa !9
  %1829 = mul nsw i64 %1827, %1828
  %1830 = add nsw i64 %1826, %1829
  %1831 = getelementptr inbounds float, ptr %1825, i64 %1830
  %1832 = load float, ptr %1831, align 4, !tbaa !11
  store float %1832, ptr %55, align 4, !tbaa !11
  store float 0.000000e+00, ptr %54, align 4, !tbaa !11
  %1833 = load i64, ptr %52, align 8, !tbaa !9
  %1834 = icmp ne i64 %1833, 0
  br i1 %1834, label %1835, label %1878

1835:                                             ; preds = %1824
  %1836 = load ptr, ptr %20, align 8, !tbaa !5
  %1837 = load i64, ptr %51, align 8, !tbaa !9
  %1838 = load i64, ptr %51, align 8, !tbaa !9
  %1839 = add nsw i64 %1838, 1
  %1840 = load i64, ptr %30, align 8, !tbaa !9
  %1841 = mul nsw i64 %1839, %1840
  %1842 = add nsw i64 %1837, %1841
  %1843 = getelementptr inbounds float, ptr %1836, i64 %1842
  %1844 = load float, ptr %1843, align 4, !tbaa !11
  store float %1844, ptr %39, align 4, !tbaa !11
  %1845 = load float, ptr %39, align 4, !tbaa !11
  %1846 = fcmp oge float %1845, 0.000000e+00
  br i1 %1846, label %1847, label %1849

1847:                                             ; preds = %1835
  %1848 = load float, ptr %39, align 4, !tbaa !11
  br label %1852

1849:                                             ; preds = %1835
  %1850 = load float, ptr %39, align 4, !tbaa !11
  %1851 = fneg float %1850
  br label %1852

1852:                                             ; preds = %1849, %1847
  %1853 = phi float [ %1848, %1847 ], [ %1851, %1849 ]
  %1854 = fpext float %1853 to double
  %1855 = call double @sqrt(double noundef %1854) #4
  %1856 = load ptr, ptr %20, align 8, !tbaa !5
  %1857 = load i64, ptr %51, align 8, !tbaa !9
  %1858 = add nsw i64 %1857, 1
  %1859 = load i64, ptr %51, align 8, !tbaa !9
  %1860 = load i64, ptr %30, align 8, !tbaa !9
  %1861 = mul nsw i64 %1859, %1860
  %1862 = add nsw i64 %1858, %1861
  %1863 = getelementptr inbounds float, ptr %1856, i64 %1862
  %1864 = load float, ptr %1863, align 4, !tbaa !11
  store float %1864, ptr %40, align 4, !tbaa !11
  %1865 = load float, ptr %40, align 4, !tbaa !11
  %1866 = fcmp oge float %1865, 0.000000e+00
  br i1 %1866, label %1867, label %1869

1867:                                             ; preds = %1852
  %1868 = load float, ptr %40, align 4, !tbaa !11
  br label %1872

1869:                                             ; preds = %1852
  %1870 = load float, ptr %40, align 4, !tbaa !11
  %1871 = fneg float %1870
  br label %1872

1872:                                             ; preds = %1869, %1867
  %1873 = phi float [ %1868, %1867 ], [ %1871, %1869 ]
  %1874 = fpext float %1873 to double
  %1875 = call double @sqrt(double noundef %1874) #4
  %1876 = fmul double %1855, %1875
  %1877 = fptrunc double %1876 to float
  store float %1877, ptr %54, align 4, !tbaa !11
  br label %1878

1878:                                             ; preds = %1872, %1824
  %1879 = load float, ptr %57, align 4, !tbaa !11
  %1880 = fpext float %1879 to double
  %1881 = load float, ptr %55, align 4, !tbaa !11
  %1882 = fcmp oge float %1881, 0.000000e+00
  br i1 %1882, label %1883, label %1885

1883:                                             ; preds = %1878
  %1884 = load float, ptr %55, align 4, !tbaa !11
  br label %1888

1885:                                             ; preds = %1878
  %1886 = load float, ptr %55, align 4, !tbaa !11
  %1887 = fneg float %1886
  br label %1888

1888:                                             ; preds = %1885, %1883
  %1889 = phi float [ %1884, %1883 ], [ %1887, %1885 ]
  %1890 = fpext float %1889 to double
  %1891 = load float, ptr %54, align 4, !tbaa !11
  %1892 = fcmp oge float %1891, 0.000000e+00
  br i1 %1892, label %1893, label %1895

1893:                                             ; preds = %1888
  %1894 = load float, ptr %54, align 4, !tbaa !11
  br label %1898

1895:                                             ; preds = %1888
  %1896 = load float, ptr %54, align 4, !tbaa !11
  %1897 = fneg float %1896
  br label %1898

1898:                                             ; preds = %1895, %1893
  %1899 = phi float [ %1894, %1893 ], [ %1897, %1895 ]
  %1900 = fpext float %1899 to double
  %1901 = fadd double %1890, %1900
  %1902 = fmul double %1880, %1901
  %1903 = fptrunc double %1902 to float
  store float %1903, ptr %39, align 4, !tbaa !11
  %1904 = load float, ptr %39, align 4, !tbaa !11
  %1905 = load float, ptr %78, align 4, !tbaa !11
  %1906 = fcmp oge float %1904, %1905
  br i1 %1906, label %1907, label %1909

1907:                                             ; preds = %1898
  %1908 = load float, ptr %39, align 4, !tbaa !11
  br label %1911

1909:                                             ; preds = %1898
  %1910 = load float, ptr %78, align 4, !tbaa !11
  br label %1911

1911:                                             ; preds = %1909, %1907
  %1912 = phi float [ %1908, %1907 ], [ %1910, %1909 ]
  %1913 = fpext float %1912 to double
  %1914 = fptrunc double %1913 to float
  store float %1914, ptr %65, align 4, !tbaa !11
  %1915 = load i64, ptr %52, align 8, !tbaa !9
  %1916 = icmp eq i64 %1915, 0
  br i1 %1916, label %1917, label %2510

1917:                                             ; preds = %1911
  %1918 = load ptr, ptr %28, align 8, !tbaa !5
  %1919 = load i64, ptr %51, align 8, !tbaa !9
  %1920 = load ptr, ptr %19, align 8, !tbaa !5
  %1921 = load i64, ptr %1920, align 8, !tbaa !9
  %1922 = add nsw i64 %1919, %1921
  %1923 = getelementptr inbounds float, ptr %1918, i64 %1922
  store float 1.000000e+00, ptr %1923, align 4, !tbaa !11
  %1924 = load ptr, ptr %19, align 8, !tbaa !5
  %1925 = load i64, ptr %1924, align 8, !tbaa !9
  store i64 %1925, ptr %37, align 8, !tbaa !9
  %1926 = load i64, ptr %51, align 8, !tbaa !9
  %1927 = add nsw i64 %1926, 1
  store i64 %1927, ptr %45, align 8, !tbaa !9
  br label %1928

1928:                                             ; preds = %1948, %1917
  %1929 = load i64, ptr %45, align 8, !tbaa !9
  %1930 = load i64, ptr %37, align 8, !tbaa !9
  %1931 = icmp sle i64 %1929, %1930
  br i1 %1931, label %1932, label %1951

1932:                                             ; preds = %1928
  %1933 = load ptr, ptr %20, align 8, !tbaa !5
  %1934 = load i64, ptr %51, align 8, !tbaa !9
  %1935 = load i64, ptr %45, align 8, !tbaa !9
  %1936 = load i64, ptr %30, align 8, !tbaa !9
  %1937 = mul nsw i64 %1935, %1936
  %1938 = add nsw i64 %1934, %1937
  %1939 = getelementptr inbounds float, ptr %1933, i64 %1938
  %1940 = load float, ptr %1939, align 4, !tbaa !11
  %1941 = fneg float %1940
  %1942 = load ptr, ptr %28, align 8, !tbaa !5
  %1943 = load i64, ptr %45, align 8, !tbaa !9
  %1944 = load ptr, ptr %19, align 8, !tbaa !5
  %1945 = load i64, ptr %1944, align 8, !tbaa !9
  %1946 = add nsw i64 %1943, %1945
  %1947 = getelementptr inbounds float, ptr %1942, i64 %1946
  store float %1941, ptr %1947, align 4, !tbaa !11
  br label %1948

1948:                                             ; preds = %1932
  %1949 = load i64, ptr %45, align 8, !tbaa !9
  %1950 = add nsw i64 %1949, 1
  store i64 %1950, ptr %45, align 8, !tbaa !9
  br label %1928, !llvm.loop !26

1951:                                             ; preds = %1928
  store float 1.000000e+00, ptr %67, align 4, !tbaa !11
  %1952 = load float, ptr %76, align 4, !tbaa !11
  store float %1952, ptr %73, align 4, !tbaa !11
  %1953 = load i64, ptr %51, align 8, !tbaa !9
  %1954 = add nsw i64 %1953, 1
  store i64 %1954, ptr %68, align 8, !tbaa !9
  %1955 = load ptr, ptr %19, align 8, !tbaa !5
  %1956 = load i64, ptr %1955, align 8, !tbaa !9
  store i64 %1956, ptr %37, align 8, !tbaa !9
  %1957 = load i64, ptr %51, align 8, !tbaa !9
  %1958 = add nsw i64 %1957, 1
  store i64 %1958, ptr %44, align 8, !tbaa !9
  br label %1959

1959:                                             ; preds = %2340, %1951
  %1960 = load i64, ptr %44, align 8, !tbaa !9
  %1961 = load i64, ptr %37, align 8, !tbaa !9
  %1962 = icmp sle i64 %1960, %1961
  br i1 %1962, label %1963, label %2343

1963:                                             ; preds = %1959
  %1964 = load i64, ptr %44, align 8, !tbaa !9
  %1965 = load i64, ptr %68, align 8, !tbaa !9
  %1966 = icmp slt i64 %1964, %1965
  br i1 %1966, label %1967, label %1968

1967:                                             ; preds = %1963
  br label %2339

1968:                                             ; preds = %1963
  %1969 = load i64, ptr %44, align 8, !tbaa !9
  store i64 %1969, ptr %47, align 8, !tbaa !9
  %1970 = load i64, ptr %44, align 8, !tbaa !9
  store i64 %1970, ptr %48, align 8, !tbaa !9
  %1971 = load i64, ptr %44, align 8, !tbaa !9
  %1972 = add nsw i64 %1971, 1
  store i64 %1972, ptr %68, align 8, !tbaa !9
  %1973 = load i64, ptr %44, align 8, !tbaa !9
  %1974 = load ptr, ptr %19, align 8, !tbaa !5
  %1975 = load i64, ptr %1974, align 8, !tbaa !9
  %1976 = icmp slt i64 %1973, %1975
  br i1 %1976, label %1977, label %1994

1977:                                             ; preds = %1968
  %1978 = load ptr, ptr %20, align 8, !tbaa !5
  %1979 = load i64, ptr %44, align 8, !tbaa !9
  %1980 = add nsw i64 %1979, 1
  %1981 = load i64, ptr %44, align 8, !tbaa !9
  %1982 = load i64, ptr %30, align 8, !tbaa !9
  %1983 = mul nsw i64 %1981, %1982
  %1984 = add nsw i64 %1980, %1983
  %1985 = getelementptr inbounds float, ptr %1978, i64 %1984
  %1986 = load float, ptr %1985, align 4, !tbaa !11
  %1987 = fcmp une float %1986, 0.000000e+00
  br i1 %1987, label %1988, label %1993

1988:                                             ; preds = %1977
  %1989 = load i64, ptr %44, align 8, !tbaa !9
  %1990 = add nsw i64 %1989, 1
  store i64 %1990, ptr %48, align 8, !tbaa !9
  %1991 = load i64, ptr %44, align 8, !tbaa !9
  %1992 = add nsw i64 %1991, 2
  store i64 %1992, ptr %68, align 8, !tbaa !9
  br label %1993

1993:                                             ; preds = %1988, %1977
  br label %1994

1994:                                             ; preds = %1993, %1968
  %1995 = load i64, ptr %47, align 8, !tbaa !9
  %1996 = load i64, ptr %48, align 8, !tbaa !9
  %1997 = icmp eq i64 %1995, %1996
  br i1 %1997, label %1998, label %2125

1998:                                             ; preds = %1994
  %1999 = load ptr, ptr %28, align 8, !tbaa !5
  %2000 = load i64, ptr %44, align 8, !tbaa !9
  %2001 = getelementptr inbounds float, ptr %1999, i64 %2000
  %2002 = load float, ptr %2001, align 4, !tbaa !11
  %2003 = load float, ptr %73, align 4, !tbaa !11
  %2004 = fcmp ogt float %2002, %2003
  br i1 %2004, label %2005, label %2021

2005:                                             ; preds = %1998
  %2006 = load float, ptr %67, align 4, !tbaa !11
  %2007 = fdiv float 1.000000e+00, %2006
  store float %2007, ptr %56, align 4, !tbaa !11
  %2008 = load ptr, ptr %19, align 8, !tbaa !5
  %2009 = load i64, ptr %2008, align 8, !tbaa !9
  %2010 = load i64, ptr %51, align 8, !tbaa !9
  %2011 = sub nsw i64 %2009, %2010
  %2012 = add nsw i64 %2011, 1
  store i64 %2012, ptr %38, align 8, !tbaa !9
  %2013 = load ptr, ptr %28, align 8, !tbaa !5
  %2014 = load i64, ptr %51, align 8, !tbaa !9
  %2015 = load ptr, ptr %19, align 8, !tbaa !5
  %2016 = load i64, ptr %2015, align 8, !tbaa !9
  %2017 = add nsw i64 %2014, %2016
  %2018 = getelementptr inbounds float, ptr %2013, i64 %2017
  %2019 = call i32 @f2c_sscal(ptr noundef %38, ptr noundef %56, ptr noundef %2018, ptr noundef @c__1)
  store float 1.000000e+00, ptr %67, align 4, !tbaa !11
  %2020 = load float, ptr %76, align 4, !tbaa !11
  store float %2020, ptr %73, align 4, !tbaa !11
  br label %2021

2021:                                             ; preds = %2005, %1998
  %2022 = load i64, ptr %44, align 8, !tbaa !9
  %2023 = load i64, ptr %51, align 8, !tbaa !9
  %2024 = sub nsw i64 %2022, %2023
  %2025 = sub nsw i64 %2024, 1
  store i64 %2025, ptr %38, align 8, !tbaa !9
  %2026 = load ptr, ptr %20, align 8, !tbaa !5
  %2027 = load i64, ptr %51, align 8, !tbaa !9
  %2028 = add nsw i64 %2027, 1
  %2029 = load i64, ptr %44, align 8, !tbaa !9
  %2030 = load i64, ptr %30, align 8, !tbaa !9
  %2031 = mul nsw i64 %2029, %2030
  %2032 = add nsw i64 %2028, %2031
  %2033 = getelementptr inbounds float, ptr %2026, i64 %2032
  %2034 = load ptr, ptr %28, align 8, !tbaa !5
  %2035 = load i64, ptr %51, align 8, !tbaa !9
  %2036 = add nsw i64 %2035, 1
  %2037 = load ptr, ptr %19, align 8, !tbaa !5
  %2038 = load i64, ptr %2037, align 8, !tbaa !9
  %2039 = add nsw i64 %2036, %2038
  %2040 = getelementptr inbounds float, ptr %2034, i64 %2039
  %2041 = call double @f2c_sdot(ptr noundef %38, ptr noundef %2033, ptr noundef @c__1, ptr noundef %2040, ptr noundef @c__1)
  %2042 = load ptr, ptr %28, align 8, !tbaa !5
  %2043 = load i64, ptr %44, align 8, !tbaa !9
  %2044 = load ptr, ptr %19, align 8, !tbaa !5
  %2045 = load i64, ptr %2044, align 8, !tbaa !9
  %2046 = add nsw i64 %2043, %2045
  %2047 = getelementptr inbounds float, ptr %2042, i64 %2046
  %2048 = load float, ptr %2047, align 4, !tbaa !11
  %2049 = fpext float %2048 to double
  %2050 = fsub double %2049, %2041
  %2051 = fptrunc double %2050 to float
  store float %2051, ptr %2047, align 4, !tbaa !11
  %2052 = load ptr, ptr %20, align 8, !tbaa !5
  %2053 = load i64, ptr %44, align 8, !tbaa !9
  %2054 = load i64, ptr %44, align 8, !tbaa !9
  %2055 = load i64, ptr %30, align 8, !tbaa !9
  %2056 = mul nsw i64 %2054, %2055
  %2057 = add nsw i64 %2053, %2056
  %2058 = getelementptr inbounds float, ptr %2052, i64 %2057
  %2059 = load ptr, ptr %21, align 8, !tbaa !5
  %2060 = load ptr, ptr %28, align 8, !tbaa !5
  %2061 = load i64, ptr %44, align 8, !tbaa !9
  %2062 = load ptr, ptr %19, align 8, !tbaa !5
  %2063 = load i64, ptr %2062, align 8, !tbaa !9
  %2064 = add nsw i64 %2061, %2063
  %2065 = getelementptr inbounds float, ptr %2060, i64 %2064
  %2066 = load ptr, ptr %19, align 8, !tbaa !5
  %2067 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %2068 = call i32 @slaln2_(ptr noundef @c_false, ptr noundef @c__1, ptr noundef @c__1, ptr noundef %65, ptr noundef @c_b22, ptr noundef %2058, ptr noundef %2059, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %2065, ptr noundef %2066, ptr noundef %55, ptr noundef @c_b25, ptr noundef %2067, ptr noundef @c__2, ptr noundef %69, ptr noundef %75, ptr noundef %62)
  %2069 = load float, ptr %69, align 4, !tbaa !11
  %2070 = fcmp une float %2069, 1.000000e+00
  br i1 %2070, label %2071, label %2084

2071:                                             ; preds = %2021
  %2072 = load ptr, ptr %19, align 8, !tbaa !5
  %2073 = load i64, ptr %2072, align 8, !tbaa !9
  %2074 = load i64, ptr %51, align 8, !tbaa !9
  %2075 = sub nsw i64 %2073, %2074
  %2076 = add nsw i64 %2075, 1
  store i64 %2076, ptr %38, align 8, !tbaa !9
  %2077 = load ptr, ptr %28, align 8, !tbaa !5
  %2078 = load i64, ptr %51, align 8, !tbaa !9
  %2079 = load ptr, ptr %19, align 8, !tbaa !5
  %2080 = load i64, ptr %2079, align 8, !tbaa !9
  %2081 = add nsw i64 %2078, %2080
  %2082 = getelementptr inbounds float, ptr %2077, i64 %2081
  %2083 = call i32 @f2c_sscal(ptr noundef %38, ptr noundef %69, ptr noundef %2082, ptr noundef @c__1)
  br label %2084

2084:                                             ; preds = %2071, %2021
  %2085 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %2086 = load float, ptr %2085, align 16, !tbaa !11
  %2087 = load ptr, ptr %28, align 8, !tbaa !5
  %2088 = load i64, ptr %44, align 8, !tbaa !9
  %2089 = load ptr, ptr %19, align 8, !tbaa !5
  %2090 = load i64, ptr %2089, align 8, !tbaa !9
  %2091 = add nsw i64 %2088, %2090
  %2092 = getelementptr inbounds float, ptr %2087, i64 %2091
  store float %2086, ptr %2092, align 4, !tbaa !11
  %2093 = load ptr, ptr %28, align 8, !tbaa !5
  %2094 = load i64, ptr %44, align 8, !tbaa !9
  %2095 = load ptr, ptr %19, align 8, !tbaa !5
  %2096 = load i64, ptr %2095, align 8, !tbaa !9
  %2097 = add nsw i64 %2094, %2096
  %2098 = getelementptr inbounds float, ptr %2093, i64 %2097
  %2099 = load float, ptr %2098, align 4, !tbaa !11
  store float %2099, ptr %39, align 4, !tbaa !11
  %2100 = load float, ptr %39, align 4, !tbaa !11
  %2101 = fcmp oge float %2100, 0.000000e+00
  br i1 %2101, label %2102, label %2104

2102:                                             ; preds = %2084
  %2103 = load float, ptr %39, align 4, !tbaa !11
  br label %2107

2104:                                             ; preds = %2084
  %2105 = load float, ptr %39, align 4, !tbaa !11
  %2106 = fneg float %2105
  br label %2107

2107:                                             ; preds = %2104, %2102
  %2108 = phi float [ %2103, %2102 ], [ %2106, %2104 ]
  %2109 = fpext float %2108 to double
  %2110 = fptrunc double %2109 to float
  store float %2110, ptr %40, align 4, !tbaa !11
  %2111 = load float, ptr %40, align 4, !tbaa !11
  %2112 = load float, ptr %67, align 4, !tbaa !11
  %2113 = fcmp oge float %2111, %2112
  br i1 %2113, label %2114, label %2116

2114:                                             ; preds = %2107
  %2115 = load float, ptr %40, align 4, !tbaa !11
  br label %2118

2116:                                             ; preds = %2107
  %2117 = load float, ptr %67, align 4, !tbaa !11
  br label %2118

2118:                                             ; preds = %2116, %2114
  %2119 = phi float [ %2115, %2114 ], [ %2117, %2116 ]
  %2120 = fpext float %2119 to double
  %2121 = fptrunc double %2120 to float
  store float %2121, ptr %67, align 4, !tbaa !11
  %2122 = load float, ptr %76, align 4, !tbaa !11
  %2123 = load float, ptr %67, align 4, !tbaa !11
  %2124 = fdiv float %2122, %2123
  store float %2124, ptr %73, align 4, !tbaa !11
  br label %2338

2125:                                             ; preds = %1994
  %2126 = load ptr, ptr %28, align 8, !tbaa !5
  %2127 = load i64, ptr %44, align 8, !tbaa !9
  %2128 = getelementptr inbounds float, ptr %2126, i64 %2127
  %2129 = load float, ptr %2128, align 4, !tbaa !11
  store float %2129, ptr %39, align 4, !tbaa !11
  %2130 = load ptr, ptr %28, align 8, !tbaa !5
  %2131 = load i64, ptr %44, align 8, !tbaa !9
  %2132 = add nsw i64 %2131, 1
  %2133 = getelementptr inbounds float, ptr %2130, i64 %2132
  %2134 = load float, ptr %2133, align 4, !tbaa !11
  store float %2134, ptr %40, align 4, !tbaa !11
  %2135 = load float, ptr %39, align 4, !tbaa !11
  %2136 = load float, ptr %40, align 4, !tbaa !11
  %2137 = fcmp oge float %2135, %2136
  br i1 %2137, label %2138, label %2140

2138:                                             ; preds = %2125
  %2139 = load float, ptr %39, align 4, !tbaa !11
  br label %2142

2140:                                             ; preds = %2125
  %2141 = load float, ptr %40, align 4, !tbaa !11
  br label %2142

2142:                                             ; preds = %2140, %2138
  %2143 = phi float [ %2139, %2138 ], [ %2141, %2140 ]
  %2144 = fpext float %2143 to double
  %2145 = fptrunc double %2144 to float
  store float %2145, ptr %58, align 4, !tbaa !11
  %2146 = load float, ptr %58, align 4, !tbaa !11
  %2147 = load float, ptr %73, align 4, !tbaa !11
  %2148 = fcmp ogt float %2146, %2147
  br i1 %2148, label %2149, label %2165

2149:                                             ; preds = %2142
  %2150 = load float, ptr %67, align 4, !tbaa !11
  %2151 = fdiv float 1.000000e+00, %2150
  store float %2151, ptr %56, align 4, !tbaa !11
  %2152 = load ptr, ptr %19, align 8, !tbaa !5
  %2153 = load i64, ptr %2152, align 8, !tbaa !9
  %2154 = load i64, ptr %51, align 8, !tbaa !9
  %2155 = sub nsw i64 %2153, %2154
  %2156 = add nsw i64 %2155, 1
  store i64 %2156, ptr %38, align 8, !tbaa !9
  %2157 = load ptr, ptr %28, align 8, !tbaa !5
  %2158 = load i64, ptr %51, align 8, !tbaa !9
  %2159 = load ptr, ptr %19, align 8, !tbaa !5
  %2160 = load i64, ptr %2159, align 8, !tbaa !9
  %2161 = add nsw i64 %2158, %2160
  %2162 = getelementptr inbounds float, ptr %2157, i64 %2161
  %2163 = call i32 @f2c_sscal(ptr noundef %38, ptr noundef %56, ptr noundef %2162, ptr noundef @c__1)
  store float 1.000000e+00, ptr %67, align 4, !tbaa !11
  %2164 = load float, ptr %76, align 4, !tbaa !11
  store float %2164, ptr %73, align 4, !tbaa !11
  br label %2165

2165:                                             ; preds = %2149, %2142
  %2166 = load i64, ptr %44, align 8, !tbaa !9
  %2167 = load i64, ptr %51, align 8, !tbaa !9
  %2168 = sub nsw i64 %2166, %2167
  %2169 = sub nsw i64 %2168, 1
  store i64 %2169, ptr %38, align 8, !tbaa !9
  %2170 = load ptr, ptr %20, align 8, !tbaa !5
  %2171 = load i64, ptr %51, align 8, !tbaa !9
  %2172 = add nsw i64 %2171, 1
  %2173 = load i64, ptr %44, align 8, !tbaa !9
  %2174 = load i64, ptr %30, align 8, !tbaa !9
  %2175 = mul nsw i64 %2173, %2174
  %2176 = add nsw i64 %2172, %2175
  %2177 = getelementptr inbounds float, ptr %2170, i64 %2176
  %2178 = load ptr, ptr %28, align 8, !tbaa !5
  %2179 = load i64, ptr %51, align 8, !tbaa !9
  %2180 = add nsw i64 %2179, 1
  %2181 = load ptr, ptr %19, align 8, !tbaa !5
  %2182 = load i64, ptr %2181, align 8, !tbaa !9
  %2183 = add nsw i64 %2180, %2182
  %2184 = getelementptr inbounds float, ptr %2178, i64 %2183
  %2185 = call double @f2c_sdot(ptr noundef %38, ptr noundef %2177, ptr noundef @c__1, ptr noundef %2184, ptr noundef @c__1)
  %2186 = load ptr, ptr %28, align 8, !tbaa !5
  %2187 = load i64, ptr %44, align 8, !tbaa !9
  %2188 = load ptr, ptr %19, align 8, !tbaa !5
  %2189 = load i64, ptr %2188, align 8, !tbaa !9
  %2190 = add nsw i64 %2187, %2189
  %2191 = getelementptr inbounds float, ptr %2186, i64 %2190
  %2192 = load float, ptr %2191, align 4, !tbaa !11
  %2193 = fpext float %2192 to double
  %2194 = fsub double %2193, %2185
  %2195 = fptrunc double %2194 to float
  store float %2195, ptr %2191, align 4, !tbaa !11
  %2196 = load i64, ptr %44, align 8, !tbaa !9
  %2197 = load i64, ptr %51, align 8, !tbaa !9
  %2198 = sub nsw i64 %2196, %2197
  %2199 = sub nsw i64 %2198, 1
  store i64 %2199, ptr %38, align 8, !tbaa !9
  %2200 = load ptr, ptr %20, align 8, !tbaa !5
  %2201 = load i64, ptr %51, align 8, !tbaa !9
  %2202 = add nsw i64 %2201, 1
  %2203 = load i64, ptr %44, align 8, !tbaa !9
  %2204 = add nsw i64 %2203, 1
  %2205 = load i64, ptr %30, align 8, !tbaa !9
  %2206 = mul nsw i64 %2204, %2205
  %2207 = add nsw i64 %2202, %2206
  %2208 = getelementptr inbounds float, ptr %2200, i64 %2207
  %2209 = load ptr, ptr %28, align 8, !tbaa !5
  %2210 = load i64, ptr %51, align 8, !tbaa !9
  %2211 = add nsw i64 %2210, 1
  %2212 = load ptr, ptr %19, align 8, !tbaa !5
  %2213 = load i64, ptr %2212, align 8, !tbaa !9
  %2214 = add nsw i64 %2211, %2213
  %2215 = getelementptr inbounds float, ptr %2209, i64 %2214
  %2216 = call double @f2c_sdot(ptr noundef %38, ptr noundef %2208, ptr noundef @c__1, ptr noundef %2215, ptr noundef @c__1)
  %2217 = load ptr, ptr %28, align 8, !tbaa !5
  %2218 = load i64, ptr %44, align 8, !tbaa !9
  %2219 = add nsw i64 %2218, 1
  %2220 = load ptr, ptr %19, align 8, !tbaa !5
  %2221 = load i64, ptr %2220, align 8, !tbaa !9
  %2222 = add nsw i64 %2219, %2221
  %2223 = getelementptr inbounds float, ptr %2217, i64 %2222
  %2224 = load float, ptr %2223, align 4, !tbaa !11
  %2225 = fpext float %2224 to double
  %2226 = fsub double %2225, %2216
  %2227 = fptrunc double %2226 to float
  store float %2227, ptr %2223, align 4, !tbaa !11
  %2228 = load ptr, ptr %20, align 8, !tbaa !5
  %2229 = load i64, ptr %44, align 8, !tbaa !9
  %2230 = load i64, ptr %44, align 8, !tbaa !9
  %2231 = load i64, ptr %30, align 8, !tbaa !9
  %2232 = mul nsw i64 %2230, %2231
  %2233 = add nsw i64 %2229, %2232
  %2234 = getelementptr inbounds float, ptr %2228, i64 %2233
  %2235 = load ptr, ptr %21, align 8, !tbaa !5
  %2236 = load ptr, ptr %28, align 8, !tbaa !5
  %2237 = load i64, ptr %44, align 8, !tbaa !9
  %2238 = load ptr, ptr %19, align 8, !tbaa !5
  %2239 = load i64, ptr %2238, align 8, !tbaa !9
  %2240 = add nsw i64 %2237, %2239
  %2241 = getelementptr inbounds float, ptr %2236, i64 %2240
  %2242 = load ptr, ptr %19, align 8, !tbaa !5
  %2243 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %2244 = call i32 @slaln2_(ptr noundef @c_true, ptr noundef @c__2, ptr noundef @c__1, ptr noundef %65, ptr noundef @c_b22, ptr noundef %2234, ptr noundef %2235, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %2241, ptr noundef %2242, ptr noundef %55, ptr noundef @c_b25, ptr noundef %2243, ptr noundef @c__2, ptr noundef %69, ptr noundef %75, ptr noundef %62)
  %2245 = load float, ptr %69, align 4, !tbaa !11
  %2246 = fcmp une float %2245, 1.000000e+00
  br i1 %2246, label %2247, label %2260

2247:                                             ; preds = %2165
  %2248 = load ptr, ptr %19, align 8, !tbaa !5
  %2249 = load i64, ptr %2248, align 8, !tbaa !9
  %2250 = load i64, ptr %51, align 8, !tbaa !9
  %2251 = sub nsw i64 %2249, %2250
  %2252 = add nsw i64 %2251, 1
  store i64 %2252, ptr %38, align 8, !tbaa !9
  %2253 = load ptr, ptr %28, align 8, !tbaa !5
  %2254 = load i64, ptr %51, align 8, !tbaa !9
  %2255 = load ptr, ptr %19, align 8, !tbaa !5
  %2256 = load i64, ptr %2255, align 8, !tbaa !9
  %2257 = add nsw i64 %2254, %2256
  %2258 = getelementptr inbounds float, ptr %2253, i64 %2257
  %2259 = call i32 @f2c_sscal(ptr noundef %38, ptr noundef %69, ptr noundef %2258, ptr noundef @c__1)
  br label %2260

2260:                                             ; preds = %2247, %2165
  %2261 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %2262 = load float, ptr %2261, align 16, !tbaa !11
  %2263 = load ptr, ptr %28, align 8, !tbaa !5
  %2264 = load i64, ptr %44, align 8, !tbaa !9
  %2265 = load ptr, ptr %19, align 8, !tbaa !5
  %2266 = load i64, ptr %2265, align 8, !tbaa !9
  %2267 = add nsw i64 %2264, %2266
  %2268 = getelementptr inbounds float, ptr %2263, i64 %2267
  store float %2262, ptr %2268, align 4, !tbaa !11
  %2269 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 1
  %2270 = load float, ptr %2269, align 4, !tbaa !11
  %2271 = load ptr, ptr %28, align 8, !tbaa !5
  %2272 = load i64, ptr %44, align 8, !tbaa !9
  %2273 = add nsw i64 %2272, 1
  %2274 = load ptr, ptr %19, align 8, !tbaa !5
  %2275 = load i64, ptr %2274, align 8, !tbaa !9
  %2276 = add nsw i64 %2273, %2275
  %2277 = getelementptr inbounds float, ptr %2271, i64 %2276
  store float %2270, ptr %2277, align 4, !tbaa !11
  %2278 = load ptr, ptr %28, align 8, !tbaa !5
  %2279 = load i64, ptr %44, align 8, !tbaa !9
  %2280 = load ptr, ptr %19, align 8, !tbaa !5
  %2281 = load i64, ptr %2280, align 8, !tbaa !9
  %2282 = add nsw i64 %2279, %2281
  %2283 = getelementptr inbounds float, ptr %2278, i64 %2282
  %2284 = load float, ptr %2283, align 4, !tbaa !11
  store float %2284, ptr %39, align 4, !tbaa !11
  %2285 = load float, ptr %39, align 4, !tbaa !11
  %2286 = fcmp oge float %2285, 0.000000e+00
  br i1 %2286, label %2287, label %2289

2287:                                             ; preds = %2260
  %2288 = load float, ptr %39, align 4, !tbaa !11
  br label %2292

2289:                                             ; preds = %2260
  %2290 = load float, ptr %39, align 4, !tbaa !11
  %2291 = fneg float %2290
  br label %2292

2292:                                             ; preds = %2289, %2287
  %2293 = phi float [ %2288, %2287 ], [ %2291, %2289 ]
  %2294 = fpext float %2293 to double
  %2295 = fptrunc double %2294 to float
  store float %2295, ptr %41, align 4, !tbaa !11
  %2296 = load ptr, ptr %28, align 8, !tbaa !5
  %2297 = load i64, ptr %44, align 8, !tbaa !9
  %2298 = add nsw i64 %2297, 1
  %2299 = load ptr, ptr %19, align 8, !tbaa !5
  %2300 = load i64, ptr %2299, align 8, !tbaa !9
  %2301 = add nsw i64 %2298, %2300
  %2302 = getelementptr inbounds float, ptr %2296, i64 %2301
  %2303 = load float, ptr %2302, align 4, !tbaa !11
  store float %2303, ptr %40, align 4, !tbaa !11
  %2304 = load float, ptr %40, align 4, !tbaa !11
  %2305 = fcmp oge float %2304, 0.000000e+00
  br i1 %2305, label %2306, label %2308

2306:                                             ; preds = %2292
  %2307 = load float, ptr %40, align 4, !tbaa !11
  br label %2311

2308:                                             ; preds = %2292
  %2309 = load float, ptr %40, align 4, !tbaa !11
  %2310 = fneg float %2309
  br label %2311

2311:                                             ; preds = %2308, %2306
  %2312 = phi float [ %2307, %2306 ], [ %2310, %2308 ]
  %2313 = fpext float %2312 to double
  %2314 = fptrunc double %2313 to float
  store float %2314, ptr %42, align 4, !tbaa !11
  %2315 = load float, ptr %41, align 4, !tbaa !11
  %2316 = load float, ptr %42, align 4, !tbaa !11
  %2317 = fcmp oge float %2315, %2316
  br i1 %2317, label %2318, label %2320

2318:                                             ; preds = %2311
  %2319 = load float, ptr %41, align 4, !tbaa !11
  br label %2322

2320:                                             ; preds = %2311
  %2321 = load float, ptr %42, align 4, !tbaa !11
  br label %2322

2322:                                             ; preds = %2320, %2318
  %2323 = phi float [ %2319, %2318 ], [ %2321, %2320 ]
  store float %2323, ptr %41, align 4, !tbaa !11
  %2324 = load float, ptr %41, align 4, !tbaa !11
  %2325 = load float, ptr %67, align 4, !tbaa !11
  %2326 = fcmp oge float %2324, %2325
  br i1 %2326, label %2327, label %2329

2327:                                             ; preds = %2322
  %2328 = load float, ptr %41, align 4, !tbaa !11
  br label %2331

2329:                                             ; preds = %2322
  %2330 = load float, ptr %67, align 4, !tbaa !11
  br label %2331

2331:                                             ; preds = %2329, %2327
  %2332 = phi float [ %2328, %2327 ], [ %2330, %2329 ]
  %2333 = fpext float %2332 to double
  %2334 = fptrunc double %2333 to float
  store float %2334, ptr %67, align 4, !tbaa !11
  %2335 = load float, ptr %76, align 4, !tbaa !11
  %2336 = load float, ptr %67, align 4, !tbaa !11
  %2337 = fdiv float %2335, %2336
  store float %2337, ptr %73, align 4, !tbaa !11
  br label %2338

2338:                                             ; preds = %2331, %2118
  br label %2339

2339:                                             ; preds = %2338, %1967
  br label %2340

2340:                                             ; preds = %2339
  %2341 = load i64, ptr %44, align 8, !tbaa !9
  %2342 = add nsw i64 %2341, 1
  store i64 %2342, ptr %44, align 8, !tbaa !9
  br label %1959, !llvm.loop !27

2343:                                             ; preds = %1959
  %2344 = load i64, ptr %66, align 8, !tbaa !9
  %2345 = icmp ne i64 %2344, 0
  br i1 %2345, label %2433, label %2346

2346:                                             ; preds = %2343
  %2347 = load ptr, ptr %19, align 8, !tbaa !5
  %2348 = load i64, ptr %2347, align 8, !tbaa !9
  %2349 = load i64, ptr %51, align 8, !tbaa !9
  %2350 = sub nsw i64 %2348, %2349
  %2351 = add nsw i64 %2350, 1
  store i64 %2351, ptr %37, align 8, !tbaa !9
  %2352 = load ptr, ptr %28, align 8, !tbaa !5
  %2353 = load i64, ptr %51, align 8, !tbaa !9
  %2354 = load ptr, ptr %19, align 8, !tbaa !5
  %2355 = load i64, ptr %2354, align 8, !tbaa !9
  %2356 = add nsw i64 %2353, %2355
  %2357 = getelementptr inbounds float, ptr %2352, i64 %2356
  %2358 = load ptr, ptr %22, align 8, !tbaa !5
  %2359 = load i64, ptr %51, align 8, !tbaa !9
  %2360 = load i64, ptr %53, align 8, !tbaa !9
  %2361 = load i64, ptr %32, align 8, !tbaa !9
  %2362 = mul nsw i64 %2360, %2361
  %2363 = add nsw i64 %2359, %2362
  %2364 = getelementptr inbounds float, ptr %2358, i64 %2363
  %2365 = call i32 @f2c_scopy(ptr noundef %37, ptr noundef %2357, ptr noundef @c__1, ptr noundef %2364, ptr noundef @c__1)
  %2366 = load ptr, ptr %19, align 8, !tbaa !5
  %2367 = load i64, ptr %2366, align 8, !tbaa !9
  %2368 = load i64, ptr %51, align 8, !tbaa !9
  %2369 = sub nsw i64 %2367, %2368
  %2370 = add nsw i64 %2369, 1
  store i64 %2370, ptr %37, align 8, !tbaa !9
  %2371 = load ptr, ptr %22, align 8, !tbaa !5
  %2372 = load i64, ptr %51, align 8, !tbaa !9
  %2373 = load i64, ptr %53, align 8, !tbaa !9
  %2374 = load i64, ptr %32, align 8, !tbaa !9
  %2375 = mul nsw i64 %2373, %2374
  %2376 = add nsw i64 %2372, %2375
  %2377 = getelementptr inbounds float, ptr %2371, i64 %2376
  %2378 = call i64 @f2c_isamax(ptr noundef %37, ptr noundef %2377, ptr noundef @c__1)
  %2379 = load i64, ptr %51, align 8, !tbaa !9
  %2380 = add nsw i64 %2378, %2379
  %2381 = sub nsw i64 %2380, 1
  store i64 %2381, ptr %50, align 8, !tbaa !9
  %2382 = load ptr, ptr %22, align 8, !tbaa !5
  %2383 = load i64, ptr %50, align 8, !tbaa !9
  %2384 = load i64, ptr %53, align 8, !tbaa !9
  %2385 = load i64, ptr %32, align 8, !tbaa !9
  %2386 = mul nsw i64 %2384, %2385
  %2387 = add nsw i64 %2383, %2386
  %2388 = getelementptr inbounds float, ptr %2382, i64 %2387
  %2389 = load float, ptr %2388, align 4, !tbaa !11
  store float %2389, ptr %39, align 4, !tbaa !11
  %2390 = load float, ptr %39, align 4, !tbaa !11
  %2391 = fcmp oge float %2390, 0.000000e+00
  br i1 %2391, label %2392, label %2394

2392:                                             ; preds = %2346
  %2393 = load float, ptr %39, align 4, !tbaa !11
  br label %2397

2394:                                             ; preds = %2346
  %2395 = load float, ptr %39, align 4, !tbaa !11
  %2396 = fneg float %2395
  br label %2397

2397:                                             ; preds = %2394, %2392
  %2398 = phi float [ %2393, %2392 ], [ %2396, %2394 ]
  %2399 = fpext float %2398 to double
  %2400 = fdiv double 1.000000e+00, %2399
  %2401 = fptrunc double %2400 to float
  store float %2401, ptr %70, align 4, !tbaa !11
  %2402 = load ptr, ptr %19, align 8, !tbaa !5
  %2403 = load i64, ptr %2402, align 8, !tbaa !9
  %2404 = load i64, ptr %51, align 8, !tbaa !9
  %2405 = sub nsw i64 %2403, %2404
  %2406 = add nsw i64 %2405, 1
  store i64 %2406, ptr %37, align 8, !tbaa !9
  %2407 = load ptr, ptr %22, align 8, !tbaa !5
  %2408 = load i64, ptr %51, align 8, !tbaa !9
  %2409 = load i64, ptr %53, align 8, !tbaa !9
  %2410 = load i64, ptr %32, align 8, !tbaa !9
  %2411 = mul nsw i64 %2409, %2410
  %2412 = add nsw i64 %2408, %2411
  %2413 = getelementptr inbounds float, ptr %2407, i64 %2412
  %2414 = call i32 @f2c_sscal(ptr noundef %37, ptr noundef %70, ptr noundef %2413, ptr noundef @c__1)
  %2415 = load i64, ptr %51, align 8, !tbaa !9
  %2416 = sub nsw i64 %2415, 1
  store i64 %2416, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %2417

2417:                                             ; preds = %2429, %2397
  %2418 = load i64, ptr %45, align 8, !tbaa !9
  %2419 = load i64, ptr %37, align 8, !tbaa !9
  %2420 = icmp sle i64 %2418, %2419
  br i1 %2420, label %2421, label %2432

2421:                                             ; preds = %2417
  %2422 = load ptr, ptr %22, align 8, !tbaa !5
  %2423 = load i64, ptr %45, align 8, !tbaa !9
  %2424 = load i64, ptr %53, align 8, !tbaa !9
  %2425 = load i64, ptr %32, align 8, !tbaa !9
  %2426 = mul nsw i64 %2424, %2425
  %2427 = add nsw i64 %2423, %2426
  %2428 = getelementptr inbounds float, ptr %2422, i64 %2427
  store float 0.000000e+00, ptr %2428, align 4, !tbaa !11
  br label %2429

2429:                                             ; preds = %2421
  %2430 = load i64, ptr %45, align 8, !tbaa !9
  %2431 = add nsw i64 %2430, 1
  store i64 %2431, ptr %45, align 8, !tbaa !9
  br label %2417, !llvm.loop !28

2432:                                             ; preds = %2417
  br label %2509

2433:                                             ; preds = %2343
  %2434 = load i64, ptr %51, align 8, !tbaa !9
  %2435 = load ptr, ptr %19, align 8, !tbaa !5
  %2436 = load i64, ptr %2435, align 8, !tbaa !9
  %2437 = icmp slt i64 %2434, %2436
  br i1 %2437, label %2438, label %2472

2438:                                             ; preds = %2433
  %2439 = load ptr, ptr %19, align 8, !tbaa !5
  %2440 = load i64, ptr %2439, align 8, !tbaa !9
  %2441 = load i64, ptr %51, align 8, !tbaa !9
  %2442 = sub nsw i64 %2440, %2441
  store i64 %2442, ptr %37, align 8, !tbaa !9
  %2443 = load ptr, ptr %19, align 8, !tbaa !5
  %2444 = load ptr, ptr %22, align 8, !tbaa !5
  %2445 = load i64, ptr %51, align 8, !tbaa !9
  %2446 = add nsw i64 %2445, 1
  %2447 = load i64, ptr %32, align 8, !tbaa !9
  %2448 = mul nsw i64 %2446, %2447
  %2449 = add nsw i64 %2448, 1
  %2450 = getelementptr inbounds float, ptr %2444, i64 %2449
  %2451 = load ptr, ptr %23, align 8, !tbaa !5
  %2452 = load ptr, ptr %28, align 8, !tbaa !5
  %2453 = load i64, ptr %51, align 8, !tbaa !9
  %2454 = add nsw i64 %2453, 1
  %2455 = load ptr, ptr %19, align 8, !tbaa !5
  %2456 = load i64, ptr %2455, align 8, !tbaa !9
  %2457 = add nsw i64 %2454, %2456
  %2458 = getelementptr inbounds float, ptr %2452, i64 %2457
  %2459 = load ptr, ptr %28, align 8, !tbaa !5
  %2460 = load i64, ptr %51, align 8, !tbaa !9
  %2461 = load ptr, ptr %19, align 8, !tbaa !5
  %2462 = load i64, ptr %2461, align 8, !tbaa !9
  %2463 = add nsw i64 %2460, %2462
  %2464 = getelementptr inbounds float, ptr %2459, i64 %2463
  %2465 = load ptr, ptr %22, align 8, !tbaa !5
  %2466 = load i64, ptr %51, align 8, !tbaa !9
  %2467 = load i64, ptr %32, align 8, !tbaa !9
  %2468 = mul nsw i64 %2466, %2467
  %2469 = add nsw i64 %2468, 1
  %2470 = getelementptr inbounds float, ptr %2465, i64 %2469
  %2471 = call i32 @f2c_sgemv(ptr noundef @.str.8, ptr noundef %2443, ptr noundef %37, ptr noundef @c_b22, ptr noundef %2450, ptr noundef %2451, ptr noundef %2458, ptr noundef @c__1, ptr noundef %2464, ptr noundef %2470, ptr noundef @c__1)
  br label %2472

2472:                                             ; preds = %2438, %2433
  %2473 = load ptr, ptr %19, align 8, !tbaa !5
  %2474 = load ptr, ptr %22, align 8, !tbaa !5
  %2475 = load i64, ptr %51, align 8, !tbaa !9
  %2476 = load i64, ptr %32, align 8, !tbaa !9
  %2477 = mul nsw i64 %2475, %2476
  %2478 = add nsw i64 %2477, 1
  %2479 = getelementptr inbounds float, ptr %2474, i64 %2478
  %2480 = call i64 @f2c_isamax(ptr noundef %2473, ptr noundef %2479, ptr noundef @c__1)
  store i64 %2480, ptr %50, align 8, !tbaa !9
  %2481 = load ptr, ptr %22, align 8, !tbaa !5
  %2482 = load i64, ptr %50, align 8, !tbaa !9
  %2483 = load i64, ptr %51, align 8, !tbaa !9
  %2484 = load i64, ptr %32, align 8, !tbaa !9
  %2485 = mul nsw i64 %2483, %2484
  %2486 = add nsw i64 %2482, %2485
  %2487 = getelementptr inbounds float, ptr %2481, i64 %2486
  %2488 = load float, ptr %2487, align 4, !tbaa !11
  store float %2488, ptr %39, align 4, !tbaa !11
  %2489 = load float, ptr %39, align 4, !tbaa !11
  %2490 = fcmp oge float %2489, 0.000000e+00
  br i1 %2490, label %2491, label %2493

2491:                                             ; preds = %2472
  %2492 = load float, ptr %39, align 4, !tbaa !11
  br label %2496

2493:                                             ; preds = %2472
  %2494 = load float, ptr %39, align 4, !tbaa !11
  %2495 = fneg float %2494
  br label %2496

2496:                                             ; preds = %2493, %2491
  %2497 = phi float [ %2492, %2491 ], [ %2495, %2493 ]
  %2498 = fpext float %2497 to double
  %2499 = fdiv double 1.000000e+00, %2498
  %2500 = fptrunc double %2499 to float
  store float %2500, ptr %70, align 4, !tbaa !11
  %2501 = load ptr, ptr %19, align 8, !tbaa !5
  %2502 = load ptr, ptr %22, align 8, !tbaa !5
  %2503 = load i64, ptr %51, align 8, !tbaa !9
  %2504 = load i64, ptr %32, align 8, !tbaa !9
  %2505 = mul nsw i64 %2503, %2504
  %2506 = add nsw i64 %2505, 1
  %2507 = getelementptr inbounds float, ptr %2502, i64 %2506
  %2508 = call i32 @f2c_sscal(ptr noundef %2501, ptr noundef %70, ptr noundef %2507, ptr noundef @c__1)
  br label %2509

2509:                                             ; preds = %2496, %2432
  br label %3629

2510:                                             ; preds = %1911
  %2511 = load ptr, ptr %20, align 8, !tbaa !5
  %2512 = load i64, ptr %51, align 8, !tbaa !9
  %2513 = load i64, ptr %51, align 8, !tbaa !9
  %2514 = add nsw i64 %2513, 1
  %2515 = load i64, ptr %30, align 8, !tbaa !9
  %2516 = mul nsw i64 %2514, %2515
  %2517 = add nsw i64 %2512, %2516
  %2518 = getelementptr inbounds float, ptr %2511, i64 %2517
  %2519 = load float, ptr %2518, align 4, !tbaa !11
  store float %2519, ptr %39, align 4, !tbaa !11
  %2520 = load float, ptr %39, align 4, !tbaa !11
  %2521 = fcmp oge float %2520, 0.000000e+00
  br i1 %2521, label %2522, label %2524

2522:                                             ; preds = %2510
  %2523 = load float, ptr %39, align 4, !tbaa !11
  br label %2527

2524:                                             ; preds = %2510
  %2525 = load float, ptr %39, align 4, !tbaa !11
  %2526 = fneg float %2525
  br label %2527

2527:                                             ; preds = %2524, %2522
  %2528 = phi float [ %2523, %2522 ], [ %2526, %2524 ]
  %2529 = fpext float %2528 to double
  %2530 = load ptr, ptr %20, align 8, !tbaa !5
  %2531 = load i64, ptr %51, align 8, !tbaa !9
  %2532 = add nsw i64 %2531, 1
  %2533 = load i64, ptr %51, align 8, !tbaa !9
  %2534 = load i64, ptr %30, align 8, !tbaa !9
  %2535 = mul nsw i64 %2533, %2534
  %2536 = add nsw i64 %2532, %2535
  %2537 = getelementptr inbounds float, ptr %2530, i64 %2536
  %2538 = load float, ptr %2537, align 4, !tbaa !11
  store float %2538, ptr %40, align 4, !tbaa !11
  %2539 = load float, ptr %40, align 4, !tbaa !11
  %2540 = fcmp oge float %2539, 0.000000e+00
  br i1 %2540, label %2541, label %2543

2541:                                             ; preds = %2527
  %2542 = load float, ptr %40, align 4, !tbaa !11
  br label %2546

2543:                                             ; preds = %2527
  %2544 = load float, ptr %40, align 4, !tbaa !11
  %2545 = fneg float %2544
  br label %2546

2546:                                             ; preds = %2543, %2541
  %2547 = phi float [ %2542, %2541 ], [ %2545, %2543 ]
  %2548 = fpext float %2547 to double
  %2549 = fcmp oge double %2529, %2548
  br i1 %2549, label %2550, label %2574

2550:                                             ; preds = %2546
  %2551 = load float, ptr %54, align 4, !tbaa !11
  %2552 = load ptr, ptr %20, align 8, !tbaa !5
  %2553 = load i64, ptr %51, align 8, !tbaa !9
  %2554 = load i64, ptr %51, align 8, !tbaa !9
  %2555 = add nsw i64 %2554, 1
  %2556 = load i64, ptr %30, align 8, !tbaa !9
  %2557 = mul nsw i64 %2555, %2556
  %2558 = add nsw i64 %2553, %2557
  %2559 = getelementptr inbounds float, ptr %2552, i64 %2558
  %2560 = load float, ptr %2559, align 4, !tbaa !11
  %2561 = fdiv float %2551, %2560
  %2562 = load ptr, ptr %28, align 8, !tbaa !5
  %2563 = load i64, ptr %51, align 8, !tbaa !9
  %2564 = load ptr, ptr %19, align 8, !tbaa !5
  %2565 = load i64, ptr %2564, align 8, !tbaa !9
  %2566 = add nsw i64 %2563, %2565
  %2567 = getelementptr inbounds float, ptr %2562, i64 %2566
  store float %2561, ptr %2567, align 4, !tbaa !11
  %2568 = load ptr, ptr %28, align 8, !tbaa !5
  %2569 = load i64, ptr %51, align 8, !tbaa !9
  %2570 = add nsw i64 %2569, 1
  %2571 = load i64, ptr %49, align 8, !tbaa !9
  %2572 = add nsw i64 %2570, %2571
  %2573 = getelementptr inbounds float, ptr %2568, i64 %2572
  store float 1.000000e+00, ptr %2573, align 4, !tbaa !11
  br label %2599

2574:                                             ; preds = %2546
  %2575 = load ptr, ptr %28, align 8, !tbaa !5
  %2576 = load i64, ptr %51, align 8, !tbaa !9
  %2577 = load ptr, ptr %19, align 8, !tbaa !5
  %2578 = load i64, ptr %2577, align 8, !tbaa !9
  %2579 = add nsw i64 %2576, %2578
  %2580 = getelementptr inbounds float, ptr %2575, i64 %2579
  store float 1.000000e+00, ptr %2580, align 4, !tbaa !11
  %2581 = load float, ptr %54, align 4, !tbaa !11
  %2582 = fneg float %2581
  %2583 = load ptr, ptr %20, align 8, !tbaa !5
  %2584 = load i64, ptr %51, align 8, !tbaa !9
  %2585 = add nsw i64 %2584, 1
  %2586 = load i64, ptr %51, align 8, !tbaa !9
  %2587 = load i64, ptr %30, align 8, !tbaa !9
  %2588 = mul nsw i64 %2586, %2587
  %2589 = add nsw i64 %2585, %2588
  %2590 = getelementptr inbounds float, ptr %2583, i64 %2589
  %2591 = load float, ptr %2590, align 4, !tbaa !11
  %2592 = fdiv float %2582, %2591
  %2593 = load ptr, ptr %28, align 8, !tbaa !5
  %2594 = load i64, ptr %51, align 8, !tbaa !9
  %2595 = add nsw i64 %2594, 1
  %2596 = load i64, ptr %49, align 8, !tbaa !9
  %2597 = add nsw i64 %2595, %2596
  %2598 = getelementptr inbounds float, ptr %2593, i64 %2597
  store float %2592, ptr %2598, align 4, !tbaa !11
  br label %2599

2599:                                             ; preds = %2574, %2550
  %2600 = load ptr, ptr %28, align 8, !tbaa !5
  %2601 = load i64, ptr %51, align 8, !tbaa !9
  %2602 = add nsw i64 %2601, 1
  %2603 = load ptr, ptr %19, align 8, !tbaa !5
  %2604 = load i64, ptr %2603, align 8, !tbaa !9
  %2605 = add nsw i64 %2602, %2604
  %2606 = getelementptr inbounds float, ptr %2600, i64 %2605
  store float 0.000000e+00, ptr %2606, align 4, !tbaa !11
  %2607 = load ptr, ptr %28, align 8, !tbaa !5
  %2608 = load i64, ptr %51, align 8, !tbaa !9
  %2609 = load i64, ptr %49, align 8, !tbaa !9
  %2610 = add nsw i64 %2608, %2609
  %2611 = getelementptr inbounds float, ptr %2607, i64 %2610
  store float 0.000000e+00, ptr %2611, align 4, !tbaa !11
  %2612 = load ptr, ptr %19, align 8, !tbaa !5
  %2613 = load i64, ptr %2612, align 8, !tbaa !9
  store i64 %2613, ptr %37, align 8, !tbaa !9
  %2614 = load i64, ptr %51, align 8, !tbaa !9
  %2615 = add nsw i64 %2614, 2
  store i64 %2615, ptr %45, align 8, !tbaa !9
  br label %2616

2616:                                             ; preds = %2667, %2599
  %2617 = load i64, ptr %45, align 8, !tbaa !9
  %2618 = load i64, ptr %37, align 8, !tbaa !9
  %2619 = icmp sle i64 %2617, %2618
  br i1 %2619, label %2620, label %2670

2620:                                             ; preds = %2616
  %2621 = load ptr, ptr %28, align 8, !tbaa !5
  %2622 = load i64, ptr %51, align 8, !tbaa !9
  %2623 = load ptr, ptr %19, align 8, !tbaa !5
  %2624 = load i64, ptr %2623, align 8, !tbaa !9
  %2625 = add nsw i64 %2622, %2624
  %2626 = getelementptr inbounds float, ptr %2621, i64 %2625
  %2627 = load float, ptr %2626, align 4, !tbaa !11
  %2628 = fneg float %2627
  %2629 = load ptr, ptr %20, align 8, !tbaa !5
  %2630 = load i64, ptr %51, align 8, !tbaa !9
  %2631 = load i64, ptr %45, align 8, !tbaa !9
  %2632 = load i64, ptr %30, align 8, !tbaa !9
  %2633 = mul nsw i64 %2631, %2632
  %2634 = add nsw i64 %2630, %2633
  %2635 = getelementptr inbounds float, ptr %2629, i64 %2634
  %2636 = load float, ptr %2635, align 4, !tbaa !11
  %2637 = fmul float %2628, %2636
  %2638 = load ptr, ptr %28, align 8, !tbaa !5
  %2639 = load i64, ptr %45, align 8, !tbaa !9
  %2640 = load ptr, ptr %19, align 8, !tbaa !5
  %2641 = load i64, ptr %2640, align 8, !tbaa !9
  %2642 = add nsw i64 %2639, %2641
  %2643 = getelementptr inbounds float, ptr %2638, i64 %2642
  store float %2637, ptr %2643, align 4, !tbaa !11
  %2644 = load ptr, ptr %28, align 8, !tbaa !5
  %2645 = load i64, ptr %51, align 8, !tbaa !9
  %2646 = add nsw i64 %2645, 1
  %2647 = load i64, ptr %49, align 8, !tbaa !9
  %2648 = add nsw i64 %2646, %2647
  %2649 = getelementptr inbounds float, ptr %2644, i64 %2648
  %2650 = load float, ptr %2649, align 4, !tbaa !11
  %2651 = fneg float %2650
  %2652 = load ptr, ptr %20, align 8, !tbaa !5
  %2653 = load i64, ptr %51, align 8, !tbaa !9
  %2654 = add nsw i64 %2653, 1
  %2655 = load i64, ptr %45, align 8, !tbaa !9
  %2656 = load i64, ptr %30, align 8, !tbaa !9
  %2657 = mul nsw i64 %2655, %2656
  %2658 = add nsw i64 %2654, %2657
  %2659 = getelementptr inbounds float, ptr %2652, i64 %2658
  %2660 = load float, ptr %2659, align 4, !tbaa !11
  %2661 = fmul float %2651, %2660
  %2662 = load ptr, ptr %28, align 8, !tbaa !5
  %2663 = load i64, ptr %45, align 8, !tbaa !9
  %2664 = load i64, ptr %49, align 8, !tbaa !9
  %2665 = add nsw i64 %2663, %2664
  %2666 = getelementptr inbounds float, ptr %2662, i64 %2665
  store float %2661, ptr %2666, align 4, !tbaa !11
  br label %2667

2667:                                             ; preds = %2620
  %2668 = load i64, ptr %45, align 8, !tbaa !9
  %2669 = add nsw i64 %2668, 1
  store i64 %2669, ptr %45, align 8, !tbaa !9
  br label %2616, !llvm.loop !29

2670:                                             ; preds = %2616
  store float 1.000000e+00, ptr %67, align 4, !tbaa !11
  %2671 = load float, ptr %76, align 4, !tbaa !11
  store float %2671, ptr %73, align 4, !tbaa !11
  %2672 = load i64, ptr %51, align 8, !tbaa !9
  %2673 = add nsw i64 %2672, 2
  store i64 %2673, ptr %68, align 8, !tbaa !9
  %2674 = load ptr, ptr %19, align 8, !tbaa !5
  %2675 = load i64, ptr %2674, align 8, !tbaa !9
  store i64 %2675, ptr %37, align 8, !tbaa !9
  %2676 = load i64, ptr %51, align 8, !tbaa !9
  %2677 = add nsw i64 %2676, 2
  store i64 %2677, ptr %44, align 8, !tbaa !9
  br label %2678

2678:                                             ; preds = %3278, %2670
  %2679 = load i64, ptr %44, align 8, !tbaa !9
  %2680 = load i64, ptr %37, align 8, !tbaa !9
  %2681 = icmp sle i64 %2679, %2680
  br i1 %2681, label %2682, label %3281

2682:                                             ; preds = %2678
  %2683 = load i64, ptr %44, align 8, !tbaa !9
  %2684 = load i64, ptr %68, align 8, !tbaa !9
  %2685 = icmp slt i64 %2683, %2684
  br i1 %2685, label %2686, label %2687

2686:                                             ; preds = %2682
  br label %3277

2687:                                             ; preds = %2682
  %2688 = load i64, ptr %44, align 8, !tbaa !9
  store i64 %2688, ptr %47, align 8, !tbaa !9
  %2689 = load i64, ptr %44, align 8, !tbaa !9
  store i64 %2689, ptr %48, align 8, !tbaa !9
  %2690 = load i64, ptr %44, align 8, !tbaa !9
  %2691 = add nsw i64 %2690, 1
  store i64 %2691, ptr %68, align 8, !tbaa !9
  %2692 = load i64, ptr %44, align 8, !tbaa !9
  %2693 = load ptr, ptr %19, align 8, !tbaa !5
  %2694 = load i64, ptr %2693, align 8, !tbaa !9
  %2695 = icmp slt i64 %2692, %2694
  br i1 %2695, label %2696, label %2713

2696:                                             ; preds = %2687
  %2697 = load ptr, ptr %20, align 8, !tbaa !5
  %2698 = load i64, ptr %44, align 8, !tbaa !9
  %2699 = add nsw i64 %2698, 1
  %2700 = load i64, ptr %44, align 8, !tbaa !9
  %2701 = load i64, ptr %30, align 8, !tbaa !9
  %2702 = mul nsw i64 %2700, %2701
  %2703 = add nsw i64 %2699, %2702
  %2704 = getelementptr inbounds float, ptr %2697, i64 %2703
  %2705 = load float, ptr %2704, align 4, !tbaa !11
  %2706 = fcmp une float %2705, 0.000000e+00
  br i1 %2706, label %2707, label %2712

2707:                                             ; preds = %2696
  %2708 = load i64, ptr %44, align 8, !tbaa !9
  %2709 = add nsw i64 %2708, 1
  store i64 %2709, ptr %48, align 8, !tbaa !9
  %2710 = load i64, ptr %44, align 8, !tbaa !9
  %2711 = add nsw i64 %2710, 2
  store i64 %2711, ptr %68, align 8, !tbaa !9
  br label %2712

2712:                                             ; preds = %2707, %2696
  br label %2713

2713:                                             ; preds = %2712, %2687
  %2714 = load i64, ptr %47, align 8, !tbaa !9
  %2715 = load i64, ptr %48, align 8, !tbaa !9
  %2716 = icmp eq i64 %2714, %2715
  br i1 %2716, label %2717, label %2929

2717:                                             ; preds = %2713
  %2718 = load ptr, ptr %28, align 8, !tbaa !5
  %2719 = load i64, ptr %44, align 8, !tbaa !9
  %2720 = getelementptr inbounds float, ptr %2718, i64 %2719
  %2721 = load float, ptr %2720, align 4, !tbaa !11
  %2722 = load float, ptr %73, align 4, !tbaa !11
  %2723 = fcmp ogt float %2721, %2722
  br i1 %2723, label %2724, label %2751

2724:                                             ; preds = %2717
  %2725 = load float, ptr %67, align 4, !tbaa !11
  %2726 = fdiv float 1.000000e+00, %2725
  store float %2726, ptr %56, align 4, !tbaa !11
  %2727 = load ptr, ptr %19, align 8, !tbaa !5
  %2728 = load i64, ptr %2727, align 8, !tbaa !9
  %2729 = load i64, ptr %51, align 8, !tbaa !9
  %2730 = sub nsw i64 %2728, %2729
  %2731 = add nsw i64 %2730, 1
  store i64 %2731, ptr %38, align 8, !tbaa !9
  %2732 = load ptr, ptr %28, align 8, !tbaa !5
  %2733 = load i64, ptr %51, align 8, !tbaa !9
  %2734 = load ptr, ptr %19, align 8, !tbaa !5
  %2735 = load i64, ptr %2734, align 8, !tbaa !9
  %2736 = add nsw i64 %2733, %2735
  %2737 = getelementptr inbounds float, ptr %2732, i64 %2736
  %2738 = call i32 @f2c_sscal(ptr noundef %38, ptr noundef %56, ptr noundef %2737, ptr noundef @c__1)
  %2739 = load ptr, ptr %19, align 8, !tbaa !5
  %2740 = load i64, ptr %2739, align 8, !tbaa !9
  %2741 = load i64, ptr %51, align 8, !tbaa !9
  %2742 = sub nsw i64 %2740, %2741
  %2743 = add nsw i64 %2742, 1
  store i64 %2743, ptr %38, align 8, !tbaa !9
  %2744 = load ptr, ptr %28, align 8, !tbaa !5
  %2745 = load i64, ptr %51, align 8, !tbaa !9
  %2746 = load i64, ptr %49, align 8, !tbaa !9
  %2747 = add nsw i64 %2745, %2746
  %2748 = getelementptr inbounds float, ptr %2744, i64 %2747
  %2749 = call i32 @f2c_sscal(ptr noundef %38, ptr noundef %56, ptr noundef %2748, ptr noundef @c__1)
  store float 1.000000e+00, ptr %67, align 4, !tbaa !11
  %2750 = load float, ptr %76, align 4, !tbaa !11
  store float %2750, ptr %73, align 4, !tbaa !11
  br label %2751

2751:                                             ; preds = %2724, %2717
  %2752 = load i64, ptr %44, align 8, !tbaa !9
  %2753 = load i64, ptr %51, align 8, !tbaa !9
  %2754 = sub nsw i64 %2752, %2753
  %2755 = sub nsw i64 %2754, 2
  store i64 %2755, ptr %38, align 8, !tbaa !9
  %2756 = load ptr, ptr %20, align 8, !tbaa !5
  %2757 = load i64, ptr %51, align 8, !tbaa !9
  %2758 = add nsw i64 %2757, 2
  %2759 = load i64, ptr %44, align 8, !tbaa !9
  %2760 = load i64, ptr %30, align 8, !tbaa !9
  %2761 = mul nsw i64 %2759, %2760
  %2762 = add nsw i64 %2758, %2761
  %2763 = getelementptr inbounds float, ptr %2756, i64 %2762
  %2764 = load ptr, ptr %28, align 8, !tbaa !5
  %2765 = load i64, ptr %51, align 8, !tbaa !9
  %2766 = add nsw i64 %2765, 2
  %2767 = load ptr, ptr %19, align 8, !tbaa !5
  %2768 = load i64, ptr %2767, align 8, !tbaa !9
  %2769 = add nsw i64 %2766, %2768
  %2770 = getelementptr inbounds float, ptr %2764, i64 %2769
  %2771 = call double @f2c_sdot(ptr noundef %38, ptr noundef %2763, ptr noundef @c__1, ptr noundef %2770, ptr noundef @c__1)
  %2772 = load ptr, ptr %28, align 8, !tbaa !5
  %2773 = load i64, ptr %44, align 8, !tbaa !9
  %2774 = load ptr, ptr %19, align 8, !tbaa !5
  %2775 = load i64, ptr %2774, align 8, !tbaa !9
  %2776 = add nsw i64 %2773, %2775
  %2777 = getelementptr inbounds float, ptr %2772, i64 %2776
  %2778 = load float, ptr %2777, align 4, !tbaa !11
  %2779 = fpext float %2778 to double
  %2780 = fsub double %2779, %2771
  %2781 = fptrunc double %2780 to float
  store float %2781, ptr %2777, align 4, !tbaa !11
  %2782 = load i64, ptr %44, align 8, !tbaa !9
  %2783 = load i64, ptr %51, align 8, !tbaa !9
  %2784 = sub nsw i64 %2782, %2783
  %2785 = sub nsw i64 %2784, 2
  store i64 %2785, ptr %38, align 8, !tbaa !9
  %2786 = load ptr, ptr %20, align 8, !tbaa !5
  %2787 = load i64, ptr %51, align 8, !tbaa !9
  %2788 = add nsw i64 %2787, 2
  %2789 = load i64, ptr %44, align 8, !tbaa !9
  %2790 = load i64, ptr %30, align 8, !tbaa !9
  %2791 = mul nsw i64 %2789, %2790
  %2792 = add nsw i64 %2788, %2791
  %2793 = getelementptr inbounds float, ptr %2786, i64 %2792
  %2794 = load ptr, ptr %28, align 8, !tbaa !5
  %2795 = load i64, ptr %51, align 8, !tbaa !9
  %2796 = add nsw i64 %2795, 2
  %2797 = load i64, ptr %49, align 8, !tbaa !9
  %2798 = add nsw i64 %2796, %2797
  %2799 = getelementptr inbounds float, ptr %2794, i64 %2798
  %2800 = call double @f2c_sdot(ptr noundef %38, ptr noundef %2793, ptr noundef @c__1, ptr noundef %2799, ptr noundef @c__1)
  %2801 = load ptr, ptr %28, align 8, !tbaa !5
  %2802 = load i64, ptr %44, align 8, !tbaa !9
  %2803 = load i64, ptr %49, align 8, !tbaa !9
  %2804 = add nsw i64 %2802, %2803
  %2805 = getelementptr inbounds float, ptr %2801, i64 %2804
  %2806 = load float, ptr %2805, align 4, !tbaa !11
  %2807 = fpext float %2806 to double
  %2808 = fsub double %2807, %2800
  %2809 = fptrunc double %2808 to float
  store float %2809, ptr %2805, align 4, !tbaa !11
  %2810 = load float, ptr %54, align 4, !tbaa !11
  %2811 = fneg float %2810
  store float %2811, ptr %39, align 4, !tbaa !11
  %2812 = load ptr, ptr %20, align 8, !tbaa !5
  %2813 = load i64, ptr %44, align 8, !tbaa !9
  %2814 = load i64, ptr %44, align 8, !tbaa !9
  %2815 = load i64, ptr %30, align 8, !tbaa !9
  %2816 = mul nsw i64 %2814, %2815
  %2817 = add nsw i64 %2813, %2816
  %2818 = getelementptr inbounds float, ptr %2812, i64 %2817
  %2819 = load ptr, ptr %21, align 8, !tbaa !5
  %2820 = load ptr, ptr %28, align 8, !tbaa !5
  %2821 = load i64, ptr %44, align 8, !tbaa !9
  %2822 = load ptr, ptr %19, align 8, !tbaa !5
  %2823 = load i64, ptr %2822, align 8, !tbaa !9
  %2824 = add nsw i64 %2821, %2823
  %2825 = getelementptr inbounds float, ptr %2820, i64 %2824
  %2826 = load ptr, ptr %19, align 8, !tbaa !5
  %2827 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %2828 = call i32 @slaln2_(ptr noundef @c_false, ptr noundef @c__1, ptr noundef @c__2, ptr noundef %65, ptr noundef @c_b22, ptr noundef %2818, ptr noundef %2819, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %2825, ptr noundef %2826, ptr noundef %55, ptr noundef %39, ptr noundef %2827, ptr noundef @c__2, ptr noundef %69, ptr noundef %75, ptr noundef %62)
  %2829 = load float, ptr %69, align 4, !tbaa !11
  %2830 = fcmp une float %2829, 1.000000e+00
  br i1 %2830, label %2831, label %2855

2831:                                             ; preds = %2751
  %2832 = load ptr, ptr %19, align 8, !tbaa !5
  %2833 = load i64, ptr %2832, align 8, !tbaa !9
  %2834 = load i64, ptr %51, align 8, !tbaa !9
  %2835 = sub nsw i64 %2833, %2834
  %2836 = add nsw i64 %2835, 1
  store i64 %2836, ptr %38, align 8, !tbaa !9
  %2837 = load ptr, ptr %28, align 8, !tbaa !5
  %2838 = load i64, ptr %51, align 8, !tbaa !9
  %2839 = load ptr, ptr %19, align 8, !tbaa !5
  %2840 = load i64, ptr %2839, align 8, !tbaa !9
  %2841 = add nsw i64 %2838, %2840
  %2842 = getelementptr inbounds float, ptr %2837, i64 %2841
  %2843 = call i32 @f2c_sscal(ptr noundef %38, ptr noundef %69, ptr noundef %2842, ptr noundef @c__1)
  %2844 = load ptr, ptr %19, align 8, !tbaa !5
  %2845 = load i64, ptr %2844, align 8, !tbaa !9
  %2846 = load i64, ptr %51, align 8, !tbaa !9
  %2847 = sub nsw i64 %2845, %2846
  %2848 = add nsw i64 %2847, 1
  store i64 %2848, ptr %38, align 8, !tbaa !9
  %2849 = load ptr, ptr %28, align 8, !tbaa !5
  %2850 = load i64, ptr %51, align 8, !tbaa !9
  %2851 = load i64, ptr %49, align 8, !tbaa !9
  %2852 = add nsw i64 %2850, %2851
  %2853 = getelementptr inbounds float, ptr %2849, i64 %2852
  %2854 = call i32 @f2c_sscal(ptr noundef %38, ptr noundef %69, ptr noundef %2853, ptr noundef @c__1)
  br label %2855

2855:                                             ; preds = %2831, %2751
  %2856 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %2857 = load float, ptr %2856, align 16, !tbaa !11
  %2858 = load ptr, ptr %28, align 8, !tbaa !5
  %2859 = load i64, ptr %44, align 8, !tbaa !9
  %2860 = load ptr, ptr %19, align 8, !tbaa !5
  %2861 = load i64, ptr %2860, align 8, !tbaa !9
  %2862 = add nsw i64 %2859, %2861
  %2863 = getelementptr inbounds float, ptr %2858, i64 %2862
  store float %2857, ptr %2863, align 4, !tbaa !11
  %2864 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 2
  %2865 = load float, ptr %2864, align 8, !tbaa !11
  %2866 = load ptr, ptr %28, align 8, !tbaa !5
  %2867 = load i64, ptr %44, align 8, !tbaa !9
  %2868 = load i64, ptr %49, align 8, !tbaa !9
  %2869 = add nsw i64 %2867, %2868
  %2870 = getelementptr inbounds float, ptr %2866, i64 %2869
  store float %2865, ptr %2870, align 4, !tbaa !11
  %2871 = load ptr, ptr %28, align 8, !tbaa !5
  %2872 = load i64, ptr %44, align 8, !tbaa !9
  %2873 = load ptr, ptr %19, align 8, !tbaa !5
  %2874 = load i64, ptr %2873, align 8, !tbaa !9
  %2875 = add nsw i64 %2872, %2874
  %2876 = getelementptr inbounds float, ptr %2871, i64 %2875
  %2877 = load float, ptr %2876, align 4, !tbaa !11
  store float %2877, ptr %39, align 4, !tbaa !11
  %2878 = load float, ptr %39, align 4, !tbaa !11
  %2879 = fcmp oge float %2878, 0.000000e+00
  br i1 %2879, label %2880, label %2882

2880:                                             ; preds = %2855
  %2881 = load float, ptr %39, align 4, !tbaa !11
  br label %2885

2882:                                             ; preds = %2855
  %2883 = load float, ptr %39, align 4, !tbaa !11
  %2884 = fneg float %2883
  br label %2885

2885:                                             ; preds = %2882, %2880
  %2886 = phi float [ %2881, %2880 ], [ %2884, %2882 ]
  %2887 = fpext float %2886 to double
  %2888 = fptrunc double %2887 to float
  store float %2888, ptr %41, align 4, !tbaa !11
  %2889 = load ptr, ptr %28, align 8, !tbaa !5
  %2890 = load i64, ptr %44, align 8, !tbaa !9
  %2891 = load i64, ptr %49, align 8, !tbaa !9
  %2892 = add nsw i64 %2890, %2891
  %2893 = getelementptr inbounds float, ptr %2889, i64 %2892
  %2894 = load float, ptr %2893, align 4, !tbaa !11
  store float %2894, ptr %40, align 4, !tbaa !11
  %2895 = load float, ptr %40, align 4, !tbaa !11
  %2896 = fcmp oge float %2895, 0.000000e+00
  br i1 %2896, label %2897, label %2899

2897:                                             ; preds = %2885
  %2898 = load float, ptr %40, align 4, !tbaa !11
  br label %2902

2899:                                             ; preds = %2885
  %2900 = load float, ptr %40, align 4, !tbaa !11
  %2901 = fneg float %2900
  br label %2902

2902:                                             ; preds = %2899, %2897
  %2903 = phi float [ %2898, %2897 ], [ %2901, %2899 ]
  %2904 = fpext float %2903 to double
  %2905 = fptrunc double %2904 to float
  store float %2905, ptr %42, align 4, !tbaa !11
  %2906 = load float, ptr %41, align 4, !tbaa !11
  %2907 = load float, ptr %42, align 4, !tbaa !11
  %2908 = fcmp oge float %2906, %2907
  br i1 %2908, label %2909, label %2911

2909:                                             ; preds = %2902
  %2910 = load float, ptr %41, align 4, !tbaa !11
  br label %2913

2911:                                             ; preds = %2902
  %2912 = load float, ptr %42, align 4, !tbaa !11
  br label %2913

2913:                                             ; preds = %2911, %2909
  %2914 = phi float [ %2910, %2909 ], [ %2912, %2911 ]
  store float %2914, ptr %41, align 4, !tbaa !11
  %2915 = load float, ptr %41, align 4, !tbaa !11
  %2916 = load float, ptr %67, align 4, !tbaa !11
  %2917 = fcmp oge float %2915, %2916
  br i1 %2917, label %2918, label %2920

2918:                                             ; preds = %2913
  %2919 = load float, ptr %41, align 4, !tbaa !11
  br label %2922

2920:                                             ; preds = %2913
  %2921 = load float, ptr %67, align 4, !tbaa !11
  br label %2922

2922:                                             ; preds = %2920, %2918
  %2923 = phi float [ %2919, %2918 ], [ %2921, %2920 ]
  %2924 = fpext float %2923 to double
  %2925 = fptrunc double %2924 to float
  store float %2925, ptr %67, align 4, !tbaa !11
  %2926 = load float, ptr %76, align 4, !tbaa !11
  %2927 = load float, ptr %67, align 4, !tbaa !11
  %2928 = fdiv float %2926, %2927
  store float %2928, ptr %73, align 4, !tbaa !11
  br label %3276

2929:                                             ; preds = %2713
  %2930 = load ptr, ptr %28, align 8, !tbaa !5
  %2931 = load i64, ptr %44, align 8, !tbaa !9
  %2932 = getelementptr inbounds float, ptr %2930, i64 %2931
  %2933 = load float, ptr %2932, align 4, !tbaa !11
  store float %2933, ptr %39, align 4, !tbaa !11
  %2934 = load ptr, ptr %28, align 8, !tbaa !5
  %2935 = load i64, ptr %44, align 8, !tbaa !9
  %2936 = add nsw i64 %2935, 1
  %2937 = getelementptr inbounds float, ptr %2934, i64 %2936
  %2938 = load float, ptr %2937, align 4, !tbaa !11
  store float %2938, ptr %40, align 4, !tbaa !11
  %2939 = load float, ptr %39, align 4, !tbaa !11
  %2940 = load float, ptr %40, align 4, !tbaa !11
  %2941 = fcmp oge float %2939, %2940
  br i1 %2941, label %2942, label %2944

2942:                                             ; preds = %2929
  %2943 = load float, ptr %39, align 4, !tbaa !11
  br label %2946

2944:                                             ; preds = %2929
  %2945 = load float, ptr %40, align 4, !tbaa !11
  br label %2946

2946:                                             ; preds = %2944, %2942
  %2947 = phi float [ %2943, %2942 ], [ %2945, %2944 ]
  %2948 = fpext float %2947 to double
  %2949 = fptrunc double %2948 to float
  store float %2949, ptr %58, align 4, !tbaa !11
  %2950 = load float, ptr %58, align 4, !tbaa !11
  %2951 = load float, ptr %73, align 4, !tbaa !11
  %2952 = fcmp ogt float %2950, %2951
  br i1 %2952, label %2953, label %2980

2953:                                             ; preds = %2946
  %2954 = load float, ptr %67, align 4, !tbaa !11
  %2955 = fdiv float 1.000000e+00, %2954
  store float %2955, ptr %56, align 4, !tbaa !11
  %2956 = load ptr, ptr %19, align 8, !tbaa !5
  %2957 = load i64, ptr %2956, align 8, !tbaa !9
  %2958 = load i64, ptr %51, align 8, !tbaa !9
  %2959 = sub nsw i64 %2957, %2958
  %2960 = add nsw i64 %2959, 1
  store i64 %2960, ptr %38, align 8, !tbaa !9
  %2961 = load ptr, ptr %28, align 8, !tbaa !5
  %2962 = load i64, ptr %51, align 8, !tbaa !9
  %2963 = load ptr, ptr %19, align 8, !tbaa !5
  %2964 = load i64, ptr %2963, align 8, !tbaa !9
  %2965 = add nsw i64 %2962, %2964
  %2966 = getelementptr inbounds float, ptr %2961, i64 %2965
  %2967 = call i32 @f2c_sscal(ptr noundef %38, ptr noundef %56, ptr noundef %2966, ptr noundef @c__1)
  %2968 = load ptr, ptr %19, align 8, !tbaa !5
  %2969 = load i64, ptr %2968, align 8, !tbaa !9
  %2970 = load i64, ptr %51, align 8, !tbaa !9
  %2971 = sub nsw i64 %2969, %2970
  %2972 = add nsw i64 %2971, 1
  store i64 %2972, ptr %38, align 8, !tbaa !9
  %2973 = load ptr, ptr %28, align 8, !tbaa !5
  %2974 = load i64, ptr %51, align 8, !tbaa !9
  %2975 = load i64, ptr %49, align 8, !tbaa !9
  %2976 = add nsw i64 %2974, %2975
  %2977 = getelementptr inbounds float, ptr %2973, i64 %2976
  %2978 = call i32 @f2c_sscal(ptr noundef %38, ptr noundef %56, ptr noundef %2977, ptr noundef @c__1)
  store float 1.000000e+00, ptr %67, align 4, !tbaa !11
  %2979 = load float, ptr %76, align 4, !tbaa !11
  store float %2979, ptr %73, align 4, !tbaa !11
  br label %2980

2980:                                             ; preds = %2953, %2946
  %2981 = load i64, ptr %44, align 8, !tbaa !9
  %2982 = load i64, ptr %51, align 8, !tbaa !9
  %2983 = sub nsw i64 %2981, %2982
  %2984 = sub nsw i64 %2983, 2
  store i64 %2984, ptr %38, align 8, !tbaa !9
  %2985 = load ptr, ptr %20, align 8, !tbaa !5
  %2986 = load i64, ptr %51, align 8, !tbaa !9
  %2987 = add nsw i64 %2986, 2
  %2988 = load i64, ptr %44, align 8, !tbaa !9
  %2989 = load i64, ptr %30, align 8, !tbaa !9
  %2990 = mul nsw i64 %2988, %2989
  %2991 = add nsw i64 %2987, %2990
  %2992 = getelementptr inbounds float, ptr %2985, i64 %2991
  %2993 = load ptr, ptr %28, align 8, !tbaa !5
  %2994 = load i64, ptr %51, align 8, !tbaa !9
  %2995 = add nsw i64 %2994, 2
  %2996 = load ptr, ptr %19, align 8, !tbaa !5
  %2997 = load i64, ptr %2996, align 8, !tbaa !9
  %2998 = add nsw i64 %2995, %2997
  %2999 = getelementptr inbounds float, ptr %2993, i64 %2998
  %3000 = call double @f2c_sdot(ptr noundef %38, ptr noundef %2992, ptr noundef @c__1, ptr noundef %2999, ptr noundef @c__1)
  %3001 = load ptr, ptr %28, align 8, !tbaa !5
  %3002 = load i64, ptr %44, align 8, !tbaa !9
  %3003 = load ptr, ptr %19, align 8, !tbaa !5
  %3004 = load i64, ptr %3003, align 8, !tbaa !9
  %3005 = add nsw i64 %3002, %3004
  %3006 = getelementptr inbounds float, ptr %3001, i64 %3005
  %3007 = load float, ptr %3006, align 4, !tbaa !11
  %3008 = fpext float %3007 to double
  %3009 = fsub double %3008, %3000
  %3010 = fptrunc double %3009 to float
  store float %3010, ptr %3006, align 4, !tbaa !11
  %3011 = load i64, ptr %44, align 8, !tbaa !9
  %3012 = load i64, ptr %51, align 8, !tbaa !9
  %3013 = sub nsw i64 %3011, %3012
  %3014 = sub nsw i64 %3013, 2
  store i64 %3014, ptr %38, align 8, !tbaa !9
  %3015 = load ptr, ptr %20, align 8, !tbaa !5
  %3016 = load i64, ptr %51, align 8, !tbaa !9
  %3017 = add nsw i64 %3016, 2
  %3018 = load i64, ptr %44, align 8, !tbaa !9
  %3019 = load i64, ptr %30, align 8, !tbaa !9
  %3020 = mul nsw i64 %3018, %3019
  %3021 = add nsw i64 %3017, %3020
  %3022 = getelementptr inbounds float, ptr %3015, i64 %3021
  %3023 = load ptr, ptr %28, align 8, !tbaa !5
  %3024 = load i64, ptr %51, align 8, !tbaa !9
  %3025 = add nsw i64 %3024, 2
  %3026 = load i64, ptr %49, align 8, !tbaa !9
  %3027 = add nsw i64 %3025, %3026
  %3028 = getelementptr inbounds float, ptr %3023, i64 %3027
  %3029 = call double @f2c_sdot(ptr noundef %38, ptr noundef %3022, ptr noundef @c__1, ptr noundef %3028, ptr noundef @c__1)
  %3030 = load ptr, ptr %28, align 8, !tbaa !5
  %3031 = load i64, ptr %44, align 8, !tbaa !9
  %3032 = load i64, ptr %49, align 8, !tbaa !9
  %3033 = add nsw i64 %3031, %3032
  %3034 = getelementptr inbounds float, ptr %3030, i64 %3033
  %3035 = load float, ptr %3034, align 4, !tbaa !11
  %3036 = fpext float %3035 to double
  %3037 = fsub double %3036, %3029
  %3038 = fptrunc double %3037 to float
  store float %3038, ptr %3034, align 4, !tbaa !11
  %3039 = load i64, ptr %44, align 8, !tbaa !9
  %3040 = load i64, ptr %51, align 8, !tbaa !9
  %3041 = sub nsw i64 %3039, %3040
  %3042 = sub nsw i64 %3041, 2
  store i64 %3042, ptr %38, align 8, !tbaa !9
  %3043 = load ptr, ptr %20, align 8, !tbaa !5
  %3044 = load i64, ptr %51, align 8, !tbaa !9
  %3045 = add nsw i64 %3044, 2
  %3046 = load i64, ptr %44, align 8, !tbaa !9
  %3047 = add nsw i64 %3046, 1
  %3048 = load i64, ptr %30, align 8, !tbaa !9
  %3049 = mul nsw i64 %3047, %3048
  %3050 = add nsw i64 %3045, %3049
  %3051 = getelementptr inbounds float, ptr %3043, i64 %3050
  %3052 = load ptr, ptr %28, align 8, !tbaa !5
  %3053 = load i64, ptr %51, align 8, !tbaa !9
  %3054 = add nsw i64 %3053, 2
  %3055 = load ptr, ptr %19, align 8, !tbaa !5
  %3056 = load i64, ptr %3055, align 8, !tbaa !9
  %3057 = add nsw i64 %3054, %3056
  %3058 = getelementptr inbounds float, ptr %3052, i64 %3057
  %3059 = call double @f2c_sdot(ptr noundef %38, ptr noundef %3051, ptr noundef @c__1, ptr noundef %3058, ptr noundef @c__1)
  %3060 = load ptr, ptr %28, align 8, !tbaa !5
  %3061 = load i64, ptr %44, align 8, !tbaa !9
  %3062 = add nsw i64 %3061, 1
  %3063 = load ptr, ptr %19, align 8, !tbaa !5
  %3064 = load i64, ptr %3063, align 8, !tbaa !9
  %3065 = add nsw i64 %3062, %3064
  %3066 = getelementptr inbounds float, ptr %3060, i64 %3065
  %3067 = load float, ptr %3066, align 4, !tbaa !11
  %3068 = fpext float %3067 to double
  %3069 = fsub double %3068, %3059
  %3070 = fptrunc double %3069 to float
  store float %3070, ptr %3066, align 4, !tbaa !11
  %3071 = load i64, ptr %44, align 8, !tbaa !9
  %3072 = load i64, ptr %51, align 8, !tbaa !9
  %3073 = sub nsw i64 %3071, %3072
  %3074 = sub nsw i64 %3073, 2
  store i64 %3074, ptr %38, align 8, !tbaa !9
  %3075 = load ptr, ptr %20, align 8, !tbaa !5
  %3076 = load i64, ptr %51, align 8, !tbaa !9
  %3077 = add nsw i64 %3076, 2
  %3078 = load i64, ptr %44, align 8, !tbaa !9
  %3079 = add nsw i64 %3078, 1
  %3080 = load i64, ptr %30, align 8, !tbaa !9
  %3081 = mul nsw i64 %3079, %3080
  %3082 = add nsw i64 %3077, %3081
  %3083 = getelementptr inbounds float, ptr %3075, i64 %3082
  %3084 = load ptr, ptr %28, align 8, !tbaa !5
  %3085 = load i64, ptr %51, align 8, !tbaa !9
  %3086 = add nsw i64 %3085, 2
  %3087 = load i64, ptr %49, align 8, !tbaa !9
  %3088 = add nsw i64 %3086, %3087
  %3089 = getelementptr inbounds float, ptr %3084, i64 %3088
  %3090 = call double @f2c_sdot(ptr noundef %38, ptr noundef %3083, ptr noundef @c__1, ptr noundef %3089, ptr noundef @c__1)
  %3091 = load ptr, ptr %28, align 8, !tbaa !5
  %3092 = load i64, ptr %44, align 8, !tbaa !9
  %3093 = add nsw i64 %3092, 1
  %3094 = load i64, ptr %49, align 8, !tbaa !9
  %3095 = add nsw i64 %3093, %3094
  %3096 = getelementptr inbounds float, ptr %3091, i64 %3095
  %3097 = load float, ptr %3096, align 4, !tbaa !11
  %3098 = fpext float %3097 to double
  %3099 = fsub double %3098, %3090
  %3100 = fptrunc double %3099 to float
  store float %3100, ptr %3096, align 4, !tbaa !11
  %3101 = load float, ptr %54, align 4, !tbaa !11
  %3102 = fneg float %3101
  store float %3102, ptr %39, align 4, !tbaa !11
  %3103 = load ptr, ptr %20, align 8, !tbaa !5
  %3104 = load i64, ptr %44, align 8, !tbaa !9
  %3105 = load i64, ptr %44, align 8, !tbaa !9
  %3106 = load i64, ptr %30, align 8, !tbaa !9
  %3107 = mul nsw i64 %3105, %3106
  %3108 = add nsw i64 %3104, %3107
  %3109 = getelementptr inbounds float, ptr %3103, i64 %3108
  %3110 = load ptr, ptr %21, align 8, !tbaa !5
  %3111 = load ptr, ptr %28, align 8, !tbaa !5
  %3112 = load i64, ptr %44, align 8, !tbaa !9
  %3113 = load ptr, ptr %19, align 8, !tbaa !5
  %3114 = load i64, ptr %3113, align 8, !tbaa !9
  %3115 = add nsw i64 %3112, %3114
  %3116 = getelementptr inbounds float, ptr %3111, i64 %3115
  %3117 = load ptr, ptr %19, align 8, !tbaa !5
  %3118 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %3119 = call i32 @slaln2_(ptr noundef @c_true, ptr noundef @c__2, ptr noundef @c__2, ptr noundef %65, ptr noundef @c_b22, ptr noundef %3109, ptr noundef %3110, ptr noundef @c_b22, ptr noundef @c_b22, ptr noundef %3116, ptr noundef %3117, ptr noundef %55, ptr noundef %39, ptr noundef %3118, ptr noundef @c__2, ptr noundef %69, ptr noundef %75, ptr noundef %62)
  %3120 = load float, ptr %69, align 4, !tbaa !11
  %3121 = fcmp une float %3120, 1.000000e+00
  br i1 %3121, label %3122, label %3146

3122:                                             ; preds = %2980
  %3123 = load ptr, ptr %19, align 8, !tbaa !5
  %3124 = load i64, ptr %3123, align 8, !tbaa !9
  %3125 = load i64, ptr %51, align 8, !tbaa !9
  %3126 = sub nsw i64 %3124, %3125
  %3127 = add nsw i64 %3126, 1
  store i64 %3127, ptr %38, align 8, !tbaa !9
  %3128 = load ptr, ptr %28, align 8, !tbaa !5
  %3129 = load i64, ptr %51, align 8, !tbaa !9
  %3130 = load ptr, ptr %19, align 8, !tbaa !5
  %3131 = load i64, ptr %3130, align 8, !tbaa !9
  %3132 = add nsw i64 %3129, %3131
  %3133 = getelementptr inbounds float, ptr %3128, i64 %3132
  %3134 = call i32 @f2c_sscal(ptr noundef %38, ptr noundef %69, ptr noundef %3133, ptr noundef @c__1)
  %3135 = load ptr, ptr %19, align 8, !tbaa !5
  %3136 = load i64, ptr %3135, align 8, !tbaa !9
  %3137 = load i64, ptr %51, align 8, !tbaa !9
  %3138 = sub nsw i64 %3136, %3137
  %3139 = add nsw i64 %3138, 1
  store i64 %3139, ptr %38, align 8, !tbaa !9
  %3140 = load ptr, ptr %28, align 8, !tbaa !5
  %3141 = load i64, ptr %51, align 8, !tbaa !9
  %3142 = load i64, ptr %49, align 8, !tbaa !9
  %3143 = add nsw i64 %3141, %3142
  %3144 = getelementptr inbounds float, ptr %3140, i64 %3143
  %3145 = call i32 @f2c_sscal(ptr noundef %38, ptr noundef %69, ptr noundef %3144, ptr noundef @c__1)
  br label %3146

3146:                                             ; preds = %3122, %2980
  %3147 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %3148 = load float, ptr %3147, align 16, !tbaa !11
  %3149 = load ptr, ptr %28, align 8, !tbaa !5
  %3150 = load i64, ptr %44, align 8, !tbaa !9
  %3151 = load ptr, ptr %19, align 8, !tbaa !5
  %3152 = load i64, ptr %3151, align 8, !tbaa !9
  %3153 = add nsw i64 %3150, %3152
  %3154 = getelementptr inbounds float, ptr %3149, i64 %3153
  store float %3148, ptr %3154, align 4, !tbaa !11
  %3155 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 2
  %3156 = load float, ptr %3155, align 8, !tbaa !11
  %3157 = load ptr, ptr %28, align 8, !tbaa !5
  %3158 = load i64, ptr %44, align 8, !tbaa !9
  %3159 = load i64, ptr %49, align 8, !tbaa !9
  %3160 = add nsw i64 %3158, %3159
  %3161 = getelementptr inbounds float, ptr %3157, i64 %3160
  store float %3156, ptr %3161, align 4, !tbaa !11
  %3162 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 1
  %3163 = load float, ptr %3162, align 4, !tbaa !11
  %3164 = load ptr, ptr %28, align 8, !tbaa !5
  %3165 = load i64, ptr %44, align 8, !tbaa !9
  %3166 = add nsw i64 %3165, 1
  %3167 = load ptr, ptr %19, align 8, !tbaa !5
  %3168 = load i64, ptr %3167, align 8, !tbaa !9
  %3169 = add nsw i64 %3166, %3168
  %3170 = getelementptr inbounds float, ptr %3164, i64 %3169
  store float %3163, ptr %3170, align 4, !tbaa !11
  %3171 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 3
  %3172 = load float, ptr %3171, align 4, !tbaa !11
  %3173 = load ptr, ptr %28, align 8, !tbaa !5
  %3174 = load i64, ptr %44, align 8, !tbaa !9
  %3175 = add nsw i64 %3174, 1
  %3176 = load i64, ptr %49, align 8, !tbaa !9
  %3177 = add nsw i64 %3175, %3176
  %3178 = getelementptr inbounds float, ptr %3173, i64 %3177
  store float %3172, ptr %3178, align 4, !tbaa !11
  %3179 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %3180 = load float, ptr %3179, align 16, !tbaa !11
  %3181 = fcmp oge float %3180, 0.000000e+00
  br i1 %3181, label %3182, label %3185

3182:                                             ; preds = %3146
  %3183 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %3184 = load float, ptr %3183, align 16, !tbaa !11
  br label %3189

3185:                                             ; preds = %3146
  %3186 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 0
  %3187 = load float, ptr %3186, align 16, !tbaa !11
  %3188 = fneg float %3187
  br label %3189

3189:                                             ; preds = %3185, %3182
  %3190 = phi float [ %3184, %3182 ], [ %3188, %3185 ]
  %3191 = fpext float %3190 to double
  %3192 = fptrunc double %3191 to float
  store float %3192, ptr %39, align 4, !tbaa !11
  %3193 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 2
  %3194 = load float, ptr %3193, align 8, !tbaa !11
  %3195 = fcmp oge float %3194, 0.000000e+00
  br i1 %3195, label %3196, label %3199

3196:                                             ; preds = %3189
  %3197 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 2
  %3198 = load float, ptr %3197, align 8, !tbaa !11
  br label %3203

3199:                                             ; preds = %3189
  %3200 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 2
  %3201 = load float, ptr %3200, align 8, !tbaa !11
  %3202 = fneg float %3201
  br label %3203

3203:                                             ; preds = %3199, %3196
  %3204 = phi float [ %3198, %3196 ], [ %3202, %3199 ]
  %3205 = fpext float %3204 to double
  %3206 = fptrunc double %3205 to float
  store float %3206, ptr %40, align 4, !tbaa !11
  %3207 = load float, ptr %39, align 4, !tbaa !11
  %3208 = load float, ptr %40, align 4, !tbaa !11
  %3209 = fcmp oge float %3207, %3208
  br i1 %3209, label %3210, label %3212

3210:                                             ; preds = %3203
  %3211 = load float, ptr %39, align 4, !tbaa !11
  br label %3214

3212:                                             ; preds = %3203
  %3213 = load float, ptr %40, align 4, !tbaa !11
  br label %3214

3214:                                             ; preds = %3212, %3210
  %3215 = phi float [ %3211, %3210 ], [ %3213, %3212 ]
  store float %3215, ptr %39, align 4, !tbaa !11
  %3216 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 1
  %3217 = load float, ptr %3216, align 4, !tbaa !11
  %3218 = fcmp oge float %3217, 0.000000e+00
  br i1 %3218, label %3219, label %3222

3219:                                             ; preds = %3214
  %3220 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 1
  %3221 = load float, ptr %3220, align 4, !tbaa !11
  br label %3226

3222:                                             ; preds = %3214
  %3223 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 1
  %3224 = load float, ptr %3223, align 4, !tbaa !11
  %3225 = fneg float %3224
  br label %3226

3226:                                             ; preds = %3222, %3219
  %3227 = phi float [ %3221, %3219 ], [ %3225, %3222 ]
  %3228 = fpext float %3227 to double
  %3229 = fptrunc double %3228 to float
  store float %3229, ptr %40, align 4, !tbaa !11
  %3230 = load float, ptr %39, align 4, !tbaa !11
  %3231 = load float, ptr %40, align 4, !tbaa !11
  %3232 = fcmp oge float %3230, %3231
  br i1 %3232, label %3233, label %3235

3233:                                             ; preds = %3226
  %3234 = load float, ptr %39, align 4, !tbaa !11
  br label %3237

3235:                                             ; preds = %3226
  %3236 = load float, ptr %40, align 4, !tbaa !11
  br label %3237

3237:                                             ; preds = %3235, %3233
  %3238 = phi float [ %3234, %3233 ], [ %3236, %3235 ]
  store float %3238, ptr %39, align 4, !tbaa !11
  %3239 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 3
  %3240 = load float, ptr %3239, align 4, !tbaa !11
  %3241 = fcmp oge float %3240, 0.000000e+00
  br i1 %3241, label %3242, label %3245

3242:                                             ; preds = %3237
  %3243 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 3
  %3244 = load float, ptr %3243, align 4, !tbaa !11
  br label %3249

3245:                                             ; preds = %3237
  %3246 = getelementptr inbounds [4 x float], ptr %46, i64 0, i64 3
  %3247 = load float, ptr %3246, align 4, !tbaa !11
  %3248 = fneg float %3247
  br label %3249

3249:                                             ; preds = %3245, %3242
  %3250 = phi float [ %3244, %3242 ], [ %3248, %3245 ]
  %3251 = fpext float %3250 to double
  %3252 = fptrunc double %3251 to float
  store float %3252, ptr %40, align 4, !tbaa !11
  %3253 = load float, ptr %39, align 4, !tbaa !11
  %3254 = load float, ptr %40, align 4, !tbaa !11
  %3255 = fcmp oge float %3253, %3254
  br i1 %3255, label %3256, label %3258

3256:                                             ; preds = %3249
  %3257 = load float, ptr %39, align 4, !tbaa !11
  br label %3260

3258:                                             ; preds = %3249
  %3259 = load float, ptr %40, align 4, !tbaa !11
  br label %3260

3260:                                             ; preds = %3258, %3256
  %3261 = phi float [ %3257, %3256 ], [ %3259, %3258 ]
  store float %3261, ptr %39, align 4, !tbaa !11
  %3262 = load float, ptr %39, align 4, !tbaa !11
  %3263 = load float, ptr %67, align 4, !tbaa !11
  %3264 = fcmp oge float %3262, %3263
  br i1 %3264, label %3265, label %3267

3265:                                             ; preds = %3260
  %3266 = load float, ptr %39, align 4, !tbaa !11
  br label %3269

3267:                                             ; preds = %3260
  %3268 = load float, ptr %67, align 4, !tbaa !11
  br label %3269

3269:                                             ; preds = %3267, %3265
  %3270 = phi float [ %3266, %3265 ], [ %3268, %3267 ]
  %3271 = fpext float %3270 to double
  %3272 = fptrunc double %3271 to float
  store float %3272, ptr %67, align 4, !tbaa !11
  %3273 = load float, ptr %76, align 4, !tbaa !11
  %3274 = load float, ptr %67, align 4, !tbaa !11
  %3275 = fdiv float %3273, %3274
  store float %3275, ptr %73, align 4, !tbaa !11
  br label %3276

3276:                                             ; preds = %3269, %2922
  br label %3277

3277:                                             ; preds = %3276, %2686
  br label %3278

3278:                                             ; preds = %3277
  %3279 = load i64, ptr %44, align 8, !tbaa !9
  %3280 = add nsw i64 %3279, 1
  store i64 %3280, ptr %44, align 8, !tbaa !9
  br label %2678, !llvm.loop !30

3281:                                             ; preds = %2678
  %3282 = load i64, ptr %66, align 8, !tbaa !9
  %3283 = icmp ne i64 %3282, 0
  br i1 %3283, label %3441, label %3284

3284:                                             ; preds = %3281
  %3285 = load ptr, ptr %19, align 8, !tbaa !5
  %3286 = load i64, ptr %3285, align 8, !tbaa !9
  %3287 = load i64, ptr %51, align 8, !tbaa !9
  %3288 = sub nsw i64 %3286, %3287
  %3289 = add nsw i64 %3288, 1
  store i64 %3289, ptr %37, align 8, !tbaa !9
  %3290 = load ptr, ptr %28, align 8, !tbaa !5
  %3291 = load i64, ptr %51, align 8, !tbaa !9
  %3292 = load ptr, ptr %19, align 8, !tbaa !5
  %3293 = load i64, ptr %3292, align 8, !tbaa !9
  %3294 = add nsw i64 %3291, %3293
  %3295 = getelementptr inbounds float, ptr %3290, i64 %3294
  %3296 = load ptr, ptr %22, align 8, !tbaa !5
  %3297 = load i64, ptr %51, align 8, !tbaa !9
  %3298 = load i64, ptr %53, align 8, !tbaa !9
  %3299 = load i64, ptr %32, align 8, !tbaa !9
  %3300 = mul nsw i64 %3298, %3299
  %3301 = add nsw i64 %3297, %3300
  %3302 = getelementptr inbounds float, ptr %3296, i64 %3301
  %3303 = call i32 @f2c_scopy(ptr noundef %37, ptr noundef %3295, ptr noundef @c__1, ptr noundef %3302, ptr noundef @c__1)
  %3304 = load ptr, ptr %19, align 8, !tbaa !5
  %3305 = load i64, ptr %3304, align 8, !tbaa !9
  %3306 = load i64, ptr %51, align 8, !tbaa !9
  %3307 = sub nsw i64 %3305, %3306
  %3308 = add nsw i64 %3307, 1
  store i64 %3308, ptr %37, align 8, !tbaa !9
  %3309 = load ptr, ptr %28, align 8, !tbaa !5
  %3310 = load i64, ptr %51, align 8, !tbaa !9
  %3311 = load i64, ptr %49, align 8, !tbaa !9
  %3312 = add nsw i64 %3310, %3311
  %3313 = getelementptr inbounds float, ptr %3309, i64 %3312
  %3314 = load ptr, ptr %22, align 8, !tbaa !5
  %3315 = load i64, ptr %51, align 8, !tbaa !9
  %3316 = load i64, ptr %53, align 8, !tbaa !9
  %3317 = add nsw i64 %3316, 1
  %3318 = load i64, ptr %32, align 8, !tbaa !9
  %3319 = mul nsw i64 %3317, %3318
  %3320 = add nsw i64 %3315, %3319
  %3321 = getelementptr inbounds float, ptr %3314, i64 %3320
  %3322 = call i32 @f2c_scopy(ptr noundef %37, ptr noundef %3313, ptr noundef @c__1, ptr noundef %3321, ptr noundef @c__1)
  store float 0.000000e+00, ptr %59, align 4, !tbaa !11
  %3323 = load ptr, ptr %19, align 8, !tbaa !5
  %3324 = load i64, ptr %3323, align 8, !tbaa !9
  store i64 %3324, ptr %37, align 8, !tbaa !9
  %3325 = load i64, ptr %51, align 8, !tbaa !9
  store i64 %3325, ptr %45, align 8, !tbaa !9
  br label %3326

3326:                                             ; preds = %3382, %3284
  %3327 = load i64, ptr %45, align 8, !tbaa !9
  %3328 = load i64, ptr %37, align 8, !tbaa !9
  %3329 = icmp sle i64 %3327, %3328
  br i1 %3329, label %3330, label %3385

3330:                                             ; preds = %3326
  %3331 = load float, ptr %59, align 4, !tbaa !11
  store float %3331, ptr %41, align 4, !tbaa !11
  %3332 = load ptr, ptr %22, align 8, !tbaa !5
  %3333 = load i64, ptr %45, align 8, !tbaa !9
  %3334 = load i64, ptr %53, align 8, !tbaa !9
  %3335 = load i64, ptr %32, align 8, !tbaa !9
  %3336 = mul nsw i64 %3334, %3335
  %3337 = add nsw i64 %3333, %3336
  %3338 = getelementptr inbounds float, ptr %3332, i64 %3337
  %3339 = load float, ptr %3338, align 4, !tbaa !11
  store float %3339, ptr %39, align 4, !tbaa !11
  %3340 = load float, ptr %39, align 4, !tbaa !11
  %3341 = fcmp oge float %3340, 0.000000e+00
  br i1 %3341, label %3342, label %3344

3342:                                             ; preds = %3330
  %3343 = load float, ptr %39, align 4, !tbaa !11
  br label %3347

3344:                                             ; preds = %3330
  %3345 = load float, ptr %39, align 4, !tbaa !11
  %3346 = fneg float %3345
  br label %3347

3347:                                             ; preds = %3344, %3342
  %3348 = phi float [ %3343, %3342 ], [ %3346, %3344 ]
  %3349 = fpext float %3348 to double
  %3350 = load ptr, ptr %22, align 8, !tbaa !5
  %3351 = load i64, ptr %45, align 8, !tbaa !9
  %3352 = load i64, ptr %53, align 8, !tbaa !9
  %3353 = add nsw i64 %3352, 1
  %3354 = load i64, ptr %32, align 8, !tbaa !9
  %3355 = mul nsw i64 %3353, %3354
  %3356 = add nsw i64 %3351, %3355
  %3357 = getelementptr inbounds float, ptr %3350, i64 %3356
  %3358 = load float, ptr %3357, align 4, !tbaa !11
  store float %3358, ptr %40, align 4, !tbaa !11
  %3359 = load float, ptr %40, align 4, !tbaa !11
  %3360 = fcmp oge float %3359, 0.000000e+00
  br i1 %3360, label %3361, label %3363

3361:                                             ; preds = %3347
  %3362 = load float, ptr %40, align 4, !tbaa !11
  br label %3366

3363:                                             ; preds = %3347
  %3364 = load float, ptr %40, align 4, !tbaa !11
  %3365 = fneg float %3364
  br label %3366

3366:                                             ; preds = %3363, %3361
  %3367 = phi float [ %3362, %3361 ], [ %3365, %3363 ]
  %3368 = fpext float %3367 to double
  %3369 = fadd double %3349, %3368
  %3370 = fptrunc double %3369 to float
  store float %3370, ptr %42, align 4, !tbaa !11
  %3371 = load float, ptr %41, align 4, !tbaa !11
  %3372 = load float, ptr %42, align 4, !tbaa !11
  %3373 = fcmp oge float %3371, %3372
  br i1 %3373, label %3374, label %3376

3374:                                             ; preds = %3366
  %3375 = load float, ptr %41, align 4, !tbaa !11
  br label %3378

3376:                                             ; preds = %3366
  %3377 = load float, ptr %42, align 4, !tbaa !11
  br label %3378

3378:                                             ; preds = %3376, %3374
  %3379 = phi float [ %3375, %3374 ], [ %3377, %3376 ]
  %3380 = fpext float %3379 to double
  %3381 = fptrunc double %3380 to float
  store float %3381, ptr %59, align 4, !tbaa !11
  br label %3382

3382:                                             ; preds = %3378
  %3383 = load i64, ptr %45, align 8, !tbaa !9
  %3384 = add nsw i64 %3383, 1
  store i64 %3384, ptr %45, align 8, !tbaa !9
  br label %3326, !llvm.loop !31

3385:                                             ; preds = %3326
  %3386 = load float, ptr %59, align 4, !tbaa !11
  %3387 = fdiv float 1.000000e+00, %3386
  store float %3387, ptr %70, align 4, !tbaa !11
  %3388 = load ptr, ptr %19, align 8, !tbaa !5
  %3389 = load i64, ptr %3388, align 8, !tbaa !9
  %3390 = load i64, ptr %51, align 8, !tbaa !9
  %3391 = sub nsw i64 %3389, %3390
  %3392 = add nsw i64 %3391, 1
  store i64 %3392, ptr %37, align 8, !tbaa !9
  %3393 = load ptr, ptr %22, align 8, !tbaa !5
  %3394 = load i64, ptr %51, align 8, !tbaa !9
  %3395 = load i64, ptr %53, align 8, !tbaa !9
  %3396 = load i64, ptr %32, align 8, !tbaa !9
  %3397 = mul nsw i64 %3395, %3396
  %3398 = add nsw i64 %3394, %3397
  %3399 = getelementptr inbounds float, ptr %3393, i64 %3398
  %3400 = call i32 @f2c_sscal(ptr noundef %37, ptr noundef %70, ptr noundef %3399, ptr noundef @c__1)
  %3401 = load ptr, ptr %19, align 8, !tbaa !5
  %3402 = load i64, ptr %3401, align 8, !tbaa !9
  %3403 = load i64, ptr %51, align 8, !tbaa !9
  %3404 = sub nsw i64 %3402, %3403
  %3405 = add nsw i64 %3404, 1
  store i64 %3405, ptr %37, align 8, !tbaa !9
  %3406 = load ptr, ptr %22, align 8, !tbaa !5
  %3407 = load i64, ptr %51, align 8, !tbaa !9
  %3408 = load i64, ptr %53, align 8, !tbaa !9
  %3409 = add nsw i64 %3408, 1
  %3410 = load i64, ptr %32, align 8, !tbaa !9
  %3411 = mul nsw i64 %3409, %3410
  %3412 = add nsw i64 %3407, %3411
  %3413 = getelementptr inbounds float, ptr %3406, i64 %3412
  %3414 = call i32 @f2c_sscal(ptr noundef %37, ptr noundef %70, ptr noundef %3413, ptr noundef @c__1)
  %3415 = load i64, ptr %51, align 8, !tbaa !9
  %3416 = sub nsw i64 %3415, 1
  store i64 %3416, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %3417

3417:                                             ; preds = %3437, %3385
  %3418 = load i64, ptr %45, align 8, !tbaa !9
  %3419 = load i64, ptr %37, align 8, !tbaa !9
  %3420 = icmp sle i64 %3418, %3419
  br i1 %3420, label %3421, label %3440

3421:                                             ; preds = %3417
  %3422 = load ptr, ptr %22, align 8, !tbaa !5
  %3423 = load i64, ptr %45, align 8, !tbaa !9
  %3424 = load i64, ptr %53, align 8, !tbaa !9
  %3425 = load i64, ptr %32, align 8, !tbaa !9
  %3426 = mul nsw i64 %3424, %3425
  %3427 = add nsw i64 %3423, %3426
  %3428 = getelementptr inbounds float, ptr %3422, i64 %3427
  store float 0.000000e+00, ptr %3428, align 4, !tbaa !11
  %3429 = load ptr, ptr %22, align 8, !tbaa !5
  %3430 = load i64, ptr %45, align 8, !tbaa !9
  %3431 = load i64, ptr %53, align 8, !tbaa !9
  %3432 = add nsw i64 %3431, 1
  %3433 = load i64, ptr %32, align 8, !tbaa !9
  %3434 = mul nsw i64 %3432, %3433
  %3435 = add nsw i64 %3430, %3434
  %3436 = getelementptr inbounds float, ptr %3429, i64 %3435
  store float 0.000000e+00, ptr %3436, align 4, !tbaa !11
  br label %3437

3437:                                             ; preds = %3421
  %3438 = load i64, ptr %45, align 8, !tbaa !9
  %3439 = add nsw i64 %3438, 1
  store i64 %3439, ptr %45, align 8, !tbaa !9
  br label %3417, !llvm.loop !32

3440:                                             ; preds = %3417
  br label %3628

3441:                                             ; preds = %3281
  %3442 = load i64, ptr %51, align 8, !tbaa !9
  %3443 = load ptr, ptr %19, align 8, !tbaa !5
  %3444 = load i64, ptr %3443, align 8, !tbaa !9
  %3445 = sub nsw i64 %3444, 1
  %3446 = icmp slt i64 %3442, %3445
  br i1 %3446, label %3447, label %3516

3447:                                             ; preds = %3441
  %3448 = load ptr, ptr %19, align 8, !tbaa !5
  %3449 = load i64, ptr %3448, align 8, !tbaa !9
  %3450 = load i64, ptr %51, align 8, !tbaa !9
  %3451 = sub nsw i64 %3449, %3450
  %3452 = sub nsw i64 %3451, 1
  store i64 %3452, ptr %37, align 8, !tbaa !9
  %3453 = load ptr, ptr %19, align 8, !tbaa !5
  %3454 = load ptr, ptr %22, align 8, !tbaa !5
  %3455 = load i64, ptr %51, align 8, !tbaa !9
  %3456 = add nsw i64 %3455, 2
  %3457 = load i64, ptr %32, align 8, !tbaa !9
  %3458 = mul nsw i64 %3456, %3457
  %3459 = add nsw i64 %3458, 1
  %3460 = getelementptr inbounds float, ptr %3454, i64 %3459
  %3461 = load ptr, ptr %23, align 8, !tbaa !5
  %3462 = load ptr, ptr %28, align 8, !tbaa !5
  %3463 = load i64, ptr %51, align 8, !tbaa !9
  %3464 = add nsw i64 %3463, 2
  %3465 = load ptr, ptr %19, align 8, !tbaa !5
  %3466 = load i64, ptr %3465, align 8, !tbaa !9
  %3467 = add nsw i64 %3464, %3466
  %3468 = getelementptr inbounds float, ptr %3462, i64 %3467
  %3469 = load ptr, ptr %28, align 8, !tbaa !5
  %3470 = load i64, ptr %51, align 8, !tbaa !9
  %3471 = load ptr, ptr %19, align 8, !tbaa !5
  %3472 = load i64, ptr %3471, align 8, !tbaa !9
  %3473 = add nsw i64 %3470, %3472
  %3474 = getelementptr inbounds float, ptr %3469, i64 %3473
  %3475 = load ptr, ptr %22, align 8, !tbaa !5
  %3476 = load i64, ptr %51, align 8, !tbaa !9
  %3477 = load i64, ptr %32, align 8, !tbaa !9
  %3478 = mul nsw i64 %3476, %3477
  %3479 = add nsw i64 %3478, 1
  %3480 = getelementptr inbounds float, ptr %3475, i64 %3479
  %3481 = call i32 @f2c_sgemv(ptr noundef @.str.8, ptr noundef %3453, ptr noundef %37, ptr noundef @c_b22, ptr noundef %3460, ptr noundef %3461, ptr noundef %3468, ptr noundef @c__1, ptr noundef %3474, ptr noundef %3480, ptr noundef @c__1)
  %3482 = load ptr, ptr %19, align 8, !tbaa !5
  %3483 = load i64, ptr %3482, align 8, !tbaa !9
  %3484 = load i64, ptr %51, align 8, !tbaa !9
  %3485 = sub nsw i64 %3483, %3484
  %3486 = sub nsw i64 %3485, 1
  store i64 %3486, ptr %37, align 8, !tbaa !9
  %3487 = load ptr, ptr %19, align 8, !tbaa !5
  %3488 = load ptr, ptr %22, align 8, !tbaa !5
  %3489 = load i64, ptr %51, align 8, !tbaa !9
  %3490 = add nsw i64 %3489, 2
  %3491 = load i64, ptr %32, align 8, !tbaa !9
  %3492 = mul nsw i64 %3490, %3491
  %3493 = add nsw i64 %3492, 1
  %3494 = getelementptr inbounds float, ptr %3488, i64 %3493
  %3495 = load ptr, ptr %23, align 8, !tbaa !5
  %3496 = load ptr, ptr %28, align 8, !tbaa !5
  %3497 = load i64, ptr %51, align 8, !tbaa !9
  %3498 = add nsw i64 %3497, 2
  %3499 = load i64, ptr %49, align 8, !tbaa !9
  %3500 = add nsw i64 %3498, %3499
  %3501 = getelementptr inbounds float, ptr %3496, i64 %3500
  %3502 = load ptr, ptr %28, align 8, !tbaa !5
  %3503 = load i64, ptr %51, align 8, !tbaa !9
  %3504 = add nsw i64 %3503, 1
  %3505 = load i64, ptr %49, align 8, !tbaa !9
  %3506 = add nsw i64 %3504, %3505
  %3507 = getelementptr inbounds float, ptr %3502, i64 %3506
  %3508 = load ptr, ptr %22, align 8, !tbaa !5
  %3509 = load i64, ptr %51, align 8, !tbaa !9
  %3510 = add nsw i64 %3509, 1
  %3511 = load i64, ptr %32, align 8, !tbaa !9
  %3512 = mul nsw i64 %3510, %3511
  %3513 = add nsw i64 %3512, 1
  %3514 = getelementptr inbounds float, ptr %3508, i64 %3513
  %3515 = call i32 @f2c_sgemv(ptr noundef @.str.8, ptr noundef %3487, ptr noundef %37, ptr noundef @c_b22, ptr noundef %3494, ptr noundef %3495, ptr noundef %3501, ptr noundef @c__1, ptr noundef %3507, ptr noundef %3514, ptr noundef @c__1)
  br label %3546

3516:                                             ; preds = %3441
  %3517 = load ptr, ptr %19, align 8, !tbaa !5
  %3518 = load ptr, ptr %28, align 8, !tbaa !5
  %3519 = load i64, ptr %51, align 8, !tbaa !9
  %3520 = load ptr, ptr %19, align 8, !tbaa !5
  %3521 = load i64, ptr %3520, align 8, !tbaa !9
  %3522 = add nsw i64 %3519, %3521
  %3523 = getelementptr inbounds float, ptr %3518, i64 %3522
  %3524 = load ptr, ptr %22, align 8, !tbaa !5
  %3525 = load i64, ptr %51, align 8, !tbaa !9
  %3526 = load i64, ptr %32, align 8, !tbaa !9
  %3527 = mul nsw i64 %3525, %3526
  %3528 = add nsw i64 %3527, 1
  %3529 = getelementptr inbounds float, ptr %3524, i64 %3528
  %3530 = call i32 @f2c_sscal(ptr noundef %3517, ptr noundef %3523, ptr noundef %3529, ptr noundef @c__1)
  %3531 = load ptr, ptr %19, align 8, !tbaa !5
  %3532 = load ptr, ptr %28, align 8, !tbaa !5
  %3533 = load i64, ptr %51, align 8, !tbaa !9
  %3534 = add nsw i64 %3533, 1
  %3535 = load i64, ptr %49, align 8, !tbaa !9
  %3536 = add nsw i64 %3534, %3535
  %3537 = getelementptr inbounds float, ptr %3532, i64 %3536
  %3538 = load ptr, ptr %22, align 8, !tbaa !5
  %3539 = load i64, ptr %51, align 8, !tbaa !9
  %3540 = add nsw i64 %3539, 1
  %3541 = load i64, ptr %32, align 8, !tbaa !9
  %3542 = mul nsw i64 %3540, %3541
  %3543 = add nsw i64 %3542, 1
  %3544 = getelementptr inbounds float, ptr %3538, i64 %3543
  %3545 = call i32 @f2c_sscal(ptr noundef %3531, ptr noundef %3537, ptr noundef %3544, ptr noundef @c__1)
  br label %3546

3546:                                             ; preds = %3516, %3447
  store float 0.000000e+00, ptr %59, align 4, !tbaa !11
  %3547 = load ptr, ptr %19, align 8, !tbaa !5
  %3548 = load i64, ptr %3547, align 8, !tbaa !9
  store i64 %3548, ptr %37, align 8, !tbaa !9
  store i64 1, ptr %45, align 8, !tbaa !9
  br label %3549

3549:                                             ; preds = %3605, %3546
  %3550 = load i64, ptr %45, align 8, !tbaa !9
  %3551 = load i64, ptr %37, align 8, !tbaa !9
  %3552 = icmp sle i64 %3550, %3551
  br i1 %3552, label %3553, label %3608

3553:                                             ; preds = %3549
  %3554 = load float, ptr %59, align 4, !tbaa !11
  store float %3554, ptr %41, align 4, !tbaa !11
  %3555 = load ptr, ptr %22, align 8, !tbaa !5
  %3556 = load i64, ptr %45, align 8, !tbaa !9
  %3557 = load i64, ptr %51, align 8, !tbaa !9
  %3558 = load i64, ptr %32, align 8, !tbaa !9
  %3559 = mul nsw i64 %3557, %3558
  %3560 = add nsw i64 %3556, %3559
  %3561 = getelementptr inbounds float, ptr %3555, i64 %3560
  %3562 = load float, ptr %3561, align 4, !tbaa !11
  store float %3562, ptr %39, align 4, !tbaa !11
  %3563 = load float, ptr %39, align 4, !tbaa !11
  %3564 = fcmp oge float %3563, 0.000000e+00
  br i1 %3564, label %3565, label %3567

3565:                                             ; preds = %3553
  %3566 = load float, ptr %39, align 4, !tbaa !11
  br label %3570

3567:                                             ; preds = %3553
  %3568 = load float, ptr %39, align 4, !tbaa !11
  %3569 = fneg float %3568
  br label %3570

3570:                                             ; preds = %3567, %3565
  %3571 = phi float [ %3566, %3565 ], [ %3569, %3567 ]
  %3572 = fpext float %3571 to double
  %3573 = load ptr, ptr %22, align 8, !tbaa !5
  %3574 = load i64, ptr %45, align 8, !tbaa !9
  %3575 = load i64, ptr %51, align 8, !tbaa !9
  %3576 = add nsw i64 %3575, 1
  %3577 = load i64, ptr %32, align 8, !tbaa !9
  %3578 = mul nsw i64 %3576, %3577
  %3579 = add nsw i64 %3574, %3578
  %3580 = getelementptr inbounds float, ptr %3573, i64 %3579
  %3581 = load float, ptr %3580, align 4, !tbaa !11
  store float %3581, ptr %40, align 4, !tbaa !11
  %3582 = load float, ptr %40, align 4, !tbaa !11
  %3583 = fcmp oge float %3582, 0.000000e+00
  br i1 %3583, label %3584, label %3586

3584:                                             ; preds = %3570
  %3585 = load float, ptr %40, align 4, !tbaa !11
  br label %3589

3586:                                             ; preds = %3570
  %3587 = load float, ptr %40, align 4, !tbaa !11
  %3588 = fneg float %3587
  br label %3589

3589:                                             ; preds = %3586, %3584
  %3590 = phi float [ %3585, %3584 ], [ %3588, %3586 ]
  %3591 = fpext float %3590 to double
  %3592 = fadd double %3572, %3591
  %3593 = fptrunc double %3592 to float
  store float %3593, ptr %42, align 4, !tbaa !11
  %3594 = load float, ptr %41, align 4, !tbaa !11
  %3595 = load float, ptr %42, align 4, !tbaa !11
  %3596 = fcmp oge float %3594, %3595
  br i1 %3596, label %3597, label %3599

3597:                                             ; preds = %3589
  %3598 = load float, ptr %41, align 4, !tbaa !11
  br label %3601

3599:                                             ; preds = %3589
  %3600 = load float, ptr %42, align 4, !tbaa !11
  br label %3601

3601:                                             ; preds = %3599, %3597
  %3602 = phi float [ %3598, %3597 ], [ %3600, %3599 ]
  %3603 = fpext float %3602 to double
  %3604 = fptrunc double %3603 to float
  store float %3604, ptr %59, align 4, !tbaa !11
  br label %3605

3605:                                             ; preds = %3601
  %3606 = load i64, ptr %45, align 8, !tbaa !9
  %3607 = add nsw i64 %3606, 1
  store i64 %3607, ptr %45, align 8, !tbaa !9
  br label %3549, !llvm.loop !33

3608:                                             ; preds = %3549
  %3609 = load float, ptr %59, align 4, !tbaa !11
  %3610 = fdiv float 1.000000e+00, %3609
  store float %3610, ptr %70, align 4, !tbaa !11
  %3611 = load ptr, ptr %19, align 8, !tbaa !5
  %3612 = load ptr, ptr %22, align 8, !tbaa !5
  %3613 = load i64, ptr %51, align 8, !tbaa !9
  %3614 = load i64, ptr %32, align 8, !tbaa !9
  %3615 = mul nsw i64 %3613, %3614
  %3616 = add nsw i64 %3615, 1
  %3617 = getelementptr inbounds float, ptr %3612, i64 %3616
  %3618 = call i32 @f2c_sscal(ptr noundef %3611, ptr noundef %70, ptr noundef %3617, ptr noundef @c__1)
  %3619 = load ptr, ptr %19, align 8, !tbaa !5
  %3620 = load ptr, ptr %22, align 8, !tbaa !5
  %3621 = load i64, ptr %51, align 8, !tbaa !9
  %3622 = add nsw i64 %3621, 1
  %3623 = load i64, ptr %32, align 8, !tbaa !9
  %3624 = mul nsw i64 %3622, %3623
  %3625 = add nsw i64 %3624, 1
  %3626 = getelementptr inbounds float, ptr %3620, i64 %3625
  %3627 = call i32 @f2c_sscal(ptr noundef %3619, ptr noundef %70, ptr noundef %3626, ptr noundef @c__1)
  br label %3628

3628:                                             ; preds = %3608, %3440
  br label %3629

3629:                                             ; preds = %3628, %2509
  %3630 = load i64, ptr %53, align 8, !tbaa !9
  %3631 = add nsw i64 %3630, 1
  store i64 %3631, ptr %53, align 8, !tbaa !9
  %3632 = load i64, ptr %52, align 8, !tbaa !9
  %3633 = icmp ne i64 %3632, 0
  br i1 %3633, label %3634, label %3637

3634:                                             ; preds = %3629
  %3635 = load i64, ptr %53, align 8, !tbaa !9
  %3636 = add nsw i64 %3635, 1
  store i64 %3636, ptr %53, align 8, !tbaa !9
  br label %3637

3637:                                             ; preds = %3634, %3629
  br label %3638

3638:                                             ; preds = %3637, %1822, %1793
  %3639 = load i64, ptr %52, align 8, !tbaa !9
  %3640 = icmp eq i64 %3639, -1
  br i1 %3640, label %3641, label %3642

3641:                                             ; preds = %3638
  store i64 0, ptr %52, align 8, !tbaa !9
  br label %3642

3642:                                             ; preds = %3641, %3638
  %3643 = load i64, ptr %52, align 8, !tbaa !9
  %3644 = icmp eq i64 %3643, 1
  br i1 %3644, label %3645, label %3646

3645:                                             ; preds = %3642
  store i64 -1, ptr %52, align 8, !tbaa !9
  br label %3646

3646:                                             ; preds = %3645, %3642
  br label %3647

3647:                                             ; preds = %3646
  %3648 = load i64, ptr %51, align 8, !tbaa !9
  %3649 = add nsw i64 %3648, 1
  store i64 %3649, ptr %51, align 8, !tbaa !9
  br label %1786, !llvm.loop !34

3650:                                             ; preds = %1786
  br label %3651

3651:                                             ; preds = %3650, %1780
  store i32 0, ptr %15, align 4
  store i32 1, ptr %79, align 4
  br label %3652

3652:                                             ; preds = %3651, %322, %313
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  %3653 = load i32, ptr %15, align 4
  ret i32 %3653
}

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

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

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

declare double @slamch_(ptr noundef) #2

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

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

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

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

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

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

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

declare i32 @f2c_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 double @f2c_sdot(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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


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

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

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

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

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

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

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

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

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

76:                                               ; preds = %75
  store i64 0, ptr %11, align 8, !tbaa !5
  %77 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %77, ptr %19, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %38, i64 4
  %.not1284 = icmp slt i64 %77, 1
  br i1 %.not1284, label %.loopexit1283, label %.lr.ph

.lr.ph:                                           ; preds = %76, %107
  %.010671287 = phi i64 [ %.11068, %107 ], [ 0, %76 ]
  %.011001285 = phi i64 [ %108, %107 ], [ 1, %76 ]
  %.not1121 = icmp eq i64 %.010671287, 0
  br i1 %.not1121, label %80, label %78

78:                                               ; preds = %.lr.ph
  %79 = getelementptr inbounds i64, ptr %35, i64 %.011001285
  store i64 0, ptr %79, align 8, !tbaa !5
  br label %107

80:                                               ; preds = %.lr.ph
  %81 = load i64, ptr %3, align 8, !tbaa !5
  %82 = icmp slt i64 %.011001285, %81
  br i1 %82, label %83, label %101

83:                                               ; preds = %80
  %84 = mul nsw i64 %.011001285, %36
  %gep = getelementptr float, ptr %invariant.gep, i64 %.011001285
  %85 = getelementptr float, ptr %gep, i64 %84
  %86 = load float, ptr %85, align 4, !tbaa !9
  %87 = fcmp oeq float %86, 0.000000e+00
  %88 = getelementptr inbounds i64, ptr %35, i64 %.011001285
  %89 = load i64, ptr %88, align 8, !tbaa !5
  %.not1125 = icmp eq i64 %89, 0
  br i1 %87, label %90, label %94

90:                                               ; preds = %83
  br i1 %.not1125, label %107, label %91

91:                                               ; preds = %90
  %92 = load i64, ptr %11, align 8, !tbaa !5
  %93 = add nsw i64 %92, 1
  store i64 %93, ptr %11, align 8, !tbaa !5
  br label %107

94:                                               ; preds = %83
  br i1 %.not1125, label %95, label %98

95:                                               ; preds = %94
  %96 = getelementptr i64, ptr %2, i64 %.011001285
  %97 = load i64, ptr %96, align 8, !tbaa !5
  %.not1124 = icmp eq i64 %97, 0
  br i1 %.not1124, label %107, label %98

98:                                               ; preds = %95, %94
  store i64 1, ptr %88, align 8, !tbaa !5
  %99 = load i64, ptr %11, align 8, !tbaa !5
  %100 = add nsw i64 %99, 2
  store i64 %100, ptr %11, align 8, !tbaa !5
  br label %107

101:                                              ; preds = %80
  %102 = getelementptr inbounds i64, ptr %35, i64 %81
  %103 = load i64, ptr %102, align 8, !tbaa !5
  %.not1122 = icmp eq i64 %103, 0
  br i1 %.not1122, label %107, label %104

104:                                              ; preds = %101
  %105 = load i64, ptr %11, align 8, !tbaa !5
  %106 = add nsw i64 %105, 1
  store i64 %106, ptr %11, align 8, !tbaa !5
  br label %107

107:                                              ; preds = %78, %101, %104, %91, %90, %98, %95
  %.11068 = phi i64 [ 0, %78 ], [ 0, %91 ], [ 0, %90 ], [ 1, %98 ], [ 1, %95 ], [ 0, %104 ], [ 0, %101 ]
  %108 = add nuw i64 %.011001285, 1
  %exitcond.not = icmp eq i64 %.011001285, %77
  br i1 %exitcond.not, label %.loopexit1283.loopexit, label %.lr.ph, !llvm.loop !11

109:                                              ; preds = %75
  store i64 %62, ptr %11, align 8, !tbaa !5
  br label %.loopexit1283

.loopexit1283.loopexit:                           ; preds = %107
  %.pre = load i64, ptr %11, align 8, !tbaa !5
  br label %.loopexit1283

.loopexit1283:                                    ; preds = %.loopexit1283.loopexit, %76, %109
  %110 = phi i64 [ %.pre, %.loopexit1283.loopexit ], [ 0, %76 ], [ %62, %109 ]
  %111 = load i64, ptr %10, align 8, !tbaa !5
  %112 = icmp slt i64 %111, %110
  br i1 %112, label %.thread.sink.split, label %113

113:                                              ; preds = %.loopexit1283
  %.pr = load i64, ptr %13, align 8, !tbaa !5
  %.not1126 = icmp eq i64 %.pr, 0
  br i1 %.not1126, label %117, label %.thread

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

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

117:                                              ; preds = %113
  %118 = load i64, ptr %3, align 8, !tbaa !5
  %119 = icmp eq i64 %118, 0
  br i1 %119, label %.loopexit1278, label %120

120:                                              ; preds = %117
  %121 = tail call double @slamch_(ptr noundef nonnull @.str.6) #6
  %122 = fptrunc double %121 to float
  store float %122, ptr %29, align 4, !tbaa !9
  %123 = fdiv float 1.000000e+00, %122
  store float %123, ptr %30, align 4, !tbaa !9
  %124 = call i32 @slabad_(ptr noundef nonnull %29, ptr noundef nonnull %30) #6
  %125 = call double @slamch_(ptr noundef nonnull @.str.7) #6
  %126 = fptrunc double %125 to float
  %127 = load float, ptr %29, align 4, !tbaa !9
  %128 = load i64, ptr %3, align 8, !tbaa !5
  %129 = sitofp i64 %128 to float
  %130 = fdiv float %129, %126
  %131 = fmul float %127, %130
  %132 = fsub float 1.000000e+00, %126
  %133 = fdiv float %132, %131
  store float 0.000000e+00, ptr %12, align 4, !tbaa !9
  %.not11271291 = icmp slt i64 %128, 2
  br i1 %.not11271291, label %160, label %.lr.ph1293

.lr.ph1293:                                       ; preds = %120, %157
  %indvar = phi i64 [ %indvar.next, %157 ], [ 0, %120 ]
  %.111011292 = phi i64 [ %158, %157 ], [ 2, %120 ]
  %134 = getelementptr inbounds float, ptr %45, i64 %.111011292
  store float 0.000000e+00, ptr %134, align 4, !tbaa !9
  %135 = mul nsw i64 %.111011292, %36
  %invariant.gep1288 = getelementptr float, ptr %38, i64 %135
  %136 = icmp eq i64 %indvar, 0
  br i1 %136, label %.unr-lcssa, label %.lr.ph1293.new

.lr.ph1293.new:                                   ; preds = %.lr.ph1293
  %137 = add i64 %indvar, 1
  %unroll_iter = and i64 %137, -2
  %invariant.gep1826 = getelementptr i8, ptr %invariant.gep1288, i64 4
  br label %138

138:                                              ; preds = %138, %.lr.ph1293.new
  %.010831290 = phi i64 [ 1, %.lr.ph1293.new ], [ %150, %138 ]
  %139 = phi float [ 0.000000e+00, %.lr.ph1293.new ], [ %149, %138 ]
  %niter = phi i64 [ 0, %.lr.ph1293.new ], [ %niter.next.1, %138 ]
  %gep1289 = getelementptr float, ptr %invariant.gep1288, i64 %.010831290
  %140 = load float, ptr %gep1289, align 4, !tbaa !9
  %141 = fcmp oge float %140, 0.000000e+00
  %142 = fneg float %140
  %143 = select i1 %141, float %140, float %142
  %144 = fadd float %139, %143
  store float %144, ptr %134, align 4, !tbaa !9
  %gep1827 = getelementptr float, ptr %invariant.gep1826, i64 %.010831290
  %145 = load float, ptr %gep1827, align 4, !tbaa !9
  %146 = fcmp oge float %145, 0.000000e+00
  %147 = fneg float %145
  %148 = select i1 %146, float %145, float %147
  %149 = fadd float %144, %148
  store float %149, ptr %134, align 4, !tbaa !9
  %150 = add nuw nsw i64 %.010831290, 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 %138, !llvm.loop !13

.unr-lcssa:                                       ; preds = %138, %.lr.ph1293
  %.lcssa1797.ph = phi float [ poison, %.lr.ph1293 ], [ %145, %138 ]
  %.010831290.unr = phi i64 [ 1, %.lr.ph1293 ], [ %150, %138 ]
  %.unr = phi float [ 0.000000e+00, %.lr.ph1293 ], [ %149, %138 ]
  %151 = and i64 %indvar, 1
  %lcmp.mod.not.not = icmp eq i64 %151, 0
  br i1 %lcmp.mod.not.not, label %.epilog-lcssa, label %157

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

157:                                              ; preds = %.unr-lcssa, %.epilog-lcssa
  %.lcssa1797 = phi float [ %.lcssa1797.ph, %.unr-lcssa ], [ %152, %.epilog-lcssa ]
  %158 = add nuw i64 %.111011292, 1
  %exitcond1527.not = icmp eq i64 %.111011292, %128
  %indvar.next = add i64 %indvar, 1
  br i1 %exitcond1527.not, label %._crit_edge, label %.lr.ph1293, !llvm.loop !14

._crit_edge:                                      ; preds = %157
  %159 = add nsw i64 %128, -1
  store i64 %159, ptr %20, align 8, !tbaa !5
  store float %.lcssa1797, ptr %22, align 4, !tbaa !9
  br label %160

160:                                              ; preds = %._crit_edge, %120
  %161 = shl i64 %128, 1
  br i1 %50, label %162, label %.loopexit1282

162:                                              ; preds = %160
  %163 = load i64, ptr %11, align 8, !tbaa !5
  %invariant.gep1352 = getelementptr i8, ptr %2, i64 -16
  %invariant.gep1354 = getelementptr i8, ptr %38, i64 -4
  %invariant.gep1356 = getelementptr float, ptr %45, i64 %161
  %invariant.gep1360 = getelementptr i8, ptr %44, i64 4
  store i64 %128, ptr %24, align 8, !tbaa !5
  %164 = icmp sgt i64 %128, 0
  br i1 %164, label %.lr.ph1392, label %.loopexit1282

.lr.ph1392:                                       ; preds = %162
  %.not11431165 = icmp eq i64 %56, 0
  %165 = add i64 %36, 1
  %166 = fpext float %126 to double
  %invariant.gep1299 = getelementptr i8, ptr %38, i64 4
  %167 = getelementptr inbounds i8, ptr %23, i64 8
  %168 = getelementptr inbounds i8, ptr %23, i64 4
  %169 = getelementptr inbounds i8, ptr %23, i64 12
  %170 = getelementptr float, ptr %12, i64 %161
  %.not1148 = icmp eq i64 %55, 0
  %171 = shl i64 %128, 3
  %scevgep1623 = getelementptr i8, ptr %12, i64 %171
  %172 = getelementptr i8, ptr %12, i64 %171
  %scevgep1624 = getelementptr i8, ptr %172, i64 -8
  %scevgep1626 = getelementptr i8, ptr %12, i64 -4
  %scevgep1629 = getelementptr i8, ptr %4, i64 -8
  %scevgep1631 = getelementptr i8, ptr %12, i64 %171
  %scevgep1634 = getelementptr i8, ptr %4, i64 -8
  %invariant.gep1828 = getelementptr i8, ptr %38, i64 4
  %173 = and i64 %42, 4611686018427387896
  %diff.check1607 = icmp eq i64 %173, 0
  %invariant.gep1838 = getelementptr i8, ptr %44, i64 4
  %invariant.gep1832 = getelementptr i8, ptr %44, i64 4
  %invariant.gep1834 = getelementptr i8, ptr %44, i64 8
  %invariant.gep1836 = getelementptr i8, ptr %44, i64 12
  br label %174

174:                                              ; preds = %.lr.ph1392, %.thread1219
  %.010731390 = phi i64 [ %163, %.lr.ph1392 ], [ %.1107412111222, %.thread1219 ]
  %.010771389 = phi i64 [ 0, %.lr.ph1392 ], [ %719, %.thread1219 ]
  %storemerge1388 = phi i64 [ %128, %.lr.ph1392 ], [ %721, %.thread1219 ]
  %175 = icmp eq i64 %.010771389, 1
  br i1 %175, label %.thread1219, label %176

176:                                              ; preds = %174
  %177 = icmp eq i64 %storemerge1388, 1
  br i1 %177, label %185, label %178

178:                                              ; preds = %176
  %179 = add nsw i64 %storemerge1388, -1
  %180 = mul nsw i64 %179, %36
  %181 = getelementptr float, ptr %38, i64 %storemerge1388
  %182 = getelementptr float, ptr %181, i64 %180
  %183 = load float, ptr %182, align 4, !tbaa !9
  %184 = fcmp oeq float %183, 0.000000e+00
  br i1 %184, label %185, label %.thread1163

185:                                              ; preds = %178, %176
  br i1 %.not11431165, label %198, label %186

.thread1163:                                      ; preds = %178
  br i1 %.not11431165, label %.thread1172, label %.thread1168

186:                                              ; preds = %185
  %187 = icmp eq i64 %.010771389, 0
  br i1 %187, label %188, label %.thread1168

188:                                              ; preds = %186
  %189 = getelementptr inbounds i64, ptr %35, i64 %storemerge1388
  %190 = load i64, ptr %189, align 8, !tbaa !5
  %.not1145 = icmp eq i64 %190, 0
  br i1 %.not1145, label %.thread1219, label %.thread1179

.thread1179:                                      ; preds = %188
  %191 = mul i64 %storemerge1388, %165
  %192 = getelementptr inbounds float, ptr %38, i64 %191
  %193 = load float, ptr %192, align 4, !tbaa !9
  store float %193, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %25, align 4, !tbaa !9
  br label %224

.thread1168:                                      ; preds = %.thread1163, %186
  %.1107811661170 = phi i64 [ %.010771389, %186 ], [ -1, %.thread1163 ]
  %gep1353 = getelementptr i64, ptr %invariant.gep1352, i64 %storemerge1388
  %194 = load i64, ptr %gep1353, align 8, !tbaa !5
  %.not1144 = icmp eq i64 %194, 0
  br i1 %.not1144, label %.thread1207, label %.thread1172

.thread1172:                                      ; preds = %.thread1163, %.thread1168
  %.110781167.ph = phi i64 [ %.1107811661170, %.thread1168 ], [ -1, %.thread1163 ]
  %195 = mul i64 %storemerge1388, %165
  %196 = getelementptr inbounds float, ptr %38, i64 %195
  %197 = load float, ptr %196, align 4, !tbaa !9
  store float %197, ptr %26, align 4, !tbaa !9
  br label %202

198:                                              ; preds = %185
  %199 = mul i64 %storemerge1388, %165
  %200 = getelementptr inbounds float, ptr %38, i64 %199
  %201 = load float, ptr %200, align 4, !tbaa !9
  store float %201, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %25, align 4, !tbaa !9
  %.not1146 = icmp eq i64 %.010771389, 0
  br i1 %.not1146, label %224, label %202

202:                                              ; preds = %.thread1172, %198
  %.1107811671175 = phi i64 [ %.110781167.ph, %.thread1172 ], [ %.010771389, %198 ]
  %203 = add nsw i64 %storemerge1388, -1
  %204 = mul nsw i64 %203, %36
  %205 = getelementptr float, ptr %38, i64 %storemerge1388
  %206 = getelementptr float, ptr %205, i64 %204
  %207 = load float, ptr %206, align 4, !tbaa !9
  %208 = fcmp oge float %207, 0.000000e+00
  %209 = fneg float %207
  %210 = select i1 %208, float %207, float %209
  %211 = fpext float %210 to double
  %212 = call double @sqrt(double noundef %211) #6
  %213 = load i64, ptr %24, align 8, !tbaa !5
  %214 = mul nsw i64 %213, %36
  %gep1355 = getelementptr float, ptr %invariant.gep1354, i64 %213
  %215 = getelementptr float, ptr %gep1355, i64 %214
  %216 = load float, ptr %215, align 4, !tbaa !9
  %217 = fcmp oge float %216, 0.000000e+00
  %218 = fneg float %216
  %219 = select i1 %217, float %216, float %218
  %220 = fpext float %219 to double
  %221 = call double @sqrt(double noundef %220) #6
  %222 = fmul double %212, %221
  %223 = fptrunc double %222 to float
  store float %223, ptr %25, align 4, !tbaa !9
  %.pre1541 = load float, ptr %26, align 4
  br label %224

224:                                              ; preds = %.thread1179, %202, %198
  %225 = phi float [ %223, %202 ], [ 0.000000e+00, %198 ], [ 0.000000e+00, %.thread1179 ]
  %226 = phi float [ %.pre1541, %202 ], [ %201, %198 ], [ %193, %.thread1179 ]
  %.not11461178 = phi i1 [ false, %202 ], [ true, %198 ], [ true, %.thread1179 ]
  %.1107811671176 = phi i64 [ %.1107811671175, %202 ], [ 0, %198 ], [ 0, %.thread1179 ]
  %.1107811671176.fr = freeze i64 %.1107811671176
  %227 = fcmp oge float %226, 0.000000e+00
  %228 = fneg float %226
  %229 = select i1 %227, float %226, float %228
  %230 = fpext float %229 to double
  %231 = fcmp oge float %225, 0.000000e+00
  %232 = fneg float %225
  %233 = select i1 %231, float %225, float %232
  %234 = fpext float %233 to double
  %235 = fadd double %230, %234
  %236 = fmul double %235, %166
  %237 = fptrunc double %236 to float
  store float %237, ptr %22, align 4, !tbaa !9
  %238 = fcmp ole float %131, %237
  %239 = select i1 %238, float %237, float %131
  store float %239, ptr %31, align 4, !tbaa !9
  %240 = load i64, ptr %24, align 8, !tbaa !5
  br i1 %.not11461178, label %241, label %410

241:                                              ; preds = %224
  %242 = load i64, ptr %3, align 8, !tbaa !5
  %243 = getelementptr float, ptr %45, i64 %240
  %244 = getelementptr float, ptr %243, i64 %242
  store float 1.000000e+00, ptr %244, align 4, !tbaa !9
  %245 = add i64 %240, -1
  store i64 %245, ptr %19, align 8, !tbaa !5
  %invariant.gep1328 = getelementptr float, ptr %45, i64 %242
  %.not1153.not1330 = icmp sgt i64 %240, 1
  br i1 %.not1153.not1330, label %.lr.ph1333, label %._crit_edge1345

.lr.ph1333:                                       ; preds = %241
  %246 = mul nsw i64 %240, %36
  %invariant.gep1334 = getelementptr float, ptr %38, i64 %246
  %min.iters.check = icmp ult i64 %240, 9
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.memcheck

scalar.ph.preheader:                              ; preds = %middle.block, %vector.memcheck, %.lr.ph1333
  %.010881331.ph = phi i64 [ 1, %vector.memcheck ], [ 1, %.lr.ph1333 ], [ %ind.end, %middle.block ]
  %247 = sub i64 %240, %.010881331.ph
  %xtraiter1803 = and i64 %247, 3
  %lcmp.mod1804.not = icmp eq i64 %xtraiter1803, 0
  br i1 %lcmp.mod1804.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol

scalar.ph.prol:                                   ; preds = %scalar.ph.preheader, %scalar.ph.prol
  %.010881331.prol = phi i64 [ %250, %scalar.ph.prol ], [ %.010881331.ph, %scalar.ph.preheader ]
  %prol.iter1805 = phi i64 [ %prol.iter1805.next, %scalar.ph.prol ], [ 0, %scalar.ph.preheader ]
  %gep1335.prol = getelementptr float, ptr %invariant.gep1334, i64 %.010881331.prol
  %248 = load float, ptr %gep1335.prol, align 4, !tbaa !9
  %249 = fneg float %248
  %gep1329.prol = getelementptr float, ptr %invariant.gep1328, i64 %.010881331.prol
  store float %249, ptr %gep1329.prol, align 4, !tbaa !9
  %250 = add nuw nsw i64 %.010881331.prol, 1
  %prol.iter1805.next = add i64 %prol.iter1805, 1
  %prol.iter1805.cmp.not = icmp eq i64 %prol.iter1805.next, %xtraiter1803
  br i1 %prol.iter1805.cmp.not, label %scalar.ph.prol.loopexit, label %scalar.ph.prol, !llvm.loop !15

scalar.ph.prol.loopexit:                          ; preds = %scalar.ph.prol, %scalar.ph.preheader
  %.010881331.unr = phi i64 [ %.010881331.ph, %scalar.ph.preheader ], [ %250, %scalar.ph.prol ]
  %251 = sub i64 %.010881331.ph, %240
  %252 = icmp ugt i64 %251, -4
  br i1 %252, label %.preheader, label %scalar.ph

vector.memcheck:                                  ; preds = %.lr.ph1333
  %253 = shl i64 %242, 2
  %254 = shl i64 %240, 2
  %255 = add i64 %254, -4
  %256 = mul i64 %36, %255
  %257 = add i64 %253, %18
  %258 = add i64 %256, %17
  %259 = sub i64 %257, %258
  %diff.check = icmp ult i64 %259, 32
  br i1 %diff.check, label %scalar.ph.preheader, label %vector.ph

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

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 1
  %260 = getelementptr float, ptr %invariant.gep1334, i64 %offset.idx
  %261 = getelementptr i8, ptr %260, i64 16
  %wide.load = load <4 x float>, ptr %260, align 4, !tbaa !9
  %wide.load1605 = load <4 x float>, ptr %261, align 4, !tbaa !9
  %262 = fneg <4 x float> %wide.load
  %263 = fneg <4 x float> %wide.load1605
  %264 = getelementptr float, ptr %invariant.gep1328, i64 %offset.idx
  %265 = getelementptr i8, ptr %264, i64 16
  store <4 x float> %262, ptr %264, align 4, !tbaa !9
  store <4 x float> %263, ptr %265, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %266 = icmp eq i64 %index.next, %n.vec
  br i1 %266, label %middle.block, label %vector.body, !llvm.loop !17

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

.preheader:                                       ; preds = %scalar.ph.prol.loopexit, %scalar.ph, %middle.block
  br i1 %.not1153.not1330, label %.lr.ph1344, label %._crit_edge1345

scalar.ph:                                        ; preds = %scalar.ph.prol.loopexit, %scalar.ph
  %.010881331 = phi i64 [ %278, %scalar.ph ], [ %.010881331.unr, %scalar.ph.prol.loopexit ]
  %gep1335 = getelementptr float, ptr %invariant.gep1334, i64 %.010881331
  %267 = load float, ptr %gep1335, align 4, !tbaa !9
  %268 = fneg float %267
  %gep1329 = getelementptr float, ptr %invariant.gep1328, i64 %.010881331
  store float %268, ptr %gep1329, align 4, !tbaa !9
  %269 = add nuw nsw i64 %.010881331, 1
  %gep1335.1 = getelementptr float, ptr %invariant.gep1334, i64 %269
  %270 = load float, ptr %gep1335.1, align 4, !tbaa !9
  %271 = fneg float %270
  %gep1329.1 = getelementptr float, ptr %invariant.gep1328, i64 %269
  store float %271, ptr %gep1329.1, align 4, !tbaa !9
  %272 = add nuw nsw i64 %.010881331, 2
  %gep1335.2 = getelementptr float, ptr %invariant.gep1334, i64 %272
  %273 = load float, ptr %gep1335.2, align 4, !tbaa !9
  %274 = fneg float %273
  %gep1329.2 = getelementptr float, ptr %invariant.gep1328, i64 %272
  store float %274, ptr %gep1329.2, align 4, !tbaa !9
  %275 = add nuw nsw i64 %.010881331, 3
  %gep1335.3 = getelementptr float, ptr %invariant.gep1334, i64 %275
  %276 = load float, ptr %gep1335.3, align 4, !tbaa !9
  %277 = fneg float %276
  %gep1329.3 = getelementptr float, ptr %invariant.gep1328, i64 %275
  store float %277, ptr %gep1329.3, align 4, !tbaa !9
  %278 = add nuw nsw i64 %.010881331, 4
  %exitcond1532.not.3 = icmp eq i64 %278, %240
  br i1 %exitcond1532.not.3, label %.preheader, label %scalar.ph, !llvm.loop !20

.lr.ph1344:                                       ; preds = %.preheader, %.lr.ph1344._crit_edge
  %.010551343 = phi i64 [ %.21057, %.lr.ph1344._crit_edge ], [ %245, %.preheader ]
  %.211021342 = phi i64 [ %.pre1573, %.lr.ph1344._crit_edge ], [ %245, %.preheader ]
  %279 = icmp sgt i64 %.211021342, %.010551343
  %.pre1573 = add nsw i64 %.211021342, -1
  br i1 %279, label %.lr.ph1344._crit_edge, label %280

280:                                              ; preds = %.lr.ph1344
  %.not1156 = icmp eq i64 %.211021342, 1
  br i1 %.not1156, label %..thread1182_crit_edge, label %281

..thread1182_crit_edge:                           ; preds = %280
  %.pre1545 = load i64, ptr %3, align 8, !tbaa !5
  br label %.thread1182

281:                                              ; preds = %280
  %282 = mul nsw i64 %.pre1573, %36
  %283 = getelementptr float, ptr %38, i64 %.211021342
  %284 = getelementptr float, ptr %283, i64 %282
  %285 = load float, ptr %284, align 4, !tbaa !9
  %286 = fcmp une float %285, 0.000000e+00
  %.pre1546 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %286, label %.thread1186, label %.thread1182

.thread1186:                                      ; preds = %281
  %287 = add nsw i64 %.211021342, -2
  %288 = getelementptr float, ptr %38, i64 %.pre1573
  %289 = getelementptr float, ptr %288, i64 %282
  %290 = getelementptr float, ptr %45, i64 %.pre1573
  %291 = getelementptr float, ptr %290, i64 %.pre1546
  %292 = call i32 @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull @c_b22, ptr noundef %289, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef %291, ptr noundef nonnull %3, ptr noundef nonnull %26, ptr noundef nonnull @c_b25, ptr noundef nonnull %23, ptr noundef nonnull @c__2, ptr noundef nonnull %32, ptr noundef nonnull %34, ptr noundef nonnull %28) #6
  %293 = load float, ptr %34, align 4, !tbaa !9
  %294 = fcmp ogt float %293, 1.000000e+00
  br i1 %294, label %325, label %thread-pre-split1192

.thread1182:                                      ; preds = %..thread1182_crit_edge, %281
  %295 = phi i64 [ %.pre1546, %281 ], [ %.pre1545, %..thread1182_crit_edge ]
  %.110561185 = phi i64 [ %.pre1573, %281 ], [ 0, %..thread1182_crit_edge ]
  %296 = mul nsw i64 %.211021342, %36
  %297 = getelementptr float, ptr %38, i64 %.211021342
  %298 = getelementptr float, ptr %297, i64 %296
  %299 = getelementptr float, ptr %45, i64 %.211021342
  %300 = getelementptr float, ptr %299, i64 %295
  %301 = call i32 @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull @c_b22, ptr noundef %298, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef %300, ptr noundef nonnull %3, ptr noundef nonnull %26, ptr noundef nonnull @c_b25, ptr noundef nonnull %23, ptr noundef nonnull @c__2, ptr noundef nonnull %32, ptr noundef nonnull %34, ptr noundef nonnull %28) #6
  %302 = load float, ptr %34, align 4, !tbaa !9
  %303 = fcmp ogt float %302, 1.000000e+00
  br i1 %303, label %304, label %thread-pre-split1190

304:                                              ; preds = %.thread1182
  %305 = load float, ptr %299, align 4, !tbaa !9
  %306 = fdiv float %133, %302
  %307 = fcmp ogt float %305, %306
  br i1 %307, label %308, label %thread-pre-split1190

308:                                              ; preds = %304
  %309 = load float, ptr %23, align 16, !tbaa !9
  %310 = fdiv float %309, %302
  store float %310, ptr %23, align 16, !tbaa !9
  %311 = load float, ptr %32, align 4, !tbaa !9
  %312 = fdiv float %311, %302
  store float %312, ptr %32, align 4, !tbaa !9
  br label %313

thread-pre-split1190:                             ; preds = %.thread1182, %304
  %.pr1191 = load float, ptr %32, align 4, !tbaa !9
  br label %313

313:                                              ; preds = %thread-pre-split1190, %308
  %314 = phi float [ %.pr1191, %thread-pre-split1190 ], [ %312, %308 ]
  %315 = fcmp une float %314, 1.000000e+00
  br i1 %315, label %316, label %320

316:                                              ; preds = %313
  %317 = load i64, ptr %3, align 8, !tbaa !5
  %318 = getelementptr float, ptr %12, i64 %317
  %319 = call i32 @f2c_sscal(ptr noundef nonnull %24, ptr noundef nonnull %32, ptr noundef %318, ptr noundef nonnull @c__1) #6
  br label %320

320:                                              ; preds = %316, %313
  %321 = load float, ptr %23, align 16, !tbaa !9
  %322 = load i64, ptr %3, align 8, !tbaa !5
  %323 = getelementptr float, ptr %299, i64 %322
  store float %321, ptr %323, align 4, !tbaa !9
  store i64 %.pre1573, ptr %19, align 8, !tbaa !5
  %324 = fneg float %321
  store float %324, ptr %22, align 4, !tbaa !9
  br label %.lr.ph1344._crit_edge.sink.split

325:                                              ; preds = %.thread1186
  %326 = load float, ptr %290, align 4, !tbaa !9
  store float %326, ptr %22, align 4, !tbaa !9
  %327 = getelementptr inbounds float, ptr %45, i64 %.211021342
  %328 = load float, ptr %327, align 4, !tbaa !9
  %329 = fcmp oge float %326, %328
  %330 = select i1 %329, float %326, float %328
  %331 = fdiv float %133, %293
  %332 = fcmp ogt float %330, %331
  br i1 %332, label %333, label %thread-pre-split1192

333:                                              ; preds = %325
  %334 = load <2 x float>, ptr %23, align 16, !tbaa !9
  %335 = insertelement <2 x float> poison, float %293, i64 0
  %336 = shufflevector <2 x float> %335, <2 x float> poison, <2 x i32> zeroinitializer
  %337 = fdiv <2 x float> %334, %336
  store <2 x float> %337, ptr %23, align 16, !tbaa !9
  %338 = load float, ptr %32, align 4, !tbaa !9
  %339 = fdiv float %338, %293
  store float %339, ptr %32, align 4, !tbaa !9
  br label %340

thread-pre-split1192:                             ; preds = %.thread1186, %325
  %.pr1193 = load float, ptr %32, align 4, !tbaa !9
  br label %340

340:                                              ; preds = %thread-pre-split1192, %333
  %341 = phi float [ %.pr1193, %thread-pre-split1192 ], [ %339, %333 ]
  %342 = fcmp une float %341, 1.000000e+00
  br i1 %342, label %343, label %347

343:                                              ; preds = %340
  %344 = load i64, ptr %3, align 8, !tbaa !5
  %345 = getelementptr float, ptr %12, i64 %344
  %346 = call i32 @f2c_sscal(ptr noundef nonnull %24, ptr noundef nonnull %32, ptr noundef %345, ptr noundef nonnull @c__1) #6
  br label %347

347:                                              ; preds = %343, %340
  %348 = load i64, ptr %3, align 8, !tbaa !5
  %349 = getelementptr float, ptr %290, i64 %348
  %350 = load <2 x float>, ptr %23, align 16, !tbaa !9
  store <2 x float> %350, ptr %349, align 4, !tbaa !9
  store i64 %287, ptr %19, align 8, !tbaa !5
  %351 = extractelement <2 x float> %350, i64 0
  %352 = fneg float %351
  store float %352, ptr %22, align 4, !tbaa !9
  %gep1337 = getelementptr float, ptr %invariant.gep1299, i64 %282
  %353 = getelementptr float, ptr %12, i64 %348
  %354 = call i32 @f2c_saxpy(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1337, ptr noundef nonnull @c__1, ptr noundef %353, ptr noundef nonnull @c__1) #6
  store i64 %287, ptr %19, align 8, !tbaa !5
  %355 = load float, ptr %168, align 4, !tbaa !9
  %356 = fneg float %355
  store float %356, ptr %22, align 4, !tbaa !9
  %357 = mul nsw i64 %.211021342, %36
  %358 = load i64, ptr %3, align 8, !tbaa !5
  br label %.lr.ph1344._crit_edge.sink.split

.lr.ph1344._crit_edge.sink.split:                 ; preds = %320, %347
  %.sink1592 = phi i64 [ %358, %347 ], [ %322, %320 ]
  %.pn = phi i64 [ %357, %347 ], [ %296, %320 ]
  %.21057.ph = phi i64 [ %287, %347 ], [ %.110561185, %320 ]
  %gep1339.sink = getelementptr float, ptr %invariant.gep1299, i64 %.pn
  %359 = getelementptr float, ptr %12, i64 %.sink1592
  %360 = call i32 @f2c_saxpy(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1339.sink, ptr noundef nonnull @c__1, ptr noundef %359, ptr noundef nonnull @c__1) #6
  br label %.lr.ph1344._crit_edge

.lr.ph1344._crit_edge:                            ; preds = %.lr.ph1344._crit_edge.sink.split, %.lr.ph1344
  %.21057 = phi i64 [ %.010551343, %.lr.ph1344 ], [ %.21057.ph, %.lr.ph1344._crit_edge.sink.split ]
  %361 = icmp sgt i64 %.211021342, 1
  br i1 %361, label %.lr.ph1344, label %._crit_edge1345, !llvm.loop !21

._crit_edge1345:                                  ; preds = %.lr.ph1344._crit_edge, %241, %.preheader
  br i1 %.not1148, label %362, label %385

362:                                              ; preds = %._crit_edge1345
  %363 = load i64, ptr %3, align 8, !tbaa !5
  %364 = getelementptr float, ptr %12, i64 %363
  %365 = mul nsw i64 %.010731390, %42
  %gep1387 = getelementptr float, ptr %invariant.gep1360, i64 %365
  %366 = call i32 @f2c_scopy(ptr noundef nonnull %24, ptr noundef %364, ptr noundef nonnull @c__1, ptr noundef %gep1387, ptr noundef nonnull @c__1) #6
  %367 = call i64 @f2c_isamax(ptr noundef nonnull %24, ptr noundef %gep1387, ptr noundef nonnull @c__1) #6
  %368 = getelementptr float, ptr %44, i64 %367
  %369 = getelementptr float, ptr %368, i64 %365
  %370 = load float, ptr %369, align 4, !tbaa !9
  store float %370, ptr %22, align 4, !tbaa !9
  %371 = fcmp oge float %370, 0.000000e+00
  %372 = fneg float %370
  %373 = select i1 %371, float %370, float %372
  %374 = fdiv float 1.000000e+00, %373
  store float %374, ptr %33, align 4, !tbaa !9
  %375 = call i32 @f2c_sscal(ptr noundef nonnull %24, ptr noundef nonnull %33, ptr noundef %gep1387, ptr noundef nonnull @c__1) #6
  %376 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %376, ptr %19, align 8, !tbaa !5
  %377 = load i64, ptr %24, align 8, !tbaa !5
  %.not1155.not1348 = icmp slt i64 %377, %376
  br i1 %.not1155.not1348, label %.lr.ph1351.preheader, label %.loopexit1279

.lr.ph1351.preheader:                             ; preds = %362
  %378 = shl i64 %.010731390, 2
  %379 = add i64 %378, -4
  %380 = mul i64 %42, %379
  %381 = shl i64 %377, 2
  %382 = getelementptr i8, ptr %8, i64 %380
  %scevgep = getelementptr i8, ptr %382, i64 %381
  %383 = sub i64 %376, %377
  %384 = shl i64 %383, 2
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep, i8 0, i64 %384, i1 false), !tbaa !9
  br label %.loopexit1279

385:                                              ; preds = %._crit_edge1345
  %386 = load i64, ptr %24, align 8, !tbaa !5
  %387 = icmp sgt i64 %386, 1
  br i1 %387, label %388, label %396

388:                                              ; preds = %385
  %389 = add nsw i64 %386, -1
  store i64 %389, ptr %19, align 8, !tbaa !5
  %390 = load i64, ptr %3, align 8, !tbaa !5
  %391 = getelementptr float, ptr %12, i64 %390
  %392 = getelementptr float, ptr %45, i64 %386
  %393 = getelementptr float, ptr %392, i64 %390
  %394 = mul nsw i64 %386, %42
  %gep1381 = getelementptr float, ptr %invariant.gep1360, i64 %394
  %395 = call i32 @f2c_sgemv(ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef nonnull @c_b22, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %391, ptr noundef nonnull @c__1, ptr noundef %393, ptr noundef %gep1381, ptr noundef nonnull @c__1) #6
  %.pre1547 = load i64, ptr %24, align 8, !tbaa !5
  br label %396

396:                                              ; preds = %388, %385
  %397 = phi i64 [ %.pre1547, %388 ], [ %386, %385 ]
  %398 = mul nsw i64 %397, %42
  %gep1383 = getelementptr float, ptr %invariant.gep1360, i64 %398
  %399 = call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef %gep1383, ptr noundef nonnull @c__1) #6
  %400 = load i64, ptr %24, align 8, !tbaa !5
  %401 = mul nsw i64 %400, %42
  %402 = getelementptr float, ptr %44, i64 %399
  %403 = getelementptr float, ptr %402, i64 %401
  %404 = load float, ptr %403, align 4, !tbaa !9
  store float %404, ptr %22, align 4, !tbaa !9
  %405 = fcmp oge float %404, 0.000000e+00
  %406 = fneg float %404
  %407 = select i1 %405, float %404, float %406
  %408 = fdiv float 1.000000e+00, %407
  store float %408, ptr %33, align 4, !tbaa !9
  %gep1385 = getelementptr float, ptr %invariant.gep1360, i64 %401
  %409 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1385, ptr noundef nonnull @c__1) #6
  br label %.loopexit1279

410:                                              ; preds = %224
  %411 = mul nsw i64 %240, %36
  %412 = getelementptr float, ptr %38, i64 %240
  %413 = getelementptr i8, ptr %412, i64 -4
  %414 = getelementptr float, ptr %413, i64 %411
  %415 = load float, ptr %414, align 4, !tbaa !9
  store float %415, ptr %22, align 4, !tbaa !9
  %416 = fcmp oge float %415, 0.000000e+00
  %417 = fneg float %415
  %418 = select i1 %416, float %415, float %417
  %419 = add nsw i64 %240, -1
  %420 = mul nsw i64 %419, %36
  %421 = getelementptr float, ptr %412, i64 %420
  %422 = load float, ptr %421, align 4, !tbaa !9
  %423 = fcmp oge float %422, 0.000000e+00
  %424 = fneg float %422
  %425 = select i1 %423, float %422, float %424
  %426 = fcmp ult float %418, %425
  br i1 %426, label %433, label %427

427:                                              ; preds = %410
  %428 = load i64, ptr %3, align 8, !tbaa !5
  %429 = getelementptr float, ptr %45, i64 %419
  %430 = getelementptr float, ptr %429, i64 %428
  store float 1.000000e+00, ptr %430, align 4, !tbaa !9
  %431 = load float, ptr %414, align 4, !tbaa !9
  %432 = fdiv float %225, %431
  br label %438

433:                                              ; preds = %410
  %434 = fdiv float %232, %422
  %435 = load i64, ptr %3, align 8, !tbaa !5
  %436 = getelementptr float, ptr %45, i64 %419
  %437 = getelementptr float, ptr %436, i64 %435
  store float %434, ptr %437, align 4, !tbaa !9
  br label %438

438:                                              ; preds = %433, %427
  %.sink1593 = phi float [ 1.000000e+00, %433 ], [ %432, %427 ]
  %439 = phi i64 [ %435, %433 ], [ %428, %427 ]
  %gep1359 = getelementptr float, ptr %invariant.gep1356, i64 %240
  store float %.sink1593, ptr %gep1359, align 4, !tbaa !9
  %440 = getelementptr float, ptr %45, i64 %240
  %441 = getelementptr float, ptr %440, i64 %439
  store float 0.000000e+00, ptr %441, align 4, !tbaa !9
  %442 = getelementptr i8, ptr %440, i64 -4
  %443 = getelementptr float, ptr %442, i64 %161
  store float 0.000000e+00, ptr %443, align 4, !tbaa !9
  %444 = add i64 %240, -2
  store i64 %444, ptr %19, align 8, !tbaa !5
  %.not11471295 = icmp slt i64 %240, 3
  br i1 %.not11471295, label %._crit_edge1308, label %.lr.ph1298

.lr.ph1298:                                       ; preds = %438
  %445 = getelementptr float, ptr %45, i64 %419
  %446 = getelementptr float, ptr %445, i64 %439
  %447 = getelementptr float, ptr %440, i64 %161
  %min.iters.check1666 = icmp ult i64 %444, 16
  br i1 %min.iters.check1666, label %scalar.ph1665.preheader, label %vector.memcheck1621

vector.memcheck1621:                              ; preds = %.lr.ph1298
  %448 = shl i64 %439, 2
  %scevgep1622 = getelementptr i8, ptr %12, i64 %448
  %449 = shl i64 %240, 2
  %scevgep1625 = getelementptr i8, ptr %scevgep1624, i64 %449
  %450 = getelementptr i8, ptr %scevgep1626, i64 %448
  %scevgep1627 = getelementptr i8, ptr %450, i64 %449
  %451 = add i64 %449, -8
  %452 = mul i64 %36, %451
  %scevgep1628 = getelementptr i8, ptr %4, i64 %452
  %453 = getelementptr i8, ptr %scevgep1629, i64 %452
  %scevgep1630 = getelementptr i8, ptr %453, i64 %449
  %scevgep1632 = getelementptr i8, ptr %scevgep1631, i64 %449
  %454 = add i64 %449, -4
  %455 = mul i64 %36, %454
  %scevgep1633 = getelementptr i8, ptr %4, i64 %455
  %456 = getelementptr i8, ptr %scevgep1634, i64 %455
  %scevgep1635 = getelementptr i8, ptr %456, i64 %449
  %bound0 = icmp ult ptr %scevgep1622, %scevgep1625
  %bound1 = icmp ult ptr %scevgep1623, %446
  %found.conflict = and i1 %bound0, %bound1
  %bound01637 = icmp ult ptr %scevgep1622, %scevgep1630
  %bound11638 = icmp ult ptr %scevgep1628, %446
  %found.conflict1639 = and i1 %bound01637, %bound11638
  %conflict.rdx = or i1 %found.conflict, %found.conflict1639
  %bound01640 = icmp ult ptr %scevgep1622, %scevgep1632
  %bound11641 = icmp ult ptr %447, %446
  %found.conflict1642 = and i1 %bound01640, %bound11641
  %conflict.rdx1643 = or i1 %conflict.rdx, %found.conflict1642
  %bound01644 = icmp ult ptr %scevgep1622, %scevgep1635
  %bound11645 = icmp ult ptr %scevgep1633, %446
  %found.conflict1646 = and i1 %bound01644, %bound11645
  %conflict.rdx1647 = or i1 %conflict.rdx1643, %found.conflict1646
  %bound01648 = icmp ult ptr %scevgep1623, %scevgep1627
  %bound11649 = icmp ult ptr %446, %scevgep1625
  %found.conflict1650 = and i1 %bound01648, %bound11649
  %conflict.rdx1651 = or i1 %conflict.rdx1647, %found.conflict1650
  %bound01652 = icmp ult ptr %scevgep1623, %scevgep1630
  %bound11653 = icmp ult ptr %scevgep1628, %scevgep1625
  %found.conflict1654 = and i1 %bound01652, %bound11653
  %conflict.rdx1655 = or i1 %conflict.rdx1651, %found.conflict1654
  %bound01656 = icmp ult ptr %scevgep1623, %scevgep1632
  %bound11657 = icmp ult ptr %447, %scevgep1625
  %found.conflict1658 = and i1 %bound01656, %bound11657
  %conflict.rdx1659 = or i1 %conflict.rdx1655, %found.conflict1658
  %bound01660 = icmp ult ptr %scevgep1623, %scevgep1635
  %bound11661 = icmp ult ptr %scevgep1633, %scevgep1625
  %found.conflict1662 = and i1 %bound01660, %bound11661
  %conflict.rdx1663 = or i1 %conflict.rdx1659, %found.conflict1662
  br i1 %conflict.rdx1663, label %scalar.ph1665.preheader, label %vector.ph1667

vector.ph1667:                                    ; preds = %vector.memcheck1621
  %n.vec1669 = and i64 %444, -4
  %ind.end1670 = or disjoint i64 %n.vec1669, 1
  %457 = load float, ptr %446, align 4, !tbaa !9, !alias.scope !22
  %broadcast.splatinsert = insertelement <4 x float> poison, float %457, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  %458 = fneg <4 x float> %broadcast.splat
  %459 = load float, ptr %447, align 4, !tbaa !9, !alias.scope !25
  %broadcast.splatinsert1676 = insertelement <4 x float> poison, float %459, i64 0
  %broadcast.splat1677 = shufflevector <4 x float> %broadcast.splatinsert1676, <4 x float> poison, <4 x i32> zeroinitializer
  %460 = fneg <4 x float> %broadcast.splat1677
  br label %vector.body1672

vector.body1672:                                  ; preds = %vector.body1672, %vector.ph1667
  %index1673 = phi i64 [ 0, %vector.ph1667 ], [ %index.next1679, %vector.body1672 ]
  %offset.idx1674 = or disjoint i64 %index1673, 1
  %461 = getelementptr float, ptr %38, i64 %offset.idx1674
  %462 = getelementptr float, ptr %461, i64 %420
  %wide.load1675 = load <4 x float>, ptr %462, align 4, !tbaa !9, !alias.scope !27
  %463 = fmul <4 x float> %wide.load1675, %458
  %464 = getelementptr float, ptr %12, i64 %index1673
  %465 = getelementptr float, ptr %464, i64 %439
  store <4 x float> %463, ptr %465, align 4, !tbaa !9, !alias.scope !29, !noalias !31
  %466 = getelementptr float, ptr %461, i64 %411
  %wide.load1678 = load <4 x float>, ptr %466, align 4, !tbaa !9, !alias.scope !34
  %467 = fmul <4 x float> %wide.load1678, %460
  %468 = getelementptr float, ptr %464, i64 %161
  store <4 x float> %467, ptr %468, align 4, !tbaa !9, !alias.scope !35, !noalias !36
  %index.next1679 = add nuw i64 %index1673, 4
  %469 = icmp eq i64 %index.next1679, %n.vec1669
  br i1 %469, label %middle.block1664, label %vector.body1672, !llvm.loop !37

middle.block1664:                                 ; preds = %vector.body1672
  %cmp.n1680 = icmp eq i64 %444, %n.vec1669
  br i1 %cmp.n1680, label %.lr.ph1307.preheader, label %scalar.ph1665.preheader

scalar.ph1665.preheader:                          ; preds = %middle.block1664, %vector.memcheck1621, %.lr.ph1298
  %.210901296.ph = phi i64 [ 1, %vector.memcheck1621 ], [ 1, %.lr.ph1298 ], [ %ind.end1670, %middle.block1664 ]
  %470 = add nsw i64 %240, -2
  %xtraiter1799 = and i64 %240, 1
  %lcmp.mod1800.not = icmp eq i64 %xtraiter1799, 0
  br i1 %lcmp.mod1800.not, label %scalar.ph1665.prol.loopexit, label %scalar.ph1665.prol

scalar.ph1665.prol:                               ; preds = %scalar.ph1665.preheader
  %471 = load float, ptr %446, align 4, !tbaa !9
  %472 = fneg float %471
  %473 = getelementptr float, ptr %38, i64 %.210901296.ph
  %474 = getelementptr float, ptr %473, i64 %420
  %475 = load float, ptr %474, align 4, !tbaa !9
  %476 = fmul float %475, %472
  %477 = getelementptr float, ptr %45, i64 %.210901296.ph
  %478 = getelementptr float, ptr %477, i64 %439
  store float %476, ptr %478, align 4, !tbaa !9
  %479 = load float, ptr %447, align 4, !tbaa !9
  %480 = fneg float %479
  %481 = getelementptr float, ptr %473, i64 %411
  %482 = load float, ptr %481, align 4, !tbaa !9
  %483 = fmul float %482, %480
  %484 = getelementptr float, ptr %477, i64 %161
  store float %483, ptr %484, align 4, !tbaa !9
  %485 = add nuw i64 %.210901296.ph, 1
  br label %scalar.ph1665.prol.loopexit

scalar.ph1665.prol.loopexit:                      ; preds = %scalar.ph1665.prol, %scalar.ph1665.preheader
  %.210901296.unr = phi i64 [ %.210901296.ph, %scalar.ph1665.preheader ], [ %485, %scalar.ph1665.prol ]
  %486 = icmp eq i64 %470, %.210901296.ph
  br i1 %486, label %.lr.ph1307.preheader, label %scalar.ph1665

scalar.ph1665:                                    ; preds = %scalar.ph1665.prol.loopexit, %scalar.ph1665
  %.210901296 = phi i64 [ %514, %scalar.ph1665 ], [ %.210901296.unr, %scalar.ph1665.prol.loopexit ]
  %487 = load float, ptr %446, align 4, !tbaa !9
  %488 = fneg float %487
  %489 = getelementptr float, ptr %38, i64 %.210901296
  %490 = getelementptr float, ptr %489, i64 %420
  %491 = load float, ptr %490, align 4, !tbaa !9
  %492 = fmul float %491, %488
  %493 = getelementptr float, ptr %45, i64 %.210901296
  %494 = getelementptr float, ptr %493, i64 %439
  store float %492, ptr %494, align 4, !tbaa !9
  %495 = load float, ptr %447, align 4, !tbaa !9
  %496 = fneg float %495
  %497 = getelementptr float, ptr %489, i64 %411
  %498 = load float, ptr %497, align 4, !tbaa !9
  %499 = fmul float %498, %496
  %500 = getelementptr float, ptr %493, i64 %161
  store float %499, ptr %500, align 4, !tbaa !9
  %501 = load float, ptr %446, align 4, !tbaa !9
  %502 = fneg float %501
  %gep1829 = getelementptr float, ptr %invariant.gep1828, i64 %.210901296
  %503 = getelementptr float, ptr %gep1829, i64 %420
  %504 = load float, ptr %503, align 4, !tbaa !9
  %505 = fmul float %504, %502
  %506 = getelementptr float, ptr %12, i64 %.210901296
  %507 = getelementptr float, ptr %506, i64 %439
  store float %505, ptr %507, align 4, !tbaa !9
  %508 = load float, ptr %447, align 4, !tbaa !9
  %509 = fneg float %508
  %510 = getelementptr float, ptr %gep1829, i64 %411
  %511 = load float, ptr %510, align 4, !tbaa !9
  %512 = fmul float %511, %509
  %513 = getelementptr float, ptr %506, i64 %161
  store float %512, ptr %513, align 4, !tbaa !9
  %514 = add nuw i64 %.210901296, 2
  %exitcond1528.not.1 = icmp eq i64 %514, %419
  br i1 %exitcond1528.not.1, label %.lr.ph1307.preheader, label %scalar.ph1665, !llvm.loop !38

.lr.ph1307.preheader:                             ; preds = %scalar.ph1665.prol.loopexit, %scalar.ph1665, %middle.block1664
  br label %.lr.ph1307

.lr.ph1307:                                       ; preds = %.lr.ph1307.preheader, %.lr.ph1307._crit_edge
  %.310581306 = phi i64 [ %.5, %.lr.ph1307._crit_edge ], [ %444, %.lr.ph1307.preheader ]
  %.311031305 = phi i64 [ %.pre1575, %.lr.ph1307._crit_edge ], [ %444, %.lr.ph1307.preheader ]
  %515 = icmp sgt i64 %.311031305, %.310581306
  %.pre1575 = add nsw i64 %.311031305, -1
  br i1 %515, label %.lr.ph1307._crit_edge, label %516

516:                                              ; preds = %.lr.ph1307
  %.not1152 = icmp eq i64 %.311031305, 1
  br i1 %.not1152, label %..thread1194_crit_edge, label %517

..thread1194_crit_edge:                           ; preds = %516
  %.pre1542 = load i64, ptr %3, align 8, !tbaa !5
  br label %.thread1194

517:                                              ; preds = %516
  %518 = mul nsw i64 %.pre1575, %36
  %519 = getelementptr float, ptr %38, i64 %.311031305
  %520 = getelementptr float, ptr %519, i64 %518
  %521 = load float, ptr %520, align 4, !tbaa !9
  %522 = fcmp une float %521, 0.000000e+00
  %.pre1543 = load i64, ptr %3, align 8, !tbaa !5
  br i1 %522, label %.thread1198, label %.thread1194

.thread1198:                                      ; preds = %517
  %523 = add nsw i64 %.311031305, -2
  %524 = getelementptr float, ptr %38, i64 %.pre1575
  %525 = getelementptr float, ptr %524, i64 %518
  %526 = getelementptr float, ptr %45, i64 %.pre1575
  %527 = getelementptr float, ptr %526, i64 %.pre1543
  %528 = call i32 @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull @c_b22, ptr noundef %525, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef %527, ptr noundef nonnull %3, ptr noundef nonnull %26, ptr noundef nonnull %25, ptr noundef nonnull %23, ptr noundef nonnull @c__2, ptr noundef nonnull %32, ptr noundef nonnull %34, ptr noundef nonnull %28) #6
  %529 = load float, ptr %34, align 4, !tbaa !9
  %530 = fcmp ogt float %529, 1.000000e+00
  br i1 %530, label %569, label %thread-pre-split1204

.thread1194:                                      ; preds = %..thread1194_crit_edge, %517
  %531 = phi i64 [ %.pre1543, %517 ], [ %.pre1542, %..thread1194_crit_edge ]
  %.41197 = phi i64 [ %.pre1575, %517 ], [ 0, %..thread1194_crit_edge ]
  %532 = mul nsw i64 %.311031305, %36
  %533 = getelementptr float, ptr %38, i64 %.311031305
  %534 = getelementptr float, ptr %533, i64 %532
  %535 = getelementptr float, ptr %45, i64 %.311031305
  %536 = getelementptr float, ptr %535, i64 %531
  %537 = call i32 @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__1, ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull @c_b22, ptr noundef %534, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef %536, ptr noundef nonnull %3, ptr noundef nonnull %26, ptr noundef nonnull %25, ptr noundef nonnull %23, ptr noundef nonnull @c__2, ptr noundef nonnull %32, ptr noundef nonnull %34, ptr noundef nonnull %28) #6
  %538 = load float, ptr %34, align 4, !tbaa !9
  %539 = fcmp ogt float %538, 1.000000e+00
  br i1 %539, label %540, label %thread-pre-split1202

540:                                              ; preds = %.thread1194
  %541 = load float, ptr %535, align 4, !tbaa !9
  %542 = fdiv float %133, %538
  %543 = fcmp ogt float %541, %542
  br i1 %543, label %544, label %thread-pre-split1202

544:                                              ; preds = %540
  %545 = load float, ptr %23, align 16, !tbaa !9
  %546 = fdiv float %545, %538
  store float %546, ptr %23, align 16, !tbaa !9
  %547 = load float, ptr %167, align 8, !tbaa !9
  %548 = fdiv float %547, %538
  store float %548, ptr %167, align 8, !tbaa !9
  %549 = load float, ptr %32, align 4, !tbaa !9
  %550 = fdiv float %549, %538
  store float %550, ptr %32, align 4, !tbaa !9
  br label %551

thread-pre-split1202:                             ; preds = %.thread1194, %540
  %.pr1203 = load float, ptr %32, align 4, !tbaa !9
  br label %551

551:                                              ; preds = %thread-pre-split1202, %544
  %552 = phi float [ %.pr1203, %thread-pre-split1202 ], [ %550, %544 ]
  %553 = fcmp une float %552, 1.000000e+00
  br i1 %553, label %554, label %559

554:                                              ; preds = %551
  %555 = load i64, ptr %3, align 8, !tbaa !5
  %556 = getelementptr float, ptr %12, i64 %555
  %557 = call i32 @f2c_sscal(ptr noundef nonnull %24, ptr noundef nonnull %32, ptr noundef %556, ptr noundef nonnull @c__1) #6
  %558 = call i32 @f2c_sscal(ptr noundef nonnull %24, ptr noundef nonnull %32, ptr noundef %170, ptr noundef nonnull @c__1) #6
  br label %559

559:                                              ; preds = %554, %551
  %560 = load float, ptr %23, align 16, !tbaa !9
  %561 = load i64, ptr %3, align 8, !tbaa !5
  %562 = getelementptr float, ptr %535, i64 %561
  store float %560, ptr %562, align 4, !tbaa !9
  %563 = load float, ptr %167, align 8, !tbaa !9
  %564 = getelementptr float, ptr %535, i64 %161
  store float %563, ptr %564, align 4, !tbaa !9
  store i64 %.pre1575, ptr %19, align 8, !tbaa !5
  %565 = fneg float %560
  store float %565, ptr %22, align 4, !tbaa !9
  %gep1304 = getelementptr float, ptr %invariant.gep1299, i64 %532
  %566 = getelementptr float, ptr %12, i64 %561
  %567 = call i32 @f2c_saxpy(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1304, ptr noundef nonnull @c__1, ptr noundef %566, ptr noundef nonnull @c__1) #6
  store i64 %.pre1575, ptr %19, align 8, !tbaa !5
  %568 = load float, ptr %167, align 8, !tbaa !9
  br label %.lr.ph1307._crit_edge.sink.split

569:                                              ; preds = %.thread1198
  %570 = load float, ptr %526, align 4, !tbaa !9
  store float %570, ptr %22, align 4, !tbaa !9
  %571 = getelementptr inbounds float, ptr %45, i64 %.311031305
  %572 = load float, ptr %571, align 4, !tbaa !9
  %573 = fcmp oge float %570, %572
  %574 = select i1 %573, float %570, float %572
  %575 = fdiv float %133, %529
  %576 = fcmp ogt float %574, %575
  br i1 %576, label %577, label %thread-pre-split1204

577:                                              ; preds = %569
  %578 = fdiv float 1.000000e+00, %529
  store float %578, ptr %27, align 4, !tbaa !9
  %579 = load <4 x float>, ptr %23, align 16, !tbaa !9
  %580 = insertelement <4 x float> poison, float %578, i64 0
  %581 = shufflevector <4 x float> %580, <4 x float> poison, <4 x i32> zeroinitializer
  %582 = fmul <4 x float> %581, %579
  store <4 x float> %582, ptr %23, align 16, !tbaa !9
  %583 = load float, ptr %32, align 4, !tbaa !9
  %584 = fmul float %578, %583
  store float %584, ptr %32, align 4, !tbaa !9
  br label %585

thread-pre-split1204:                             ; preds = %.thread1198, %569
  %.pr1205 = load float, ptr %32, align 4, !tbaa !9
  br label %585

585:                                              ; preds = %thread-pre-split1204, %577
  %586 = phi float [ %.pr1205, %thread-pre-split1204 ], [ %584, %577 ]
  %587 = fcmp une float %586, 1.000000e+00
  br i1 %587, label %588, label %593

588:                                              ; preds = %585
  %589 = load i64, ptr %3, align 8, !tbaa !5
  %590 = getelementptr float, ptr %12, i64 %589
  %591 = call i32 @f2c_sscal(ptr noundef nonnull %24, ptr noundef nonnull %32, ptr noundef %590, ptr noundef nonnull @c__1) #6
  %592 = call i32 @f2c_sscal(ptr noundef nonnull %24, ptr noundef nonnull %32, ptr noundef %170, ptr noundef nonnull @c__1) #6
  br label %593

593:                                              ; preds = %588, %585
  %594 = load i64, ptr %3, align 8, !tbaa !5
  %595 = getelementptr float, ptr %526, i64 %594
  %596 = load <2 x float>, ptr %23, align 16, !tbaa !9
  store <2 x float> %596, ptr %595, align 4, !tbaa !9
  %597 = getelementptr float, ptr %526, i64 %161
  %598 = load <2 x float>, ptr %167, align 8, !tbaa !9
  store <2 x float> %598, ptr %597, align 4, !tbaa !9
  store i64 %523, ptr %19, align 8, !tbaa !5
  %599 = extractelement <2 x float> %596, i64 0
  %600 = fneg float %599
  store float %600, ptr %22, align 4, !tbaa !9
  %gep1300 = getelementptr float, ptr %invariant.gep1299, i64 %518
  %601 = getelementptr float, ptr %12, i64 %594
  %602 = call i32 @f2c_saxpy(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1300, ptr noundef nonnull @c__1, ptr noundef %601, ptr noundef nonnull @c__1) #6
  store i64 %523, ptr %19, align 8, !tbaa !5
  %603 = load float, ptr %168, align 4, !tbaa !9
  %604 = fneg float %603
  store float %604, ptr %22, align 4, !tbaa !9
  %605 = mul nsw i64 %.311031305, %36
  %gep1302 = getelementptr float, ptr %invariant.gep1299, i64 %605
  %606 = load i64, ptr %3, align 8, !tbaa !5
  %607 = getelementptr float, ptr %12, i64 %606
  %608 = call i32 @f2c_saxpy(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1302, ptr noundef nonnull @c__1, ptr noundef %607, ptr noundef nonnull @c__1) #6
  store i64 %523, ptr %19, align 8, !tbaa !5
  %609 = load float, ptr %167, align 8, !tbaa !9
  %610 = fneg float %609
  store float %610, ptr %22, align 4, !tbaa !9
  %611 = call i32 @f2c_saxpy(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1300, ptr noundef nonnull @c__1, ptr noundef %170, ptr noundef nonnull @c__1) #6
  store i64 %523, ptr %19, align 8, !tbaa !5
  %612 = load float, ptr %169, align 4, !tbaa !9
  br label %.lr.ph1307._crit_edge.sink.split

.lr.ph1307._crit_edge.sink.split:                 ; preds = %559, %593
  %.sink1781 = phi float [ %568, %559 ], [ %612, %593 ]
  %gep1302.sink = phi ptr [ %gep1304, %559 ], [ %gep1302, %593 ]
  %.5.ph = phi i64 [ %.41197, %559 ], [ %523, %593 ]
  %613 = fneg float %.sink1781
  store float %613, ptr %22, align 4, !tbaa !9
  %614 = call i32 @f2c_saxpy(ptr noundef nonnull %19, ptr noundef nonnull %22, ptr noundef %gep1302.sink, ptr noundef nonnull @c__1, ptr noundef %170, ptr noundef nonnull @c__1) #6
  br label %.lr.ph1307._crit_edge

.lr.ph1307._crit_edge:                            ; preds = %.lr.ph1307._crit_edge.sink.split, %.lr.ph1307
  %.5 = phi i64 [ %.310581306, %.lr.ph1307 ], [ %.5.ph, %.lr.ph1307._crit_edge.sink.split ]
  %615 = icmp sgt i64 %.311031305, 1
  br i1 %615, label %.lr.ph1307, label %._crit_edge1308, !llvm.loop !39

._crit_edge1308:                                  ; preds = %.lr.ph1307._crit_edge, %438
  br i1 %.not1148, label %616, label %667

616:                                              ; preds = %._crit_edge1308
  %617 = load i64, ptr %3, align 8, !tbaa !5
  %618 = getelementptr float, ptr %12, i64 %617
  %619 = add nsw i64 %.010731390, -1
  %620 = mul nsw i64 %619, %42
  %gep1377 = getelementptr float, ptr %invariant.gep1360, i64 %620
  %621 = call i32 @f2c_scopy(ptr noundef nonnull %24, ptr noundef %618, ptr noundef nonnull @c__1, ptr noundef %gep1377, ptr noundef nonnull @c__1) #6
  %622 = mul nsw i64 %.010731390, %42
  %gep1379 = getelementptr float, ptr %invariant.gep1360, i64 %622
  %623 = call i32 @f2c_scopy(ptr noundef nonnull %24, ptr noundef %170, ptr noundef nonnull @c__1, ptr noundef %gep1379, ptr noundef nonnull @c__1) #6
  %624 = load i64, ptr %24, align 8, !tbaa !5
  store i64 %624, ptr %19, align 8, !tbaa !5
  %.not11491316 = icmp slt i64 %624, 1
  br i1 %.not11491316, label %640, label %.lr.ph1320

.lr.ph1320:                                       ; preds = %616, %.lr.ph1320
  %.010691318 = phi float [ %638, %.lr.ph1320 ], [ 0.000000e+00, %616 ]
  %.310911317 = phi i64 [ %639, %.lr.ph1320 ], [ 1, %616 ]
  %625 = getelementptr float, ptr %44, i64 %.310911317
  %626 = getelementptr float, ptr %625, i64 %620
  %627 = load float, ptr %626, align 4, !tbaa !9
  %628 = fcmp oge float %627, 0.000000e+00
  %629 = fneg float %627
  %630 = select i1 %628, float %627, float %629
  %631 = getelementptr float, ptr %625, i64 %622
  %632 = load float, ptr %631, align 4, !tbaa !9
  %633 = fcmp oge float %632, 0.000000e+00
  %634 = fneg float %632
  %635 = select i1 %633, float %632, float %634
  %636 = fadd float %630, %635
  %637 = fcmp oge float %.010691318, %636
  %638 = select i1 %637, float %.010691318, float %636
  %639 = add nuw i64 %.310911317, 1
  %exitcond1530.not = icmp eq i64 %.310911317, %624
  br i1 %exitcond1530.not, label %._crit_edge1321, label %.lr.ph1320, !llvm.loop !40

._crit_edge1321:                                  ; preds = %.lr.ph1320
  store float %627, ptr %22, align 4, !tbaa !9
  br label %640

640:                                              ; preds = %._crit_edge1321, %616
  %.01069.lcssa = phi float [ %638, %._crit_edge1321 ], [ 0.000000e+00, %616 ]
  %641 = fdiv float 1.000000e+00, %.01069.lcssa
  store float %641, ptr %33, align 4, !tbaa !9
  %642 = call i32 @f2c_sscal(ptr noundef nonnull %24, ptr noundef nonnull %33, ptr noundef %gep1377, ptr noundef nonnull @c__1) #6
  %643 = call i32 @f2c_sscal(ptr noundef nonnull %24, ptr noundef nonnull %33, ptr noundef %gep1379, ptr noundef nonnull @c__1) #6
  %644 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %644, ptr %19, align 8, !tbaa !5
  %645 = load i64, ptr %24, align 8, !tbaa !5
  %.not1150.not1324 = icmp slt i64 %645, %644
  br i1 %.not1150.not1324, label %.lr.ph1327.preheader, label %.loopexit1279

.lr.ph1327.preheader:                             ; preds = %640
  %646 = sub i64 %644, %645
  %min.iters.check1610 = icmp ult i64 %646, 8
  %or.cond1782 = select i1 %min.iters.check1610, i1 true, i1 %diff.check1607
  br i1 %or.cond1782, label %.lr.ph1327.preheader1792, label %vector.ph1611

vector.ph1611:                                    ; preds = %.lr.ph1327.preheader
  %n.vec1613 = and i64 %646, -8
  %ind.end1614 = add i64 %645, %n.vec1613
  %gep1839 = getelementptr float, ptr %invariant.gep1838, i64 %645
  br label %vector.body1616

vector.body1616:                                  ; preds = %vector.body1616, %vector.ph1611
  %index1617 = phi i64 [ 0, %vector.ph1611 ], [ %index.next1619, %vector.body1616 ]
  %gep1831 = getelementptr float, ptr %gep1839, i64 %index1617
  %647 = getelementptr float, ptr %gep1831, i64 %620
  %648 = getelementptr i8, ptr %647, i64 16
  store <4 x float> zeroinitializer, ptr %647, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %648, align 4, !tbaa !9
  %649 = getelementptr float, ptr %gep1831, i64 %622
  %650 = getelementptr i8, ptr %649, i64 16
  store <4 x float> zeroinitializer, ptr %649, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %650, align 4, !tbaa !9
  %index.next1619 = add nuw i64 %index1617, 8
  %651 = icmp eq i64 %index.next1619, %n.vec1613
  br i1 %651, label %middle.block1608, label %vector.body1616, !llvm.loop !41

middle.block1608:                                 ; preds = %vector.body1616
  %cmp.n1620 = icmp eq i64 %646, %n.vec1613
  br i1 %cmp.n1620, label %.loopexit1279, label %.lr.ph1327.preheader1792

.lr.ph1327.preheader1792:                         ; preds = %middle.block1608, %.lr.ph1327.preheader
  %.41092.in1325.ph = phi i64 [ %645, %.lr.ph1327.preheader ], [ %ind.end1614, %middle.block1608 ]
  %652 = sub i64 %644, %.41092.in1325.ph
  %xtraiter1801 = and i64 %652, 3
  %lcmp.mod1802.not = icmp eq i64 %xtraiter1801, 0
  br i1 %lcmp.mod1802.not, label %.lr.ph1327.prol.loopexit, label %.lr.ph1327.prol

.lr.ph1327.prol:                                  ; preds = %.lr.ph1327.preheader1792, %.lr.ph1327.prol
  %.41092.in1325.prol = phi i64 [ %.41092.prol, %.lr.ph1327.prol ], [ %.41092.in1325.ph, %.lr.ph1327.preheader1792 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph1327.prol ], [ 0, %.lr.ph1327.preheader1792 ]
  %.41092.prol = add nsw i64 %.41092.in1325.prol, 1
  %653 = getelementptr float, ptr %44, i64 %.41092.prol
  %654 = getelementptr float, ptr %653, i64 %620
  store float 0.000000e+00, ptr %654, align 4, !tbaa !9
  %655 = getelementptr float, ptr %653, i64 %622
  store float 0.000000e+00, ptr %655, align 4, !tbaa !9
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter1801
  br i1 %prol.iter.cmp.not, label %.lr.ph1327.prol.loopexit, label %.lr.ph1327.prol, !llvm.loop !42

.lr.ph1327.prol.loopexit:                         ; preds = %.lr.ph1327.prol, %.lr.ph1327.preheader1792
  %.41092.in1325.unr = phi i64 [ %.41092.in1325.ph, %.lr.ph1327.preheader1792 ], [ %.41092.prol, %.lr.ph1327.prol ]
  %656 = sub i64 %.41092.in1325.ph, %644
  %657 = icmp ugt i64 %656, -4
  br i1 %657, label %.loopexit1279, label %.lr.ph1327

.lr.ph1327:                                       ; preds = %.lr.ph1327.prol.loopexit, %.lr.ph1327
  %.41092.in1325 = phi i64 [ %.41092.3, %.lr.ph1327 ], [ %.41092.in1325.unr, %.lr.ph1327.prol.loopexit ]
  %gep1833 = getelementptr float, ptr %invariant.gep1832, i64 %.41092.in1325
  %658 = getelementptr float, ptr %gep1833, i64 %620
  store float 0.000000e+00, ptr %658, align 4, !tbaa !9
  %659 = getelementptr float, ptr %gep1833, i64 %622
  store float 0.000000e+00, ptr %659, align 4, !tbaa !9
  %gep1835 = getelementptr float, ptr %invariant.gep1834, i64 %.41092.in1325
  %660 = getelementptr float, ptr %gep1835, i64 %620
  store float 0.000000e+00, ptr %660, align 4, !tbaa !9
  %661 = getelementptr float, ptr %gep1835, i64 %622
  store float 0.000000e+00, ptr %661, align 4, !tbaa !9
  %gep1837 = getelementptr float, ptr %invariant.gep1836, i64 %.41092.in1325
  %662 = getelementptr float, ptr %gep1837, i64 %620
  store float 0.000000e+00, ptr %662, align 4, !tbaa !9
  %663 = getelementptr float, ptr %gep1837, i64 %622
  store float 0.000000e+00, ptr %663, align 4, !tbaa !9
  %.41092.3 = add nsw i64 %.41092.in1325, 4
  %664 = getelementptr float, ptr %44, i64 %.41092.3
  %665 = getelementptr float, ptr %664, i64 %620
  store float 0.000000e+00, ptr %665, align 4, !tbaa !9
  %666 = getelementptr float, ptr %664, i64 %622
  store float 0.000000e+00, ptr %666, align 4, !tbaa !9
  %exitcond1531.not.3 = icmp eq i64 %.41092.3, %644
  br i1 %exitcond1531.not.3, label %.loopexit1279, label %.lr.ph1327, !llvm.loop !43

667:                                              ; preds = %._crit_edge1308
  %668 = load i64, ptr %24, align 8, !tbaa !5
  %669 = icmp sgt i64 %668, 2
  br i1 %669, label %670, label %683

670:                                              ; preds = %667
  %671 = add nsw i64 %668, -2
  store i64 %671, ptr %19, align 8, !tbaa !5
  %672 = load i64, ptr %3, align 8, !tbaa !5
  %673 = getelementptr float, ptr %12, i64 %672
  %674 = add nsw i64 %668, -1
  %675 = getelementptr float, ptr %45, i64 %674
  %676 = getelementptr float, ptr %675, i64 %672
  %677 = mul nsw i64 %674, %42
  %gep1367 = getelementptr float, ptr %invariant.gep1360, i64 %677
  %678 = call i32 @f2c_sgemv(ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef nonnull @c_b22, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %673, ptr noundef nonnull @c__1, ptr noundef %676, ptr noundef %gep1367, ptr noundef nonnull @c__1) #6
  %679 = load i64, ptr %24, align 8, !tbaa !5
  %680 = add nsw i64 %679, -2
  store i64 %680, ptr %19, align 8, !tbaa !5
  %gep1369 = getelementptr float, ptr %invariant.gep1356, i64 %679
  %681 = mul nsw i64 %679, %42
  %gep1371 = getelementptr float, ptr %invariant.gep1360, i64 %681
  %682 = call i32 @f2c_sgemv(ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %19, ptr noundef nonnull @c_b22, ptr noundef %8, ptr noundef nonnull %9, ptr noundef %170, ptr noundef nonnull @c__1, ptr noundef %gep1369, ptr noundef %gep1371, ptr noundef nonnull @c__1) #6
  br label %693

683:                                              ; preds = %667
  %684 = add nsw i64 %668, -1
  %685 = load i64, ptr %3, align 8, !tbaa !5
  %686 = getelementptr float, ptr %45, i64 %684
  %687 = getelementptr float, ptr %686, i64 %685
  %688 = mul nsw i64 %684, %42
  %gep1361 = getelementptr float, ptr %invariant.gep1360, i64 %688
  %689 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef %687, ptr noundef %gep1361, ptr noundef nonnull @c__1) #6
  %690 = load i64, ptr %24, align 8, !tbaa !5
  %gep1363 = getelementptr float, ptr %invariant.gep1356, i64 %690
  %691 = mul nsw i64 %690, %42
  %gep1365 = getelementptr float, ptr %invariant.gep1360, i64 %691
  %692 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef %gep1363, ptr noundef %gep1365, ptr noundef nonnull @c__1) #6
  br label %693

693:                                              ; preds = %683, %670
  %694 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %694, ptr %19, align 8, !tbaa !5
  %.not11511309 = icmp slt i64 %694, 1
  %.pre1544 = load i64, ptr %24, align 8, !tbaa !5
  %.pre1577 = add nsw i64 %.pre1544, -1
  %.pre1579 = mul nsw i64 %.pre1577, %42
  br i1 %.not11511309, label %._crit_edge1565, label %.lr.ph1313

.lr.ph1313:                                       ; preds = %693
  %695 = mul nsw i64 %.pre1544, %42
  br label %696

696:                                              ; preds = %.lr.ph1313, %696
  %.110701311 = phi float [ 0.000000e+00, %.lr.ph1313 ], [ %710, %696 ]
  %.510931310 = phi i64 [ 1, %.lr.ph1313 ], [ %711, %696 ]
  %697 = getelementptr float, ptr %44, i64 %.510931310
  %698 = getelementptr float, ptr %697, i64 %.pre1579
  %699 = load float, ptr %698, align 4, !tbaa !9
  %700 = fcmp oge float %699, 0.000000e+00
  %701 = fneg float %699
  %702 = select i1 %700, float %699, float %701
  %703 = getelementptr float, ptr %697, i64 %695
  %704 = load float, ptr %703, align 4, !tbaa !9
  %705 = fcmp oge float %704, 0.000000e+00
  %706 = fneg float %704
  %707 = select i1 %705, float %704, float %706
  %708 = fadd float %702, %707
  %709 = fcmp oge float %.110701311, %708
  %710 = select i1 %709, float %.110701311, float %708
  %711 = add nuw i64 %.510931310, 1
  %exitcond1529.not = icmp eq i64 %.510931310, %694
  br i1 %exitcond1529.not, label %._crit_edge1314, label %696, !llvm.loop !44

._crit_edge1314:                                  ; preds = %696
  store float %699, ptr %22, align 4, !tbaa !9
  br label %._crit_edge1565

._crit_edge1565:                                  ; preds = %693, %._crit_edge1314
  %.11070.lcssa = phi float [ %710, %._crit_edge1314 ], [ 0.000000e+00, %693 ]
  %712 = fdiv float 1.000000e+00, %.11070.lcssa
  store float %712, ptr %33, align 4, !tbaa !9
  %gep1373 = getelementptr float, ptr %invariant.gep1360, i64 %.pre1579
  %713 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1373, ptr noundef nonnull @c__1) #6
  %714 = load i64, ptr %24, align 8, !tbaa !5
  %715 = mul nsw i64 %714, %42
  %gep1375 = getelementptr float, ptr %invariant.gep1360, i64 %715
  %716 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1375, ptr noundef nonnull @c__1) #6
  br label %.loopexit1279

.loopexit1279:                                    ; preds = %.lr.ph1327.prol.loopexit, %.lr.ph1327, %middle.block1608, %.lr.ph1351.preheader, %640, %362, %396, %._crit_edge1565
  %spec.select1159.v = phi i64 [ -1, %396 ], [ -2, %._crit_edge1565 ], [ -1, %362 ], [ -2, %640 ], [ -1, %.lr.ph1351.preheader ], [ -2, %middle.block1608 ], [ -2, %.lr.ph1327 ], [ -2, %.lr.ph1327.prol.loopexit ]
  %spec.select1159 = add nsw i64 %spec.select1159.v, %.010731390
  %717 = icmp eq i64 %.1107811671176.fr, 1
  br i1 %717, label %.thread1219, label %.thread1207

.thread1207:                                      ; preds = %.thread1168, %.loopexit1279
  %.110741211 = phi i64 [ %spec.select1159, %.loopexit1279 ], [ %.010731390, %.thread1168 ]
  %.fr = phi i64 [ %.1107811671176.fr, %.loopexit1279 ], [ %.1107811661170, %.thread1168 ]
  %718 = icmp eq i64 %.fr, -1
  %spec.select1249 = select i1 %718, i64 1, i64 %.fr
  br label %.thread1219

.thread1219:                                      ; preds = %.thread1207, %188, %.loopexit1279, %174
  %.1107412111222 = phi i64 [ %.010731390, %174 ], [ %spec.select1159, %.loopexit1279 ], [ %.010731390, %188 ], [ %.110741211, %.thread1207 ]
  %719 = phi i64 [ 0, %174 ], [ 0, %.loopexit1279 ], [ 0, %188 ], [ %spec.select1249, %.thread1207 ]
  %720 = load i64, ptr %24, align 8, !tbaa !5
  %721 = add nsw i64 %720, -1
  store i64 %721, ptr %24, align 8, !tbaa !5
  %722 = icmp sgt i64 %720, 1
  br i1 %722, label %174, label %.loopexit1282, !llvm.loop !45

.loopexit1282:                                    ; preds = %.thread1219, %162, %160
  br i1 %53, label %723, label %.loopexit1278

723:                                              ; preds = %.loopexit1282
  %724 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %724, ptr %19, align 8, !tbaa !5
  %invariant.gep1469 = getelementptr i8, ptr %38, i64 4
  %invariant.gep1473 = getelementptr float, ptr %12, i64 %161
  %invariant.gep1477 = getelementptr i8, ptr %41, i64 4
  %invariant.gep1489 = getelementptr float, ptr %45, i64 %161
  store i64 1, ptr %24, align 8, !tbaa !5
  %.not11291509 = icmp slt i64 %724, 1
  br i1 %.not11291509, label %.loopexit1278, label %.lr.ph1514

.lr.ph1514:                                       ; preds = %723
  %.not1130 = icmp eq i64 %56, 0
  %725 = add i64 %36, 1
  %726 = fpext float %126 to double
  %727 = getelementptr inbounds i8, ptr %23, i64 8
  %728 = getelementptr inbounds i8, ptr %23, i64 4
  %729 = getelementptr inbounds i8, ptr %23, i64 12
  %.not1135 = icmp eq i64 %55, 0
  %730 = add i64 %16, 4
  %scevgep1716 = getelementptr i8, ptr %12, i64 4
  %731 = shl i64 %128, 3
  %732 = or disjoint i64 %731, 4
  %scevgep1719 = getelementptr i8, ptr %12, i64 %732
  %scevgep1721 = getelementptr i8, ptr %12, i64 %731
  %scevgep1725 = getelementptr i8, ptr %4, i64 -4
  %scevgep1727 = getelementptr i8, ptr %4, i64 4
  %ident.check1714.not = icmp eq i64 %36, 1
  %bound01733 = icmp ult ptr %scevgep1716, %12
  %733 = and i64 %39, 4611686018427387896
  %diff.check1699 = icmp eq i64 %733, 0
  %invariant.gep1840 = getelementptr i8, ptr %41, i64 4
  %invariant.gep1842 = getelementptr i8, ptr %41, i64 8
  %invariant.gep1844 = getelementptr i8, ptr %41, i64 12
  %ident.check.not = icmp eq i64 %36, 1
  br label %734

734:                                              ; preds = %.lr.ph1514, %.thread1241
  %.210751512 = phi i64 [ 1, %.lr.ph1514 ], [ %.3107612331244, %.thread1241 ]
  %.310801511 = phi i64 [ 0, %.lr.ph1514 ], [ %1471, %.thread1241 ]
  %storemerge11281510 = phi i64 [ 1, %.lr.ph1514 ], [ %1473, %.thread1241 ]
  %735 = icmp eq i64 %.310801511, -1
  br i1 %735, label %.thread1241, label %736

736:                                              ; preds = %734
  %737 = load i64, ptr %3, align 8, !tbaa !5
  %738 = icmp eq i64 %storemerge11281510, %737
  br i1 %738, label %745, label %739

739:                                              ; preds = %736
  %740 = mul nsw i64 %storemerge11281510, %36
  %gep1470 = getelementptr float, ptr %invariant.gep1469, i64 %storemerge11281510
  %741 = getelementptr float, ptr %gep1470, i64 %740
  %742 = load float, ptr %741, align 4, !tbaa !9
  %743 = fcmp oeq float %742, 0.000000e+00
  br i1 %743, label %745, label %744

744:                                              ; preds = %739
  br label %745

745:                                              ; preds = %739, %736, %744
  %.41081 = phi i64 [ %.310801511, %736 ], [ %.310801511, %739 ], [ 1, %744 ]
  br i1 %.not1130, label %749, label %746

746:                                              ; preds = %745
  %747 = getelementptr inbounds i64, ptr %35, i64 %storemerge11281510
  %748 = load i64, ptr %747, align 8, !tbaa !5
  %.not1131 = icmp eq i64 %748, 0
  br i1 %.not1131, label %.thread1235, label %749

749:                                              ; preds = %746, %745
  %750 = mul i64 %storemerge11281510, %725
  %751 = getelementptr inbounds float, ptr %38, i64 %750
  %752 = load float, ptr %751, align 4, !tbaa !9
  store float %752, ptr %26, align 4, !tbaa !9
  store float 0.000000e+00, ptr %25, align 4, !tbaa !9
  %.not1132 = icmp eq i64 %.41081, 0
  br i1 %.not1132, label %775, label %753

753:                                              ; preds = %749
  %754 = add nsw i64 %storemerge11281510, 1
  %755 = mul nsw i64 %754, %36
  %756 = getelementptr float, ptr %38, i64 %storemerge11281510
  %757 = getelementptr float, ptr %756, i64 %755
  %758 = load float, ptr %757, align 4, !tbaa !9
  %759 = fcmp oge float %758, 0.000000e+00
  %760 = fneg float %758
  %761 = select i1 %759, float %758, float %760
  %762 = fpext float %761 to double
  %763 = call double @sqrt(double noundef %762) #6
  %764 = load i64, ptr %24, align 8, !tbaa !5
  %765 = mul nsw i64 %764, %36
  %gep1472 = getelementptr float, ptr %invariant.gep1469, i64 %764
  %766 = getelementptr float, ptr %gep1472, i64 %765
  %767 = load float, ptr %766, align 4, !tbaa !9
  %768 = fcmp oge float %767, 0.000000e+00
  %769 = fneg float %767
  %770 = select i1 %768, float %767, float %769
  %771 = fpext float %770 to double
  %772 = call double @sqrt(double noundef %771) #6
  %773 = fmul double %763, %772
  %774 = fptrunc double %773 to float
  store float %774, ptr %25, align 4, !tbaa !9
  %.pre1548 = load float, ptr %26, align 4
  br label %775

775:                                              ; preds = %753, %749
  %776 = phi float [ %774, %753 ], [ 0.000000e+00, %749 ]
  %777 = phi float [ %.pre1548, %753 ], [ %752, %749 ]
  %778 = fcmp oge float %777, 0.000000e+00
  %779 = fneg float %777
  %780 = select i1 %778, float %777, float %779
  %781 = fpext float %780 to double
  %782 = fcmp oge float %776, 0.000000e+00
  %783 = fneg float %776
  %784 = select i1 %782, float %776, float %783
  %785 = fpext float %784 to double
  %786 = fadd double %781, %785
  %787 = fmul double %786, %726
  %788 = fptrunc double %787 to float
  store float %788, ptr %22, align 4, !tbaa !9
  %789 = fcmp ole float %131, %788
  %790 = select i1 %789, float %788, float %131
  store float %790, ptr %31, align 4, !tbaa !9
  %791 = load i64, ptr %24, align 8, !tbaa !5
  br i1 %.not1132, label %792, label %1035

792:                                              ; preds = %775
  %793 = load i64, ptr %3, align 8, !tbaa !5
  %794 = getelementptr float, ptr %45, i64 %791
  %795 = getelementptr float, ptr %794, i64 %793
  store float 1.000000e+00, ptr %795, align 4, !tbaa !9
  %invariant.gep1440 = getelementptr float, ptr %12, i64 %793
  %.not1139.not1442 = icmp slt i64 %791, %793
  br i1 %.not1139.not1442, label %.lr.ph1445, label %._crit_edge1446.thread

._crit_edge1446.thread:                           ; preds = %792
  store i64 %793, ptr %20, align 8, !tbaa !5
  br label %._crit_edge1462

.lr.ph1445:                                       ; preds = %792
  %796 = getelementptr float, ptr %38, i64 %791
  %797 = sub i64 %793, %791
  %min.iters.check1685 = icmp ugt i64 %797, 7
  %or.cond1783 = select i1 %min.iters.check1685, i1 %ident.check.not, i1 false
  br i1 %or.cond1783, label %vector.memcheck1681, label %scalar.ph1684.preheader

vector.memcheck1681:                              ; preds = %.lr.ph1445
  %798 = shl i64 %793, 2
  %799 = shl i64 %791, 2
  %800 = add i64 %730, %798
  %801 = add i64 %799, %15
  %802 = sub i64 %800, %801
  %diff.check1682 = icmp ult i64 %802, 32
  br i1 %diff.check1682, label %scalar.ph1684.preheader, label %vector.ph1686

vector.ph1686:                                    ; preds = %vector.memcheck1681
  %n.vec1688 = and i64 %797, -8
  %ind.end1689 = add i64 %791, %n.vec1688
  br label %vector.body1691

vector.body1691:                                  ; preds = %vector.body1691, %vector.ph1686
  %index1692 = phi i64 [ 0, %vector.ph1686 ], [ %index.next1696, %vector.body1691 ]
  %offset.idx1693 = add i64 %791, %index1692
  %803 = getelementptr float, ptr %796, i64 %offset.idx1693
  %804 = getelementptr i8, ptr %803, i64 4
  %805 = getelementptr i8, ptr %803, i64 20
  %wide.load1694 = load <4 x float>, ptr %804, align 4, !tbaa !9
  %wide.load1695 = load <4 x float>, ptr %805, align 4, !tbaa !9
  %806 = fneg <4 x float> %wide.load1694
  %807 = fneg <4 x float> %wide.load1695
  %808 = getelementptr float, ptr %invariant.gep1440, i64 %offset.idx1693
  %809 = getelementptr i8, ptr %808, i64 16
  store <4 x float> %806, ptr %808, align 4, !tbaa !9
  store <4 x float> %807, ptr %809, align 4, !tbaa !9
  %index.next1696 = add nuw i64 %index1692, 8
  %810 = icmp eq i64 %index.next1696, %n.vec1688
  br i1 %810, label %middle.block1683, label %vector.body1691, !llvm.loop !46

middle.block1683:                                 ; preds = %vector.body1691
  %cmp.n1697 = icmp eq i64 %797, %n.vec1688
  br i1 %cmp.n1697, label %._crit_edge1446, label %scalar.ph1684.preheader

scalar.ph1684.preheader:                          ; preds = %middle.block1683, %vector.memcheck1681, %.lr.ph1445
  %.61094.in1443.ph = phi i64 [ %791, %vector.memcheck1681 ], [ %791, %.lr.ph1445 ], [ %ind.end1689, %middle.block1683 ]
  %811 = sub i64 %793, %.61094.in1443.ph
  %xtraiter1809 = and i64 %811, 3
  %lcmp.mod1810.not = icmp eq i64 %xtraiter1809, 0
  br i1 %lcmp.mod1810.not, label %scalar.ph1684.prol.loopexit, label %scalar.ph1684.prol

scalar.ph1684.prol:                               ; preds = %scalar.ph1684.preheader, %scalar.ph1684.prol
  %.61094.in1443.prol = phi i64 [ %.61094.prol, %scalar.ph1684.prol ], [ %.61094.in1443.ph, %scalar.ph1684.preheader ]
  %prol.iter1811 = phi i64 [ %prol.iter1811.next, %scalar.ph1684.prol ], [ 0, %scalar.ph1684.preheader ]
  %.61094.prol = add nsw i64 %.61094.in1443.prol, 1
  %812 = mul nsw i64 %.61094.prol, %36
  %813 = getelementptr float, ptr %796, i64 %812
  %814 = load float, ptr %813, align 4, !tbaa !9
  %815 = fneg float %814
  %gep1441.prol = getelementptr float, ptr %invariant.gep1440, i64 %.61094.in1443.prol
  store float %815, ptr %gep1441.prol, align 4, !tbaa !9
  %prol.iter1811.next = add i64 %prol.iter1811, 1
  %prol.iter1811.cmp.not = icmp eq i64 %prol.iter1811.next, %xtraiter1809
  br i1 %prol.iter1811.cmp.not, label %scalar.ph1684.prol.loopexit, label %scalar.ph1684.prol, !llvm.loop !47

scalar.ph1684.prol.loopexit:                      ; preds = %scalar.ph1684.prol, %scalar.ph1684.preheader
  %.61094.in1443.unr = phi i64 [ %.61094.in1443.ph, %scalar.ph1684.preheader ], [ %.61094.prol, %scalar.ph1684.prol ]
  %816 = sub i64 %.61094.in1443.ph, %793
  %817 = icmp ugt i64 %816, -4
  br i1 %817, label %._crit_edge1446, label %scalar.ph1684

scalar.ph1684:                                    ; preds = %scalar.ph1684.prol.loopexit, %scalar.ph1684
  %.61094.in1443 = phi i64 [ %.61094.3, %scalar.ph1684 ], [ %.61094.in1443.unr, %scalar.ph1684.prol.loopexit ]
  %.61094 = add nsw i64 %.61094.in1443, 1
  %818 = mul nsw i64 %.61094, %36
  %819 = getelementptr float, ptr %796, i64 %818
  %820 = load float, ptr %819, align 4, !tbaa !9
  %821 = fneg float %820
  %gep1441 = getelementptr float, ptr %invariant.gep1440, i64 %.61094.in1443
  store float %821, ptr %gep1441, align 4, !tbaa !9
  %.61094.1 = add nsw i64 %.61094.in1443, 2
  %822 = mul nsw i64 %.61094.1, %36
  %823 = getelementptr float, ptr %796, i64 %822
  %824 = load float, ptr %823, align 4, !tbaa !9
  %825 = fneg float %824
  %gep1441.1 = getelementptr float, ptr %invariant.gep1440, i64 %.61094
  store float %825, ptr %gep1441.1, align 4, !tbaa !9
  %.61094.2 = add nsw i64 %.61094.in1443, 3
  %826 = mul nsw i64 %.61094.2, %36
  %827 = getelementptr float, ptr %796, i64 %826
  %828 = load float, ptr %827, align 4, !tbaa !9
  %829 = fneg float %828
  %gep1441.2 = getelementptr float, ptr %invariant.gep1440, i64 %.61094.1
  store float %829, ptr %gep1441.2, align 4, !tbaa !9
  %.61094.3 = add nsw i64 %.61094.in1443, 4
  %830 = mul nsw i64 %.61094.3, %36
  %831 = getelementptr float, ptr %796, i64 %830
  %832 = load float, ptr %831, align 4, !tbaa !9
  %833 = fneg float %832
  %gep1441.3 = getelementptr float, ptr %invariant.gep1440, i64 %.61094.2
  store float %833, ptr %gep1441.3, align 4, !tbaa !9
  %exitcond1539.not.3 = icmp eq i64 %.61094.3, %793
  br i1 %exitcond1539.not.3, label %._crit_edge1446, label %scalar.ph1684, !llvm.loop !48

._crit_edge1446:                                  ; preds = %scalar.ph1684.prol.loopexit, %scalar.ph1684, %middle.block1683
  store i64 %793, ptr %20, align 8, !tbaa !5
  br i1 %.not1139.not1442, label %.lr.ph1461.preheader, label %._crit_edge1462

.lr.ph1461.preheader:                             ; preds = %._crit_edge1446
  %834 = add nsw i64 %791, 1
  br label %.lr.ph1461

.lr.ph1461:                                       ; preds = %.lr.ph1461.preheader, %966
  %835 = phi i64 [ %967, %966 ], [ %793, %.lr.ph1461.preheader ]
  %.010541458 = phi float [ %.1, %966 ], [ %133, %.lr.ph1461.preheader ]
  %.61457 = phi i64 [ %.8, %966 ], [ %834, %.lr.ph1461.preheader ]
  %.010591456 = phi float [ %.31062, %966 ], [ 1.000000e+00, %.lr.ph1461.preheader ]
  %.41104.in1455 = phi i64 [ %.411041459, %966 ], [ %791, %.lr.ph1461.preheader ]
  %.411041459 = add nsw i64 %.41104.in1455, 1
  %836 = icmp slt i64 %.411041459, %.61457
  br i1 %836, label %966, label %837

837:                                              ; preds = %.lr.ph1461
  %838 = add nsw i64 %.41104.in1455, 2
  %839 = icmp slt i64 %.411041459, %835
  br i1 %839, label %840, label %..thread1224_crit_edge

..thread1224_crit_edge:                           ; preds = %837
  %.pre1557.pre = load i64, ptr %24, align 8, !tbaa !5
  br label %.thread1224

840:                                              ; preds = %837
  %841 = mul nsw i64 %.411041459, %36
  %842 = getelementptr float, ptr %38, i64 %838
  %843 = getelementptr float, ptr %842, i64 %841
  %844 = load float, ptr %843, align 4, !tbaa !9
  %845 = fcmp une float %844, 0.000000e+00
  %.pre1557.pre1563 = load i64, ptr %24, align 8, !tbaa !5
  br i1 %845, label %846, label %.thread1224

846:                                              ; preds = %840
  %847 = add nsw i64 %.41104.in1455, 3
  %848 = getelementptr float, ptr %12, i64 %.41104.in1455
  %849 = load float, ptr %848, align 4, !tbaa !9
  store float %849, ptr %22, align 4, !tbaa !9
  %850 = getelementptr inbounds float, ptr %45, i64 %838
  %851 = load float, ptr %850, align 4, !tbaa !9
  %852 = fcmp oge float %849, %851
  %853 = select i1 %852, float %849, float %851
  %854 = fcmp ogt float %853, %.010541458
  br i1 %854, label %903, label %910

.thread1224:                                      ; preds = %..thread1224_crit_edge, %840
  %.pre1557 = phi i64 [ %.pre1557.pre, %..thread1224_crit_edge ], [ %.pre1557.pre1563, %840 ]
  %855 = getelementptr float, ptr %12, i64 %.41104.in1455
  %856 = load float, ptr %855, align 4, !tbaa !9
  %857 = fcmp ogt float %856, %.010541458
  br i1 %857, label %858, label %865

858:                                              ; preds = %.thread1224
  %859 = fdiv float 1.000000e+00, %.010591456
  store float %859, ptr %27, align 4, !tbaa !9
  %860 = add i64 %835, 1
  %861 = sub i64 %860, %.pre1557
  store i64 %861, ptr %21, align 8, !tbaa !5
  %862 = getelementptr float, ptr %45, i64 %.pre1557
  %863 = getelementptr float, ptr %862, i64 %835
  %864 = call i32 @f2c_sscal(ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef %863, ptr noundef nonnull @c__1) #6
  %.pre1556 = load i64, ptr %24, align 8, !tbaa !5
  %.pre1558 = load i64, ptr %3, align 8, !tbaa !5
  br label %865

865:                                              ; preds = %858, %.thread1224
  %866 = phi i64 [ %.pre1558, %858 ], [ %835, %.thread1224 ]
  %867 = phi i64 [ %.pre1556, %858 ], [ %.pre1557, %.thread1224 ]
  %.11060 = phi float [ 1.000000e+00, %858 ], [ %.010591456, %.thread1224 ]
  %868 = sub i64 %.41104.in1455, %867
  store i64 %868, ptr %21, align 8, !tbaa !5
  %869 = mul nsw i64 %.411041459, %36
  %gep1448 = getelementptr float, ptr %invariant.gep1469, i64 %867
  %870 = getelementptr float, ptr %gep1448, i64 %869
  %871 = getelementptr float, ptr %12, i64 %867
  %872 = getelementptr float, ptr %871, i64 %866
  %873 = call double @f2c_sdot(ptr noundef nonnull %21, ptr noundef %870, ptr noundef nonnull @c__1, ptr noundef %872, ptr noundef nonnull @c__1) #6
  %874 = load i64, ptr %3, align 8, !tbaa !5
  %875 = getelementptr float, ptr %855, i64 %874
  %876 = load float, ptr %875, align 4, !tbaa !9
  %877 = fpext float %876 to double
  %878 = fsub double %877, %873
  %879 = fptrunc double %878 to float
  store float %879, ptr %875, align 4, !tbaa !9
  %880 = getelementptr float, ptr %38, i64 %.411041459
  %881 = getelementptr float, ptr %880, i64 %869
  %882 = call i32 @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__1, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull @c_b22, ptr noundef %881, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef nonnull %875, ptr noundef nonnull %3, ptr noundef nonnull %26, ptr noundef nonnull @c_b25, ptr noundef nonnull %23, ptr noundef nonnull @c__2, ptr noundef nonnull %32, ptr noundef nonnull %34, ptr noundef nonnull %28) #6
  %883 = load float, ptr %32, align 4, !tbaa !9
  %884 = fcmp une float %883, 1.000000e+00
  br i1 %884, label %885, label %893

885:                                              ; preds = %865
  %886 = load i64, ptr %3, align 8, !tbaa !5
  %887 = load i64, ptr %24, align 8, !tbaa !5
  %888 = add i64 %886, 1
  %889 = sub i64 %888, %887
  store i64 %889, ptr %21, align 8, !tbaa !5
  %890 = getelementptr float, ptr %45, i64 %887
  %891 = getelementptr float, ptr %890, i64 %886
  %892 = call i32 @f2c_sscal(ptr noundef nonnull %21, ptr noundef nonnull %32, ptr noundef %891, ptr noundef nonnull @c__1) #6
  br label %893

893:                                              ; preds = %885, %865
  %894 = load float, ptr %23, align 16, !tbaa !9
  %895 = load i64, ptr %3, align 8, !tbaa !5
  %896 = getelementptr float, ptr %855, i64 %895
  store float %894, ptr %896, align 4, !tbaa !9
  store float %894, ptr %22, align 4, !tbaa !9
  %897 = fcmp oge float %894, 0.000000e+00
  %898 = fneg float %894
  %899 = select i1 %897, float %894, float %898
  %900 = fcmp oge float %899, %.11060
  %901 = select i1 %900, float %899, float %.11060
  %902 = fdiv float %133, %901
  br label %966

903:                                              ; preds = %846
  %904 = fdiv float 1.000000e+00, %.010591456
  store float %904, ptr %27, align 4, !tbaa !9
  %905 = add i64 %835, 1
  %906 = sub i64 %905, %.pre1557.pre1563
  store i64 %906, ptr %21, align 8, !tbaa !5
  %907 = getelementptr float, ptr %45, i64 %.pre1557.pre1563
  %908 = getelementptr float, ptr %907, i64 %835
  %909 = call i32 @f2c_sscal(ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef %908, ptr noundef nonnull @c__1) #6
  %.pre1559 = load i64, ptr %24, align 8, !tbaa !5
  %.pre1561 = load i64, ptr %3, align 8, !tbaa !5
  br label %910

910:                                              ; preds = %903, %846
  %911 = phi i64 [ %.pre1561, %903 ], [ %835, %846 ]
  %912 = phi i64 [ %.pre1559, %903 ], [ %.pre1557.pre1563, %846 ]
  %.21061 = phi float [ 1.000000e+00, %903 ], [ %.010591456, %846 ]
  %913 = sub i64 %.41104.in1455, %912
  store i64 %913, ptr %21, align 8, !tbaa !5
  %gep1450 = getelementptr float, ptr %invariant.gep1469, i64 %912
  %914 = getelementptr float, ptr %gep1450, i64 %841
  %915 = getelementptr float, ptr %12, i64 %912
  %916 = getelementptr float, ptr %915, i64 %911
  %917 = call double @f2c_sdot(ptr noundef nonnull %21, ptr noundef %914, ptr noundef nonnull @c__1, ptr noundef %916, ptr noundef nonnull @c__1) #6
  %918 = load i64, ptr %3, align 8, !tbaa !5
  %919 = getelementptr float, ptr %848, i64 %918
  %920 = load float, ptr %919, align 4, !tbaa !9
  %921 = fpext float %920 to double
  %922 = fsub double %921, %917
  %923 = fptrunc double %922 to float
  store float %923, ptr %919, align 4, !tbaa !9
  %924 = load i64, ptr %24, align 8, !tbaa !5
  %925 = sub i64 %.41104.in1455, %924
  store i64 %925, ptr %21, align 8, !tbaa !5
  %926 = mul nsw i64 %838, %36
  %gep1452 = getelementptr float, ptr %invariant.gep1469, i64 %924
  %927 = getelementptr float, ptr %gep1452, i64 %926
  %928 = getelementptr float, ptr %12, i64 %924
  %929 = getelementptr float, ptr %928, i64 %918
  %930 = call double @f2c_sdot(ptr noundef nonnull %21, ptr noundef %927, ptr noundef nonnull @c__1, ptr noundef %929, ptr noundef nonnull @c__1) #6
  %931 = load i64, ptr %3, align 8, !tbaa !5
  %932 = getelementptr float, ptr %850, i64 %931
  %933 = load float, ptr %932, align 4, !tbaa !9
  %934 = fpext float %933 to double
  %935 = fsub double %934, %930
  %936 = fptrunc double %935 to float
  store float %936, ptr %932, align 4, !tbaa !9
  %937 = getelementptr float, ptr %38, i64 %.411041459
  %938 = getelementptr float, ptr %937, i64 %841
  %939 = getelementptr float, ptr %848, i64 %931
  %940 = call i32 @slaln2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c__2, ptr noundef nonnull @c__1, ptr noundef nonnull %31, ptr noundef nonnull @c_b22, ptr noundef %938, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef %939, ptr noundef nonnull %3, ptr noundef nonnull %26, ptr noundef nonnull @c_b25, ptr noundef nonnull %23, ptr noundef nonnull @c__2, ptr noundef nonnull %32, ptr noundef nonnull %34, ptr noundef nonnull %28) #6
  %941 = load float, ptr %32, align 4, !tbaa !9
  %942 = fcmp une float %941, 1.000000e+00
  br i1 %942, label %943, label %951

943:                                              ; preds = %910
  %944 = load i64, ptr %3, align 8, !tbaa !5
  %945 = load i64, ptr %24, align 8, !tbaa !5
  %946 = add i64 %944, 1
  %947 = sub i64 %946, %945
  store i64 %947, ptr %21, align 8, !tbaa !5
  %948 = getelementptr float, ptr %45, i64 %945
  %949 = getelementptr float, ptr %948, i64 %944
  %950 = call i32 @f2c_sscal(ptr noundef nonnull %21, ptr noundef nonnull %32, ptr noundef %949, ptr noundef nonnull @c__1) #6
  br label %951

951:                                              ; preds = %943, %910
  %952 = load i64, ptr %3, align 8, !tbaa !5
  %953 = getelementptr float, ptr %848, i64 %952
  %954 = load <2 x float>, ptr %23, align 16, !tbaa !9
  store <2 x float> %954, ptr %953, align 4, !tbaa !9
  %955 = extractelement <2 x float> %954, i64 0
  store float %955, ptr %22, align 4, !tbaa !9
  %956 = fcmp oge <2 x float> %954, zeroinitializer
  %957 = fneg <2 x float> %954
  %958 = select <2 x i1> %956, <2 x float> %954, <2 x float> %957
  %959 = extractelement <2 x float> %958, i64 0
  %960 = extractelement <2 x float> %958, i64 1
  %961 = fcmp oge float %959, %960
  %962 = select i1 %961, float %959, float %960
  %963 = fcmp oge float %962, %.21061
  %964 = select i1 %963, float %962, float %.21061
  %965 = fdiv float %133, %964
  br label %966

966:                                              ; preds = %.lr.ph1461, %951, %893
  %967 = phi i64 [ %835, %.lr.ph1461 ], [ %895, %893 ], [ %952, %951 ]
  %.31062 = phi float [ %.010591456, %.lr.ph1461 ], [ %901, %893 ], [ %964, %951 ]
  %.8 = phi i64 [ %.61457, %.lr.ph1461 ], [ %838, %893 ], [ %847, %951 ]
  %.1 = phi float [ %.010541458, %.lr.ph1461 ], [ %902, %893 ], [ %965, %951 ]
  %968 = load i64, ptr %20, align 8, !tbaa !5
  %.not1140.not = icmp slt i64 %.411041459, %968
  br i1 %.not1140.not, label %.lr.ph1461, label %._crit_edge1462, !llvm.loop !49

._crit_edge1462:                                  ; preds = %966, %._crit_edge1446.thread, %._crit_edge1446
  %969 = phi i64 [ %793, %._crit_edge1446 ], [ %793, %._crit_edge1446.thread ], [ %967, %966 ]
  %970 = load i64, ptr %24, align 8, !tbaa !5
  br i1 %.not1135, label %971, label %1009

971:                                              ; preds = %._crit_edge1462
  %972 = add i64 %969, 1
  %973 = sub i64 %972, %970
  store i64 %973, ptr %20, align 8, !tbaa !5
  %974 = getelementptr float, ptr %45, i64 %970
  %975 = getelementptr float, ptr %974, i64 %969
  %976 = mul nsw i64 %.210751512, %39
  %977 = getelementptr float, ptr %41, i64 %970
  %978 = getelementptr float, ptr %977, i64 %976
  %979 = call i32 @f2c_scopy(ptr noundef nonnull %20, ptr noundef %975, ptr noundef nonnull @c__1, ptr noundef %978, ptr noundef nonnull @c__1) #6
  %980 = load i64, ptr %3, align 8, !tbaa !5
  %981 = load i64, ptr %24, align 8, !tbaa !5
  %982 = add i64 %980, 1
  %983 = sub i64 %982, %981
  store i64 %983, ptr %20, align 8, !tbaa !5
  %984 = getelementptr float, ptr %41, i64 %981
  %985 = getelementptr float, ptr %984, i64 %976
  %986 = call i64 @f2c_isamax(ptr noundef nonnull %20, ptr noundef %985, ptr noundef nonnull @c__1) #6
  %987 = load i64, ptr %24, align 8, !tbaa !5
  %988 = getelementptr float, ptr %41, i64 %986
  %989 = getelementptr float, ptr %988, i64 %987
  %990 = getelementptr i8, ptr %989, i64 -4
  %991 = getelementptr float, ptr %990, i64 %976
  %992 = load float, ptr %991, align 4, !tbaa !9
  store float %992, ptr %22, align 4, !tbaa !9
  %993 = fcmp oge float %992, 0.000000e+00
  %994 = fneg float %992
  %995 = select i1 %993, float %992, float %994
  %996 = fdiv float 1.000000e+00, %995
  store float %996, ptr %33, align 4, !tbaa !9
  %997 = load i64, ptr %3, align 8, !tbaa !5
  %reass.sub = sub i64 %997, %987
  %998 = add i64 %reass.sub, 1
  store i64 %998, ptr %20, align 8, !tbaa !5
  %999 = getelementptr float, ptr %41, i64 %987
  %1000 = getelementptr float, ptr %999, i64 %976
  %1001 = call i32 @f2c_sscal(ptr noundef nonnull %20, ptr noundef nonnull %33, ptr noundef %1000, ptr noundef nonnull @c__1) #6
  %1002 = load i64, ptr %24, align 8, !tbaa !5
  %1003 = add nsw i64 %1002, -1
  store i64 %1003, ptr %20, align 8, !tbaa !5
  %.not1142.not1465 = icmp sgt i64 %1002, 1
  br i1 %.not1142.not1465, label %.lr.ph1468.preheader, label %.loopexit

.lr.ph1468.preheader:                             ; preds = %971
  %1004 = shl i64 %.210751512, 2
  %1005 = add i64 %1004, -4
  %1006 = mul i64 %39, %1005
  %scevgep1540 = getelementptr i8, ptr %6, i64 %1006
  %1007 = shl i64 %1002, 2
  %1008 = add i64 %1007, -4
  call void @llvm.memset.p0.i64(ptr align 4 %scevgep1540, i8 0, i64 %1008, i1 false), !tbaa !9
  br label %.loopexit

1009:                                             ; preds = %._crit_edge1462
  %1010 = icmp slt i64 %970, %969
  br i1 %1010, label %1011, label %1021

1011:                                             ; preds = %1009
  %1012 = sub nsw i64 %969, %970
  store i64 %1012, ptr %20, align 8, !tbaa !5
  %1013 = add nsw i64 %970, 1
  %1014 = mul nsw i64 %1013, %39
  %gep1502 = getelementptr float, ptr %invariant.gep1477, i64 %1014
  %1015 = getelementptr float, ptr %12, i64 %970
  %1016 = getelementptr float, ptr %1015, i64 %969
  %1017 = getelementptr float, ptr %45, i64 %970
  %1018 = getelementptr float, ptr %1017, i64 %969
  %1019 = mul nsw i64 %970, %39
  %gep1504 = getelementptr float, ptr %invariant.gep1477, i64 %1019
  %1020 = call i32 @f2c_sgemv(ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %20, ptr noundef nonnull @c_b22, ptr noundef %gep1502, ptr noundef nonnull %7, ptr noundef %1016, ptr noundef nonnull @c__1, ptr noundef %1018, ptr noundef %gep1504, ptr noundef nonnull @c__1) #6
  %.pre1562 = load i64, ptr %24, align 8, !tbaa !5
  br label %1021

1021:                                             ; preds = %1011, %1009
  %1022 = phi i64 [ %.pre1562, %1011 ], [ %970, %1009 ]
  %1023 = mul nsw i64 %1022, %39
  %gep1506 = getelementptr float, ptr %invariant.gep1477, i64 %1023
  %1024 = call i64 @f2c_isamax(ptr noundef nonnull %3, ptr noundef %gep1506, ptr noundef nonnull @c__1) #6
  %1025 = load i64, ptr %24, align 8, !tbaa !5
  %1026 = mul nsw i64 %1025, %39
  %1027 = getelementptr float, ptr %41, i64 %1024
  %1028 = getelementptr float, ptr %1027, i64 %1026
  %1029 = load float, ptr %1028, align 4, !tbaa !9
  store float %1029, ptr %22, align 4, !tbaa !9
  %1030 = fcmp oge float %1029, 0.000000e+00
  %1031 = fneg float %1029
  %1032 = select i1 %1030, float %1029, float %1031
  %1033 = fdiv float 1.000000e+00, %1032
  store float %1033, ptr %33, align 4, !tbaa !9
  %gep1508 = getelementptr float, ptr %invariant.gep1477, i64 %1026
  %1034 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1508, ptr noundef nonnull @c__1) #6
  br label %.loopexit

1035:                                             ; preds = %775
  %1036 = add nsw i64 %791, 1
  %1037 = mul nsw i64 %1036, %36
  %1038 = getelementptr float, ptr %38, i64 %791
  %1039 = getelementptr float, ptr %1038, i64 %1037
  %1040 = load float, ptr %1039, align 4, !tbaa !9
  store float %1040, ptr %22, align 4, !tbaa !9
  %1041 = fcmp oge float %1040, 0.000000e+00
  %1042 = fneg float %1040
  %1043 = select i1 %1041, float %1040, float %1042
  %1044 = mul nsw i64 %791, %36
  %1045 = getelementptr float, ptr %38, i64 %1036
  %1046 = getelementptr float, ptr %1045, i64 %1044
  %1047 = load float, ptr %1046, align 4, !tbaa !9
  %1048 = fcmp oge float %1047, 0.000000e+00
  %1049 = fneg float %1047
  %1050 = select i1 %1048, float %1047, float %1049
  %1051 = fcmp ult float %1043, %1050
  br i1 %1051, label %1057, label %1052

1052:                                             ; preds = %1035
  %1053 = fdiv float %776, %1040
  %1054 = load i64, ptr %3, align 8, !tbaa !5
  %1055 = getelementptr float, ptr %45, i64 %791
  %1056 = getelementptr float, ptr %1055, i64 %1054
  store float %1053, ptr %1056, align 4, !tbaa !9
  br label %1065

1057:                                             ; preds = %1035
  %1058 = load i64, ptr %3, align 8, !tbaa !5
  %1059 = getelementptr float, ptr %45, i64 %791
  %1060 = getelementptr float, ptr %1059, i64 %1058
  store float 1.000000e+00, ptr %1060, align 4, !tbaa !9
  %1061 = getelementptr i8, ptr %1038, i64 4
  %1062 = getelementptr float, ptr %1061, i64 %1044
  %1063 = load float, ptr %1062, align 4, !tbaa !9
  %1064 = fdiv float %783, %1063
  br label %1065

1065:                                             ; preds = %1057, %1052
  %.sink1594 = phi float [ %1064, %1057 ], [ 1.000000e+00, %1052 ]
  %1066 = phi i64 [ %1058, %1057 ], [ %1054, %1052 ]
  %gep1476 = getelementptr float, ptr %invariant.gep1473, i64 %791
  store float %.sink1594, ptr %gep1476, align 4, !tbaa !9
  %1067 = getelementptr float, ptr %12, i64 %791
  %1068 = getelementptr float, ptr %1067, i64 %1066
  store float 0.000000e+00, ptr %1068, align 4, !tbaa !9
  %1069 = getelementptr float, ptr %45, i64 %791
  %1070 = getelementptr float, ptr %1069, i64 %161
  store float 0.000000e+00, ptr %1070, align 4, !tbaa !9
  %1071 = add nsw i64 %791, 2
  %.not11331393 = icmp sgt i64 %1071, %1066
  br i1 %.not11331393, label %._crit_edge1397.thread, label %.lr.ph1396

._crit_edge1397.thread:                           ; preds = %1065
  store i64 %1066, ptr %20, align 8, !tbaa !5
  br label %._crit_edge1419

.lr.ph1396:                                       ; preds = %1065
  %1072 = getelementptr float, ptr %1069, i64 %1066
  %1073 = getelementptr float, ptr %1067, i64 %161
  %1074 = getelementptr i8, ptr %1038, i64 4
  %1075 = xor i64 %791, -1
  %1076 = add i64 %1066, %1075
  %min.iters.check1764 = icmp ugt i64 %1076, 15
  %or.cond1784 = select i1 %min.iters.check1764, i1 %ident.check1714.not, i1 false
  br i1 %or.cond1784, label %vector.memcheck1715, label %scalar.ph1763.preheader

vector.memcheck1715:                              ; preds = %.lr.ph1396
  %1077 = shl i64 %1066, 2
  %1078 = shl i64 %791, 2
  %1079 = add i64 %1077, %1078
  %scevgep1717 = getelementptr i8, ptr %scevgep1716, i64 %1079
  %1080 = shl i64 %1066, 3
  %scevgep1718 = getelementptr i8, ptr %12, i64 %1080
  %scevgep1720 = getelementptr i8, ptr %scevgep1719, i64 %1078
  %scevgep1722 = getelementptr i8, ptr %scevgep1721, i64 %1077
  %scevgep1723 = getelementptr i8, ptr %12, i64 %1079
  %1081 = shl i64 %791, 3
  %scevgep1724 = getelementptr i8, ptr %4, i64 %1081
  %1082 = add i64 %1066, %791
  %1083 = shl i64 %1082, 2
  %scevgep1726 = getelementptr i8, ptr %scevgep1725, i64 %1083
  %scevgep1728 = getelementptr i8, ptr %scevgep1727, i64 %1081
  %scevgep1729 = getelementptr i8, ptr %4, i64 %1083
  %bound01730 = icmp ult ptr %scevgep1717, %scevgep1722
  %bound11731 = icmp ult ptr %scevgep1720, %scevgep1718
  %found.conflict1732 = and i1 %bound01730, %bound11731
  %bound11734 = icmp ult ptr %1072, %scevgep1718
  %found.conflict1735 = and i1 %bound01733, %bound11734
  %conflict.rdx1736 = or i1 %found.conflict1732, %found.conflict1735
  %bound01737 = icmp ult ptr %scevgep1717, %scevgep1726
  %bound11738 = icmp ult ptr %scevgep1724, %scevgep1718
  %found.conflict1739 = and i1 %bound01737, %bound11738
  %conflict.rdx1740 = or i1 %conflict.rdx1736, %found.conflict1739
  %bound01741 = icmp ult ptr %scevgep1717, %scevgep1720
  %bound11742 = icmp ult ptr %1073, %scevgep1718
  %found.conflict1743 = and i1 %bound01741, %bound11742
  %conflict.rdx1744 = or i1 %conflict.rdx1740, %found.conflict1743
  %bound01745 = icmp ult ptr %scevgep1717, %scevgep1729
  %bound11746 = icmp ult ptr %scevgep1728, %scevgep1718
  %found.conflict1747 = and i1 %bound01745, %bound11746
  %conflict.rdx1748 = or i1 %conflict.rdx1744, %found.conflict1747
  %bound01749 = icmp ult ptr %scevgep1720, %scevgep1723
  %bound11750 = icmp ult ptr %1072, %scevgep1722
  %found.conflict1751 = and i1 %bound01749, %bound11750
  %conflict.rdx1752 = or i1 %conflict.rdx1748, %found.conflict1751
  %bound01753 = icmp ult ptr %scevgep1720, %scevgep1726
  %bound11754 = icmp ult ptr %scevgep1724, %scevgep1722
  %found.conflict1755 = and i1 %bound01753, %bound11754
  %conflict.rdx1756 = or i1 %conflict.rdx1752, %found.conflict1755
  %bound01758 = icmp ult ptr %scevgep1720, %scevgep1729
  %bound11759 = icmp ult ptr %scevgep1728, %scevgep1722
  %found.conflict1760 = and i1 %bound01758, %bound11759
  %conflict.rdx1761 = or i1 %conflict.rdx1756, %found.conflict1760
  br i1 %conflict.rdx1761, label %scalar.ph1763.preheader, label %vector.ph1765

vector.ph1765:                                    ; preds = %vector.memcheck1715
  %n.vec1767 = and i64 %1076, -4
  %ind.end1768 = add i64 %1071, %n.vec1767
  %1084 = load float, ptr %1072, align 4, !tbaa !9, !alias.scope !50
  %broadcast.splatinsert1773 = insertelement <4 x float> poison, float %1084, i64 0
  %broadcast.splat1774 = shufflevector <4 x float> %broadcast.splatinsert1773, <4 x float> poison, <4 x i32> zeroinitializer
  %1085 = fneg <4 x float> %broadcast.splat1774
  %1086 = load float, ptr %1073, align 4, !tbaa !9, !alias.scope !53
  %broadcast.splatinsert1776 = insertelement <4 x float> poison, float %1086, i64 0
  %broadcast.splat1777 = shufflevector <4 x float> %broadcast.splatinsert1776, <4 x float> poison, <4 x i32> zeroinitializer
  %1087 = fneg <4 x float> %broadcast.splat1777
  br label %vector.body1770

vector.body1770:                                  ; preds = %vector.body1770, %vector.ph1765
  %index1771 = phi i64 [ 0, %vector.ph1765 ], [ %index.next1779, %vector.body1770 ]
  %offset.idx1772 = add i64 %1071, %index1771
  %1088 = getelementptr float, ptr %1038, i64 %offset.idx1772
  %wide.load1775 = load <4 x float>, ptr %1088, align 4, !tbaa !9, !alias.scope !55
  %1089 = fmul <4 x float> %wide.load1775, %1085
  %1090 = getelementptr float, ptr %45, i64 %offset.idx1772
  %1091 = getelementptr float, ptr %1090, i64 %1066
  store <4 x float> %1089, ptr %1091, align 4, !tbaa !9, !alias.scope !57, !noalias !59
  %1092 = getelementptr float, ptr %1074, i64 %offset.idx1772
  %wide.load1778 = load <4 x float>, ptr %1092, align 4, !tbaa !9, !alias.scope !62
  %1093 = fmul <4 x float> %wide.load1778, %1087
  %1094 = getelementptr float, ptr %1090, i64 %161
  store <4 x float> %1093, ptr %1094, align 4, !tbaa !9, !alias.scope !63, !noalias !64
  %index.next1779 = add nuw i64 %index1771, 4
  %1095 = icmp eq i64 %index.next1779, %n.vec1767
  br i1 %1095, label %middle.block1762, label %vector.body1770, !llvm.loop !65

middle.block1762:                                 ; preds = %vector.body1770
  %cmp.n1780 = icmp eq i64 %1076, %n.vec1767
  br i1 %cmp.n1780, label %._crit_edge1397, label %scalar.ph1763.preheader

scalar.ph1763.preheader:                          ; preds = %middle.block1762, %vector.memcheck1715, %.lr.ph1396
  %.810961394.ph = phi i64 [ %1071, %vector.memcheck1715 ], [ %1071, %.lr.ph1396 ], [ %ind.end1768, %middle.block1762 ]
  br label %scalar.ph1763

scalar.ph1763:                                    ; preds = %scalar.ph1763.preheader, %scalar.ph1763
  %.810961394 = phi i64 [ %1110, %scalar.ph1763 ], [ %.810961394.ph, %scalar.ph1763.preheader ]
  %1096 = load float, ptr %1072, align 4, !tbaa !9
  %1097 = fneg float %1096
  %1098 = mul nsw i64 %.810961394, %36
  %1099 = getelementptr float, ptr %1038, i64 %1098
  %1100 = load float, ptr %1099, align 4, !tbaa !9
  %1101 = fmul float %1100, %1097
  %1102 = getelementptr float, ptr %45, i64 %.810961394
  %1103 = getelementptr float, ptr %1102, i64 %1066
  store float %1101, ptr %1103, align 4, !tbaa !9
  %1104 = load float, ptr %1073, align 4, !tbaa !9
  %1105 = fneg float %1104
  %1106 = getelementptr float, ptr %1074, i64 %1098
  %1107 = load float, ptr %1106, align 4, !tbaa !9
  %1108 = fmul float %1107, %1105
  %1109 = getelementptr float, ptr %1102, i64 %161
  store float %1108, ptr %1109, align 4, !tbaa !9
  %1110 = add i64 %.810961394, 1
  %exitcond1533.not = icmp eq i64 %.810961394, %1066
  br i1 %exitcond1533.not, label %._crit_edge1397, label %scalar.ph1763, !llvm.loop !66

._crit_edge1397:                                  ; preds = %scalar.ph1763, %middle.block1762
  store i64 %1066, ptr %20, align 8, !tbaa !5
  br i1 %.not11331393, label %._crit_edge1419, label %.lr.ph1418

.lr.ph1418:                                       ; preds = %._crit_edge1397, %.lr.ph1418._crit_edge
  %1111 = phi i64 [ %1334, %.lr.ph1418._crit_edge ], [ %1066, %._crit_edge1397 ]
  %.21416 = phi float [ %.3, %.lr.ph1418._crit_edge ], [ %133, %._crit_edge1397 ]
  %.91415 = phi i64 [ %.11, %.lr.ph1418._crit_edge ], [ %1071, %._crit_edge1397 ]
  %.410631414 = phi float [ %.71066, %.lr.ph1418._crit_edge ], [ 1.000000e+00, %._crit_edge1397 ]
  %.511051413 = phi i64 [ %.pre1571, %.lr.ph1418._crit_edge ], [ %1071, %._crit_edge1397 ]
  %1112 = icmp slt i64 %.511051413, %.91415
  %.pre1571 = add nsw i64 %.511051413, 1
  br i1 %1112, label %.lr.ph1418._crit_edge, label %1113

1113:                                             ; preds = %.lr.ph1418
  %1114 = icmp slt i64 %.511051413, %1111
  br i1 %1114, label %1115, label %1123

1115:                                             ; preds = %1113
  %1116 = mul nsw i64 %.511051413, %36
  %1117 = getelementptr float, ptr %38, i64 %.pre1571
  %1118 = getelementptr float, ptr %1117, i64 %1116
  %1119 = load float, ptr %1118, align 4, !tbaa !9
  %1120 = fcmp une float %1119, 0.000000e+00
  br i1 %1120, label %1121, label %1123

1121:                                             ; preds = %1115
  %1122 = add nsw i64 %.511051413, 2
  br label %1123

1123:                                             ; preds = %1115, %1121, %1113
  %.11085 = phi i64 [ %.pre1571, %1121 ], [ %.511051413, %1115 ], [ %.511051413, %1113 ]
  %.10 = phi i64 [ %1122, %1121 ], [ %.pre1571, %1115 ], [ %.pre1571, %1113 ]
  %1124 = icmp eq i64 %.511051413, %.11085
  %1125 = getelementptr inbounds float, ptr %45, i64 %.511051413
  %1126 = load float, ptr %1125, align 4, !tbaa !9
  br i1 %1124, label %1127, label %1209

1127:                                             ; preds = %1123
  %1128 = fcmp ogt float %1126, %.21416
  %.pre1553 = load i64, ptr %24, align 8, !tbaa !5
  br i1 %1128, label %1129, label %1141

1129:                                             ; preds = %1127
  %1130 = fdiv float 1.000000e+00, %.410631414
  store float %1130, ptr %27, align 4, !tbaa !9
  %1131 = add i64 %1111, 1
  %1132 = sub i64 %1131, %.pre1553
  store i64 %1132, ptr %21, align 8, !tbaa !5
  %1133 = getelementptr float, ptr %45, i64 %.pre1553
  %1134 = getelementptr float, ptr %1133, i64 %1111
  %1135 = call i32 @f2c_sscal(ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef %1134, ptr noundef nonnull @c__1) #6
  %1136 = load i64, ptr %3, align 8, !tbaa !5
  %1137 = load i64, ptr %24, align 8, !tbaa !5
  %1138 = add i64 %1136, 1
  %1139 = sub i64 %1138, %1137
  store i64 %1139, ptr %21, align 8, !tbaa !5
  %gep1407 = getelementptr float, ptr %invariant.gep1489, i64 %1137
  %1140 = call i32 @f2c_sscal(ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef %gep1407, ptr noundef nonnull @c__1) #6
  %.pre1552 = load i64, ptr %24, align 8, !tbaa !5
  %.pre1554 = load i64, ptr %3, align 8, !tbaa !5
  br label %1141

1141:                                             ; preds = %1129, %1127
  %1142 = phi i64 [ %.pre1554, %1129 ], [ %1111, %1127 ]
  %1143 = phi i64 [ %.pre1552, %1129 ], [ %.pre1553, %1127 ]
  %.51064 = phi float [ 1.000000e+00, %1129 ], [ %.410631414, %1127 ]
  %1144 = add nsw i64 %.511051413, -2
  %1145 = sub i64 %1144, %1143
  store i64 %1145, ptr %21, align 8, !tbaa !5
  %1146 = add nsw i64 %1143, 2
  %1147 = mul nsw i64 %.511051413, %36
  %1148 = getelementptr float, ptr %38, i64 %1146
  %1149 = getelementptr float, ptr %1148, i64 %1147
  %1150 = getelementptr float, ptr %45, i64 %1146
  %1151 = getelementptr float, ptr %1150, i64 %1142
  %1152 = call double @f2c_sdot(ptr noundef nonnull %21, ptr noundef %1149, ptr noundef nonnull @c__1, ptr noundef %1151, ptr noundef nonnull @c__1) #6
  %1153 = load i64, ptr %3, align 8, !tbaa !5
  %1154 = getelementptr float, ptr %1125, i64 %1153
  %1155 = load float, ptr %1154, align 4, !tbaa !9
  %1156 = fpext float %1155 to double
  %1157 = fsub double %1156, %1152
  %1158 = fptrunc double %1157 to float
  store float %1158, ptr %1154, align 4, !tbaa !9
  %1159 = load i64, ptr %24, align 8, !tbaa !5
  %1160 = sub i64 %1144, %1159
  store i64 %1160, ptr %21, align 8, !tbaa !5
  %1161 = add nsw i64 %1159, 2
  %1162 = getelementptr float, ptr %38, i64 %1161
  %1163 = getelementptr float, ptr %1162, i64 %1147
  %gep1409 = getelementptr float, ptr %invariant.gep1489, i64 %1161
  %1164 = call double @f2c_sdot(ptr noundef nonnull %21, ptr noundef %1163, ptr noundef nonnull @c__1, ptr noundef %gep1409, ptr noundef nonnull @c__1) #6
  %1165 = getelementptr float, ptr %1125, i64 %161
  %1166 = load float, ptr %1165, align 4, !tbaa !9
  %1167 = fpext float %1166 to double
  %1168 = fsub double %1167, %1164
  %1169 = fptrunc double %1168 to float
  store float %1169, ptr %1165, align 4, !tbaa !9
  %1170 = load float, ptr %25, align 4, !tbaa !9
  %1171 = fneg float %1170
  store float %1171, ptr %22, align 4, !tbaa !9
  %1172 = getelementptr float, ptr %38, i64 %.511051413
  %1173 = getelementptr float, ptr %1172, i64 %1147
  %1174 = load i64, ptr %3, align 8, !tbaa !5
  %1175 = getelementptr float, ptr %1125, i64 %1174
  %1176 = call i32 @slaln2_(ptr noundef nonnull @c_false, ptr noundef nonnull @c__1, ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull @c_b22, ptr noundef %1173, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef %1175, ptr noundef nonnull %3, ptr noundef nonnull %26, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull @c__2, ptr noundef nonnull %32, ptr noundef nonnull %34, ptr noundef nonnull %28) #6
  %1177 = load float, ptr %32, align 4, !tbaa !9
  %1178 = fcmp une float %1177, 1.000000e+00
  br i1 %1178, label %1179, label %1192

1179:                                             ; preds = %1141
  %1180 = load i64, ptr %3, align 8, !tbaa !5
  %1181 = load i64, ptr %24, align 8, !tbaa !5
  %1182 = add i64 %1180, 1
  %1183 = sub i64 %1182, %1181
  store i64 %1183, ptr %21, align 8, !tbaa !5
  %1184 = getelementptr float, ptr %45, i64 %1181
  %1185 = getelementptr float, ptr %1184, i64 %1180
  %1186 = call i32 @f2c_sscal(ptr noundef nonnull %21, ptr noundef nonnull %32, ptr noundef %1185, ptr noundef nonnull @c__1) #6
  %1187 = load i64, ptr %3, align 8, !tbaa !5
  %1188 = load i64, ptr %24, align 8, !tbaa !5
  %1189 = add i64 %1187, 1
  %1190 = sub i64 %1189, %1188
  store i64 %1190, ptr %21, align 8, !tbaa !5
  %gep1411 = getelementptr float, ptr %invariant.gep1489, i64 %1188
  %1191 = call i32 @f2c_sscal(ptr noundef nonnull %21, ptr noundef nonnull %32, ptr noundef %gep1411, ptr noundef nonnull @c__1) #6
  br label %1192

1192:                                             ; preds = %1179, %1141
  %1193 = load float, ptr %23, align 16, !tbaa !9
  %1194 = load i64, ptr %3, align 8, !tbaa !5
  %1195 = getelementptr float, ptr %1125, i64 %1194
  store float %1193, ptr %1195, align 4, !tbaa !9
  %1196 = load float, ptr %727, align 8, !tbaa !9
  store float %1196, ptr %1165, align 4, !tbaa !9
  %1197 = load float, ptr %1195, align 4, !tbaa !9
  store float %1197, ptr %22, align 4, !tbaa !9
  %1198 = fcmp oge float %1197, 0.000000e+00
  %1199 = fneg float %1197
  %1200 = select i1 %1198, float %1197, float %1199
  %1201 = fcmp oge float %1196, 0.000000e+00
  %1202 = fneg float %1196
  %1203 = select i1 %1201, float %1196, float %1202
  %1204 = fcmp oge float %1200, %1203
  %1205 = select i1 %1204, float %1200, float %1203
  %1206 = fcmp oge float %1205, %.51064
  %1207 = select i1 %1206, float %1205, float %.51064
  %1208 = fdiv float %133, %1207
  br label %.lr.ph1418._crit_edge

1209:                                             ; preds = %1123
  store float %1126, ptr %22, align 4, !tbaa !9
  %1210 = getelementptr float, ptr %12, i64 %.511051413
  %1211 = load float, ptr %1210, align 4, !tbaa !9
  %1212 = fcmp oge float %1126, %1211
  %1213 = select i1 %1212, float %1126, float %1211
  %1214 = fcmp ogt float %1213, %.21416
  %.pre1550 = load i64, ptr %24, align 8, !tbaa !5
  br i1 %1214, label %1215, label %1227

1215:                                             ; preds = %1209
  %1216 = fdiv float 1.000000e+00, %.410631414
  store float %1216, ptr %27, align 4, !tbaa !9
  %1217 = add i64 %1111, 1
  %1218 = sub i64 %1217, %.pre1550
  store i64 %1218, ptr %21, align 8, !tbaa !5
  %1219 = getelementptr float, ptr %45, i64 %.pre1550
  %1220 = getelementptr float, ptr %1219, i64 %1111
  %1221 = call i32 @f2c_sscal(ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef %1220, ptr noundef nonnull @c__1) #6
  %1222 = load i64, ptr %3, align 8, !tbaa !5
  %1223 = load i64, ptr %24, align 8, !tbaa !5
  %1224 = add i64 %1222, 1
  %1225 = sub i64 %1224, %1223
  store i64 %1225, ptr %21, align 8, !tbaa !5
  %gep1399 = getelementptr float, ptr %invariant.gep1489, i64 %1223
  %1226 = call i32 @f2c_sscal(ptr noundef nonnull %21, ptr noundef nonnull %27, ptr noundef %gep1399, ptr noundef nonnull @c__1) #6
  %.pre1549 = load i64, ptr %24, align 8, !tbaa !5
  %.pre1551 = load i64, ptr %3, align 8, !tbaa !5
  br label %1227

1227:                                             ; preds = %1215, %1209
  %1228 = phi i64 [ %.pre1551, %1215 ], [ %1111, %1209 ]
  %1229 = phi i64 [ %.pre1549, %1215 ], [ %.pre1550, %1209 ]
  %.61065 = phi float [ 1.000000e+00, %1215 ], [ %.410631414, %1209 ]
  %1230 = add nsw i64 %.511051413, -2
  %1231 = sub i64 %1230, %1229
  store i64 %1231, ptr %21, align 8, !tbaa !5
  %1232 = add nsw i64 %1229, 2
  %1233 = mul nsw i64 %.511051413, %36
  %1234 = getelementptr float, ptr %38, i64 %1232
  %1235 = getelementptr float, ptr %1234, i64 %1233
  %1236 = getelementptr float, ptr %45, i64 %1232
  %1237 = getelementptr float, ptr %1236, i64 %1228
  %1238 = call double @f2c_sdot(ptr noundef nonnull %21, ptr noundef %1235, ptr noundef nonnull @c__1, ptr noundef %1237, ptr noundef nonnull @c__1) #6
  %1239 = load i64, ptr %3, align 8, !tbaa !5
  %1240 = getelementptr float, ptr %1125, i64 %1239
  %1241 = load float, ptr %1240, align 4, !tbaa !9
  %1242 = fpext float %1241 to double
  %1243 = fsub double %1242, %1238
  %1244 = fptrunc double %1243 to float
  store float %1244, ptr %1240, align 4, !tbaa !9
  %1245 = load i64, ptr %24, align 8, !tbaa !5
  %1246 = sub i64 %1230, %1245
  store i64 %1246, ptr %21, align 8, !tbaa !5
  %1247 = add nsw i64 %1245, 2
  %1248 = getelementptr float, ptr %38, i64 %1247
  %1249 = getelementptr float, ptr %1248, i64 %1233
  %gep1401 = getelementptr float, ptr %invariant.gep1489, i64 %1247
  %1250 = call double @f2c_sdot(ptr noundef nonnull %21, ptr noundef %1249, ptr noundef nonnull @c__1, ptr noundef %gep1401, ptr noundef nonnull @c__1) #6
  %1251 = getelementptr float, ptr %1125, i64 %161
  %1252 = load float, ptr %1251, align 4, !tbaa !9
  %1253 = fpext float %1252 to double
  %1254 = fsub double %1253, %1250
  %1255 = fptrunc double %1254 to float
  store float %1255, ptr %1251, align 4, !tbaa !9
  %1256 = load i64, ptr %24, align 8, !tbaa !5
  %1257 = sub i64 %1230, %1256
  store i64 %1257, ptr %21, align 8, !tbaa !5
  %1258 = add nsw i64 %1256, 2
  %1259 = mul nsw i64 %.pre1571, %36
  %1260 = getelementptr float, ptr %38, i64 %1258
  %1261 = getelementptr float, ptr %1260, i64 %1259
  %1262 = load i64, ptr %3, align 8, !tbaa !5
  %1263 = getelementptr float, ptr %45, i64 %1258
  %1264 = getelementptr float, ptr %1263, i64 %1262
  %1265 = call double @f2c_sdot(ptr noundef nonnull %21, ptr noundef %1261, ptr noundef nonnull @c__1, ptr noundef %1264, ptr noundef nonnull @c__1) #6
  %1266 = load i64, ptr %3, align 8, !tbaa !5
  %1267 = getelementptr float, ptr %1210, i64 %1266
  %1268 = load float, ptr %1267, align 4, !tbaa !9
  %1269 = fpext float %1268 to double
  %1270 = fsub double %1269, %1265
  %1271 = fptrunc double %1270 to float
  store float %1271, ptr %1267, align 4, !tbaa !9
  %1272 = load i64, ptr %24, align 8, !tbaa !5
  %1273 = sub i64 %1230, %1272
  store i64 %1273, ptr %21, align 8, !tbaa !5
  %1274 = add nsw i64 %1272, 2
  %1275 = getelementptr float, ptr %38, i64 %1274
  %1276 = getelementptr float, ptr %1275, i64 %1259
  %gep1403 = getelementptr float, ptr %invariant.gep1489, i64 %1274
  %1277 = call double @f2c_sdot(ptr noundef nonnull %21, ptr noundef %1276, ptr noundef nonnull @c__1, ptr noundef %gep1403, ptr noundef nonnull @c__1) #6
  %1278 = getelementptr float, ptr %1210, i64 %161
  %1279 = load float, ptr %1278, align 4, !tbaa !9
  %1280 = fpext float %1279 to double
  %1281 = fsub double %1280, %1277
  %1282 = fptrunc double %1281 to float
  store float %1282, ptr %1278, align 4, !tbaa !9
  %1283 = load float, ptr %25, align 4, !tbaa !9
  %1284 = fneg float %1283
  store float %1284, ptr %22, align 4, !tbaa !9
  %1285 = getelementptr float, ptr %38, i64 %.511051413
  %1286 = getelementptr float, ptr %1285, i64 %1233
  %1287 = load i64, ptr %3, align 8, !tbaa !5
  %1288 = getelementptr float, ptr %1125, i64 %1287
  %1289 = call i32 @slaln2_(ptr noundef nonnull @c_true, ptr noundef nonnull @c__2, ptr noundef nonnull @c__2, ptr noundef nonnull %31, ptr noundef nonnull @c_b22, ptr noundef %1286, ptr noundef nonnull %5, ptr noundef nonnull @c_b22, ptr noundef nonnull @c_b22, ptr noundef %1288, ptr noundef nonnull %3, ptr noundef nonnull %26, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull @c__2, ptr noundef nonnull %32, ptr noundef nonnull %34, ptr noundef nonnull %28) #6
  %1290 = load float, ptr %32, align 4, !tbaa !9
  %1291 = fcmp une float %1290, 1.000000e+00
  br i1 %1291, label %1292, label %1305

1292:                                             ; preds = %1227
  %1293 = load i64, ptr %3, align 8, !tbaa !5
  %1294 = load i64, ptr %24, align 8, !tbaa !5
  %1295 = add i64 %1293, 1
  %1296 = sub i64 %1295, %1294
  store i64 %1296, ptr %21, align 8, !tbaa !5
  %1297 = getelementptr float, ptr %45, i64 %1294
  %1298 = getelementptr float, ptr %1297, i64 %1293
  %1299 = call i32 @f2c_sscal(ptr noundef nonnull %21, ptr noundef nonnull %32, ptr noundef %1298, ptr noundef nonnull @c__1) #6
  %1300 = load i64, ptr %3, align 8, !tbaa !5
  %1301 = load i64, ptr %24, align 8, !tbaa !5
  %1302 = add i64 %1300, 1
  %1303 = sub i64 %1302, %1301
  store i64 %1303, ptr %21, align 8, !tbaa !5
  %gep1405 = getelementptr float, ptr %invariant.gep1489, i64 %1301
  %1304 = call i32 @f2c_sscal(ptr noundef nonnull %21, ptr noundef nonnull %32, ptr noundef %gep1405, ptr noundef nonnull @c__1) #6
  br label %1305

1305:                                             ; preds = %1292, %1227
  %1306 = load float, ptr %23, align 16
  %1307 = load i64, ptr %3, align 8, !tbaa !5
  %1308 = getelementptr float, ptr %1125, i64 %1307
  store float %1306, ptr %1308, align 4, !tbaa !9
  %1309 = load float, ptr %727, align 8
  store float %1309, ptr %1251, align 4, !tbaa !9
  %1310 = load float, ptr %728, align 4
  %1311 = getelementptr float, ptr %1210, i64 %1307
  store float %1310, ptr %1311, align 4, !tbaa !9
  %1312 = load float, ptr %729, align 4
  store float %1312, ptr %1278, align 4, !tbaa !9
  %1313 = fcmp oge float %1306, 0.000000e+00
  %1314 = fneg float %1306
  %1315 = select i1 %1313, float %1306, float %1314
  %1316 = fcmp oge float %1309, 0.000000e+00
  %1317 = fneg float %1309
  %1318 = select i1 %1316, float %1309, float %1317
  %1319 = fcmp oge float %1315, %1318
  %1320 = select i1 %1319, float %1315, float %1318
  %1321 = fcmp oge float %1310, 0.000000e+00
  %1322 = fneg float %1310
  %1323 = select i1 %1321, float %1310, float %1322
  %1324 = fcmp oge float %1320, %1323
  %1325 = select i1 %1324, float %1320, float %1323
  %1326 = fcmp oge float %1312, 0.000000e+00
  %1327 = fneg float %1312
  %1328 = select i1 %1326, float %1312, float %1327
  %1329 = fcmp oge float %1325, %1328
  %1330 = select i1 %1329, float %1325, float %1328
  store float %1330, ptr %22, align 4, !tbaa !9
  %1331 = fcmp oge float %1330, %.61065
  %1332 = select i1 %1331, float %1330, float %.61065
  %1333 = fdiv float %133, %1332
  br label %.lr.ph1418._crit_edge

.lr.ph1418._crit_edge:                            ; preds = %.lr.ph1418, %1305, %1192
  %1334 = phi i64 [ %1307, %1305 ], [ %1194, %1192 ], [ %1111, %.lr.ph1418 ]
  %.71066 = phi float [ %1332, %1305 ], [ %1207, %1192 ], [ %.410631414, %.lr.ph1418 ]
  %.11 = phi i64 [ %.10, %1305 ], [ %.10, %1192 ], [ %.91415, %.lr.ph1418 ]
  %.3 = phi float [ %1333, %1305 ], [ %1208, %1192 ], [ %.21416, %.lr.ph1418 ]
  %1335 = load i64, ptr %20, align 8, !tbaa !5
  %.not1134.not = icmp slt i64 %.511051413, %1335
  br i1 %.not1134.not, label %.lr.ph1418, label %._crit_edge1419, !llvm.loop !67

._crit_edge1419:                                  ; preds = %.lr.ph1418._crit_edge, %._crit_edge1397.thread, %._crit_edge1397
  %1336 = phi i64 [ %1066, %._crit_edge1397 ], [ %1066, %._crit_edge1397.thread ], [ %1334, %.lr.ph1418._crit_edge ]
  %1337 = load i64, ptr %24, align 8, !tbaa !5
  br i1 %.not1135, label %1338, label %1411

1338:                                             ; preds = %._crit_edge1419
  %1339 = add i64 %1336, 1
  %1340 = sub i64 %1339, %1337
  store i64 %1340, ptr %20, align 8, !tbaa !5
  %1341 = getelementptr float, ptr %45, i64 %1337
  %1342 = getelementptr float, ptr %1341, i64 %1336
  %1343 = mul nsw i64 %.210751512, %39
  %1344 = getelementptr float, ptr %41, i64 %1337
  %1345 = getelementptr float, ptr %1344, i64 %1343
  %1346 = call i32 @f2c_scopy(ptr noundef nonnull %20, ptr noundef %1342, ptr noundef nonnull @c__1, ptr noundef %1345, ptr noundef nonnull @c__1) #6
  %1347 = load i64, ptr %3, align 8, !tbaa !5
  %1348 = load i64, ptr %24, align 8, !tbaa !5
  %1349 = add i64 %1347, 1
  %1350 = sub i64 %1349, %1348
  store i64 %1350, ptr %20, align 8, !tbaa !5
  %gep1500 = getelementptr float, ptr %invariant.gep1489, i64 %1348
  %1351 = add nsw i64 %.210751512, 1
  %1352 = mul nsw i64 %1351, %39
  %1353 = getelementptr float, ptr %41, i64 %1348
  %1354 = getelementptr float, ptr %1353, i64 %1352
  %1355 = call i32 @f2c_scopy(ptr noundef nonnull %20, ptr noundef %gep1500, ptr noundef nonnull @c__1, ptr noundef %1354, ptr noundef nonnull @c__1) #6
  %1356 = load i64, ptr %3, align 8, !tbaa !5
  %1357 = load i64, ptr %24, align 8, !tbaa !5
  %.not11361428 = icmp sgt i64 %1357, %1356
  br i1 %.not11361428, label %._crit_edge1567, label %.lr.ph1432

.lr.ph1432:                                       ; preds = %1338, %.lr.ph1432
  %.210711430 = phi float [ %1371, %.lr.ph1432 ], [ 0.000000e+00, %1338 ]
  %.910971429 = phi i64 [ %1372, %.lr.ph1432 ], [ %1357, %1338 ]
  %1358 = getelementptr float, ptr %41, i64 %.910971429
  %1359 = getelementptr float, ptr %1358, i64 %1343
  %1360 = load float, ptr %1359, align 4, !tbaa !9
  %1361 = fcmp oge float %1360, 0.000000e+00
  %1362 = fneg float %1360
  %1363 = select i1 %1361, float %1360, float %1362
  %1364 = getelementptr float, ptr %1358, i64 %1352
  %1365 = load float, ptr %1364, align 4, !tbaa !9
  %1366 = fcmp oge float %1365, 0.000000e+00
  %1367 = fneg float %1365
  %1368 = select i1 %1366, float %1365, float %1367
  %1369 = fadd float %1363, %1368
  %1370 = fcmp oge float %.210711430, %1369
  %1371 = select i1 %1370, float %.210711430, float %1369
  %1372 = add i64 %.910971429, 1
  %exitcond1535.not = icmp eq i64 %.910971429, %1356
  br i1 %exitcond1535.not, label %._crit_edge1433, label %.lr.ph1432, !llvm.loop !68

._crit_edge1433:                                  ; preds = %.lr.ph1432
  store float %1360, ptr %22, align 4, !tbaa !9
  br label %._crit_edge1567

._crit_edge1567:                                  ; preds = %1338, %._crit_edge1433
  %.21071.lcssa = phi float [ %1371, %._crit_edge1433 ], [ 0.000000e+00, %1338 ]
  %.pre-phi = add i64 %1356, 1
  %1373 = fdiv float 1.000000e+00, %.21071.lcssa
  store float %1373, ptr %33, align 4, !tbaa !9
  %1374 = sub i64 %.pre-phi, %1357
  store i64 %1374, ptr %20, align 8, !tbaa !5
  %1375 = getelementptr float, ptr %41, i64 %1357
  %1376 = getelementptr float, ptr %1375, i64 %1343
  %1377 = call i32 @f2c_sscal(ptr noundef nonnull %20, ptr noundef nonnull %33, ptr noundef %1376, ptr noundef nonnull @c__1) #6
  %1378 = load i64, ptr %3, align 8, !tbaa !5
  %1379 = load i64, ptr %24, align 8, !tbaa !5
  %1380 = add i64 %1378, 1
  %1381 = sub i64 %1380, %1379
  store i64 %1381, ptr %20, align 8, !tbaa !5
  %1382 = getelementptr float, ptr %41, i64 %1379
  %1383 = getelementptr float, ptr %1382, i64 %1352
  %1384 = call i32 @f2c_sscal(ptr noundef nonnull %20, ptr noundef nonnull %33, ptr noundef %1383, ptr noundef nonnull @c__1) #6
  %1385 = load i64, ptr %24, align 8, !tbaa !5
  %1386 = add nsw i64 %1385, -1
  store i64 %1386, ptr %20, align 8, !tbaa !5
  %.not1137.not1436 = icmp sgt i64 %1385, 1
  br i1 %.not1137.not1436, label %.lr.ph1439.preheader, label %.loopexit

.lr.ph1439.preheader:                             ; preds = %._crit_edge1567
  %1387 = add nsw i64 %1385, -1
  %min.iters.check1702 = icmp ult i64 %1385, 9
  %or.cond1785 = select i1 %min.iters.check1702, i1 true, i1 %diff.check1699
  br i1 %or.cond1785, label %.lr.ph1439.preheader1786, label %vector.ph1703

vector.ph1703:                                    ; preds = %.lr.ph1439.preheader
  %n.vec1705 = and i64 %1387, -8
  %ind.end1706 = or disjoint i64 %n.vec1705, 1
  br label %vector.body1708

vector.body1708:                                  ; preds = %vector.body1708, %vector.ph1703
  %index1709 = phi i64 [ 0, %vector.ph1703 ], [ %index.next1711, %vector.body1708 ]
  %offset.idx1710 = or disjoint i64 %index1709, 1
  %1388 = getelementptr float, ptr %41, i64 %offset.idx1710
  %1389 = getelementptr float, ptr %1388, i64 %1343
  %1390 = getelementptr i8, ptr %1389, i64 16
  store <4 x float> zeroinitializer, ptr %1389, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %1390, align 4, !tbaa !9
  %1391 = getelementptr float, ptr %1388, i64 %1352
  %1392 = getelementptr i8, ptr %1391, i64 16
  store <4 x float> zeroinitializer, ptr %1391, align 4, !tbaa !9
  store <4 x float> zeroinitializer, ptr %1392, align 4, !tbaa !9
  %index.next1711 = add nuw i64 %index1709, 8
  %1393 = icmp eq i64 %index.next1711, %n.vec1705
  br i1 %1393, label %middle.block1700, label %vector.body1708, !llvm.loop !69

middle.block1700:                                 ; preds = %vector.body1708
  %cmp.n1712 = icmp eq i64 %1387, %n.vec1705
  br i1 %cmp.n1712, label %.loopexit, label %.lr.ph1439.preheader1786

.lr.ph1439.preheader1786:                         ; preds = %middle.block1700, %.lr.ph1439.preheader
  %.1010981437.ph = phi i64 [ 1, %.lr.ph1439.preheader ], [ %ind.end1706, %middle.block1700 ]
  %1394 = sub i64 %1385, %.1010981437.ph
  %xtraiter1806 = and i64 %1394, 3
  %lcmp.mod1807.not = icmp eq i64 %xtraiter1806, 0
  br i1 %lcmp.mod1807.not, label %.lr.ph1439.prol.loopexit, label %.lr.ph1439.prol

.lr.ph1439.prol:                                  ; preds = %.lr.ph1439.preheader1786, %.lr.ph1439.prol
  %.1010981437.prol = phi i64 [ %1398, %.lr.ph1439.prol ], [ %.1010981437.ph, %.lr.ph1439.preheader1786 ]
  %prol.iter1808 = phi i64 [ %prol.iter1808.next, %.lr.ph1439.prol ], [ 0, %.lr.ph1439.preheader1786 ]
  %1395 = getelementptr float, ptr %41, i64 %.1010981437.prol
  %1396 = getelementptr float, ptr %1395, i64 %1343
  store float 0.000000e+00, ptr %1396, align 4, !tbaa !9
  %1397 = getelementptr float, ptr %1395, i64 %1352
  store float 0.000000e+00, ptr %1397, align 4, !tbaa !9
  %1398 = add nuw nsw i64 %.1010981437.prol, 1
  %prol.iter1808.next = add i64 %prol.iter1808, 1
  %prol.iter1808.cmp.not = icmp eq i64 %prol.iter1808.next, %xtraiter1806
  br i1 %prol.iter1808.cmp.not, label %.lr.ph1439.prol.loopexit, label %.lr.ph1439.prol, !llvm.loop !70

.lr.ph1439.prol.loopexit:                         ; preds = %.lr.ph1439.prol, %.lr.ph1439.preheader1786
  %.1010981437.unr = phi i64 [ %.1010981437.ph, %.lr.ph1439.preheader1786 ], [ %1398, %.lr.ph1439.prol ]
  %1399 = sub i64 %.1010981437.ph, %1385
  %1400 = icmp ugt i64 %1399, -4
  br i1 %1400, label %.loopexit, label %.lr.ph1439

.lr.ph1439:                                       ; preds = %.lr.ph1439.prol.loopexit, %.lr.ph1439
  %.1010981437 = phi i64 [ %1410, %.lr.ph1439 ], [ %.1010981437.unr, %.lr.ph1439.prol.loopexit ]
  %1401 = getelementptr float, ptr %41, i64 %.1010981437
  %1402 = getelementptr float, ptr %1401, i64 %1343
  store float 0.000000e+00, ptr %1402, align 4, !tbaa !9
  %1403 = getelementptr float, ptr %1401, i64 %1352
  store float 0.000000e+00, ptr %1403, align 4, !tbaa !9
  %gep1841 = getelementptr float, ptr %invariant.gep1840, i64 %.1010981437
  %1404 = getelementptr float, ptr %gep1841, i64 %1343
  store float 0.000000e+00, ptr %1404, align 4, !tbaa !9
  %1405 = getelementptr float, ptr %gep1841, i64 %1352
  store float 0.000000e+00, ptr %1405, align 4, !tbaa !9
  %gep1843 = getelementptr float, ptr %invariant.gep1842, i64 %.1010981437
  %1406 = getelementptr float, ptr %gep1843, i64 %1343
  store float 0.000000e+00, ptr %1406, align 4, !tbaa !9
  %1407 = getelementptr float, ptr %gep1843, i64 %1352
  store float 0.000000e+00, ptr %1407, align 4, !tbaa !9
  %gep1845 = getelementptr float, ptr %invariant.gep1844, i64 %.1010981437
  %1408 = getelementptr float, ptr %gep1845, i64 %1343
  store float 0.000000e+00, ptr %1408, align 4, !tbaa !9
  %1409 = getelementptr float, ptr %gep1845, i64 %1352
  store float 0.000000e+00, ptr %1409, align 4, !tbaa !9
  %1410 = add nuw nsw i64 %.1010981437, 4
  %exitcond1538.not.3 = icmp eq i64 %1410, %1385
  br i1 %exitcond1538.not.3, label %.loopexit, label %.lr.ph1439, !llvm.loop !71

1411:                                             ; preds = %._crit_edge1419
  %1412 = add nsw i64 %1336, -1
  %1413 = icmp slt i64 %1337, %1412
  br i1 %1413, label %1414, label %1434

1414:                                             ; preds = %1411
  %1415 = xor i64 %1337, -1
  %1416 = add i64 %1336, %1415
  store i64 %1416, ptr %20, align 8, !tbaa !5
  %1417 = add nsw i64 %1337, 2
  %1418 = mul nsw i64 %1417, %39
  %gep1484 = getelementptr float, ptr %invariant.gep1477, i64 %1418
  %1419 = getelementptr float, ptr %45, i64 %1417
  %1420 = getelementptr float, ptr %1419, i64 %1336
  %1421 = getelementptr float, ptr %45, i64 %1337
  %1422 = getelementptr float, ptr %1421, i64 %1336
  %1423 = mul nsw i64 %1337, %39
  %gep1486 = getelementptr float, ptr %invariant.gep1477, i64 %1423
  %1424 = call i32 @f2c_sgemv(ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %20, ptr noundef nonnull @c_b22, ptr noundef %gep1484, ptr noundef nonnull %7, ptr noundef %1420, ptr noundef nonnull @c__1, ptr noundef %1422, ptr noundef %gep1486, ptr noundef nonnull @c__1) #6
  %1425 = load i64, ptr %3, align 8, !tbaa !5
  %1426 = load i64, ptr %24, align 8, !tbaa !5
  %1427 = xor i64 %1426, -1
  %1428 = add i64 %1425, %1427
  store i64 %1428, ptr %20, align 8, !tbaa !5
  %1429 = add nsw i64 %1426, 2
  %1430 = mul nsw i64 %1429, %39
  %gep1488 = getelementptr float, ptr %invariant.gep1477, i64 %1430
  %gep1490 = getelementptr float, ptr %invariant.gep1489, i64 %1429
  %1431 = add nsw i64 %1426, 1
  %gep1492 = getelementptr float, ptr %invariant.gep1473, i64 %1426
  %1432 = mul nsw i64 %1431, %39
  %gep1494 = getelementptr float, ptr %invariant.gep1477, i64 %1432
  %1433 = call i32 @f2c_sgemv(ptr noundef nonnull @.str.8, ptr noundef nonnull %3, ptr noundef nonnull %20, ptr noundef nonnull @c_b22, ptr noundef %gep1488, ptr noundef nonnull %7, ptr noundef %gep1490, ptr noundef nonnull @c__1, ptr noundef %gep1492, ptr noundef %gep1494, ptr noundef nonnull @c__1) #6
  br label %1443

1434:                                             ; preds = %1411
  %1435 = getelementptr float, ptr %45, i64 %1337
  %1436 = getelementptr float, ptr %1435, i64 %1336
  %1437 = mul nsw i64 %1337, %39
  %gep1478 = getelementptr float, ptr %invariant.gep1477, i64 %1437
  %1438 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef %1436, ptr noundef %gep1478, ptr noundef nonnull @c__1) #6
  %1439 = load i64, ptr %24, align 8, !tbaa !5
  %1440 = add nsw i64 %1439, 1
  %gep1480 = getelementptr float, ptr %invariant.gep1473, i64 %1439
  %1441 = mul nsw i64 %1440, %39
  %gep1482 = getelementptr float, ptr %invariant.gep1477, i64 %1441
  %1442 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef %gep1480, ptr noundef %gep1482, ptr noundef nonnull @c__1) #6
  br label %1443

1443:                                             ; preds = %1434, %1414
  %1444 = load i64, ptr %3, align 8, !tbaa !5
  store i64 %1444, ptr %20, align 8, !tbaa !5
  %.not11381420 = icmp slt i64 %1444, 1
  %.pre1555 = load i64, ptr %24, align 8, !tbaa !5
  %.pre1569 = mul nsw i64 %.pre1555, %39
  br i1 %.not11381420, label %._crit_edge1566, label %.lr.ph1424

.lr.ph1424:                                       ; preds = %1443
  %1445 = add nsw i64 %.pre1555, 1
  %1446 = mul nsw i64 %1445, %39
  br label %1447

1447:                                             ; preds = %.lr.ph1424, %1447
  %.310721422 = phi float [ 0.000000e+00, %.lr.ph1424 ], [ %1461, %1447 ]
  %.1110991421 = phi i64 [ 1, %.lr.ph1424 ], [ %1462, %1447 ]
  %1448 = getelementptr float, ptr %41, i64 %.1110991421
  %1449 = getelementptr float, ptr %1448, i64 %.pre1569
  %1450 = load float, ptr %1449, align 4, !tbaa !9
  %1451 = fcmp oge float %1450, 0.000000e+00
  %1452 = fneg float %1450
  %1453 = select i1 %1451, float %1450, float %1452
  %1454 = getelementptr float, ptr %1448, i64 %1446
  %1455 = load float, ptr %1454, align 4, !tbaa !9
  %1456 = fcmp oge float %1455, 0.000000e+00
  %1457 = fneg float %1455
  %1458 = select i1 %1456, float %1455, float %1457
  %1459 = fadd float %1453, %1458
  %1460 = fcmp oge float %.310721422, %1459
  %1461 = select i1 %1460, float %.310721422, float %1459
  %1462 = add nuw i64 %.1110991421, 1
  %exitcond1534.not = icmp eq i64 %.1110991421, %1444
  br i1 %exitcond1534.not, label %._crit_edge1425, label %1447, !llvm.loop !72

._crit_edge1425:                                  ; preds = %1447
  store float %1450, ptr %22, align 4, !tbaa !9
  br label %._crit_edge1566

._crit_edge1566:                                  ; preds = %1443, %._crit_edge1425
  %.31072.lcssa = phi float [ %1461, %._crit_edge1425 ], [ 0.000000e+00, %1443 ]
  %1463 = fdiv float 1.000000e+00, %.31072.lcssa
  store float %1463, ptr %33, align 4, !tbaa !9
  %gep1496 = getelementptr float, ptr %invariant.gep1477, i64 %.pre1569
  %1464 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1496, ptr noundef nonnull @c__1) #6
  %1465 = load i64, ptr %24, align 8, !tbaa !5
  %1466 = add nsw i64 %1465, 1
  %1467 = mul nsw i64 %1466, %39
  %gep1498 = getelementptr float, ptr %invariant.gep1477, i64 %1467
  %1468 = call i32 @f2c_sscal(ptr noundef nonnull %3, ptr noundef nonnull %33, ptr noundef %gep1498, ptr noundef nonnull @c__1) #6
  br label %.loopexit

.loopexit:                                        ; preds = %.lr.ph1439.prol.loopexit, %.lr.ph1439, %middle.block1700, %.lr.ph1468.preheader, %._crit_edge1567, %971, %1021, %._crit_edge1566
  %spec.select1161.v = phi i64 [ 1, %1021 ], [ 2, %._crit_edge1566 ], [ 1, %971 ], [ 2, %._crit_edge1567 ], [ 1, %.lr.ph1468.preheader ], [ 2, %middle.block1700 ], [ 2, %.lr.ph1439 ], [ 2, %.lr.ph1439.prol.loopexit ]
  %spec.select1161 = add nsw i64 %spec.select1161.v, %.210751512
  %1469 = icmp eq i64 %.41081, -1
  br i1 %1469, label %.thread1241, label %.thread1235

.thread1235:                                      ; preds = %746, %.loopexit
  %.310761233 = phi i64 [ %spec.select1161, %.loopexit ], [ %.210751512, %746 ]
  %1470 = icmp eq i64 %.41081, 1
  %spec.select1250 = select i1 %1470, i64 -1, i64 %.41081
  br label %.thread1241

.thread1241:                                      ; preds = %.thread1235, %.loopexit, %734
  %.3107612331244 = phi i64 [ %.210751512, %734 ], [ %spec.select1161, %.loopexit ], [ %.310761233, %.thread1235 ]
  %1471 = phi i64 [ 0, %734 ], [ 0, %.loopexit ], [ %spec.select1250, %.thread1235 ]
  %1472 = load i64, ptr %24, align 8, !tbaa !5
  %1473 = add nsw i64 %1472, 1
  store i64 %1473, ptr %24, align 8, !tbaa !5
  %1474 = load i64, ptr %19, align 8, !tbaa !5
  %.not1129.not = icmp slt i64 %1472, %1474
  br i1 %.not1129.not, label %734, label %.loopexit1278, !llvm.loop !73

.loopexit1278:                                    ; preds = %.thread1241, %723, %.loopexit1282, %117, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 16, 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 8, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #6
  ret i32 0
}

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

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

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

declare double @slamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

declare i32 @f2c_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 double @f2c_sdot(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i64 @llvm.umax.i64(i64, i64) #4

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress 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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = distinct !{!14, !12}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.unroll.disable"}
!17 = distinct !{!17, !12, !18, !19}
!18 = !{!"llvm.loop.isvectorized", i32 1}
!19 = !{!"llvm.loop.unroll.runtime.disable"}
!20 = distinct !{!20, !12, !18}
!21 = distinct !{!21, !12}
!22 = !{!23}
!23 = distinct !{!23, !24}
!24 = distinct !{!24, !"LVerDomain"}
!25 = !{!26}
!26 = distinct !{!26, !24}
!27 = !{!28}
!28 = distinct !{!28, !24}
!29 = !{!30}
!30 = distinct !{!30, !24}
!31 = !{!32, !23, !28, !26, !33}
!32 = distinct !{!32, !24}
!33 = distinct !{!33, !24}
!34 = !{!33}
!35 = !{!32}
!36 = !{!23, !28, !26, !33}
!37 = distinct !{!37, !12, !18, !19}
!38 = distinct !{!38, !12, !18}
!39 = distinct !{!39, !12}
!40 = distinct !{!40, !12}
!41 = distinct !{!41, !12, !18, !19}
!42 = distinct !{!42, !16}
!43 = distinct !{!43, !12, !18}
!44 = distinct !{!44, !12}
!45 = distinct !{!45, !12}
!46 = distinct !{!46, !12, !18, !19}
!47 = distinct !{!47, !16}
!48 = distinct !{!48, !12, !18}
!49 = distinct !{!49, !12}
!50 = !{!51}
!51 = distinct !{!51, !52}
!52 = distinct !{!52, !"LVerDomain"}
!53 = !{!54}
!54 = distinct !{!54, !52}
!55 = !{!56}
!56 = distinct !{!56, !52}
!57 = !{!58}
!58 = distinct !{!58, !52}
!59 = !{!60, !51, !56, !54, !61}
!60 = distinct !{!60, !52}
!61 = distinct !{!61, !52}
!62 = !{!61}
!63 = !{!60}
!64 = !{!51, !56, !54, !61}
!65 = distinct !{!65, !12, !18, !19}
!66 = distinct !{!66, !12, !18}
!67 = distinct !{!67, !12}
!68 = distinct !{!68, !12}
!69 = distinct !{!69, !12, !18, !19}
!70 = distinct !{!70, !16}
!71 = distinct !{!71, !12, !18}
!72 = distinct !{!72, !12}
!73 = distinct !{!73, !12}


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