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

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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@c_b42 = external hidden global float, align 4

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

126:                                              ; preds = %17
  %127 = load i32, ptr %64, align 4, !tbaa !9
  %128 = icmp ne i32 %127, 0
  br i1 %128, label %135, label %129

129:                                              ; preds = %126
  %130 = load ptr, ptr %18, align 8, !tbaa !5
  %131 = call i32 @lsame_(ptr noundef %130, ptr noundef @.str.2)
  %132 = icmp ne i32 %131, 0
  br i1 %132, label %135, label %133

133:                                              ; preds = %129
  %134 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -1, ptr %134, align 4, !tbaa !9
  br label %225

135:                                              ; preds = %129, %126, %17
  %136 = load ptr, ptr %19, align 8, !tbaa !5
  %137 = load i32, ptr %136, align 4, !tbaa !9
  %138 = icmp slt i32 %137, 0
  br i1 %138, label %139, label %141

139:                                              ; preds = %135
  %140 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -2, ptr %140, align 4, !tbaa !9
  br label %224

141:                                              ; preds = %135
  %142 = load ptr, ptr %20, align 8, !tbaa !5
  %143 = load i32, ptr %142, align 4, !tbaa !9
  %144 = icmp slt i32 %143, 0
  br i1 %144, label %151, label %145

145:                                              ; preds = %141
  %146 = load ptr, ptr %20, align 8, !tbaa !5
  %147 = load i32, ptr %146, align 4, !tbaa !9
  %148 = load ptr, ptr %19, align 8, !tbaa !5
  %149 = load i32, ptr %148, align 4, !tbaa !9
  %150 = icmp sgt i32 %147, %149
  br i1 %150, label %151, label %153

151:                                              ; preds = %145, %141
  %152 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -3, ptr %152, align 4, !tbaa !9
  br label %223

153:                                              ; preds = %145
  %154 = load ptr, ptr %22, align 8, !tbaa !5
  %155 = load i32, ptr %154, align 4, !tbaa !9
  %156 = load ptr, ptr %19, align 8, !tbaa !5
  %157 = load i32, ptr %156, align 4, !tbaa !9
  %158 = icmp slt i32 %155, %157
  br i1 %158, label %159, label %161

159:                                              ; preds = %153
  %160 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -5, ptr %160, align 4, !tbaa !9
  br label %222

161:                                              ; preds = %153
  %162 = load i32, ptr %65, align 4, !tbaa !9
  %163 = icmp ne i32 %162, 0
  br i1 %163, label %167, label %164

164:                                              ; preds = %161
  %165 = load i32, ptr %64, align 4, !tbaa !9
  %166 = icmp ne i32 %165, 0
  br i1 %166, label %167, label %173

167:                                              ; preds = %164, %161
  %168 = load ptr, ptr %25, align 8, !tbaa !5
  %169 = load i32, ptr %168, align 4, !tbaa !9
  %170 = icmp slt i32 %169, 0
  br i1 %170, label %171, label %173

171:                                              ; preds = %167
  %172 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -8, ptr %172, align 4, !tbaa !9
  br label %221

173:                                              ; preds = %167, %164
  %174 = load i32, ptr %65, align 4, !tbaa !9
  %175 = icmp ne i32 %174, 0
  br i1 %175, label %176, label %182

176:                                              ; preds = %173
  %177 = load ptr, ptr %27, align 8, !tbaa !5
  %178 = load i32, ptr %177, align 4, !tbaa !9
  %179 = load ptr, ptr %20, align 8, !tbaa !5
  %180 = load i32, ptr %179, align 4, !tbaa !9
  %181 = icmp slt i32 %178, %180
  br i1 %181, label %191, label %182

182:                                              ; preds = %176, %173
  %183 = load i32, ptr %64, align 4, !tbaa !9
  %184 = icmp ne i32 %183, 0
  br i1 %184, label %185, label %193

185:                                              ; preds = %182
  %186 = load ptr, ptr %27, align 8, !tbaa !5
  %187 = load i32, ptr %186, align 4, !tbaa !9
  %188 = load ptr, ptr %25, align 8, !tbaa !5
  %189 = load i32, ptr %188, align 4, !tbaa !9
  %190 = icmp slt i32 %187, %189
  br i1 %190, label %191, label %193

191:                                              ; preds = %185, %176
  %192 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -10, ptr %192, align 4, !tbaa !9
  br label %220

193:                                              ; preds = %185, %182
  %194 = load ptr, ptr %30, align 8, !tbaa !5
  %195 = load float, ptr %194, align 4, !tbaa !11
  %196 = load ptr, ptr %28, align 8, !tbaa !5
  %197 = load float, ptr %196, align 4, !tbaa !11
  %198 = fcmp ole float %195, %197
  br i1 %198, label %199, label %201

199:                                              ; preds = %193
  %200 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -13, ptr %200, align 4, !tbaa !9
  br label %219

201:                                              ; preds = %193
  %202 = load ptr, ptr %31, align 8, !tbaa !5
  %203 = load i32, ptr %202, align 4, !tbaa !9
  %204 = icmp slt i32 %203, 0
  br i1 %204, label %205, label %207

205:                                              ; preds = %201
  %206 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -14, ptr %206, align 4, !tbaa !9
  br label %218

207:                                              ; preds = %201
  %208 = load ptr, ptr %33, align 8, !tbaa !5
  %209 = load i32, ptr %208, align 4, !tbaa !9
  %210 = load ptr, ptr %19, align 8, !tbaa !5
  %211 = load i32, ptr %210, align 4, !tbaa !9
  %212 = icmp slt i32 %209, %211
  br i1 %212, label %213, label %215

213:                                              ; preds = %207
  %214 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 -16, ptr %214, align 4, !tbaa !9
  br label %217

215:                                              ; preds = %207
  %216 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 0, ptr %216, align 4, !tbaa !9
  br label %217

217:                                              ; preds = %215, %213
  br label %218

218:                                              ; preds = %217, %205
  br label %219

219:                                              ; preds = %218, %199
  br label %220

220:                                              ; preds = %219, %191
  br label %221

221:                                              ; preds = %220, %171
  br label %222

222:                                              ; preds = %221, %159
  br label %223

223:                                              ; preds = %222, %151
  br label %224

224:                                              ; preds = %223, %139
  br label %225

225:                                              ; preds = %224, %133
  %226 = load ptr, ptr %34, align 8, !tbaa !5
  %227 = load i32, ptr %226, align 4, !tbaa !9
  %228 = icmp ne i32 %227, 0
  br i1 %228, label %229, label %234

229:                                              ; preds = %225
  %230 = load ptr, ptr %34, align 8, !tbaa !5
  %231 = load i32, ptr %230, align 4, !tbaa !9
  %232 = sub nsw i32 0, %231
  store i32 %232, ptr %39, align 4, !tbaa !9
  %233 = call i32 @xerbla_(ptr noundef @.str.3, ptr noundef %39, i32 noundef 6)
  store i32 1, ptr %93, align 4
  br label %3664

234:                                              ; preds = %225
  %235 = load i32, ptr %65, align 4, !tbaa !9
  %236 = icmp ne i32 %235, 0
  br i1 %236, label %237, label %240

237:                                              ; preds = %234
  %238 = load ptr, ptr %20, align 8, !tbaa !5
  %239 = load i32, ptr %238, align 4, !tbaa !9
  store i32 %239, ptr %88, align 4, !tbaa !9
  br label %247

240:                                              ; preds = %234
  %241 = load i32, ptr %64, align 4, !tbaa !9
  %242 = icmp ne i32 %241, 0
  br i1 %242, label %243, label %246

243:                                              ; preds = %240
  %244 = load ptr, ptr %25, align 8, !tbaa !5
  %245 = load i32, ptr %244, align 4, !tbaa !9
  store i32 %245, ptr %88, align 4, !tbaa !9
  br label %246

246:                                              ; preds = %243, %240
  br label %247

247:                                              ; preds = %246, %237
  %248 = load i32, ptr %65, align 4, !tbaa !9
  %249 = icmp ne i32 %248, 0
  br i1 %249, label %253, label %250

250:                                              ; preds = %247
  %251 = load i32, ptr %64, align 4, !tbaa !9
  %252 = icmp ne i32 %251, 0
  br label %253

253:                                              ; preds = %250, %247
  %254 = phi i1 [ true, %247 ], [ %252, %250 ]
  %255 = zext i1 %254 to i32
  store i32 %255, ptr %65, align 4, !tbaa !9
  %256 = load ptr, ptr %28, align 8, !tbaa !5
  %257 = load float, ptr %256, align 4, !tbaa !11
  %258 = fpext float %257 to double
  %259 = call double @sqrt(double noundef %258) #5
  %260 = fptrunc double %259 to float
  store float %260, ptr %90, align 4, !tbaa !11
  %261 = load ptr, ptr %29, align 8, !tbaa !5
  %262 = load float, ptr %261, align 4, !tbaa !11
  %263 = fpext float %262 to double
  %264 = call double @sqrt(double noundef %263) #5
  %265 = fptrunc double %264 to float
  store float %265, ptr %67, align 4, !tbaa !11
  %266 = load ptr, ptr %29, align 8, !tbaa !5
  %267 = load float, ptr %266, align 4, !tbaa !11
  %268 = load ptr, ptr %28, align 8, !tbaa !5
  %269 = load float, ptr %268, align 4, !tbaa !11
  %270 = fdiv float %267, %269
  store float %270, ptr %62, align 4, !tbaa !11
  %271 = load ptr, ptr %29, align 8, !tbaa !5
  %272 = load float, ptr %271, align 4, !tbaa !11
  %273 = fdiv float 1.000000e+00, %272
  store float %273, ptr %81, align 4, !tbaa !11
  %274 = load float, ptr %67, align 4, !tbaa !11
  %275 = fdiv float 1.000000e+00, %274
  store float %275, ptr %89, align 4, !tbaa !11
  %276 = load float, ptr %90, align 4, !tbaa !11
  %277 = fdiv float 1.000000e+00, %276
  store float %277, ptr %51, align 4, !tbaa !11
  %278 = load ptr, ptr %30, align 8, !tbaa !5
  %279 = load float, ptr %278, align 4, !tbaa !11
  %280 = fpext float %279 to double
  %281 = call double @sqrt(double noundef %280) #5
  %282 = fptrunc double %281 to float
  store float %282, ptr %92, align 4, !tbaa !11
  %283 = load ptr, ptr %20, align 8, !tbaa !5
  %284 = load i32, ptr %283, align 4, !tbaa !9
  %285 = load ptr, ptr %20, align 8, !tbaa !5
  %286 = load i32, ptr %285, align 4, !tbaa !9
  %287 = sub nsw i32 %286, 1
  %288 = mul nsw i32 %284, %287
  %289 = sdiv i32 %288, 2
  store i32 %289, ptr %77, align 4, !tbaa !9
  store i32 0, ptr %78, align 4, !tbaa !9
  %290 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 0
  store float 0.000000e+00, ptr %290, align 16, !tbaa !11
  store i32 0, ptr %71, align 4, !tbaa !9
  %291 = load ptr, ptr %20, align 8, !tbaa !5
  %292 = load i32, ptr %291, align 4, !tbaa !9
  %293 = icmp sle i32 8, %292
  br i1 %293, label %294, label %295

294:                                              ; preds = %253
  br label %298

295:                                              ; preds = %253
  %296 = load ptr, ptr %20, align 8, !tbaa !5
  %297 = load i32, ptr %296, align 4, !tbaa !9
  br label %298

298:                                              ; preds = %295, %294
  %299 = phi i32 [ 8, %294 ], [ %297, %295 ]
  store i32 %299, ptr %82, align 4, !tbaa !9
  %300 = load ptr, ptr %20, align 8, !tbaa !5
  %301 = load i32, ptr %300, align 4, !tbaa !9
  %302 = load i32, ptr %82, align 4, !tbaa !9
  %303 = sdiv i32 %301, %302
  store i32 %303, ptr %87, align 4, !tbaa !9
  %304 = load i32, ptr %87, align 4, !tbaa !9
  %305 = load i32, ptr %82, align 4, !tbaa !9
  %306 = mul nsw i32 %304, %305
  %307 = load ptr, ptr %20, align 8, !tbaa !5
  %308 = load i32, ptr %307, align 4, !tbaa !9
  %309 = icmp ne i32 %306, %308
  br i1 %309, label %310, label %313

310:                                              ; preds = %298
  %311 = load i32, ptr %87, align 4, !tbaa !9
  %312 = add nsw i32 %311, 1
  store i32 %312, ptr %87, align 4, !tbaa !9
  br label %313

313:                                              ; preds = %310, %298
  %314 = load i32, ptr %82, align 4, !tbaa !9
  store i32 %314, ptr %39, align 4, !tbaa !9
  %315 = load i32, ptr %39, align 4, !tbaa !9
  %316 = load i32, ptr %39, align 4, !tbaa !9
  %317 = mul nsw i32 %315, %316
  %318 = add nsw i32 %317, 1
  store i32 %318, ptr %72, align 4, !tbaa !9
  %319 = load i32, ptr %82, align 4, !tbaa !9
  %320 = icmp sle i32 5, %319
  br i1 %320, label %321, label %322

321:                                              ; preds = %313
  br label %324

322:                                              ; preds = %313
  %323 = load i32, ptr %82, align 4, !tbaa !9
  br label %324

324:                                              ; preds = %322, %321
  %325 = phi i32 [ 5, %321 ], [ %323, %322 ]
  store i32 %325, ptr %91, align 4, !tbaa !9
  store i32 1, ptr %83, align 4, !tbaa !9
  store i32 0, ptr %71, align 4, !tbaa !9
  store i32 0, ptr %52, align 4, !tbaa !9
  %326 = load ptr, ptr %31, align 8, !tbaa !5
  %327 = load i32, ptr %326, align 4, !tbaa !9
  store i32 %327, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %55, align 4, !tbaa !9
  br label %328

328:                                              ; preds = %3552, %324
  %329 = load i32, ptr %55, align 4, !tbaa !9
  %330 = load i32, ptr %39, align 4, !tbaa !9
  %331 = icmp sle i32 %329, %330
  br i1 %331, label %332, label %3555

332:                                              ; preds = %328
  store float 0.000000e+00, ptr %73, align 4, !tbaa !11
  store float 0.000000e+00, ptr %75, align 4, !tbaa !11
  store i32 0, ptr %79, align 4, !tbaa !9
  store i32 0, ptr %78, align 4, !tbaa !9
  store i32 0, ptr %52, align 4, !tbaa !9
  %333 = load i32, ptr %87, align 4, !tbaa !9
  store i32 %333, ptr %40, align 4, !tbaa !9
  store i32 1, ptr %85, align 4, !tbaa !9
  br label %334

334:                                              ; preds = %3431, %332
  %335 = load i32, ptr %85, align 4, !tbaa !9
  %336 = load i32, ptr %40, align 4, !tbaa !9
  %337 = icmp sle i32 %335, %336
  br i1 %337, label %338, label %3434

338:                                              ; preds = %334
  %339 = load i32, ptr %85, align 4, !tbaa !9
  %340 = sub nsw i32 %339, 1
  %341 = load i32, ptr %82, align 4, !tbaa !9
  %342 = mul nsw i32 %340, %341
  %343 = add nsw i32 %342, 1
  store i32 %343, ptr %84, align 4, !tbaa !9
  %344 = load i32, ptr %83, align 4, !tbaa !9
  store i32 %344, ptr %42, align 4, !tbaa !9
  %345 = load i32, ptr %87, align 4, !tbaa !9
  %346 = load i32, ptr %85, align 4, !tbaa !9
  %347 = sub nsw i32 %345, %346
  store i32 %347, ptr %43, align 4, !tbaa !9
  %348 = load i32, ptr %42, align 4, !tbaa !9
  %349 = load i32, ptr %43, align 4, !tbaa !9
  %350 = icmp sle i32 %348, %349
  br i1 %350, label %351, label %353

351:                                              ; preds = %338
  %352 = load i32, ptr %42, align 4, !tbaa !9
  br label %355

353:                                              ; preds = %338
  %354 = load i32, ptr %43, align 4, !tbaa !9
  br label %355

355:                                              ; preds = %353, %351
  %356 = phi i32 [ %352, %351 ], [ %354, %353 ]
  store i32 %356, ptr %41, align 4, !tbaa !9
  store i32 0, ptr %76, align 4, !tbaa !9
  br label %357

357:                                              ; preds = %1878, %355
  %358 = load i32, ptr %76, align 4, !tbaa !9
  %359 = load i32, ptr %41, align 4, !tbaa !9
  %360 = icmp sle i32 %358, %359
  br i1 %360, label %361, label %1881

361:                                              ; preds = %357
  %362 = load i32, ptr %76, align 4, !tbaa !9
  %363 = load i32, ptr %82, align 4, !tbaa !9
  %364 = mul nsw i32 %362, %363
  %365 = load i32, ptr %84, align 4, !tbaa !9
  %366 = add nsw i32 %365, %364
  store i32 %366, ptr %84, align 4, !tbaa !9
  %367 = load i32, ptr %84, align 4, !tbaa !9
  %368 = load i32, ptr %82, align 4, !tbaa !9
  %369 = add nsw i32 %367, %368
  %370 = sub nsw i32 %369, 1
  store i32 %370, ptr %43, align 4, !tbaa !9
  %371 = load ptr, ptr %20, align 8, !tbaa !5
  %372 = load i32, ptr %371, align 4, !tbaa !9
  %373 = sub nsw i32 %372, 1
  store i32 %373, ptr %44, align 4, !tbaa !9
  %374 = load i32, ptr %43, align 4, !tbaa !9
  %375 = load i32, ptr %44, align 4, !tbaa !9
  %376 = icmp sle i32 %374, %375
  br i1 %376, label %377, label %379

377:                                              ; preds = %361
  %378 = load i32, ptr %43, align 4, !tbaa !9
  br label %381

379:                                              ; preds = %361
  %380 = load i32, ptr %44, align 4, !tbaa !9
  br label %381

381:                                              ; preds = %379, %377
  %382 = phi i32 [ %378, %377 ], [ %380, %379 ]
  store i32 %382, ptr %42, align 4, !tbaa !9
  %383 = load i32, ptr %84, align 4, !tbaa !9
  store i32 %383, ptr %56, align 4, !tbaa !9
  br label %384

384:                                              ; preds = %1874, %381
  %385 = load i32, ptr %56, align 4, !tbaa !9
  %386 = load i32, ptr %42, align 4, !tbaa !9
  %387 = icmp sle i32 %385, %386
  br i1 %387, label %388, label %1877

388:                                              ; preds = %384
  %389 = load ptr, ptr %20, align 8, !tbaa !5
  %390 = load i32, ptr %389, align 4, !tbaa !9
  %391 = load i32, ptr %56, align 4, !tbaa !9
  %392 = sub nsw i32 %390, %391
  %393 = add nsw i32 %392, 1
  store i32 %393, ptr %43, align 4, !tbaa !9
  %394 = load ptr, ptr %24, align 8, !tbaa !5
  %395 = load i32, ptr %56, align 4, !tbaa !9
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds float, ptr %394, i64 %396
  %398 = call i32 @isamax_(ptr noundef %43, ptr noundef %397, ptr noundef @c__1)
  %399 = load i32, ptr %56, align 4, !tbaa !9
  %400 = add nsw i32 %398, %399
  %401 = sub nsw i32 %400, 1
  store i32 %401, ptr %57, align 4, !tbaa !9
  %402 = load i32, ptr %56, align 4, !tbaa !9
  %403 = load i32, ptr %57, align 4, !tbaa !9
  %404 = icmp ne i32 %402, %403
  br i1 %404, label %405, label %477

405:                                              ; preds = %388
  %406 = load ptr, ptr %19, align 8, !tbaa !5
  %407 = load ptr, ptr %21, align 8, !tbaa !5
  %408 = load i32, ptr %56, align 4, !tbaa !9
  %409 = load i32, ptr %35, align 4, !tbaa !9
  %410 = mul nsw i32 %408, %409
  %411 = add nsw i32 %410, 1
  %412 = sext i32 %411 to i64
  %413 = getelementptr inbounds float, ptr %407, i64 %412
  %414 = load ptr, ptr %21, align 8, !tbaa !5
  %415 = load i32, ptr %57, align 4, !tbaa !9
  %416 = load i32, ptr %35, align 4, !tbaa !9
  %417 = mul nsw i32 %415, %416
  %418 = add nsw i32 %417, 1
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds float, ptr %414, i64 %419
  call void @sswap_(ptr noundef %406, ptr noundef %413, ptr noundef @c__1, ptr noundef %420, ptr noundef @c__1)
  %421 = load i32, ptr %65, align 4, !tbaa !9
  %422 = icmp ne i32 %421, 0
  br i1 %422, label %423, label %438

423:                                              ; preds = %405
  %424 = load ptr, ptr %26, align 8, !tbaa !5
  %425 = load i32, ptr %56, align 4, !tbaa !9
  %426 = load i32, ptr %37, align 4, !tbaa !9
  %427 = mul nsw i32 %425, %426
  %428 = add nsw i32 %427, 1
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds float, ptr %424, i64 %429
  %431 = load ptr, ptr %26, align 8, !tbaa !5
  %432 = load i32, ptr %57, align 4, !tbaa !9
  %433 = load i32, ptr %37, align 4, !tbaa !9
  %434 = mul nsw i32 %432, %433
  %435 = add nsw i32 %434, 1
  %436 = sext i32 %435 to i64
  %437 = getelementptr inbounds float, ptr %431, i64 %436
  call void @sswap_(ptr noundef %88, ptr noundef %430, ptr noundef @c__1, ptr noundef %437, ptr noundef @c__1)
  br label %438

438:                                              ; preds = %423, %405
  %439 = load ptr, ptr %24, align 8, !tbaa !5
  %440 = load i32, ptr %56, align 4, !tbaa !9
  %441 = sext i32 %440 to i64
  %442 = getelementptr inbounds float, ptr %439, i64 %441
  %443 = load float, ptr %442, align 4, !tbaa !11
  store float %443, ptr %54, align 4, !tbaa !11
  %444 = load ptr, ptr %24, align 8, !tbaa !5
  %445 = load i32, ptr %57, align 4, !tbaa !9
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds float, ptr %444, i64 %446
  %448 = load float, ptr %447, align 4, !tbaa !11
  %449 = load ptr, ptr %24, align 8, !tbaa !5
  %450 = load i32, ptr %56, align 4, !tbaa !9
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds float, ptr %449, i64 %451
  store float %448, ptr %452, align 4, !tbaa !11
  %453 = load float, ptr %54, align 4, !tbaa !11
  %454 = load ptr, ptr %24, align 8, !tbaa !5
  %455 = load i32, ptr %57, align 4, !tbaa !9
  %456 = sext i32 %455 to i64
  %457 = getelementptr inbounds float, ptr %454, i64 %456
  store float %453, ptr %457, align 4, !tbaa !11
  %458 = load ptr, ptr %23, align 8, !tbaa !5
  %459 = load i32, ptr %56, align 4, !tbaa !9
  %460 = sext i32 %459 to i64
  %461 = getelementptr inbounds float, ptr %458, i64 %460
  %462 = load float, ptr %461, align 4, !tbaa !11
  store float %462, ptr %54, align 4, !tbaa !11
  %463 = load ptr, ptr %23, align 8, !tbaa !5
  %464 = load i32, ptr %57, align 4, !tbaa !9
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds float, ptr %463, i64 %465
  %467 = load float, ptr %466, align 4, !tbaa !11
  %468 = load ptr, ptr %23, align 8, !tbaa !5
  %469 = load i32, ptr %56, align 4, !tbaa !9
  %470 = sext i32 %469 to i64
  %471 = getelementptr inbounds float, ptr %468, i64 %470
  store float %467, ptr %471, align 4, !tbaa !11
  %472 = load float, ptr %54, align 4, !tbaa !11
  %473 = load ptr, ptr %23, align 8, !tbaa !5
  %474 = load i32, ptr %57, align 4, !tbaa !9
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds float, ptr %473, i64 %475
  store float %472, ptr %476, align 4, !tbaa !11
  br label %477

477:                                              ; preds = %438, %388
  %478 = load i32, ptr %76, align 4, !tbaa !9
  %479 = icmp eq i32 %478, 0
  br i1 %479, label %480, label %549

480:                                              ; preds = %477
  %481 = load ptr, ptr %24, align 8, !tbaa !5
  %482 = load i32, ptr %56, align 4, !tbaa !9
  %483 = sext i32 %482 to i64
  %484 = getelementptr inbounds float, ptr %481, i64 %483
  %485 = load float, ptr %484, align 4, !tbaa !11
  %486 = load float, ptr %89, align 4, !tbaa !11
  %487 = fcmp olt float %485, %486
  br i1 %487, label %488, label %516

488:                                              ; preds = %480
  %489 = load ptr, ptr %24, align 8, !tbaa !5
  %490 = load i32, ptr %56, align 4, !tbaa !9
  %491 = sext i32 %490 to i64
  %492 = getelementptr inbounds float, ptr %489, i64 %491
  %493 = load float, ptr %492, align 4, !tbaa !11
  %494 = load float, ptr %67, align 4, !tbaa !11
  %495 = fcmp ogt float %493, %494
  br i1 %495, label %496, label %516

496:                                              ; preds = %488
  %497 = load ptr, ptr %19, align 8, !tbaa !5
  %498 = load ptr, ptr %21, align 8, !tbaa !5
  %499 = load i32, ptr %56, align 4, !tbaa !9
  %500 = load i32, ptr %35, align 4, !tbaa !9
  %501 = mul nsw i32 %499, %500
  %502 = add nsw i32 %501, 1
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds float, ptr %498, i64 %503
  %505 = call float @snrm2_(ptr noundef %497, ptr noundef %504, ptr noundef @c__1)
  %506 = load ptr, ptr %23, align 8, !tbaa !5
  %507 = load i32, ptr %56, align 4, !tbaa !9
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds float, ptr %506, i64 %508
  %510 = load float, ptr %509, align 4, !tbaa !11
  %511 = fmul float %505, %510
  %512 = load ptr, ptr %24, align 8, !tbaa !5
  %513 = load i32, ptr %56, align 4, !tbaa !9
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds float, ptr %512, i64 %514
  store float %511, ptr %515, align 4, !tbaa !11
  br label %543

516:                                              ; preds = %488, %480
  store float 0.000000e+00, ptr %54, align 4, !tbaa !11
  store float 1.000000e+00, ptr %47, align 4, !tbaa !11
  %517 = load ptr, ptr %19, align 8, !tbaa !5
  %518 = load ptr, ptr %21, align 8, !tbaa !5
  %519 = load i32, ptr %56, align 4, !tbaa !9
  %520 = load i32, ptr %35, align 4, !tbaa !9
  %521 = mul nsw i32 %519, %520
  %522 = add nsw i32 %521, 1
  %523 = sext i32 %522 to i64
  %524 = getelementptr inbounds float, ptr %518, i64 %523
  call void @slassq_(ptr noundef %517, ptr noundef %524, ptr noundef @c__1, ptr noundef %54, ptr noundef %47)
  %525 = load float, ptr %54, align 4, !tbaa !11
  %526 = fpext float %525 to double
  %527 = load float, ptr %47, align 4, !tbaa !11
  %528 = fpext float %527 to double
  %529 = call double @sqrt(double noundef %528) #5
  %530 = fmul double %526, %529
  %531 = load ptr, ptr %23, align 8, !tbaa !5
  %532 = load i32, ptr %56, align 4, !tbaa !9
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds float, ptr %531, i64 %533
  %535 = load float, ptr %534, align 4, !tbaa !11
  %536 = fpext float %535 to double
  %537 = fmul double %530, %536
  %538 = fptrunc double %537 to float
  %539 = load ptr, ptr %24, align 8, !tbaa !5
  %540 = load i32, ptr %56, align 4, !tbaa !9
  %541 = sext i32 %540 to i64
  %542 = getelementptr inbounds float, ptr %539, i64 %541
  store float %538, ptr %542, align 4, !tbaa !11
  br label %543

543:                                              ; preds = %516, %496
  %544 = load ptr, ptr %24, align 8, !tbaa !5
  %545 = load i32, ptr %56, align 4, !tbaa !9
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds float, ptr %544, i64 %546
  %548 = load float, ptr %547, align 4, !tbaa !11
  store float %548, ptr %47, align 4, !tbaa !11
  br label %555

549:                                              ; preds = %477
  %550 = load ptr, ptr %24, align 8, !tbaa !5
  %551 = load i32, ptr %56, align 4, !tbaa !9
  %552 = sext i32 %551 to i64
  %553 = getelementptr inbounds float, ptr %550, i64 %552
  %554 = load float, ptr %553, align 4, !tbaa !11
  store float %554, ptr %47, align 4, !tbaa !11
  br label %555

555:                                              ; preds = %549, %543
  %556 = load float, ptr %47, align 4, !tbaa !11
  %557 = fcmp ogt float %556, 0.000000e+00
  br i1 %557, label %558, label %1841

558:                                              ; preds = %555
  store i32 0, ptr %52, align 4, !tbaa !9
  %559 = load i32, ptr %84, align 4, !tbaa !9
  %560 = load i32, ptr %82, align 4, !tbaa !9
  %561 = add nsw i32 %559, %560
  %562 = sub nsw i32 %561, 1
  store i32 %562, ptr %44, align 4, !tbaa !9
  %563 = load i32, ptr %44, align 4, !tbaa !9
  %564 = load ptr, ptr %20, align 8, !tbaa !5
  %565 = load i32, ptr %564, align 4, !tbaa !9
  %566 = icmp sle i32 %563, %565
  br i1 %566, label %567, label %569

567:                                              ; preds = %558
  %568 = load i32, ptr %44, align 4, !tbaa !9
  br label %572

569:                                              ; preds = %558
  %570 = load ptr, ptr %20, align 8, !tbaa !5
  %571 = load i32, ptr %570, align 4, !tbaa !9
  br label %572

572:                                              ; preds = %569, %567
  %573 = phi i32 [ %568, %567 ], [ %571, %569 ]
  store i32 %573, ptr %43, align 4, !tbaa !9
  %574 = load i32, ptr %56, align 4, !tbaa !9
  %575 = add nsw i32 %574, 1
  store i32 %575, ptr %57, align 4, !tbaa !9
  br label %576

576:                                              ; preds = %1831, %572
  %577 = load i32, ptr %57, align 4, !tbaa !9
  %578 = load i32, ptr %43, align 4, !tbaa !9
  %579 = icmp sle i32 %577, %578
  br i1 %579, label %580, label %1834

580:                                              ; preds = %576
  %581 = load ptr, ptr %24, align 8, !tbaa !5
  %582 = load i32, ptr %57, align 4, !tbaa !9
  %583 = sext i32 %582 to i64
  %584 = getelementptr inbounds float, ptr %581, i64 %583
  %585 = load float, ptr %584, align 4, !tbaa !11
  store float %585, ptr %49, align 4, !tbaa !11
  %586 = load float, ptr %49, align 4, !tbaa !11
  %587 = fcmp ogt float %586, 0.000000e+00
  br i1 %587, label %588, label %1806

588:                                              ; preds = %580
  %589 = load float, ptr %47, align 4, !tbaa !11
  store float %589, ptr %53, align 4, !tbaa !11
  %590 = load float, ptr %49, align 4, !tbaa !11
  %591 = fcmp oge float %590, 1.000000e+00
  br i1 %591, label %592, label %676

592:                                              ; preds = %588
  %593 = load float, ptr %62, align 4, !tbaa !11
  %594 = load float, ptr %47, align 4, !tbaa !11
  %595 = fmul float %593, %594
  %596 = load float, ptr %49, align 4, !tbaa !11
  %597 = fcmp ole float %595, %596
  %598 = zext i1 %597 to i32
  store i32 %598, ptr %66, align 4, !tbaa !9
  %599 = load float, ptr %47, align 4, !tbaa !11
  %600 = load float, ptr %81, align 4, !tbaa !11
  %601 = load float, ptr %49, align 4, !tbaa !11
  %602 = fdiv float %600, %601
  %603 = fcmp olt float %599, %602
  br i1 %603, label %604, label %637

604:                                              ; preds = %592
  %605 = load ptr, ptr %19, align 8, !tbaa !5
  %606 = load ptr, ptr %21, align 8, !tbaa !5
  %607 = load i32, ptr %56, align 4, !tbaa !9
  %608 = load i32, ptr %35, align 4, !tbaa !9
  %609 = mul nsw i32 %607, %608
  %610 = add nsw i32 %609, 1
  %611 = sext i32 %610 to i64
  %612 = getelementptr inbounds float, ptr %606, i64 %611
  %613 = load ptr, ptr %21, align 8, !tbaa !5
  %614 = load i32, ptr %57, align 4, !tbaa !9
  %615 = load i32, ptr %35, align 4, !tbaa !9
  %616 = mul nsw i32 %614, %615
  %617 = add nsw i32 %616, 1
  %618 = sext i32 %617 to i64
  %619 = getelementptr inbounds float, ptr %613, i64 %618
  %620 = call float @sdot_(ptr noundef %605, ptr noundef %612, ptr noundef @c__1, ptr noundef %619, ptr noundef @c__1)
  %621 = load ptr, ptr %23, align 8, !tbaa !5
  %622 = load i32, ptr %56, align 4, !tbaa !9
  %623 = sext i32 %622 to i64
  %624 = getelementptr inbounds float, ptr %621, i64 %623
  %625 = load float, ptr %624, align 4, !tbaa !11
  %626 = fmul float %620, %625
  %627 = load ptr, ptr %23, align 8, !tbaa !5
  %628 = load i32, ptr %57, align 4, !tbaa !9
  %629 = sext i32 %628 to i64
  %630 = getelementptr inbounds float, ptr %627, i64 %629
  %631 = load float, ptr %630, align 4, !tbaa !11
  %632 = fmul float %626, %631
  %633 = load float, ptr %49, align 4, !tbaa !11
  %634 = fdiv float %632, %633
  %635 = load float, ptr %47, align 4, !tbaa !11
  %636 = fdiv float %634, %635
  store float %636, ptr %48, align 4, !tbaa !11
  br label %675

637:                                              ; preds = %592
  %638 = load ptr, ptr %19, align 8, !tbaa !5
  %639 = load ptr, ptr %21, align 8, !tbaa !5
  %640 = load i32, ptr %56, align 4, !tbaa !9
  %641 = load i32, ptr %35, align 4, !tbaa !9
  %642 = mul nsw i32 %640, %641
  %643 = add nsw i32 %642, 1
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds float, ptr %639, i64 %644
  %646 = load ptr, ptr %32, align 8, !tbaa !5
  %647 = getelementptr inbounds float, ptr %646, i64 1
  call void @scopy_(ptr noundef %638, ptr noundef %645, ptr noundef @c__1, ptr noundef %647, ptr noundef @c__1)
  %648 = load ptr, ptr %23, align 8, !tbaa !5
  %649 = load i32, ptr %56, align 4, !tbaa !9
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds float, ptr %648, i64 %650
  %652 = load ptr, ptr %19, align 8, !tbaa !5
  %653 = load ptr, ptr %32, align 8, !tbaa !5
  %654 = getelementptr inbounds float, ptr %653, i64 1
  %655 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %47, ptr noundef %651, ptr noundef %652, ptr noundef @c__1, ptr noundef %654, ptr noundef %655, ptr noundef %50)
  %656 = load ptr, ptr %19, align 8, !tbaa !5
  %657 = load ptr, ptr %32, align 8, !tbaa !5
  %658 = getelementptr inbounds float, ptr %657, i64 1
  %659 = load ptr, ptr %21, align 8, !tbaa !5
  %660 = load i32, ptr %57, align 4, !tbaa !9
  %661 = load i32, ptr %35, align 4, !tbaa !9
  %662 = mul nsw i32 %660, %661
  %663 = add nsw i32 %662, 1
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds float, ptr %659, i64 %664
  %666 = call float @sdot_(ptr noundef %656, ptr noundef %658, ptr noundef @c__1, ptr noundef %665, ptr noundef @c__1)
  %667 = load ptr, ptr %23, align 8, !tbaa !5
  %668 = load i32, ptr %57, align 4, !tbaa !9
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds float, ptr %667, i64 %669
  %671 = load float, ptr %670, align 4, !tbaa !11
  %672 = fmul float %666, %671
  %673 = load float, ptr %49, align 4, !tbaa !11
  %674 = fdiv float %672, %673
  store float %674, ptr %48, align 4, !tbaa !11
  br label %675

675:                                              ; preds = %637, %604
  br label %760

676:                                              ; preds = %588
  %677 = load float, ptr %47, align 4, !tbaa !11
  %678 = load float, ptr %49, align 4, !tbaa !11
  %679 = load float, ptr %62, align 4, !tbaa !11
  %680 = fdiv float %678, %679
  %681 = fcmp ole float %677, %680
  %682 = zext i1 %681 to i32
  store i32 %682, ptr %66, align 4, !tbaa !9
  %683 = load float, ptr %47, align 4, !tbaa !11
  %684 = load float, ptr %62, align 4, !tbaa !11
  %685 = load float, ptr %49, align 4, !tbaa !11
  %686 = fdiv float %684, %685
  %687 = fcmp ogt float %683, %686
  br i1 %687, label %688, label %721

688:                                              ; preds = %676
  %689 = load ptr, ptr %19, align 8, !tbaa !5
  %690 = load ptr, ptr %21, align 8, !tbaa !5
  %691 = load i32, ptr %56, align 4, !tbaa !9
  %692 = load i32, ptr %35, align 4, !tbaa !9
  %693 = mul nsw i32 %691, %692
  %694 = add nsw i32 %693, 1
  %695 = sext i32 %694 to i64
  %696 = getelementptr inbounds float, ptr %690, i64 %695
  %697 = load ptr, ptr %21, align 8, !tbaa !5
  %698 = load i32, ptr %57, align 4, !tbaa !9
  %699 = load i32, ptr %35, align 4, !tbaa !9
  %700 = mul nsw i32 %698, %699
  %701 = add nsw i32 %700, 1
  %702 = sext i32 %701 to i64
  %703 = getelementptr inbounds float, ptr %697, i64 %702
  %704 = call float @sdot_(ptr noundef %689, ptr noundef %696, ptr noundef @c__1, ptr noundef %703, ptr noundef @c__1)
  %705 = load ptr, ptr %23, align 8, !tbaa !5
  %706 = load i32, ptr %56, align 4, !tbaa !9
  %707 = sext i32 %706 to i64
  %708 = getelementptr inbounds float, ptr %705, i64 %707
  %709 = load float, ptr %708, align 4, !tbaa !11
  %710 = fmul float %704, %709
  %711 = load ptr, ptr %23, align 8, !tbaa !5
  %712 = load i32, ptr %57, align 4, !tbaa !9
  %713 = sext i32 %712 to i64
  %714 = getelementptr inbounds float, ptr %711, i64 %713
  %715 = load float, ptr %714, align 4, !tbaa !11
  %716 = fmul float %710, %715
  %717 = load float, ptr %49, align 4, !tbaa !11
  %718 = fdiv float %716, %717
  %719 = load float, ptr %47, align 4, !tbaa !11
  %720 = fdiv float %718, %719
  store float %720, ptr %48, align 4, !tbaa !11
  br label %759

721:                                              ; preds = %676
  %722 = load ptr, ptr %19, align 8, !tbaa !5
  %723 = load ptr, ptr %21, align 8, !tbaa !5
  %724 = load i32, ptr %57, align 4, !tbaa !9
  %725 = load i32, ptr %35, align 4, !tbaa !9
  %726 = mul nsw i32 %724, %725
  %727 = add nsw i32 %726, 1
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds float, ptr %723, i64 %728
  %730 = load ptr, ptr %32, align 8, !tbaa !5
  %731 = getelementptr inbounds float, ptr %730, i64 1
  call void @scopy_(ptr noundef %722, ptr noundef %729, ptr noundef @c__1, ptr noundef %731, ptr noundef @c__1)
  %732 = load ptr, ptr %23, align 8, !tbaa !5
  %733 = load i32, ptr %57, align 4, !tbaa !9
  %734 = sext i32 %733 to i64
  %735 = getelementptr inbounds float, ptr %732, i64 %734
  %736 = load ptr, ptr %19, align 8, !tbaa !5
  %737 = load ptr, ptr %32, align 8, !tbaa !5
  %738 = getelementptr inbounds float, ptr %737, i64 1
  %739 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %49, ptr noundef %735, ptr noundef %736, ptr noundef @c__1, ptr noundef %738, ptr noundef %739, ptr noundef %50)
  %740 = load ptr, ptr %19, align 8, !tbaa !5
  %741 = load ptr, ptr %32, align 8, !tbaa !5
  %742 = getelementptr inbounds float, ptr %741, i64 1
  %743 = load ptr, ptr %21, align 8, !tbaa !5
  %744 = load i32, ptr %56, align 4, !tbaa !9
  %745 = load i32, ptr %35, align 4, !tbaa !9
  %746 = mul nsw i32 %744, %745
  %747 = add nsw i32 %746, 1
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds float, ptr %743, i64 %748
  %750 = call float @sdot_(ptr noundef %740, ptr noundef %742, ptr noundef @c__1, ptr noundef %749, ptr noundef @c__1)
  %751 = load ptr, ptr %23, align 8, !tbaa !5
  %752 = load i32, ptr %56, align 4, !tbaa !9
  %753 = sext i32 %752 to i64
  %754 = getelementptr inbounds float, ptr %751, i64 %753
  %755 = load float, ptr %754, align 4, !tbaa !11
  %756 = fmul float %750, %755
  %757 = load float, ptr %47, align 4, !tbaa !11
  %758 = fdiv float %756, %757
  store float %758, ptr %48, align 4, !tbaa !11
  br label %759

759:                                              ; preds = %721, %688
  br label %760

760:                                              ; preds = %759, %675
  %761 = load float, ptr %73, align 4, !tbaa !11
  store float %761, ptr %45, align 4, !tbaa !11
  %762 = load float, ptr %48, align 4, !tbaa !11
  %763 = fcmp oge float %762, 0.000000e+00
  br i1 %763, label %764, label %766

764:                                              ; preds = %760
  %765 = load float, ptr %48, align 4, !tbaa !11
  br label %769

766:                                              ; preds = %760
  %767 = load float, ptr %48, align 4, !tbaa !11
  %768 = fneg float %767
  br label %769

769:                                              ; preds = %766, %764
  %770 = phi float [ %765, %764 ], [ %768, %766 ]
  store float %770, ptr %46, align 4, !tbaa !11
  %771 = load float, ptr %45, align 4, !tbaa !11
  %772 = load float, ptr %46, align 4, !tbaa !11
  %773 = fcmp oge float %771, %772
  br i1 %773, label %774, label %776

774:                                              ; preds = %769
  %775 = load float, ptr %45, align 4, !tbaa !11
  br label %778

776:                                              ; preds = %769
  %777 = load float, ptr %46, align 4, !tbaa !11
  br label %778

778:                                              ; preds = %776, %774
  %779 = phi float [ %775, %774 ], [ %777, %776 ]
  store float %779, ptr %73, align 4, !tbaa !11
  %780 = load float, ptr %48, align 4, !tbaa !11
  %781 = fcmp oge float %780, 0.000000e+00
  br i1 %781, label %782, label %784

782:                                              ; preds = %778
  %783 = load float, ptr %48, align 4, !tbaa !11
  br label %787

784:                                              ; preds = %778
  %785 = load float, ptr %48, align 4, !tbaa !11
  %786 = fneg float %785
  br label %787

787:                                              ; preds = %784, %782
  %788 = phi float [ %783, %782 ], [ %786, %784 ]
  %789 = load ptr, ptr %30, align 8, !tbaa !5
  %790 = load float, ptr %789, align 4, !tbaa !11
  %791 = fcmp ogt float %788, %790
  br i1 %791, label %792, label %1796

792:                                              ; preds = %787
  %793 = load i32, ptr %76, align 4, !tbaa !9
  %794 = icmp eq i32 %793, 0
  br i1 %794, label %795, label %798

795:                                              ; preds = %792
  store i32 0, ptr %78, align 4, !tbaa !9
  store i32 0, ptr %52, align 4, !tbaa !9
  %796 = load i32, ptr %79, align 4, !tbaa !9
  %797 = add nsw i32 %796, 1
  store i32 %797, ptr %79, align 4, !tbaa !9
  br label %798

798:                                              ; preds = %795, %792
  %799 = load i32, ptr %66, align 4, !tbaa !9
  %800 = icmp ne i32 %799, 0
  br i1 %800, label %801, label %1576

801:                                              ; preds = %798
  %802 = load float, ptr %49, align 4, !tbaa !11
  %803 = load float, ptr %47, align 4, !tbaa !11
  %804 = fdiv float %802, %803
  store float %804, ptr %60, align 4, !tbaa !11
  %805 = load float, ptr %47, align 4, !tbaa !11
  %806 = load float, ptr %49, align 4, !tbaa !11
  %807 = fdiv float %805, %806
  store float %807, ptr %59, align 4, !tbaa !11
  %808 = load float, ptr %60, align 4, !tbaa !11
  %809 = load float, ptr %59, align 4, !tbaa !11
  %810 = fsub float %808, %809
  store float %810, ptr %45, align 4, !tbaa !11
  %811 = load float, ptr %45, align 4, !tbaa !11
  %812 = fcmp oge float %811, 0.000000e+00
  br i1 %812, label %813, label %815

813:                                              ; preds = %801
  %814 = load float, ptr %45, align 4, !tbaa !11
  br label %818

815:                                              ; preds = %801
  %816 = load float, ptr %45, align 4, !tbaa !11
  %817 = fneg float %816
  br label %818

818:                                              ; preds = %815, %813
  %819 = phi float [ %814, %813 ], [ %817, %815 ]
  %820 = fmul float %819, -5.000000e-01
  %821 = load float, ptr %48, align 4, !tbaa !11
  %822 = fdiv float %820, %821
  store float %822, ptr %61, align 4, !tbaa !11
  %823 = load float, ptr %61, align 4, !tbaa !11
  %824 = fcmp oge float %823, 0.000000e+00
  br i1 %824, label %825, label %827

825:                                              ; preds = %818
  %826 = load float, ptr %61, align 4, !tbaa !11
  br label %830

827:                                              ; preds = %818
  %828 = load float, ptr %61, align 4, !tbaa !11
  %829 = fneg float %828
  br label %830

830:                                              ; preds = %827, %825
  %831 = phi float [ %826, %825 ], [ %829, %827 ]
  %832 = load float, ptr %51, align 4, !tbaa !11
  %833 = fcmp ogt float %831, %832
  br i1 %833, label %834, label %965

834:                                              ; preds = %830
  %835 = load float, ptr %61, align 4, !tbaa !11
  %836 = fdiv float 5.000000e-01, %835
  store float %836, ptr %58, align 4, !tbaa !11
  %837 = load float, ptr %58, align 4, !tbaa !11
  %838 = load ptr, ptr %23, align 8, !tbaa !5
  %839 = load i32, ptr %56, align 4, !tbaa !9
  %840 = sext i32 %839 to i64
  %841 = getelementptr inbounds float, ptr %838, i64 %840
  %842 = load float, ptr %841, align 4, !tbaa !11
  %843 = fmul float %837, %842
  %844 = load ptr, ptr %23, align 8, !tbaa !5
  %845 = load i32, ptr %57, align 4, !tbaa !9
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds float, ptr %844, i64 %846
  %848 = load float, ptr %847, align 4, !tbaa !11
  %849 = fdiv float %843, %848
  %850 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 2
  store float %849, ptr %850, align 8, !tbaa !11
  %851 = load float, ptr %58, align 4, !tbaa !11
  %852 = fneg float %851
  %853 = load ptr, ptr %23, align 8, !tbaa !5
  %854 = load i32, ptr %57, align 4, !tbaa !9
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds float, ptr %853, i64 %855
  %857 = load float, ptr %856, align 4, !tbaa !11
  %858 = fmul float %852, %857
  %859 = load ptr, ptr %23, align 8, !tbaa !5
  %860 = load i32, ptr %56, align 4, !tbaa !9
  %861 = sext i32 %860 to i64
  %862 = getelementptr inbounds float, ptr %859, i64 %861
  %863 = load float, ptr %862, align 4, !tbaa !11
  %864 = fdiv float %858, %863
  %865 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 3
  store float %864, ptr %865, align 4, !tbaa !11
  %866 = load ptr, ptr %19, align 8, !tbaa !5
  %867 = load ptr, ptr %21, align 8, !tbaa !5
  %868 = load i32, ptr %56, align 4, !tbaa !9
  %869 = load i32, ptr %35, align 4, !tbaa !9
  %870 = mul nsw i32 %868, %869
  %871 = add nsw i32 %870, 1
  %872 = sext i32 %871 to i64
  %873 = getelementptr inbounds float, ptr %867, i64 %872
  %874 = load ptr, ptr %21, align 8, !tbaa !5
  %875 = load i32, ptr %57, align 4, !tbaa !9
  %876 = load i32, ptr %35, align 4, !tbaa !9
  %877 = mul nsw i32 %875, %876
  %878 = add nsw i32 %877, 1
  %879 = sext i32 %878 to i64
  %880 = getelementptr inbounds float, ptr %874, i64 %879
  %881 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 0
  call void @srotm_(ptr noundef %866, ptr noundef %873, ptr noundef @c__1, ptr noundef %880, ptr noundef @c__1, ptr noundef %881)
  %882 = load i32, ptr %65, align 4, !tbaa !9
  %883 = icmp ne i32 %882, 0
  br i1 %883, label %884, label %900

884:                                              ; preds = %834
  %885 = load ptr, ptr %26, align 8, !tbaa !5
  %886 = load i32, ptr %56, align 4, !tbaa !9
  %887 = load i32, ptr %37, align 4, !tbaa !9
  %888 = mul nsw i32 %886, %887
  %889 = add nsw i32 %888, 1
  %890 = sext i32 %889 to i64
  %891 = getelementptr inbounds float, ptr %885, i64 %890
  %892 = load ptr, ptr %26, align 8, !tbaa !5
  %893 = load i32, ptr %57, align 4, !tbaa !9
  %894 = load i32, ptr %37, align 4, !tbaa !9
  %895 = mul nsw i32 %893, %894
  %896 = add nsw i32 %895, 1
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds float, ptr %892, i64 %897
  %899 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 0
  call void @srotm_(ptr noundef %88, ptr noundef %891, ptr noundef @c__1, ptr noundef %898, ptr noundef @c__1, ptr noundef %899)
  br label %900

900:                                              ; preds = %884, %834
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %901 = load float, ptr %58, align 4, !tbaa !11
  %902 = load float, ptr %59, align 4, !tbaa !11
  %903 = fmul float %901, %902
  %904 = load float, ptr %48, align 4, !tbaa !11
  %905 = call float @llvm.fmuladd.f32(float %903, float %904, float 1.000000e+00)
  store float %905, ptr %46, align 4, !tbaa !11
  %906 = load float, ptr %49, align 4, !tbaa !11
  %907 = fpext float %906 to double
  %908 = load float, ptr %45, align 4, !tbaa !11
  %909 = load float, ptr %46, align 4, !tbaa !11
  %910 = fcmp oge float %908, %909
  br i1 %910, label %911, label %913

911:                                              ; preds = %900
  %912 = load float, ptr %45, align 4, !tbaa !11
  br label %915

913:                                              ; preds = %900
  %914 = load float, ptr %46, align 4, !tbaa !11
  br label %915

915:                                              ; preds = %913, %911
  %916 = phi float [ %912, %911 ], [ %914, %913 ]
  %917 = fpext float %916 to double
  %918 = call double @sqrt(double noundef %917) #5
  %919 = fmul double %907, %918
  %920 = fptrunc double %919 to float
  %921 = load ptr, ptr %24, align 8, !tbaa !5
  %922 = load i32, ptr %57, align 4, !tbaa !9
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds float, ptr %921, i64 %923
  store float %920, ptr %924, align 4, !tbaa !11
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %925 = load float, ptr %58, align 4, !tbaa !11
  %926 = load float, ptr %60, align 4, !tbaa !11
  %927 = fmul float %925, %926
  %928 = load float, ptr %48, align 4, !tbaa !11
  %929 = fneg float %927
  %930 = call float @llvm.fmuladd.f32(float %929, float %928, float 1.000000e+00)
  store float %930, ptr %46, align 4, !tbaa !11
  %931 = load float, ptr %45, align 4, !tbaa !11
  %932 = load float, ptr %46, align 4, !tbaa !11
  %933 = fcmp oge float %931, %932
  br i1 %933, label %934, label %936

934:                                              ; preds = %915
  %935 = load float, ptr %45, align 4, !tbaa !11
  br label %938

936:                                              ; preds = %915
  %937 = load float, ptr %46, align 4, !tbaa !11
  br label %938

938:                                              ; preds = %936, %934
  %939 = phi float [ %935, %934 ], [ %937, %936 ]
  %940 = fpext float %939 to double
  %941 = call double @sqrt(double noundef %940) #5
  %942 = load float, ptr %47, align 4, !tbaa !11
  %943 = fpext float %942 to double
  %944 = fmul double %943, %941
  %945 = fptrunc double %944 to float
  store float %945, ptr %47, align 4, !tbaa !11
  %946 = load float, ptr %75, align 4, !tbaa !11
  store float %946, ptr %45, align 4, !tbaa !11
  %947 = load float, ptr %58, align 4, !tbaa !11
  %948 = fcmp oge float %947, 0.000000e+00
  br i1 %948, label %949, label %951

949:                                              ; preds = %938
  %950 = load float, ptr %58, align 4, !tbaa !11
  br label %954

951:                                              ; preds = %938
  %952 = load float, ptr %58, align 4, !tbaa !11
  %953 = fneg float %952
  br label %954

954:                                              ; preds = %951, %949
  %955 = phi float [ %950, %949 ], [ %953, %951 ]
  store float %955, ptr %46, align 4, !tbaa !11
  %956 = load float, ptr %45, align 4, !tbaa !11
  %957 = load float, ptr %46, align 4, !tbaa !11
  %958 = fcmp oge float %956, %957
  br i1 %958, label %959, label %961

959:                                              ; preds = %954
  %960 = load float, ptr %45, align 4, !tbaa !11
  br label %963

961:                                              ; preds = %954
  %962 = load float, ptr %46, align 4, !tbaa !11
  br label %963

963:                                              ; preds = %961, %959
  %964 = phi float [ %960, %959 ], [ %962, %961 ]
  store float %964, ptr %75, align 4, !tbaa !11
  br label %1575

965:                                              ; preds = %830
  %966 = load float, ptr %48, align 4, !tbaa !11
  %967 = fcmp oge float %966, 0.000000e+00
  br i1 %967, label %968, label %978

968:                                              ; preds = %965
  %969 = load float, ptr @c_b42, align 4, !tbaa !11
  %970 = fcmp oge float %969, 0.000000e+00
  br i1 %970, label %971, label %973

971:                                              ; preds = %968
  %972 = load float, ptr @c_b42, align 4, !tbaa !11
  br label %976

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

976:                                              ; preds = %973, %971
  %977 = phi float [ %972, %971 ], [ %975, %973 ]
  br label %989

978:                                              ; preds = %965
  %979 = load float, ptr @c_b42, align 4, !tbaa !11
  %980 = fcmp oge float %979, 0.000000e+00
  br i1 %980, label %981, label %983

981:                                              ; preds = %978
  %982 = load float, ptr @c_b42, align 4, !tbaa !11
  br label %986

983:                                              ; preds = %978
  %984 = load float, ptr @c_b42, align 4, !tbaa !11
  %985 = fneg float %984
  br label %986

986:                                              ; preds = %983, %981
  %987 = phi float [ %982, %981 ], [ %985, %983 ]
  %988 = fneg float %987
  br label %989

989:                                              ; preds = %986, %976
  %990 = phi float [ %977, %976 ], [ %988, %986 ]
  %991 = fneg float %990
  store float %991, ptr %74, align 4, !tbaa !11
  %992 = load float, ptr %61, align 4, !tbaa !11
  %993 = fpext float %992 to double
  %994 = load float, ptr %74, align 4, !tbaa !11
  %995 = fpext float %994 to double
  %996 = load float, ptr %61, align 4, !tbaa !11
  %997 = load float, ptr %61, align 4, !tbaa !11
  %998 = call float @llvm.fmuladd.f32(float %996, float %997, float 1.000000e+00)
  %999 = fpext float %998 to double
  %1000 = call double @sqrt(double noundef %999) #5
  %1001 = call double @llvm.fmuladd.f64(double %995, double %1000, double %993)
  %1002 = fdiv double 1.000000e+00, %1001
  %1003 = fptrunc double %1002 to float
  store float %1003, ptr %58, align 4, !tbaa !11
  %1004 = load float, ptr %58, align 4, !tbaa !11
  %1005 = load float, ptr %58, align 4, !tbaa !11
  %1006 = call float @llvm.fmuladd.f32(float %1004, float %1005, float 1.000000e+00)
  %1007 = fdiv float 1.000000e+00, %1006
  %1008 = fpext float %1007 to double
  %1009 = call double @sqrt(double noundef %1008) #5
  %1010 = fptrunc double %1009 to float
  store float %1010, ptr %68, align 4, !tbaa !11
  %1011 = load float, ptr %58, align 4, !tbaa !11
  %1012 = load float, ptr %68, align 4, !tbaa !11
  %1013 = fmul float %1011, %1012
  store float %1013, ptr %69, align 4, !tbaa !11
  %1014 = load float, ptr %75, align 4, !tbaa !11
  store float %1014, ptr %45, align 4, !tbaa !11
  %1015 = load float, ptr %69, align 4, !tbaa !11
  %1016 = fcmp oge float %1015, 0.000000e+00
  br i1 %1016, label %1017, label %1019

1017:                                             ; preds = %989
  %1018 = load float, ptr %69, align 4, !tbaa !11
  br label %1022

1019:                                             ; preds = %989
  %1020 = load float, ptr %69, align 4, !tbaa !11
  %1021 = fneg float %1020
  br label %1022

1022:                                             ; preds = %1019, %1017
  %1023 = phi float [ %1018, %1017 ], [ %1021, %1019 ]
  store float %1023, ptr %46, align 4, !tbaa !11
  %1024 = load float, ptr %45, align 4, !tbaa !11
  %1025 = load float, ptr %46, align 4, !tbaa !11
  %1026 = fcmp oge float %1024, %1025
  br i1 %1026, label %1027, label %1029

1027:                                             ; preds = %1022
  %1028 = load float, ptr %45, align 4, !tbaa !11
  br label %1031

1029:                                             ; preds = %1022
  %1030 = load float, ptr %46, align 4, !tbaa !11
  br label %1031

1031:                                             ; preds = %1029, %1027
  %1032 = phi float [ %1028, %1027 ], [ %1030, %1029 ]
  store float %1032, ptr %75, align 4, !tbaa !11
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %1033 = load float, ptr %58, align 4, !tbaa !11
  %1034 = load float, ptr %59, align 4, !tbaa !11
  %1035 = fmul float %1033, %1034
  %1036 = load float, ptr %48, align 4, !tbaa !11
  %1037 = call float @llvm.fmuladd.f32(float %1035, float %1036, float 1.000000e+00)
  store float %1037, ptr %46, align 4, !tbaa !11
  %1038 = load float, ptr %49, align 4, !tbaa !11
  %1039 = fpext float %1038 to double
  %1040 = load float, ptr %45, align 4, !tbaa !11
  %1041 = load float, ptr %46, align 4, !tbaa !11
  %1042 = fcmp oge float %1040, %1041
  br i1 %1042, label %1043, label %1045

1043:                                             ; preds = %1031
  %1044 = load float, ptr %45, align 4, !tbaa !11
  br label %1047

1045:                                             ; preds = %1031
  %1046 = load float, ptr %46, align 4, !tbaa !11
  br label %1047

1047:                                             ; preds = %1045, %1043
  %1048 = phi float [ %1044, %1043 ], [ %1046, %1045 ]
  %1049 = fpext float %1048 to double
  %1050 = call double @sqrt(double noundef %1049) #5
  %1051 = fmul double %1039, %1050
  %1052 = fptrunc double %1051 to float
  %1053 = load ptr, ptr %24, align 8, !tbaa !5
  %1054 = load i32, ptr %57, align 4, !tbaa !9
  %1055 = sext i32 %1054 to i64
  %1056 = getelementptr inbounds float, ptr %1053, i64 %1055
  store float %1052, ptr %1056, align 4, !tbaa !11
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %1057 = load float, ptr %58, align 4, !tbaa !11
  %1058 = load float, ptr %60, align 4, !tbaa !11
  %1059 = fmul float %1057, %1058
  %1060 = load float, ptr %48, align 4, !tbaa !11
  %1061 = fneg float %1059
  %1062 = call float @llvm.fmuladd.f32(float %1061, float %1060, float 1.000000e+00)
  store float %1062, ptr %46, align 4, !tbaa !11
  %1063 = load float, ptr %45, align 4, !tbaa !11
  %1064 = load float, ptr %46, align 4, !tbaa !11
  %1065 = fcmp oge float %1063, %1064
  br i1 %1065, label %1066, label %1068

1066:                                             ; preds = %1047
  %1067 = load float, ptr %45, align 4, !tbaa !11
  br label %1070

1068:                                             ; preds = %1047
  %1069 = load float, ptr %46, align 4, !tbaa !11
  br label %1070

1070:                                             ; preds = %1068, %1066
  %1071 = phi float [ %1067, %1066 ], [ %1069, %1068 ]
  %1072 = fpext float %1071 to double
  %1073 = call double @sqrt(double noundef %1072) #5
  %1074 = load float, ptr %47, align 4, !tbaa !11
  %1075 = fpext float %1074 to double
  %1076 = fmul double %1075, %1073
  %1077 = fptrunc double %1076 to float
  store float %1077, ptr %47, align 4, !tbaa !11
  %1078 = load ptr, ptr %23, align 8, !tbaa !5
  %1079 = load i32, ptr %56, align 4, !tbaa !9
  %1080 = sext i32 %1079 to i64
  %1081 = getelementptr inbounds float, ptr %1078, i64 %1080
  %1082 = load float, ptr %1081, align 4, !tbaa !11
  %1083 = load ptr, ptr %23, align 8, !tbaa !5
  %1084 = load i32, ptr %57, align 4, !tbaa !9
  %1085 = sext i32 %1084 to i64
  %1086 = getelementptr inbounds float, ptr %1083, i64 %1085
  %1087 = load float, ptr %1086, align 4, !tbaa !11
  %1088 = fdiv float %1082, %1087
  store float %1088, ptr %59, align 4, !tbaa !11
  %1089 = load ptr, ptr %23, align 8, !tbaa !5
  %1090 = load i32, ptr %57, align 4, !tbaa !9
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds float, ptr %1089, i64 %1091
  %1093 = load float, ptr %1092, align 4, !tbaa !11
  %1094 = load ptr, ptr %23, align 8, !tbaa !5
  %1095 = load i32, ptr %56, align 4, !tbaa !9
  %1096 = sext i32 %1095 to i64
  %1097 = getelementptr inbounds float, ptr %1094, i64 %1096
  %1098 = load float, ptr %1097, align 4, !tbaa !11
  %1099 = fdiv float %1093, %1098
  store float %1099, ptr %60, align 4, !tbaa !11
  %1100 = load ptr, ptr %23, align 8, !tbaa !5
  %1101 = load i32, ptr %56, align 4, !tbaa !9
  %1102 = sext i32 %1101 to i64
  %1103 = getelementptr inbounds float, ptr %1100, i64 %1102
  %1104 = load float, ptr %1103, align 4, !tbaa !11
  %1105 = fcmp oge float %1104, 1.000000e+00
  br i1 %1105, label %1106, label %1268

1106:                                             ; preds = %1070
  %1107 = load ptr, ptr %23, align 8, !tbaa !5
  %1108 = load i32, ptr %57, align 4, !tbaa !9
  %1109 = sext i32 %1108 to i64
  %1110 = getelementptr inbounds float, ptr %1107, i64 %1109
  %1111 = load float, ptr %1110, align 4, !tbaa !11
  %1112 = fcmp oge float %1111, 1.000000e+00
  br i1 %1112, label %1113, label %1172

1113:                                             ; preds = %1106
  %1114 = load float, ptr %58, align 4, !tbaa !11
  %1115 = load float, ptr %59, align 4, !tbaa !11
  %1116 = fmul float %1114, %1115
  %1117 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 2
  store float %1116, ptr %1117, align 8, !tbaa !11
  %1118 = load float, ptr %58, align 4, !tbaa !11
  %1119 = fneg float %1118
  %1120 = load float, ptr %60, align 4, !tbaa !11
  %1121 = fmul float %1119, %1120
  %1122 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 3
  store float %1121, ptr %1122, align 4, !tbaa !11
  %1123 = load float, ptr %68, align 4, !tbaa !11
  %1124 = load ptr, ptr %23, align 8, !tbaa !5
  %1125 = load i32, ptr %56, align 4, !tbaa !9
  %1126 = sext i32 %1125 to i64
  %1127 = getelementptr inbounds float, ptr %1124, i64 %1126
  %1128 = load float, ptr %1127, align 4, !tbaa !11
  %1129 = fmul float %1128, %1123
  store float %1129, ptr %1127, align 4, !tbaa !11
  %1130 = load float, ptr %68, align 4, !tbaa !11
  %1131 = load ptr, ptr %23, align 8, !tbaa !5
  %1132 = load i32, ptr %57, align 4, !tbaa !9
  %1133 = sext i32 %1132 to i64
  %1134 = getelementptr inbounds float, ptr %1131, i64 %1133
  %1135 = load float, ptr %1134, align 4, !tbaa !11
  %1136 = fmul float %1135, %1130
  store float %1136, ptr %1134, align 4, !tbaa !11
  %1137 = load ptr, ptr %19, align 8, !tbaa !5
  %1138 = load ptr, ptr %21, align 8, !tbaa !5
  %1139 = load i32, ptr %56, align 4, !tbaa !9
  %1140 = load i32, ptr %35, align 4, !tbaa !9
  %1141 = mul nsw i32 %1139, %1140
  %1142 = add nsw i32 %1141, 1
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds float, ptr %1138, i64 %1143
  %1145 = load ptr, ptr %21, align 8, !tbaa !5
  %1146 = load i32, ptr %57, align 4, !tbaa !9
  %1147 = load i32, ptr %35, align 4, !tbaa !9
  %1148 = mul nsw i32 %1146, %1147
  %1149 = add nsw i32 %1148, 1
  %1150 = sext i32 %1149 to i64
  %1151 = getelementptr inbounds float, ptr %1145, i64 %1150
  %1152 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 0
  call void @srotm_(ptr noundef %1137, ptr noundef %1144, ptr noundef @c__1, ptr noundef %1151, ptr noundef @c__1, ptr noundef %1152)
  %1153 = load i32, ptr %65, align 4, !tbaa !9
  %1154 = icmp ne i32 %1153, 0
  br i1 %1154, label %1155, label %1171

1155:                                             ; preds = %1113
  %1156 = load ptr, ptr %26, align 8, !tbaa !5
  %1157 = load i32, ptr %56, align 4, !tbaa !9
  %1158 = load i32, ptr %37, align 4, !tbaa !9
  %1159 = mul nsw i32 %1157, %1158
  %1160 = add nsw i32 %1159, 1
  %1161 = sext i32 %1160 to i64
  %1162 = getelementptr inbounds float, ptr %1156, i64 %1161
  %1163 = load ptr, ptr %26, align 8, !tbaa !5
  %1164 = load i32, ptr %57, align 4, !tbaa !9
  %1165 = load i32, ptr %37, align 4, !tbaa !9
  %1166 = mul nsw i32 %1164, %1165
  %1167 = add nsw i32 %1166, 1
  %1168 = sext i32 %1167 to i64
  %1169 = getelementptr inbounds float, ptr %1163, i64 %1168
  %1170 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 0
  call void @srotm_(ptr noundef %88, ptr noundef %1162, ptr noundef @c__1, ptr noundef %1169, ptr noundef @c__1, ptr noundef %1170)
  br label %1171

1171:                                             ; preds = %1155, %1113
  br label %1267

1172:                                             ; preds = %1106
  %1173 = load float, ptr %58, align 4, !tbaa !11
  %1174 = fneg float %1173
  %1175 = load float, ptr %60, align 4, !tbaa !11
  %1176 = fmul float %1174, %1175
  store float %1176, ptr %45, align 4, !tbaa !11
  %1177 = load ptr, ptr %19, align 8, !tbaa !5
  %1178 = load ptr, ptr %21, align 8, !tbaa !5
  %1179 = load i32, ptr %57, align 4, !tbaa !9
  %1180 = load i32, ptr %35, align 4, !tbaa !9
  %1181 = mul nsw i32 %1179, %1180
  %1182 = add nsw i32 %1181, 1
  %1183 = sext i32 %1182 to i64
  %1184 = getelementptr inbounds float, ptr %1178, i64 %1183
  %1185 = load ptr, ptr %21, align 8, !tbaa !5
  %1186 = load i32, ptr %56, align 4, !tbaa !9
  %1187 = load i32, ptr %35, align 4, !tbaa !9
  %1188 = mul nsw i32 %1186, %1187
  %1189 = add nsw i32 %1188, 1
  %1190 = sext i32 %1189 to i64
  %1191 = getelementptr inbounds float, ptr %1185, i64 %1190
  call void @saxpy_(ptr noundef %1177, ptr noundef %45, ptr noundef %1184, ptr noundef @c__1, ptr noundef %1191, ptr noundef @c__1)
  %1192 = load float, ptr %68, align 4, !tbaa !11
  %1193 = load float, ptr %69, align 4, !tbaa !11
  %1194 = fmul float %1192, %1193
  %1195 = load float, ptr %59, align 4, !tbaa !11
  %1196 = fmul float %1194, %1195
  store float %1196, ptr %45, align 4, !tbaa !11
  %1197 = load ptr, ptr %19, align 8, !tbaa !5
  %1198 = load ptr, ptr %21, align 8, !tbaa !5
  %1199 = load i32, ptr %56, align 4, !tbaa !9
  %1200 = load i32, ptr %35, align 4, !tbaa !9
  %1201 = mul nsw i32 %1199, %1200
  %1202 = add nsw i32 %1201, 1
  %1203 = sext i32 %1202 to i64
  %1204 = getelementptr inbounds float, ptr %1198, i64 %1203
  %1205 = load ptr, ptr %21, align 8, !tbaa !5
  %1206 = load i32, ptr %57, align 4, !tbaa !9
  %1207 = load i32, ptr %35, align 4, !tbaa !9
  %1208 = mul nsw i32 %1206, %1207
  %1209 = add nsw i32 %1208, 1
  %1210 = sext i32 %1209 to i64
  %1211 = getelementptr inbounds float, ptr %1205, i64 %1210
  call void @saxpy_(ptr noundef %1197, ptr noundef %45, ptr noundef %1204, ptr noundef @c__1, ptr noundef %1211, ptr noundef @c__1)
  %1212 = load float, ptr %68, align 4, !tbaa !11
  %1213 = load ptr, ptr %23, align 8, !tbaa !5
  %1214 = load i32, ptr %56, align 4, !tbaa !9
  %1215 = sext i32 %1214 to i64
  %1216 = getelementptr inbounds float, ptr %1213, i64 %1215
  %1217 = load float, ptr %1216, align 4, !tbaa !11
  %1218 = fmul float %1217, %1212
  store float %1218, ptr %1216, align 4, !tbaa !11
  %1219 = load float, ptr %68, align 4, !tbaa !11
  %1220 = load ptr, ptr %23, align 8, !tbaa !5
  %1221 = load i32, ptr %57, align 4, !tbaa !9
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds float, ptr %1220, i64 %1222
  %1224 = load float, ptr %1223, align 4, !tbaa !11
  %1225 = fdiv float %1224, %1219
  store float %1225, ptr %1223, align 4, !tbaa !11
  %1226 = load i32, ptr %65, align 4, !tbaa !9
  %1227 = icmp ne i32 %1226, 0
  br i1 %1227, label %1228, label %1266

1228:                                             ; preds = %1172
  %1229 = load float, ptr %58, align 4, !tbaa !11
  %1230 = fneg float %1229
  %1231 = load float, ptr %60, align 4, !tbaa !11
  %1232 = fmul float %1230, %1231
  store float %1232, ptr %45, align 4, !tbaa !11
  %1233 = load ptr, ptr %26, align 8, !tbaa !5
  %1234 = load i32, ptr %57, align 4, !tbaa !9
  %1235 = load i32, ptr %37, align 4, !tbaa !9
  %1236 = mul nsw i32 %1234, %1235
  %1237 = add nsw i32 %1236, 1
  %1238 = sext i32 %1237 to i64
  %1239 = getelementptr inbounds float, ptr %1233, i64 %1238
  %1240 = load ptr, ptr %26, align 8, !tbaa !5
  %1241 = load i32, ptr %56, align 4, !tbaa !9
  %1242 = load i32, ptr %37, align 4, !tbaa !9
  %1243 = mul nsw i32 %1241, %1242
  %1244 = add nsw i32 %1243, 1
  %1245 = sext i32 %1244 to i64
  %1246 = getelementptr inbounds float, ptr %1240, i64 %1245
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %1239, ptr noundef @c__1, ptr noundef %1246, ptr noundef @c__1)
  %1247 = load float, ptr %68, align 4, !tbaa !11
  %1248 = load float, ptr %69, align 4, !tbaa !11
  %1249 = fmul float %1247, %1248
  %1250 = load float, ptr %59, align 4, !tbaa !11
  %1251 = fmul float %1249, %1250
  store float %1251, ptr %45, align 4, !tbaa !11
  %1252 = load ptr, ptr %26, align 8, !tbaa !5
  %1253 = load i32, ptr %56, align 4, !tbaa !9
  %1254 = load i32, ptr %37, align 4, !tbaa !9
  %1255 = mul nsw i32 %1253, %1254
  %1256 = add nsw i32 %1255, 1
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds float, ptr %1252, i64 %1257
  %1259 = load ptr, ptr %26, align 8, !tbaa !5
  %1260 = load i32, ptr %57, align 4, !tbaa !9
  %1261 = load i32, ptr %37, align 4, !tbaa !9
  %1262 = mul nsw i32 %1260, %1261
  %1263 = add nsw i32 %1262, 1
  %1264 = sext i32 %1263 to i64
  %1265 = getelementptr inbounds float, ptr %1259, i64 %1264
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %1258, ptr noundef @c__1, ptr noundef %1265, ptr noundef @c__1)
  br label %1266

1266:                                             ; preds = %1228, %1172
  br label %1267

1267:                                             ; preds = %1266, %1171
  br label %1574

1268:                                             ; preds = %1070
  %1269 = load ptr, ptr %23, align 8, !tbaa !5
  %1270 = load i32, ptr %57, align 4, !tbaa !9
  %1271 = sext i32 %1270 to i64
  %1272 = getelementptr inbounds float, ptr %1269, i64 %1271
  %1273 = load float, ptr %1272, align 4, !tbaa !11
  %1274 = fcmp oge float %1273, 1.000000e+00
  br i1 %1274, label %1275, label %1370

1275:                                             ; preds = %1268
  %1276 = load float, ptr %58, align 4, !tbaa !11
  %1277 = load float, ptr %59, align 4, !tbaa !11
  %1278 = fmul float %1276, %1277
  store float %1278, ptr %45, align 4, !tbaa !11
  %1279 = load ptr, ptr %19, align 8, !tbaa !5
  %1280 = load ptr, ptr %21, align 8, !tbaa !5
  %1281 = load i32, ptr %56, align 4, !tbaa !9
  %1282 = load i32, ptr %35, align 4, !tbaa !9
  %1283 = mul nsw i32 %1281, %1282
  %1284 = add nsw i32 %1283, 1
  %1285 = sext i32 %1284 to i64
  %1286 = getelementptr inbounds float, ptr %1280, i64 %1285
  %1287 = load ptr, ptr %21, align 8, !tbaa !5
  %1288 = load i32, ptr %57, align 4, !tbaa !9
  %1289 = load i32, ptr %35, align 4, !tbaa !9
  %1290 = mul nsw i32 %1288, %1289
  %1291 = add nsw i32 %1290, 1
  %1292 = sext i32 %1291 to i64
  %1293 = getelementptr inbounds float, ptr %1287, i64 %1292
  call void @saxpy_(ptr noundef %1279, ptr noundef %45, ptr noundef %1286, ptr noundef @c__1, ptr noundef %1293, ptr noundef @c__1)
  %1294 = load float, ptr %68, align 4, !tbaa !11
  %1295 = fneg float %1294
  %1296 = load float, ptr %69, align 4, !tbaa !11
  %1297 = fmul float %1295, %1296
  %1298 = load float, ptr %60, align 4, !tbaa !11
  %1299 = fmul float %1297, %1298
  store float %1299, ptr %45, align 4, !tbaa !11
  %1300 = load ptr, ptr %19, align 8, !tbaa !5
  %1301 = load ptr, ptr %21, align 8, !tbaa !5
  %1302 = load i32, ptr %57, align 4, !tbaa !9
  %1303 = load i32, ptr %35, align 4, !tbaa !9
  %1304 = mul nsw i32 %1302, %1303
  %1305 = add nsw i32 %1304, 1
  %1306 = sext i32 %1305 to i64
  %1307 = getelementptr inbounds float, ptr %1301, i64 %1306
  %1308 = load ptr, ptr %21, align 8, !tbaa !5
  %1309 = load i32, ptr %56, align 4, !tbaa !9
  %1310 = load i32, ptr %35, align 4, !tbaa !9
  %1311 = mul nsw i32 %1309, %1310
  %1312 = add nsw i32 %1311, 1
  %1313 = sext i32 %1312 to i64
  %1314 = getelementptr inbounds float, ptr %1308, i64 %1313
  call void @saxpy_(ptr noundef %1300, ptr noundef %45, ptr noundef %1307, ptr noundef @c__1, ptr noundef %1314, ptr noundef @c__1)
  %1315 = load float, ptr %68, align 4, !tbaa !11
  %1316 = load ptr, ptr %23, align 8, !tbaa !5
  %1317 = load i32, ptr %56, align 4, !tbaa !9
  %1318 = sext i32 %1317 to i64
  %1319 = getelementptr inbounds float, ptr %1316, i64 %1318
  %1320 = load float, ptr %1319, align 4, !tbaa !11
  %1321 = fdiv float %1320, %1315
  store float %1321, ptr %1319, align 4, !tbaa !11
  %1322 = load float, ptr %68, align 4, !tbaa !11
  %1323 = load ptr, ptr %23, align 8, !tbaa !5
  %1324 = load i32, ptr %57, align 4, !tbaa !9
  %1325 = sext i32 %1324 to i64
  %1326 = getelementptr inbounds float, ptr %1323, i64 %1325
  %1327 = load float, ptr %1326, align 4, !tbaa !11
  %1328 = fmul float %1327, %1322
  store float %1328, ptr %1326, align 4, !tbaa !11
  %1329 = load i32, ptr %65, align 4, !tbaa !9
  %1330 = icmp ne i32 %1329, 0
  br i1 %1330, label %1331, label %1369

1331:                                             ; preds = %1275
  %1332 = load float, ptr %58, align 4, !tbaa !11
  %1333 = load float, ptr %59, align 4, !tbaa !11
  %1334 = fmul float %1332, %1333
  store float %1334, ptr %45, align 4, !tbaa !11
  %1335 = load ptr, ptr %26, align 8, !tbaa !5
  %1336 = load i32, ptr %56, align 4, !tbaa !9
  %1337 = load i32, ptr %37, align 4, !tbaa !9
  %1338 = mul nsw i32 %1336, %1337
  %1339 = add nsw i32 %1338, 1
  %1340 = sext i32 %1339 to i64
  %1341 = getelementptr inbounds float, ptr %1335, i64 %1340
  %1342 = load ptr, ptr %26, align 8, !tbaa !5
  %1343 = load i32, ptr %57, align 4, !tbaa !9
  %1344 = load i32, ptr %37, align 4, !tbaa !9
  %1345 = mul nsw i32 %1343, %1344
  %1346 = add nsw i32 %1345, 1
  %1347 = sext i32 %1346 to i64
  %1348 = getelementptr inbounds float, ptr %1342, i64 %1347
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %1341, ptr noundef @c__1, ptr noundef %1348, ptr noundef @c__1)
  %1349 = load float, ptr %68, align 4, !tbaa !11
  %1350 = fneg float %1349
  %1351 = load float, ptr %69, align 4, !tbaa !11
  %1352 = fmul float %1350, %1351
  %1353 = load float, ptr %60, align 4, !tbaa !11
  %1354 = fmul float %1352, %1353
  store float %1354, ptr %45, align 4, !tbaa !11
  %1355 = load ptr, ptr %26, align 8, !tbaa !5
  %1356 = load i32, ptr %57, align 4, !tbaa !9
  %1357 = load i32, ptr %37, align 4, !tbaa !9
  %1358 = mul nsw i32 %1356, %1357
  %1359 = add nsw i32 %1358, 1
  %1360 = sext i32 %1359 to i64
  %1361 = getelementptr inbounds float, ptr %1355, i64 %1360
  %1362 = load ptr, ptr %26, align 8, !tbaa !5
  %1363 = load i32, ptr %56, align 4, !tbaa !9
  %1364 = load i32, ptr %37, align 4, !tbaa !9
  %1365 = mul nsw i32 %1363, %1364
  %1366 = add nsw i32 %1365, 1
  %1367 = sext i32 %1366 to i64
  %1368 = getelementptr inbounds float, ptr %1362, i64 %1367
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %1361, ptr noundef @c__1, ptr noundef %1368, ptr noundef @c__1)
  br label %1369

1369:                                             ; preds = %1331, %1275
  br label %1573

1370:                                             ; preds = %1268
  %1371 = load ptr, ptr %23, align 8, !tbaa !5
  %1372 = load i32, ptr %56, align 4, !tbaa !9
  %1373 = sext i32 %1372 to i64
  %1374 = getelementptr inbounds float, ptr %1371, i64 %1373
  %1375 = load float, ptr %1374, align 4, !tbaa !11
  %1376 = load ptr, ptr %23, align 8, !tbaa !5
  %1377 = load i32, ptr %57, align 4, !tbaa !9
  %1378 = sext i32 %1377 to i64
  %1379 = getelementptr inbounds float, ptr %1376, i64 %1378
  %1380 = load float, ptr %1379, align 4, !tbaa !11
  %1381 = fcmp oge float %1375, %1380
  br i1 %1381, label %1382, label %1477

1382:                                             ; preds = %1370
  %1383 = load float, ptr %58, align 4, !tbaa !11
  %1384 = fneg float %1383
  %1385 = load float, ptr %60, align 4, !tbaa !11
  %1386 = fmul float %1384, %1385
  store float %1386, ptr %45, align 4, !tbaa !11
  %1387 = load ptr, ptr %19, align 8, !tbaa !5
  %1388 = load ptr, ptr %21, align 8, !tbaa !5
  %1389 = load i32, ptr %57, align 4, !tbaa !9
  %1390 = load i32, ptr %35, align 4, !tbaa !9
  %1391 = mul nsw i32 %1389, %1390
  %1392 = add nsw i32 %1391, 1
  %1393 = sext i32 %1392 to i64
  %1394 = getelementptr inbounds float, ptr %1388, i64 %1393
  %1395 = load ptr, ptr %21, align 8, !tbaa !5
  %1396 = load i32, ptr %56, align 4, !tbaa !9
  %1397 = load i32, ptr %35, align 4, !tbaa !9
  %1398 = mul nsw i32 %1396, %1397
  %1399 = add nsw i32 %1398, 1
  %1400 = sext i32 %1399 to i64
  %1401 = getelementptr inbounds float, ptr %1395, i64 %1400
  call void @saxpy_(ptr noundef %1387, ptr noundef %45, ptr noundef %1394, ptr noundef @c__1, ptr noundef %1401, ptr noundef @c__1)
  %1402 = load float, ptr %68, align 4, !tbaa !11
  %1403 = load float, ptr %69, align 4, !tbaa !11
  %1404 = fmul float %1402, %1403
  %1405 = load float, ptr %59, align 4, !tbaa !11
  %1406 = fmul float %1404, %1405
  store float %1406, ptr %45, align 4, !tbaa !11
  %1407 = load ptr, ptr %19, align 8, !tbaa !5
  %1408 = load ptr, ptr %21, align 8, !tbaa !5
  %1409 = load i32, ptr %56, align 4, !tbaa !9
  %1410 = load i32, ptr %35, align 4, !tbaa !9
  %1411 = mul nsw i32 %1409, %1410
  %1412 = add nsw i32 %1411, 1
  %1413 = sext i32 %1412 to i64
  %1414 = getelementptr inbounds float, ptr %1408, i64 %1413
  %1415 = load ptr, ptr %21, align 8, !tbaa !5
  %1416 = load i32, ptr %57, align 4, !tbaa !9
  %1417 = load i32, ptr %35, align 4, !tbaa !9
  %1418 = mul nsw i32 %1416, %1417
  %1419 = add nsw i32 %1418, 1
  %1420 = sext i32 %1419 to i64
  %1421 = getelementptr inbounds float, ptr %1415, i64 %1420
  call void @saxpy_(ptr noundef %1407, ptr noundef %45, ptr noundef %1414, ptr noundef @c__1, ptr noundef %1421, ptr noundef @c__1)
  %1422 = load float, ptr %68, align 4, !tbaa !11
  %1423 = load ptr, ptr %23, align 8, !tbaa !5
  %1424 = load i32, ptr %56, align 4, !tbaa !9
  %1425 = sext i32 %1424 to i64
  %1426 = getelementptr inbounds float, ptr %1423, i64 %1425
  %1427 = load float, ptr %1426, align 4, !tbaa !11
  %1428 = fmul float %1427, %1422
  store float %1428, ptr %1426, align 4, !tbaa !11
  %1429 = load float, ptr %68, align 4, !tbaa !11
  %1430 = load ptr, ptr %23, align 8, !tbaa !5
  %1431 = load i32, ptr %57, align 4, !tbaa !9
  %1432 = sext i32 %1431 to i64
  %1433 = getelementptr inbounds float, ptr %1430, i64 %1432
  %1434 = load float, ptr %1433, align 4, !tbaa !11
  %1435 = fdiv float %1434, %1429
  store float %1435, ptr %1433, align 4, !tbaa !11
  %1436 = load i32, ptr %65, align 4, !tbaa !9
  %1437 = icmp ne i32 %1436, 0
  br i1 %1437, label %1438, label %1476

1438:                                             ; preds = %1382
  %1439 = load float, ptr %58, align 4, !tbaa !11
  %1440 = fneg float %1439
  %1441 = load float, ptr %60, align 4, !tbaa !11
  %1442 = fmul float %1440, %1441
  store float %1442, ptr %45, align 4, !tbaa !11
  %1443 = load ptr, ptr %26, align 8, !tbaa !5
  %1444 = load i32, ptr %57, align 4, !tbaa !9
  %1445 = load i32, ptr %37, align 4, !tbaa !9
  %1446 = mul nsw i32 %1444, %1445
  %1447 = add nsw i32 %1446, 1
  %1448 = sext i32 %1447 to i64
  %1449 = getelementptr inbounds float, ptr %1443, i64 %1448
  %1450 = load ptr, ptr %26, align 8, !tbaa !5
  %1451 = load i32, ptr %56, align 4, !tbaa !9
  %1452 = load i32, ptr %37, align 4, !tbaa !9
  %1453 = mul nsw i32 %1451, %1452
  %1454 = add nsw i32 %1453, 1
  %1455 = sext i32 %1454 to i64
  %1456 = getelementptr inbounds float, ptr %1450, i64 %1455
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %1449, ptr noundef @c__1, ptr noundef %1456, ptr noundef @c__1)
  %1457 = load float, ptr %68, align 4, !tbaa !11
  %1458 = load float, ptr %69, align 4, !tbaa !11
  %1459 = fmul float %1457, %1458
  %1460 = load float, ptr %59, align 4, !tbaa !11
  %1461 = fmul float %1459, %1460
  store float %1461, ptr %45, align 4, !tbaa !11
  %1462 = load ptr, ptr %26, align 8, !tbaa !5
  %1463 = load i32, ptr %56, align 4, !tbaa !9
  %1464 = load i32, ptr %37, align 4, !tbaa !9
  %1465 = mul nsw i32 %1463, %1464
  %1466 = add nsw i32 %1465, 1
  %1467 = sext i32 %1466 to i64
  %1468 = getelementptr inbounds float, ptr %1462, i64 %1467
  %1469 = load ptr, ptr %26, align 8, !tbaa !5
  %1470 = load i32, ptr %57, align 4, !tbaa !9
  %1471 = load i32, ptr %37, align 4, !tbaa !9
  %1472 = mul nsw i32 %1470, %1471
  %1473 = add nsw i32 %1472, 1
  %1474 = sext i32 %1473 to i64
  %1475 = getelementptr inbounds float, ptr %1469, i64 %1474
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %1468, ptr noundef @c__1, ptr noundef %1475, ptr noundef @c__1)
  br label %1476

1476:                                             ; preds = %1438, %1382
  br label %1572

1477:                                             ; preds = %1370
  %1478 = load float, ptr %58, align 4, !tbaa !11
  %1479 = load float, ptr %59, align 4, !tbaa !11
  %1480 = fmul float %1478, %1479
  store float %1480, ptr %45, align 4, !tbaa !11
  %1481 = load ptr, ptr %19, align 8, !tbaa !5
  %1482 = load ptr, ptr %21, align 8, !tbaa !5
  %1483 = load i32, ptr %56, align 4, !tbaa !9
  %1484 = load i32, ptr %35, align 4, !tbaa !9
  %1485 = mul nsw i32 %1483, %1484
  %1486 = add nsw i32 %1485, 1
  %1487 = sext i32 %1486 to i64
  %1488 = getelementptr inbounds float, ptr %1482, i64 %1487
  %1489 = load ptr, ptr %21, align 8, !tbaa !5
  %1490 = load i32, ptr %57, align 4, !tbaa !9
  %1491 = load i32, ptr %35, align 4, !tbaa !9
  %1492 = mul nsw i32 %1490, %1491
  %1493 = add nsw i32 %1492, 1
  %1494 = sext i32 %1493 to i64
  %1495 = getelementptr inbounds float, ptr %1489, i64 %1494
  call void @saxpy_(ptr noundef %1481, ptr noundef %45, ptr noundef %1488, ptr noundef @c__1, ptr noundef %1495, ptr noundef @c__1)
  %1496 = load float, ptr %68, align 4, !tbaa !11
  %1497 = fneg float %1496
  %1498 = load float, ptr %69, align 4, !tbaa !11
  %1499 = fmul float %1497, %1498
  %1500 = load float, ptr %60, align 4, !tbaa !11
  %1501 = fmul float %1499, %1500
  store float %1501, ptr %45, align 4, !tbaa !11
  %1502 = load ptr, ptr %19, align 8, !tbaa !5
  %1503 = load ptr, ptr %21, align 8, !tbaa !5
  %1504 = load i32, ptr %57, align 4, !tbaa !9
  %1505 = load i32, ptr %35, align 4, !tbaa !9
  %1506 = mul nsw i32 %1504, %1505
  %1507 = add nsw i32 %1506, 1
  %1508 = sext i32 %1507 to i64
  %1509 = getelementptr inbounds float, ptr %1503, i64 %1508
  %1510 = load ptr, ptr %21, align 8, !tbaa !5
  %1511 = load i32, ptr %56, align 4, !tbaa !9
  %1512 = load i32, ptr %35, align 4, !tbaa !9
  %1513 = mul nsw i32 %1511, %1512
  %1514 = add nsw i32 %1513, 1
  %1515 = sext i32 %1514 to i64
  %1516 = getelementptr inbounds float, ptr %1510, i64 %1515
  call void @saxpy_(ptr noundef %1502, ptr noundef %45, ptr noundef %1509, ptr noundef @c__1, ptr noundef %1516, ptr noundef @c__1)
  %1517 = load float, ptr %68, align 4, !tbaa !11
  %1518 = load ptr, ptr %23, align 8, !tbaa !5
  %1519 = load i32, ptr %56, align 4, !tbaa !9
  %1520 = sext i32 %1519 to i64
  %1521 = getelementptr inbounds float, ptr %1518, i64 %1520
  %1522 = load float, ptr %1521, align 4, !tbaa !11
  %1523 = fdiv float %1522, %1517
  store float %1523, ptr %1521, align 4, !tbaa !11
  %1524 = load float, ptr %68, align 4, !tbaa !11
  %1525 = load ptr, ptr %23, align 8, !tbaa !5
  %1526 = load i32, ptr %57, align 4, !tbaa !9
  %1527 = sext i32 %1526 to i64
  %1528 = getelementptr inbounds float, ptr %1525, i64 %1527
  %1529 = load float, ptr %1528, align 4, !tbaa !11
  %1530 = fmul float %1529, %1524
  store float %1530, ptr %1528, align 4, !tbaa !11
  %1531 = load i32, ptr %65, align 4, !tbaa !9
  %1532 = icmp ne i32 %1531, 0
  br i1 %1532, label %1533, label %1571

1533:                                             ; preds = %1477
  %1534 = load float, ptr %58, align 4, !tbaa !11
  %1535 = load float, ptr %59, align 4, !tbaa !11
  %1536 = fmul float %1534, %1535
  store float %1536, ptr %45, align 4, !tbaa !11
  %1537 = load ptr, ptr %26, align 8, !tbaa !5
  %1538 = load i32, ptr %56, align 4, !tbaa !9
  %1539 = load i32, ptr %37, align 4, !tbaa !9
  %1540 = mul nsw i32 %1538, %1539
  %1541 = add nsw i32 %1540, 1
  %1542 = sext i32 %1541 to i64
  %1543 = getelementptr inbounds float, ptr %1537, i64 %1542
  %1544 = load ptr, ptr %26, align 8, !tbaa !5
  %1545 = load i32, ptr %57, align 4, !tbaa !9
  %1546 = load i32, ptr %37, align 4, !tbaa !9
  %1547 = mul nsw i32 %1545, %1546
  %1548 = add nsw i32 %1547, 1
  %1549 = sext i32 %1548 to i64
  %1550 = getelementptr inbounds float, ptr %1544, i64 %1549
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %1543, ptr noundef @c__1, ptr noundef %1550, ptr noundef @c__1)
  %1551 = load float, ptr %68, align 4, !tbaa !11
  %1552 = fneg float %1551
  %1553 = load float, ptr %69, align 4, !tbaa !11
  %1554 = fmul float %1552, %1553
  %1555 = load float, ptr %60, align 4, !tbaa !11
  %1556 = fmul float %1554, %1555
  store float %1556, ptr %45, align 4, !tbaa !11
  %1557 = load ptr, ptr %26, align 8, !tbaa !5
  %1558 = load i32, ptr %57, align 4, !tbaa !9
  %1559 = load i32, ptr %37, align 4, !tbaa !9
  %1560 = mul nsw i32 %1558, %1559
  %1561 = add nsw i32 %1560, 1
  %1562 = sext i32 %1561 to i64
  %1563 = getelementptr inbounds float, ptr %1557, i64 %1562
  %1564 = load ptr, ptr %26, align 8, !tbaa !5
  %1565 = load i32, ptr %56, align 4, !tbaa !9
  %1566 = load i32, ptr %37, align 4, !tbaa !9
  %1567 = mul nsw i32 %1565, %1566
  %1568 = add nsw i32 %1567, 1
  %1569 = sext i32 %1568 to i64
  %1570 = getelementptr inbounds float, ptr %1564, i64 %1569
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %1563, ptr noundef @c__1, ptr noundef %1570, ptr noundef @c__1)
  br label %1571

1571:                                             ; preds = %1533, %1477
  br label %1572

1572:                                             ; preds = %1571, %1476
  br label %1573

1573:                                             ; preds = %1572, %1369
  br label %1574

1574:                                             ; preds = %1573, %1267
  br label %1575

1575:                                             ; preds = %1574, %963
  br label %1667

1576:                                             ; preds = %798
  %1577 = load ptr, ptr %19, align 8, !tbaa !5
  %1578 = load ptr, ptr %21, align 8, !tbaa !5
  %1579 = load i32, ptr %56, align 4, !tbaa !9
  %1580 = load i32, ptr %35, align 4, !tbaa !9
  %1581 = mul nsw i32 %1579, %1580
  %1582 = add nsw i32 %1581, 1
  %1583 = sext i32 %1582 to i64
  %1584 = getelementptr inbounds float, ptr %1578, i64 %1583
  %1585 = load ptr, ptr %32, align 8, !tbaa !5
  %1586 = getelementptr inbounds float, ptr %1585, i64 1
  call void @scopy_(ptr noundef %1577, ptr noundef %1584, ptr noundef @c__1, ptr noundef %1586, ptr noundef @c__1)
  %1587 = load ptr, ptr %19, align 8, !tbaa !5
  %1588 = load ptr, ptr %32, align 8, !tbaa !5
  %1589 = getelementptr inbounds float, ptr %1588, i64 1
  %1590 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %47, ptr noundef @c_b42, ptr noundef %1587, ptr noundef @c__1, ptr noundef %1589, ptr noundef %1590, ptr noundef %50)
  %1591 = load ptr, ptr %19, align 8, !tbaa !5
  %1592 = load ptr, ptr %21, align 8, !tbaa !5
  %1593 = load i32, ptr %57, align 4, !tbaa !9
  %1594 = load i32, ptr %35, align 4, !tbaa !9
  %1595 = mul nsw i32 %1593, %1594
  %1596 = add nsw i32 %1595, 1
  %1597 = sext i32 %1596 to i64
  %1598 = getelementptr inbounds float, ptr %1592, i64 %1597
  %1599 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %49, ptr noundef @c_b42, ptr noundef %1591, ptr noundef @c__1, ptr noundef %1598, ptr noundef %1599, ptr noundef %50)
  %1600 = load float, ptr %48, align 4, !tbaa !11
  %1601 = fneg float %1600
  %1602 = load ptr, ptr %23, align 8, !tbaa !5
  %1603 = load i32, ptr %56, align 4, !tbaa !9
  %1604 = sext i32 %1603 to i64
  %1605 = getelementptr inbounds float, ptr %1602, i64 %1604
  %1606 = load float, ptr %1605, align 4, !tbaa !11
  %1607 = fmul float %1601, %1606
  %1608 = load ptr, ptr %23, align 8, !tbaa !5
  %1609 = load i32, ptr %57, align 4, !tbaa !9
  %1610 = sext i32 %1609 to i64
  %1611 = getelementptr inbounds float, ptr %1608, i64 %1610
  %1612 = load float, ptr %1611, align 4, !tbaa !11
  %1613 = fdiv float %1607, %1612
  store float %1613, ptr %54, align 4, !tbaa !11
  %1614 = load ptr, ptr %19, align 8, !tbaa !5
  %1615 = load ptr, ptr %32, align 8, !tbaa !5
  %1616 = getelementptr inbounds float, ptr %1615, i64 1
  %1617 = load ptr, ptr %21, align 8, !tbaa !5
  %1618 = load i32, ptr %57, align 4, !tbaa !9
  %1619 = load i32, ptr %35, align 4, !tbaa !9
  %1620 = mul nsw i32 %1618, %1619
  %1621 = add nsw i32 %1620, 1
  %1622 = sext i32 %1621 to i64
  %1623 = getelementptr inbounds float, ptr %1617, i64 %1622
  call void @saxpy_(ptr noundef %1614, ptr noundef %54, ptr noundef %1616, ptr noundef @c__1, ptr noundef %1623, ptr noundef @c__1)
  %1624 = load ptr, ptr %19, align 8, !tbaa !5
  %1625 = load ptr, ptr %21, align 8, !tbaa !5
  %1626 = load i32, ptr %57, align 4, !tbaa !9
  %1627 = load i32, ptr %35, align 4, !tbaa !9
  %1628 = mul nsw i32 %1626, %1627
  %1629 = add nsw i32 %1628, 1
  %1630 = sext i32 %1629 to i64
  %1631 = getelementptr inbounds float, ptr %1625, i64 %1630
  %1632 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b42, ptr noundef %49, ptr noundef %1624, ptr noundef @c__1, ptr noundef %1631, ptr noundef %1632, ptr noundef %50)
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %1633 = load float, ptr %48, align 4, !tbaa !11
  %1634 = load float, ptr %48, align 4, !tbaa !11
  %1635 = fneg float %1633
  %1636 = call float @llvm.fmuladd.f32(float %1635, float %1634, float 1.000000e+00)
  store float %1636, ptr %46, align 4, !tbaa !11
  %1637 = load float, ptr %49, align 4, !tbaa !11
  %1638 = fpext float %1637 to double
  %1639 = load float, ptr %45, align 4, !tbaa !11
  %1640 = load float, ptr %46, align 4, !tbaa !11
  %1641 = fcmp oge float %1639, %1640
  br i1 %1641, label %1642, label %1644

1642:                                             ; preds = %1576
  %1643 = load float, ptr %45, align 4, !tbaa !11
  br label %1646

1644:                                             ; preds = %1576
  %1645 = load float, ptr %46, align 4, !tbaa !11
  br label %1646

1646:                                             ; preds = %1644, %1642
  %1647 = phi float [ %1643, %1642 ], [ %1645, %1644 ]
  %1648 = fpext float %1647 to double
  %1649 = call double @sqrt(double noundef %1648) #5
  %1650 = fmul double %1638, %1649
  %1651 = fptrunc double %1650 to float
  %1652 = load ptr, ptr %24, align 8, !tbaa !5
  %1653 = load i32, ptr %57, align 4, !tbaa !9
  %1654 = sext i32 %1653 to i64
  %1655 = getelementptr inbounds float, ptr %1652, i64 %1654
  store float %1651, ptr %1655, align 4, !tbaa !11
  %1656 = load float, ptr %75, align 4, !tbaa !11
  %1657 = load ptr, ptr %29, align 8, !tbaa !5
  %1658 = load float, ptr %1657, align 4, !tbaa !11
  %1659 = fcmp oge float %1656, %1658
  br i1 %1659, label %1660, label %1662

1660:                                             ; preds = %1646
  %1661 = load float, ptr %75, align 4, !tbaa !11
  br label %1665

1662:                                             ; preds = %1646
  %1663 = load ptr, ptr %29, align 8, !tbaa !5
  %1664 = load float, ptr %1663, align 4, !tbaa !11
  br label %1665

1665:                                             ; preds = %1662, %1660
  %1666 = phi float [ %1661, %1660 ], [ %1664, %1662 ]
  store float %1666, ptr %75, align 4, !tbaa !11
  br label %1667

1667:                                             ; preds = %1665, %1575
  %1668 = load ptr, ptr %24, align 8, !tbaa !5
  %1669 = load i32, ptr %57, align 4, !tbaa !9
  %1670 = sext i32 %1669 to i64
  %1671 = getelementptr inbounds float, ptr %1668, i64 %1670
  %1672 = load float, ptr %1671, align 4, !tbaa !11
  %1673 = load float, ptr %49, align 4, !tbaa !11
  %1674 = fdiv float %1672, %1673
  store float %1674, ptr %45, align 4, !tbaa !11
  %1675 = load float, ptr %45, align 4, !tbaa !11
  %1676 = load float, ptr %45, align 4, !tbaa !11
  %1677 = fmul float %1675, %1676
  %1678 = load float, ptr %90, align 4, !tbaa !11
  %1679 = fcmp ole float %1677, %1678
  br i1 %1679, label %1680, label %1736

1680:                                             ; preds = %1667
  %1681 = load float, ptr %49, align 4, !tbaa !11
  %1682 = load float, ptr %89, align 4, !tbaa !11
  %1683 = fcmp olt float %1681, %1682
  br i1 %1683, label %1684, label %1708

1684:                                             ; preds = %1680
  %1685 = load float, ptr %49, align 4, !tbaa !11
  %1686 = load float, ptr %67, align 4, !tbaa !11
  %1687 = fcmp ogt float %1685, %1686
  br i1 %1687, label %1688, label %1708

1688:                                             ; preds = %1684
  %1689 = load ptr, ptr %19, align 8, !tbaa !5
  %1690 = load ptr, ptr %21, align 8, !tbaa !5
  %1691 = load i32, ptr %57, align 4, !tbaa !9
  %1692 = load i32, ptr %35, align 4, !tbaa !9
  %1693 = mul nsw i32 %1691, %1692
  %1694 = add nsw i32 %1693, 1
  %1695 = sext i32 %1694 to i64
  %1696 = getelementptr inbounds float, ptr %1690, i64 %1695
  %1697 = call float @snrm2_(ptr noundef %1689, ptr noundef %1696, ptr noundef @c__1)
  %1698 = load ptr, ptr %23, align 8, !tbaa !5
  %1699 = load i32, ptr %57, align 4, !tbaa !9
  %1700 = sext i32 %1699 to i64
  %1701 = getelementptr inbounds float, ptr %1698, i64 %1700
  %1702 = load float, ptr %1701, align 4, !tbaa !11
  %1703 = fmul float %1697, %1702
  %1704 = load ptr, ptr %24, align 8, !tbaa !5
  %1705 = load i32, ptr %57, align 4, !tbaa !9
  %1706 = sext i32 %1705 to i64
  %1707 = getelementptr inbounds float, ptr %1704, i64 %1706
  store float %1703, ptr %1707, align 4, !tbaa !11
  br label %1735

1708:                                             ; preds = %1684, %1680
  store float 0.000000e+00, ptr %58, align 4, !tbaa !11
  store float 1.000000e+00, ptr %49, align 4, !tbaa !11
  %1709 = load ptr, ptr %19, align 8, !tbaa !5
  %1710 = load ptr, ptr %21, align 8, !tbaa !5
  %1711 = load i32, ptr %57, align 4, !tbaa !9
  %1712 = load i32, ptr %35, align 4, !tbaa !9
  %1713 = mul nsw i32 %1711, %1712
  %1714 = add nsw i32 %1713, 1
  %1715 = sext i32 %1714 to i64
  %1716 = getelementptr inbounds float, ptr %1710, i64 %1715
  call void @slassq_(ptr noundef %1709, ptr noundef %1716, ptr noundef @c__1, ptr noundef %58, ptr noundef %49)
  %1717 = load float, ptr %58, align 4, !tbaa !11
  %1718 = fpext float %1717 to double
  %1719 = load float, ptr %49, align 4, !tbaa !11
  %1720 = fpext float %1719 to double
  %1721 = call double @sqrt(double noundef %1720) #5
  %1722 = fmul double %1718, %1721
  %1723 = load ptr, ptr %23, align 8, !tbaa !5
  %1724 = load i32, ptr %57, align 4, !tbaa !9
  %1725 = sext i32 %1724 to i64
  %1726 = getelementptr inbounds float, ptr %1723, i64 %1725
  %1727 = load float, ptr %1726, align 4, !tbaa !11
  %1728 = fpext float %1727 to double
  %1729 = fmul double %1722, %1728
  %1730 = fptrunc double %1729 to float
  %1731 = load ptr, ptr %24, align 8, !tbaa !5
  %1732 = load i32, ptr %57, align 4, !tbaa !9
  %1733 = sext i32 %1732 to i64
  %1734 = getelementptr inbounds float, ptr %1731, i64 %1733
  store float %1730, ptr %1734, align 4, !tbaa !11
  br label %1735

1735:                                             ; preds = %1708, %1688
  br label %1736

1736:                                             ; preds = %1735, %1667
  %1737 = load float, ptr %47, align 4, !tbaa !11
  %1738 = load float, ptr %53, align 4, !tbaa !11
  %1739 = fdiv float %1737, %1738
  %1740 = load float, ptr %90, align 4, !tbaa !11
  %1741 = fcmp ole float %1739, %1740
  br i1 %1741, label %1742, label %1795

1742:                                             ; preds = %1736
  %1743 = load float, ptr %47, align 4, !tbaa !11
  %1744 = load float, ptr %89, align 4, !tbaa !11
  %1745 = fcmp olt float %1743, %1744
  br i1 %1745, label %1746, label %1766

1746:                                             ; preds = %1742
  %1747 = load float, ptr %47, align 4, !tbaa !11
  %1748 = load float, ptr %67, align 4, !tbaa !11
  %1749 = fcmp ogt float %1747, %1748
  br i1 %1749, label %1750, label %1766

1750:                                             ; preds = %1746
  %1751 = load ptr, ptr %19, align 8, !tbaa !5
  %1752 = load ptr, ptr %21, align 8, !tbaa !5
  %1753 = load i32, ptr %56, align 4, !tbaa !9
  %1754 = load i32, ptr %35, align 4, !tbaa !9
  %1755 = mul nsw i32 %1753, %1754
  %1756 = add nsw i32 %1755, 1
  %1757 = sext i32 %1756 to i64
  %1758 = getelementptr inbounds float, ptr %1752, i64 %1757
  %1759 = call float @snrm2_(ptr noundef %1751, ptr noundef %1758, ptr noundef @c__1)
  %1760 = load ptr, ptr %23, align 8, !tbaa !5
  %1761 = load i32, ptr %56, align 4, !tbaa !9
  %1762 = sext i32 %1761 to i64
  %1763 = getelementptr inbounds float, ptr %1760, i64 %1762
  %1764 = load float, ptr %1763, align 4, !tbaa !11
  %1765 = fmul float %1759, %1764
  store float %1765, ptr %47, align 4, !tbaa !11
  br label %1789

1766:                                             ; preds = %1746, %1742
  store float 0.000000e+00, ptr %58, align 4, !tbaa !11
  store float 1.000000e+00, ptr %47, align 4, !tbaa !11
  %1767 = load ptr, ptr %19, align 8, !tbaa !5
  %1768 = load ptr, ptr %21, align 8, !tbaa !5
  %1769 = load i32, ptr %56, align 4, !tbaa !9
  %1770 = load i32, ptr %35, align 4, !tbaa !9
  %1771 = mul nsw i32 %1769, %1770
  %1772 = add nsw i32 %1771, 1
  %1773 = sext i32 %1772 to i64
  %1774 = getelementptr inbounds float, ptr %1768, i64 %1773
  call void @slassq_(ptr noundef %1767, ptr noundef %1774, ptr noundef @c__1, ptr noundef %58, ptr noundef %47)
  %1775 = load float, ptr %58, align 4, !tbaa !11
  %1776 = fpext float %1775 to double
  %1777 = load float, ptr %47, align 4, !tbaa !11
  %1778 = fpext float %1777 to double
  %1779 = call double @sqrt(double noundef %1778) #5
  %1780 = fmul double %1776, %1779
  %1781 = load ptr, ptr %23, align 8, !tbaa !5
  %1782 = load i32, ptr %56, align 4, !tbaa !9
  %1783 = sext i32 %1782 to i64
  %1784 = getelementptr inbounds float, ptr %1781, i64 %1783
  %1785 = load float, ptr %1784, align 4, !tbaa !11
  %1786 = fpext float %1785 to double
  %1787 = fmul double %1780, %1786
  %1788 = fptrunc double %1787 to float
  store float %1788, ptr %47, align 4, !tbaa !11
  br label %1789

1789:                                             ; preds = %1766, %1750
  %1790 = load float, ptr %47, align 4, !tbaa !11
  %1791 = load ptr, ptr %24, align 8, !tbaa !5
  %1792 = load i32, ptr %56, align 4, !tbaa !9
  %1793 = sext i32 %1792 to i64
  %1794 = getelementptr inbounds float, ptr %1791, i64 %1793
  store float %1790, ptr %1794, align 4, !tbaa !11
  br label %1795

1795:                                             ; preds = %1789, %1736
  br label %1805

1796:                                             ; preds = %787
  %1797 = load i32, ptr %76, align 4, !tbaa !9
  %1798 = icmp eq i32 %1797, 0
  br i1 %1798, label %1799, label %1802

1799:                                             ; preds = %1796
  %1800 = load i32, ptr %78, align 4, !tbaa !9
  %1801 = add nsw i32 %1800, 1
  store i32 %1801, ptr %78, align 4, !tbaa !9
  br label %1802

1802:                                             ; preds = %1799, %1796
  %1803 = load i32, ptr %52, align 4, !tbaa !9
  %1804 = add nsw i32 %1803, 1
  store i32 %1804, ptr %52, align 4, !tbaa !9
  br label %1805

1805:                                             ; preds = %1802, %1795
  br label %1815

1806:                                             ; preds = %580
  %1807 = load i32, ptr %76, align 4, !tbaa !9
  %1808 = icmp eq i32 %1807, 0
  br i1 %1808, label %1809, label %1812

1809:                                             ; preds = %1806
  %1810 = load i32, ptr %78, align 4, !tbaa !9
  %1811 = add nsw i32 %1810, 1
  store i32 %1811, ptr %78, align 4, !tbaa !9
  br label %1812

1812:                                             ; preds = %1809, %1806
  %1813 = load i32, ptr %52, align 4, !tbaa !9
  %1814 = add nsw i32 %1813, 1
  store i32 %1814, ptr %52, align 4, !tbaa !9
  br label %1815

1815:                                             ; preds = %1812, %1805
  %1816 = load i32, ptr %55, align 4, !tbaa !9
  %1817 = load i32, ptr %71, align 4, !tbaa !9
  %1818 = icmp sle i32 %1816, %1817
  br i1 %1818, label %1819, label %1830

1819:                                             ; preds = %1815
  %1820 = load i32, ptr %52, align 4, !tbaa !9
  %1821 = load i32, ptr %91, align 4, !tbaa !9
  %1822 = icmp sgt i32 %1820, %1821
  br i1 %1822, label %1823, label %1830

1823:                                             ; preds = %1819
  %1824 = load i32, ptr %76, align 4, !tbaa !9
  %1825 = icmp eq i32 %1824, 0
  br i1 %1825, label %1826, label %1829

1826:                                             ; preds = %1823
  %1827 = load float, ptr %47, align 4, !tbaa !11
  %1828 = fneg float %1827
  store float %1828, ptr %47, align 4, !tbaa !11
  br label %1829

1829:                                             ; preds = %1826, %1823
  store i32 0, ptr %78, align 4, !tbaa !9
  br label %1835

1830:                                             ; preds = %1819, %1815
  br label %1831

1831:                                             ; preds = %1830
  %1832 = load i32, ptr %57, align 4, !tbaa !9
  %1833 = add nsw i32 %1832, 1
  store i32 %1833, ptr %57, align 4, !tbaa !9
  br label %576, !llvm.loop !13

1834:                                             ; preds = %576
  br label %1835

1835:                                             ; preds = %1834, %1829
  %1836 = load float, ptr %47, align 4, !tbaa !11
  %1837 = load ptr, ptr %24, align 8, !tbaa !5
  %1838 = load i32, ptr %56, align 4, !tbaa !9
  %1839 = sext i32 %1838 to i64
  %1840 = getelementptr inbounds float, ptr %1837, i64 %1839
  store float %1836, ptr %1840, align 4, !tbaa !11
  br label %1873

1841:                                             ; preds = %555
  %1842 = load float, ptr %47, align 4, !tbaa !11
  %1843 = load ptr, ptr %24, align 8, !tbaa !5
  %1844 = load i32, ptr %56, align 4, !tbaa !9
  %1845 = sext i32 %1844 to i64
  %1846 = getelementptr inbounds float, ptr %1843, i64 %1845
  store float %1842, ptr %1846, align 4, !tbaa !11
  %1847 = load i32, ptr %76, align 4, !tbaa !9
  %1848 = icmp eq i32 %1847, 0
  br i1 %1848, label %1849, label %1872

1849:                                             ; preds = %1841
  %1850 = load float, ptr %47, align 4, !tbaa !11
  %1851 = fcmp oeq float %1850, 0.000000e+00
  br i1 %1851, label %1852, label %1872

1852:                                             ; preds = %1849
  %1853 = load i32, ptr %84, align 4, !tbaa !9
  %1854 = load i32, ptr %82, align 4, !tbaa !9
  %1855 = add nsw i32 %1853, %1854
  %1856 = sub nsw i32 %1855, 1
  store i32 %1856, ptr %43, align 4, !tbaa !9
  %1857 = load i32, ptr %78, align 4, !tbaa !9
  %1858 = load i32, ptr %43, align 4, !tbaa !9
  %1859 = load ptr, ptr %20, align 8, !tbaa !5
  %1860 = load i32, ptr %1859, align 4, !tbaa !9
  %1861 = icmp sle i32 %1858, %1860
  br i1 %1861, label %1862, label %1864

1862:                                             ; preds = %1852
  %1863 = load i32, ptr %43, align 4, !tbaa !9
  br label %1867

1864:                                             ; preds = %1852
  %1865 = load ptr, ptr %20, align 8, !tbaa !5
  %1866 = load i32, ptr %1865, align 4, !tbaa !9
  br label %1867

1867:                                             ; preds = %1864, %1862
  %1868 = phi i32 [ %1863, %1862 ], [ %1866, %1864 ]
  %1869 = add nsw i32 %1857, %1868
  %1870 = load i32, ptr %56, align 4, !tbaa !9
  %1871 = sub nsw i32 %1869, %1870
  store i32 %1871, ptr %78, align 4, !tbaa !9
  br label %1872

1872:                                             ; preds = %1867, %1849, %1841
  br label %1873

1873:                                             ; preds = %1872, %1835
  br label %1874

1874:                                             ; preds = %1873
  %1875 = load i32, ptr %56, align 4, !tbaa !9
  %1876 = add nsw i32 %1875, 1
  store i32 %1876, ptr %56, align 4, !tbaa !9
  br label %384, !llvm.loop !15

1877:                                             ; preds = %384
  br label %1878

1878:                                             ; preds = %1877
  %1879 = load i32, ptr %76, align 4, !tbaa !9
  %1880 = add nsw i32 %1879, 1
  store i32 %1880, ptr %76, align 4, !tbaa !9
  br label %357, !llvm.loop !16

1881:                                             ; preds = %357
  %1882 = load i32, ptr %85, align 4, !tbaa !9
  %1883 = sub nsw i32 %1882, 1
  %1884 = load i32, ptr %82, align 4, !tbaa !9
  %1885 = mul nsw i32 %1883, %1884
  %1886 = add nsw i32 %1885, 1
  store i32 %1886, ptr %84, align 4, !tbaa !9
  %1887 = load i32, ptr %87, align 4, !tbaa !9
  store i32 %1887, ptr %41, align 4, !tbaa !9
  %1888 = load i32, ptr %85, align 4, !tbaa !9
  %1889 = add nsw i32 %1888, 1
  store i32 %1889, ptr %80, align 4, !tbaa !9
  br label %1890

1890:                                             ; preds = %3383, %1881
  %1891 = load i32, ptr %80, align 4, !tbaa !9
  %1892 = load i32, ptr %41, align 4, !tbaa !9
  %1893 = icmp sle i32 %1891, %1892
  br i1 %1893, label %1894, label %3386

1894:                                             ; preds = %1890
  %1895 = load i32, ptr %80, align 4, !tbaa !9
  %1896 = sub nsw i32 %1895, 1
  %1897 = load i32, ptr %82, align 4, !tbaa !9
  %1898 = mul nsw i32 %1896, %1897
  %1899 = add nsw i32 %1898, 1
  store i32 %1899, ptr %86, align 4, !tbaa !9
  store i32 0, ptr %70, align 4, !tbaa !9
  %1900 = load i32, ptr %84, align 4, !tbaa !9
  %1901 = load i32, ptr %82, align 4, !tbaa !9
  %1902 = add nsw i32 %1900, %1901
  %1903 = sub nsw i32 %1902, 1
  store i32 %1903, ptr %43, align 4, !tbaa !9
  %1904 = load i32, ptr %43, align 4, !tbaa !9
  %1905 = load ptr, ptr %20, align 8, !tbaa !5
  %1906 = load i32, ptr %1905, align 4, !tbaa !9
  %1907 = icmp sle i32 %1904, %1906
  br i1 %1907, label %1908, label %1910

1908:                                             ; preds = %1894
  %1909 = load i32, ptr %43, align 4, !tbaa !9
  br label %1913

1910:                                             ; preds = %1894
  %1911 = load ptr, ptr %20, align 8, !tbaa !5
  %1912 = load i32, ptr %1911, align 4, !tbaa !9
  br label %1913

1913:                                             ; preds = %1910, %1908
  %1914 = phi i32 [ %1909, %1908 ], [ %1912, %1910 ]
  store i32 %1914, ptr %42, align 4, !tbaa !9
  %1915 = load i32, ptr %84, align 4, !tbaa !9
  store i32 %1915, ptr %56, align 4, !tbaa !9
  br label %1916

1916:                                             ; preds = %3379, %1913
  %1917 = load i32, ptr %56, align 4, !tbaa !9
  %1918 = load i32, ptr %42, align 4, !tbaa !9
  %1919 = icmp sle i32 %1917, %1918
  br i1 %1919, label %1920, label %3382

1920:                                             ; preds = %1916
  %1921 = load ptr, ptr %24, align 8, !tbaa !5
  %1922 = load i32, ptr %56, align 4, !tbaa !9
  %1923 = sext i32 %1922 to i64
  %1924 = getelementptr inbounds float, ptr %1921, i64 %1923
  %1925 = load float, ptr %1924, align 4, !tbaa !11
  store float %1925, ptr %47, align 4, !tbaa !11
  %1926 = load float, ptr %47, align 4, !tbaa !11
  %1927 = fcmp ogt float %1926, 0.000000e+00
  br i1 %1927, label %1928, label %3349

1928:                                             ; preds = %1920
  store i32 0, ptr %52, align 4, !tbaa !9
  %1929 = load i32, ptr %86, align 4, !tbaa !9
  %1930 = load i32, ptr %82, align 4, !tbaa !9
  %1931 = add nsw i32 %1929, %1930
  %1932 = sub nsw i32 %1931, 1
  store i32 %1932, ptr %44, align 4, !tbaa !9
  %1933 = load i32, ptr %44, align 4, !tbaa !9
  %1934 = load ptr, ptr %20, align 8, !tbaa !5
  %1935 = load i32, ptr %1934, align 4, !tbaa !9
  %1936 = icmp sle i32 %1933, %1935
  br i1 %1936, label %1937, label %1939

1937:                                             ; preds = %1928
  %1938 = load i32, ptr %44, align 4, !tbaa !9
  br label %1942

1939:                                             ; preds = %1928
  %1940 = load ptr, ptr %20, align 8, !tbaa !5
  %1941 = load i32, ptr %1940, align 4, !tbaa !9
  br label %1942

1942:                                             ; preds = %1939, %1937
  %1943 = phi i32 [ %1938, %1937 ], [ %1941, %1939 ]
  store i32 %1943, ptr %43, align 4, !tbaa !9
  %1944 = load i32, ptr %86, align 4, !tbaa !9
  store i32 %1944, ptr %57, align 4, !tbaa !9
  br label %1945

1945:                                             ; preds = %3339, %1942
  %1946 = load i32, ptr %57, align 4, !tbaa !9
  %1947 = load i32, ptr %43, align 4, !tbaa !9
  %1948 = icmp sle i32 %1946, %1947
  br i1 %1948, label %1949, label %3342

1949:                                             ; preds = %1945
  %1950 = load ptr, ptr %24, align 8, !tbaa !5
  %1951 = load i32, ptr %57, align 4, !tbaa !9
  %1952 = sext i32 %1951 to i64
  %1953 = getelementptr inbounds float, ptr %1950, i64 %1952
  %1954 = load float, ptr %1953, align 4, !tbaa !11
  store float %1954, ptr %49, align 4, !tbaa !11
  %1955 = load float, ptr %49, align 4, !tbaa !11
  %1956 = fcmp ogt float %1955, 0.000000e+00
  br i1 %1956, label %1957, label %3306

1957:                                             ; preds = %1949
  %1958 = load float, ptr %47, align 4, !tbaa !11
  store float %1958, ptr %53, align 4, !tbaa !11
  %1959 = load float, ptr %49, align 4, !tbaa !11
  %1960 = fcmp oge float %1959, 1.000000e+00
  br i1 %1960, label %1961, label %2057

1961:                                             ; preds = %1957
  %1962 = load float, ptr %47, align 4, !tbaa !11
  %1963 = load float, ptr %49, align 4, !tbaa !11
  %1964 = fcmp oge float %1962, %1963
  br i1 %1964, label %1965, label %1972

1965:                                             ; preds = %1961
  %1966 = load float, ptr %62, align 4, !tbaa !11
  %1967 = load float, ptr %47, align 4, !tbaa !11
  %1968 = fmul float %1966, %1967
  %1969 = load float, ptr %49, align 4, !tbaa !11
  %1970 = fcmp ole float %1968, %1969
  %1971 = zext i1 %1970 to i32
  store i32 %1971, ptr %66, align 4, !tbaa !9
  br label %1979

1972:                                             ; preds = %1961
  %1973 = load float, ptr %62, align 4, !tbaa !11
  %1974 = load float, ptr %49, align 4, !tbaa !11
  %1975 = fmul float %1973, %1974
  %1976 = load float, ptr %47, align 4, !tbaa !11
  %1977 = fcmp ole float %1975, %1976
  %1978 = zext i1 %1977 to i32
  store i32 %1978, ptr %66, align 4, !tbaa !9
  br label %1979

1979:                                             ; preds = %1972, %1965
  %1980 = load float, ptr %47, align 4, !tbaa !11
  %1981 = load float, ptr %81, align 4, !tbaa !11
  %1982 = load float, ptr %49, align 4, !tbaa !11
  %1983 = fdiv float %1981, %1982
  %1984 = fcmp olt float %1980, %1983
  br i1 %1984, label %1985, label %2018

1985:                                             ; preds = %1979
  %1986 = load ptr, ptr %19, align 8, !tbaa !5
  %1987 = load ptr, ptr %21, align 8, !tbaa !5
  %1988 = load i32, ptr %56, align 4, !tbaa !9
  %1989 = load i32, ptr %35, align 4, !tbaa !9
  %1990 = mul nsw i32 %1988, %1989
  %1991 = add nsw i32 %1990, 1
  %1992 = sext i32 %1991 to i64
  %1993 = getelementptr inbounds float, ptr %1987, i64 %1992
  %1994 = load ptr, ptr %21, align 8, !tbaa !5
  %1995 = load i32, ptr %57, align 4, !tbaa !9
  %1996 = load i32, ptr %35, align 4, !tbaa !9
  %1997 = mul nsw i32 %1995, %1996
  %1998 = add nsw i32 %1997, 1
  %1999 = sext i32 %1998 to i64
  %2000 = getelementptr inbounds float, ptr %1994, i64 %1999
  %2001 = call float @sdot_(ptr noundef %1986, ptr noundef %1993, ptr noundef @c__1, ptr noundef %2000, ptr noundef @c__1)
  %2002 = load ptr, ptr %23, align 8, !tbaa !5
  %2003 = load i32, ptr %56, align 4, !tbaa !9
  %2004 = sext i32 %2003 to i64
  %2005 = getelementptr inbounds float, ptr %2002, i64 %2004
  %2006 = load float, ptr %2005, align 4, !tbaa !11
  %2007 = fmul float %2001, %2006
  %2008 = load ptr, ptr %23, align 8, !tbaa !5
  %2009 = load i32, ptr %57, align 4, !tbaa !9
  %2010 = sext i32 %2009 to i64
  %2011 = getelementptr inbounds float, ptr %2008, i64 %2010
  %2012 = load float, ptr %2011, align 4, !tbaa !11
  %2013 = fmul float %2007, %2012
  %2014 = load float, ptr %49, align 4, !tbaa !11
  %2015 = fdiv float %2013, %2014
  %2016 = load float, ptr %47, align 4, !tbaa !11
  %2017 = fdiv float %2015, %2016
  store float %2017, ptr %48, align 4, !tbaa !11
  br label %2056

2018:                                             ; preds = %1979
  %2019 = load ptr, ptr %19, align 8, !tbaa !5
  %2020 = load ptr, ptr %21, align 8, !tbaa !5
  %2021 = load i32, ptr %56, align 4, !tbaa !9
  %2022 = load i32, ptr %35, align 4, !tbaa !9
  %2023 = mul nsw i32 %2021, %2022
  %2024 = add nsw i32 %2023, 1
  %2025 = sext i32 %2024 to i64
  %2026 = getelementptr inbounds float, ptr %2020, i64 %2025
  %2027 = load ptr, ptr %32, align 8, !tbaa !5
  %2028 = getelementptr inbounds float, ptr %2027, i64 1
  call void @scopy_(ptr noundef %2019, ptr noundef %2026, ptr noundef @c__1, ptr noundef %2028, ptr noundef @c__1)
  %2029 = load ptr, ptr %23, align 8, !tbaa !5
  %2030 = load i32, ptr %56, align 4, !tbaa !9
  %2031 = sext i32 %2030 to i64
  %2032 = getelementptr inbounds float, ptr %2029, i64 %2031
  %2033 = load ptr, ptr %19, align 8, !tbaa !5
  %2034 = load ptr, ptr %32, align 8, !tbaa !5
  %2035 = getelementptr inbounds float, ptr %2034, i64 1
  %2036 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %47, ptr noundef %2032, ptr noundef %2033, ptr noundef @c__1, ptr noundef %2035, ptr noundef %2036, ptr noundef %50)
  %2037 = load ptr, ptr %19, align 8, !tbaa !5
  %2038 = load ptr, ptr %32, align 8, !tbaa !5
  %2039 = getelementptr inbounds float, ptr %2038, i64 1
  %2040 = load ptr, ptr %21, align 8, !tbaa !5
  %2041 = load i32, ptr %57, align 4, !tbaa !9
  %2042 = load i32, ptr %35, align 4, !tbaa !9
  %2043 = mul nsw i32 %2041, %2042
  %2044 = add nsw i32 %2043, 1
  %2045 = sext i32 %2044 to i64
  %2046 = getelementptr inbounds float, ptr %2040, i64 %2045
  %2047 = call float @sdot_(ptr noundef %2037, ptr noundef %2039, ptr noundef @c__1, ptr noundef %2046, ptr noundef @c__1)
  %2048 = load ptr, ptr %23, align 8, !tbaa !5
  %2049 = load i32, ptr %57, align 4, !tbaa !9
  %2050 = sext i32 %2049 to i64
  %2051 = getelementptr inbounds float, ptr %2048, i64 %2050
  %2052 = load float, ptr %2051, align 4, !tbaa !11
  %2053 = fmul float %2047, %2052
  %2054 = load float, ptr %49, align 4, !tbaa !11
  %2055 = fdiv float %2053, %2054
  store float %2055, ptr %48, align 4, !tbaa !11
  br label %2056

2056:                                             ; preds = %2018, %1985
  br label %2153

2057:                                             ; preds = %1957
  %2058 = load float, ptr %47, align 4, !tbaa !11
  %2059 = load float, ptr %49, align 4, !tbaa !11
  %2060 = fcmp oge float %2058, %2059
  br i1 %2060, label %2061, label %2068

2061:                                             ; preds = %2057
  %2062 = load float, ptr %47, align 4, !tbaa !11
  %2063 = load float, ptr %49, align 4, !tbaa !11
  %2064 = load float, ptr %62, align 4, !tbaa !11
  %2065 = fdiv float %2063, %2064
  %2066 = fcmp ole float %2062, %2065
  %2067 = zext i1 %2066 to i32
  store i32 %2067, ptr %66, align 4, !tbaa !9
  br label %2075

2068:                                             ; preds = %2057
  %2069 = load float, ptr %49, align 4, !tbaa !11
  %2070 = load float, ptr %47, align 4, !tbaa !11
  %2071 = load float, ptr %62, align 4, !tbaa !11
  %2072 = fdiv float %2070, %2071
  %2073 = fcmp ole float %2069, %2072
  %2074 = zext i1 %2073 to i32
  store i32 %2074, ptr %66, align 4, !tbaa !9
  br label %2075

2075:                                             ; preds = %2068, %2061
  %2076 = load float, ptr %47, align 4, !tbaa !11
  %2077 = load float, ptr %62, align 4, !tbaa !11
  %2078 = load float, ptr %49, align 4, !tbaa !11
  %2079 = fdiv float %2077, %2078
  %2080 = fcmp ogt float %2076, %2079
  br i1 %2080, label %2081, label %2114

2081:                                             ; preds = %2075
  %2082 = load ptr, ptr %19, align 8, !tbaa !5
  %2083 = load ptr, ptr %21, align 8, !tbaa !5
  %2084 = load i32, ptr %56, align 4, !tbaa !9
  %2085 = load i32, ptr %35, align 4, !tbaa !9
  %2086 = mul nsw i32 %2084, %2085
  %2087 = add nsw i32 %2086, 1
  %2088 = sext i32 %2087 to i64
  %2089 = getelementptr inbounds float, ptr %2083, i64 %2088
  %2090 = load ptr, ptr %21, align 8, !tbaa !5
  %2091 = load i32, ptr %57, align 4, !tbaa !9
  %2092 = load i32, ptr %35, align 4, !tbaa !9
  %2093 = mul nsw i32 %2091, %2092
  %2094 = add nsw i32 %2093, 1
  %2095 = sext i32 %2094 to i64
  %2096 = getelementptr inbounds float, ptr %2090, i64 %2095
  %2097 = call float @sdot_(ptr noundef %2082, ptr noundef %2089, ptr noundef @c__1, ptr noundef %2096, ptr noundef @c__1)
  %2098 = load ptr, ptr %23, align 8, !tbaa !5
  %2099 = load i32, ptr %56, align 4, !tbaa !9
  %2100 = sext i32 %2099 to i64
  %2101 = getelementptr inbounds float, ptr %2098, i64 %2100
  %2102 = load float, ptr %2101, align 4, !tbaa !11
  %2103 = fmul float %2097, %2102
  %2104 = load ptr, ptr %23, align 8, !tbaa !5
  %2105 = load i32, ptr %57, align 4, !tbaa !9
  %2106 = sext i32 %2105 to i64
  %2107 = getelementptr inbounds float, ptr %2104, i64 %2106
  %2108 = load float, ptr %2107, align 4, !tbaa !11
  %2109 = fmul float %2103, %2108
  %2110 = load float, ptr %49, align 4, !tbaa !11
  %2111 = fdiv float %2109, %2110
  %2112 = load float, ptr %47, align 4, !tbaa !11
  %2113 = fdiv float %2111, %2112
  store float %2113, ptr %48, align 4, !tbaa !11
  br label %2152

2114:                                             ; preds = %2075
  %2115 = load ptr, ptr %19, align 8, !tbaa !5
  %2116 = load ptr, ptr %21, align 8, !tbaa !5
  %2117 = load i32, ptr %57, align 4, !tbaa !9
  %2118 = load i32, ptr %35, align 4, !tbaa !9
  %2119 = mul nsw i32 %2117, %2118
  %2120 = add nsw i32 %2119, 1
  %2121 = sext i32 %2120 to i64
  %2122 = getelementptr inbounds float, ptr %2116, i64 %2121
  %2123 = load ptr, ptr %32, align 8, !tbaa !5
  %2124 = getelementptr inbounds float, ptr %2123, i64 1
  call void @scopy_(ptr noundef %2115, ptr noundef %2122, ptr noundef @c__1, ptr noundef %2124, ptr noundef @c__1)
  %2125 = load ptr, ptr %23, align 8, !tbaa !5
  %2126 = load i32, ptr %57, align 4, !tbaa !9
  %2127 = sext i32 %2126 to i64
  %2128 = getelementptr inbounds float, ptr %2125, i64 %2127
  %2129 = load ptr, ptr %19, align 8, !tbaa !5
  %2130 = load ptr, ptr %32, align 8, !tbaa !5
  %2131 = getelementptr inbounds float, ptr %2130, i64 1
  %2132 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %49, ptr noundef %2128, ptr noundef %2129, ptr noundef @c__1, ptr noundef %2131, ptr noundef %2132, ptr noundef %50)
  %2133 = load ptr, ptr %19, align 8, !tbaa !5
  %2134 = load ptr, ptr %32, align 8, !tbaa !5
  %2135 = getelementptr inbounds float, ptr %2134, i64 1
  %2136 = load ptr, ptr %21, align 8, !tbaa !5
  %2137 = load i32, ptr %56, align 4, !tbaa !9
  %2138 = load i32, ptr %35, align 4, !tbaa !9
  %2139 = mul nsw i32 %2137, %2138
  %2140 = add nsw i32 %2139, 1
  %2141 = sext i32 %2140 to i64
  %2142 = getelementptr inbounds float, ptr %2136, i64 %2141
  %2143 = call float @sdot_(ptr noundef %2133, ptr noundef %2135, ptr noundef @c__1, ptr noundef %2142, ptr noundef @c__1)
  %2144 = load ptr, ptr %23, align 8, !tbaa !5
  %2145 = load i32, ptr %56, align 4, !tbaa !9
  %2146 = sext i32 %2145 to i64
  %2147 = getelementptr inbounds float, ptr %2144, i64 %2146
  %2148 = load float, ptr %2147, align 4, !tbaa !11
  %2149 = fmul float %2143, %2148
  %2150 = load float, ptr %47, align 4, !tbaa !11
  %2151 = fdiv float %2149, %2150
  store float %2151, ptr %48, align 4, !tbaa !11
  br label %2152

2152:                                             ; preds = %2114, %2081
  br label %2153

2153:                                             ; preds = %2152, %2056
  %2154 = load float, ptr %73, align 4, !tbaa !11
  store float %2154, ptr %45, align 4, !tbaa !11
  %2155 = load float, ptr %48, align 4, !tbaa !11
  %2156 = fcmp oge float %2155, 0.000000e+00
  br i1 %2156, label %2157, label %2159

2157:                                             ; preds = %2153
  %2158 = load float, ptr %48, align 4, !tbaa !11
  br label %2162

2159:                                             ; preds = %2153
  %2160 = load float, ptr %48, align 4, !tbaa !11
  %2161 = fneg float %2160
  br label %2162

2162:                                             ; preds = %2159, %2157
  %2163 = phi float [ %2158, %2157 ], [ %2161, %2159 ]
  store float %2163, ptr %46, align 4, !tbaa !11
  %2164 = load float, ptr %45, align 4, !tbaa !11
  %2165 = load float, ptr %46, align 4, !tbaa !11
  %2166 = fcmp oge float %2164, %2165
  br i1 %2166, label %2167, label %2169

2167:                                             ; preds = %2162
  %2168 = load float, ptr %45, align 4, !tbaa !11
  br label %2171

2169:                                             ; preds = %2162
  %2170 = load float, ptr %46, align 4, !tbaa !11
  br label %2171

2171:                                             ; preds = %2169, %2167
  %2172 = phi float [ %2168, %2167 ], [ %2170, %2169 ]
  store float %2172, ptr %73, align 4, !tbaa !11
  %2173 = load float, ptr %48, align 4, !tbaa !11
  %2174 = fcmp oge float %2173, 0.000000e+00
  br i1 %2174, label %2175, label %2177

2175:                                             ; preds = %2171
  %2176 = load float, ptr %48, align 4, !tbaa !11
  br label %2180

2177:                                             ; preds = %2171
  %2178 = load float, ptr %48, align 4, !tbaa !11
  %2179 = fneg float %2178
  br label %2180

2180:                                             ; preds = %2177, %2175
  %2181 = phi float [ %2176, %2175 ], [ %2179, %2177 ]
  %2182 = load ptr, ptr %30, align 8, !tbaa !5
  %2183 = load float, ptr %2182, align 4, !tbaa !11
  %2184 = fcmp ogt float %2181, %2183
  br i1 %2184, label %2185, label %3298

2185:                                             ; preds = %2180
  store i32 0, ptr %78, align 4, !tbaa !9
  store i32 0, ptr %52, align 4, !tbaa !9
  %2186 = load i32, ptr %79, align 4, !tbaa !9
  %2187 = add nsw i32 %2186, 1
  store i32 %2187, ptr %79, align 4, !tbaa !9
  %2188 = load i32, ptr %66, align 4, !tbaa !9
  %2189 = icmp ne i32 %2188, 0
  br i1 %2189, label %2190, label %2979

2190:                                             ; preds = %2185
  %2191 = load float, ptr %49, align 4, !tbaa !11
  %2192 = load float, ptr %47, align 4, !tbaa !11
  %2193 = fdiv float %2191, %2192
  store float %2193, ptr %60, align 4, !tbaa !11
  %2194 = load float, ptr %47, align 4, !tbaa !11
  %2195 = load float, ptr %49, align 4, !tbaa !11
  %2196 = fdiv float %2194, %2195
  store float %2196, ptr %59, align 4, !tbaa !11
  %2197 = load float, ptr %60, align 4, !tbaa !11
  %2198 = load float, ptr %59, align 4, !tbaa !11
  %2199 = fsub float %2197, %2198
  store float %2199, ptr %45, align 4, !tbaa !11
  %2200 = load float, ptr %45, align 4, !tbaa !11
  %2201 = fcmp oge float %2200, 0.000000e+00
  br i1 %2201, label %2202, label %2204

2202:                                             ; preds = %2190
  %2203 = load float, ptr %45, align 4, !tbaa !11
  br label %2207

2204:                                             ; preds = %2190
  %2205 = load float, ptr %45, align 4, !tbaa !11
  %2206 = fneg float %2205
  br label %2207

2207:                                             ; preds = %2204, %2202
  %2208 = phi float [ %2203, %2202 ], [ %2206, %2204 ]
  %2209 = fmul float %2208, -5.000000e-01
  %2210 = load float, ptr %48, align 4, !tbaa !11
  %2211 = fdiv float %2209, %2210
  store float %2211, ptr %61, align 4, !tbaa !11
  %2212 = load float, ptr %49, align 4, !tbaa !11
  %2213 = load float, ptr %53, align 4, !tbaa !11
  %2214 = fcmp ogt float %2212, %2213
  br i1 %2214, label %2215, label %2218

2215:                                             ; preds = %2207
  %2216 = load float, ptr %61, align 4, !tbaa !11
  %2217 = fneg float %2216
  store float %2217, ptr %61, align 4, !tbaa !11
  br label %2218

2218:                                             ; preds = %2215, %2207
  %2219 = load float, ptr %61, align 4, !tbaa !11
  %2220 = fcmp oge float %2219, 0.000000e+00
  br i1 %2220, label %2221, label %2223

2221:                                             ; preds = %2218
  %2222 = load float, ptr %61, align 4, !tbaa !11
  br label %2226

2223:                                             ; preds = %2218
  %2224 = load float, ptr %61, align 4, !tbaa !11
  %2225 = fneg float %2224
  br label %2226

2226:                                             ; preds = %2223, %2221
  %2227 = phi float [ %2222, %2221 ], [ %2225, %2223 ]
  %2228 = load float, ptr %51, align 4, !tbaa !11
  %2229 = fcmp ogt float %2227, %2228
  br i1 %2229, label %2230, label %2361

2230:                                             ; preds = %2226
  %2231 = load float, ptr %61, align 4, !tbaa !11
  %2232 = fdiv float 5.000000e-01, %2231
  store float %2232, ptr %58, align 4, !tbaa !11
  %2233 = load float, ptr %58, align 4, !tbaa !11
  %2234 = load ptr, ptr %23, align 8, !tbaa !5
  %2235 = load i32, ptr %56, align 4, !tbaa !9
  %2236 = sext i32 %2235 to i64
  %2237 = getelementptr inbounds float, ptr %2234, i64 %2236
  %2238 = load float, ptr %2237, align 4, !tbaa !11
  %2239 = fmul float %2233, %2238
  %2240 = load ptr, ptr %23, align 8, !tbaa !5
  %2241 = load i32, ptr %57, align 4, !tbaa !9
  %2242 = sext i32 %2241 to i64
  %2243 = getelementptr inbounds float, ptr %2240, i64 %2242
  %2244 = load float, ptr %2243, align 4, !tbaa !11
  %2245 = fdiv float %2239, %2244
  %2246 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 2
  store float %2245, ptr %2246, align 8, !tbaa !11
  %2247 = load float, ptr %58, align 4, !tbaa !11
  %2248 = fneg float %2247
  %2249 = load ptr, ptr %23, align 8, !tbaa !5
  %2250 = load i32, ptr %57, align 4, !tbaa !9
  %2251 = sext i32 %2250 to i64
  %2252 = getelementptr inbounds float, ptr %2249, i64 %2251
  %2253 = load float, ptr %2252, align 4, !tbaa !11
  %2254 = fmul float %2248, %2253
  %2255 = load ptr, ptr %23, align 8, !tbaa !5
  %2256 = load i32, ptr %56, align 4, !tbaa !9
  %2257 = sext i32 %2256 to i64
  %2258 = getelementptr inbounds float, ptr %2255, i64 %2257
  %2259 = load float, ptr %2258, align 4, !tbaa !11
  %2260 = fdiv float %2254, %2259
  %2261 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 3
  store float %2260, ptr %2261, align 4, !tbaa !11
  %2262 = load ptr, ptr %19, align 8, !tbaa !5
  %2263 = load ptr, ptr %21, align 8, !tbaa !5
  %2264 = load i32, ptr %56, align 4, !tbaa !9
  %2265 = load i32, ptr %35, align 4, !tbaa !9
  %2266 = mul nsw i32 %2264, %2265
  %2267 = add nsw i32 %2266, 1
  %2268 = sext i32 %2267 to i64
  %2269 = getelementptr inbounds float, ptr %2263, i64 %2268
  %2270 = load ptr, ptr %21, align 8, !tbaa !5
  %2271 = load i32, ptr %57, align 4, !tbaa !9
  %2272 = load i32, ptr %35, align 4, !tbaa !9
  %2273 = mul nsw i32 %2271, %2272
  %2274 = add nsw i32 %2273, 1
  %2275 = sext i32 %2274 to i64
  %2276 = getelementptr inbounds float, ptr %2270, i64 %2275
  %2277 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 0
  call void @srotm_(ptr noundef %2262, ptr noundef %2269, ptr noundef @c__1, ptr noundef %2276, ptr noundef @c__1, ptr noundef %2277)
  %2278 = load i32, ptr %65, align 4, !tbaa !9
  %2279 = icmp ne i32 %2278, 0
  br i1 %2279, label %2280, label %2296

2280:                                             ; preds = %2230
  %2281 = load ptr, ptr %26, align 8, !tbaa !5
  %2282 = load i32, ptr %56, align 4, !tbaa !9
  %2283 = load i32, ptr %37, align 4, !tbaa !9
  %2284 = mul nsw i32 %2282, %2283
  %2285 = add nsw i32 %2284, 1
  %2286 = sext i32 %2285 to i64
  %2287 = getelementptr inbounds float, ptr %2281, i64 %2286
  %2288 = load ptr, ptr %26, align 8, !tbaa !5
  %2289 = load i32, ptr %57, align 4, !tbaa !9
  %2290 = load i32, ptr %37, align 4, !tbaa !9
  %2291 = mul nsw i32 %2289, %2290
  %2292 = add nsw i32 %2291, 1
  %2293 = sext i32 %2292 to i64
  %2294 = getelementptr inbounds float, ptr %2288, i64 %2293
  %2295 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 0
  call void @srotm_(ptr noundef %88, ptr noundef %2287, ptr noundef @c__1, ptr noundef %2294, ptr noundef @c__1, ptr noundef %2295)
  br label %2296

2296:                                             ; preds = %2280, %2230
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %2297 = load float, ptr %58, align 4, !tbaa !11
  %2298 = load float, ptr %59, align 4, !tbaa !11
  %2299 = fmul float %2297, %2298
  %2300 = load float, ptr %48, align 4, !tbaa !11
  %2301 = call float @llvm.fmuladd.f32(float %2299, float %2300, float 1.000000e+00)
  store float %2301, ptr %46, align 4, !tbaa !11
  %2302 = load float, ptr %49, align 4, !tbaa !11
  %2303 = fpext float %2302 to double
  %2304 = load float, ptr %45, align 4, !tbaa !11
  %2305 = load float, ptr %46, align 4, !tbaa !11
  %2306 = fcmp oge float %2304, %2305
  br i1 %2306, label %2307, label %2309

2307:                                             ; preds = %2296
  %2308 = load float, ptr %45, align 4, !tbaa !11
  br label %2311

2309:                                             ; preds = %2296
  %2310 = load float, ptr %46, align 4, !tbaa !11
  br label %2311

2311:                                             ; preds = %2309, %2307
  %2312 = phi float [ %2308, %2307 ], [ %2310, %2309 ]
  %2313 = fpext float %2312 to double
  %2314 = call double @sqrt(double noundef %2313) #5
  %2315 = fmul double %2303, %2314
  %2316 = fptrunc double %2315 to float
  %2317 = load ptr, ptr %24, align 8, !tbaa !5
  %2318 = load i32, ptr %57, align 4, !tbaa !9
  %2319 = sext i32 %2318 to i64
  %2320 = getelementptr inbounds float, ptr %2317, i64 %2319
  store float %2316, ptr %2320, align 4, !tbaa !11
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %2321 = load float, ptr %58, align 4, !tbaa !11
  %2322 = load float, ptr %60, align 4, !tbaa !11
  %2323 = fmul float %2321, %2322
  %2324 = load float, ptr %48, align 4, !tbaa !11
  %2325 = fneg float %2323
  %2326 = call float @llvm.fmuladd.f32(float %2325, float %2324, float 1.000000e+00)
  store float %2326, ptr %46, align 4, !tbaa !11
  %2327 = load float, ptr %45, align 4, !tbaa !11
  %2328 = load float, ptr %46, align 4, !tbaa !11
  %2329 = fcmp oge float %2327, %2328
  br i1 %2329, label %2330, label %2332

2330:                                             ; preds = %2311
  %2331 = load float, ptr %45, align 4, !tbaa !11
  br label %2334

2332:                                             ; preds = %2311
  %2333 = load float, ptr %46, align 4, !tbaa !11
  br label %2334

2334:                                             ; preds = %2332, %2330
  %2335 = phi float [ %2331, %2330 ], [ %2333, %2332 ]
  %2336 = fpext float %2335 to double
  %2337 = call double @sqrt(double noundef %2336) #5
  %2338 = load float, ptr %47, align 4, !tbaa !11
  %2339 = fpext float %2338 to double
  %2340 = fmul double %2339, %2337
  %2341 = fptrunc double %2340 to float
  store float %2341, ptr %47, align 4, !tbaa !11
  %2342 = load float, ptr %75, align 4, !tbaa !11
  store float %2342, ptr %45, align 4, !tbaa !11
  %2343 = load float, ptr %58, align 4, !tbaa !11
  %2344 = fcmp oge float %2343, 0.000000e+00
  br i1 %2344, label %2345, label %2347

2345:                                             ; preds = %2334
  %2346 = load float, ptr %58, align 4, !tbaa !11
  br label %2350

2347:                                             ; preds = %2334
  %2348 = load float, ptr %58, align 4, !tbaa !11
  %2349 = fneg float %2348
  br label %2350

2350:                                             ; preds = %2347, %2345
  %2351 = phi float [ %2346, %2345 ], [ %2349, %2347 ]
  store float %2351, ptr %46, align 4, !tbaa !11
  %2352 = load float, ptr %45, align 4, !tbaa !11
  %2353 = load float, ptr %46, align 4, !tbaa !11
  %2354 = fcmp oge float %2352, %2353
  br i1 %2354, label %2355, label %2357

2355:                                             ; preds = %2350
  %2356 = load float, ptr %45, align 4, !tbaa !11
  br label %2359

2357:                                             ; preds = %2350
  %2358 = load float, ptr %46, align 4, !tbaa !11
  br label %2359

2359:                                             ; preds = %2357, %2355
  %2360 = phi float [ %2356, %2355 ], [ %2358, %2357 ]
  store float %2360, ptr %75, align 4, !tbaa !11
  br label %2978

2361:                                             ; preds = %2226
  %2362 = load float, ptr %48, align 4, !tbaa !11
  %2363 = fcmp oge float %2362, 0.000000e+00
  br i1 %2363, label %2364, label %2374

2364:                                             ; preds = %2361
  %2365 = load float, ptr @c_b42, align 4, !tbaa !11
  %2366 = fcmp oge float %2365, 0.000000e+00
  br i1 %2366, label %2367, label %2369

2367:                                             ; preds = %2364
  %2368 = load float, ptr @c_b42, align 4, !tbaa !11
  br label %2372

2369:                                             ; preds = %2364
  %2370 = load float, ptr @c_b42, align 4, !tbaa !11
  %2371 = fneg float %2370
  br label %2372

2372:                                             ; preds = %2369, %2367
  %2373 = phi float [ %2368, %2367 ], [ %2371, %2369 ]
  br label %2385

2374:                                             ; preds = %2361
  %2375 = load float, ptr @c_b42, align 4, !tbaa !11
  %2376 = fcmp oge float %2375, 0.000000e+00
  br i1 %2376, label %2377, label %2379

2377:                                             ; preds = %2374
  %2378 = load float, ptr @c_b42, align 4, !tbaa !11
  br label %2382

2379:                                             ; preds = %2374
  %2380 = load float, ptr @c_b42, align 4, !tbaa !11
  %2381 = fneg float %2380
  br label %2382

2382:                                             ; preds = %2379, %2377
  %2383 = phi float [ %2378, %2377 ], [ %2381, %2379 ]
  %2384 = fneg float %2383
  br label %2385

2385:                                             ; preds = %2382, %2372
  %2386 = phi float [ %2373, %2372 ], [ %2384, %2382 ]
  %2387 = fneg float %2386
  store float %2387, ptr %74, align 4, !tbaa !11
  %2388 = load float, ptr %49, align 4, !tbaa !11
  %2389 = load float, ptr %53, align 4, !tbaa !11
  %2390 = fcmp ogt float %2388, %2389
  br i1 %2390, label %2391, label %2394

2391:                                             ; preds = %2385
  %2392 = load float, ptr %74, align 4, !tbaa !11
  %2393 = fneg float %2392
  store float %2393, ptr %74, align 4, !tbaa !11
  br label %2394

2394:                                             ; preds = %2391, %2385
  %2395 = load float, ptr %61, align 4, !tbaa !11
  %2396 = fpext float %2395 to double
  %2397 = load float, ptr %74, align 4, !tbaa !11
  %2398 = fpext float %2397 to double
  %2399 = load float, ptr %61, align 4, !tbaa !11
  %2400 = load float, ptr %61, align 4, !tbaa !11
  %2401 = call float @llvm.fmuladd.f32(float %2399, float %2400, float 1.000000e+00)
  %2402 = fpext float %2401 to double
  %2403 = call double @sqrt(double noundef %2402) #5
  %2404 = call double @llvm.fmuladd.f64(double %2398, double %2403, double %2396)
  %2405 = fdiv double 1.000000e+00, %2404
  %2406 = fptrunc double %2405 to float
  store float %2406, ptr %58, align 4, !tbaa !11
  %2407 = load float, ptr %58, align 4, !tbaa !11
  %2408 = load float, ptr %58, align 4, !tbaa !11
  %2409 = call float @llvm.fmuladd.f32(float %2407, float %2408, float 1.000000e+00)
  %2410 = fdiv float 1.000000e+00, %2409
  %2411 = fpext float %2410 to double
  %2412 = call double @sqrt(double noundef %2411) #5
  %2413 = fptrunc double %2412 to float
  store float %2413, ptr %68, align 4, !tbaa !11
  %2414 = load float, ptr %58, align 4, !tbaa !11
  %2415 = load float, ptr %68, align 4, !tbaa !11
  %2416 = fmul float %2414, %2415
  store float %2416, ptr %69, align 4, !tbaa !11
  %2417 = load float, ptr %75, align 4, !tbaa !11
  store float %2417, ptr %45, align 4, !tbaa !11
  %2418 = load float, ptr %69, align 4, !tbaa !11
  %2419 = fcmp oge float %2418, 0.000000e+00
  br i1 %2419, label %2420, label %2422

2420:                                             ; preds = %2394
  %2421 = load float, ptr %69, align 4, !tbaa !11
  br label %2425

2422:                                             ; preds = %2394
  %2423 = load float, ptr %69, align 4, !tbaa !11
  %2424 = fneg float %2423
  br label %2425

2425:                                             ; preds = %2422, %2420
  %2426 = phi float [ %2421, %2420 ], [ %2424, %2422 ]
  store float %2426, ptr %46, align 4, !tbaa !11
  %2427 = load float, ptr %45, align 4, !tbaa !11
  %2428 = load float, ptr %46, align 4, !tbaa !11
  %2429 = fcmp oge float %2427, %2428
  br i1 %2429, label %2430, label %2432

2430:                                             ; preds = %2425
  %2431 = load float, ptr %45, align 4, !tbaa !11
  br label %2434

2432:                                             ; preds = %2425
  %2433 = load float, ptr %46, align 4, !tbaa !11
  br label %2434

2434:                                             ; preds = %2432, %2430
  %2435 = phi float [ %2431, %2430 ], [ %2433, %2432 ]
  store float %2435, ptr %75, align 4, !tbaa !11
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %2436 = load float, ptr %58, align 4, !tbaa !11
  %2437 = load float, ptr %59, align 4, !tbaa !11
  %2438 = fmul float %2436, %2437
  %2439 = load float, ptr %48, align 4, !tbaa !11
  %2440 = call float @llvm.fmuladd.f32(float %2438, float %2439, float 1.000000e+00)
  store float %2440, ptr %46, align 4, !tbaa !11
  %2441 = load float, ptr %49, align 4, !tbaa !11
  %2442 = fpext float %2441 to double
  %2443 = load float, ptr %45, align 4, !tbaa !11
  %2444 = load float, ptr %46, align 4, !tbaa !11
  %2445 = fcmp oge float %2443, %2444
  br i1 %2445, label %2446, label %2448

2446:                                             ; preds = %2434
  %2447 = load float, ptr %45, align 4, !tbaa !11
  br label %2450

2448:                                             ; preds = %2434
  %2449 = load float, ptr %46, align 4, !tbaa !11
  br label %2450

2450:                                             ; preds = %2448, %2446
  %2451 = phi float [ %2447, %2446 ], [ %2449, %2448 ]
  %2452 = fpext float %2451 to double
  %2453 = call double @sqrt(double noundef %2452) #5
  %2454 = fmul double %2442, %2453
  %2455 = fptrunc double %2454 to float
  %2456 = load ptr, ptr %24, align 8, !tbaa !5
  %2457 = load i32, ptr %57, align 4, !tbaa !9
  %2458 = sext i32 %2457 to i64
  %2459 = getelementptr inbounds float, ptr %2456, i64 %2458
  store float %2455, ptr %2459, align 4, !tbaa !11
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %2460 = load float, ptr %58, align 4, !tbaa !11
  %2461 = load float, ptr %60, align 4, !tbaa !11
  %2462 = fmul float %2460, %2461
  %2463 = load float, ptr %48, align 4, !tbaa !11
  %2464 = fneg float %2462
  %2465 = call float @llvm.fmuladd.f32(float %2464, float %2463, float 1.000000e+00)
  store float %2465, ptr %46, align 4, !tbaa !11
  %2466 = load float, ptr %45, align 4, !tbaa !11
  %2467 = load float, ptr %46, align 4, !tbaa !11
  %2468 = fcmp oge float %2466, %2467
  br i1 %2468, label %2469, label %2471

2469:                                             ; preds = %2450
  %2470 = load float, ptr %45, align 4, !tbaa !11
  br label %2473

2471:                                             ; preds = %2450
  %2472 = load float, ptr %46, align 4, !tbaa !11
  br label %2473

2473:                                             ; preds = %2471, %2469
  %2474 = phi float [ %2470, %2469 ], [ %2472, %2471 ]
  %2475 = fpext float %2474 to double
  %2476 = call double @sqrt(double noundef %2475) #5
  %2477 = load float, ptr %47, align 4, !tbaa !11
  %2478 = fpext float %2477 to double
  %2479 = fmul double %2478, %2476
  %2480 = fptrunc double %2479 to float
  store float %2480, ptr %47, align 4, !tbaa !11
  %2481 = load ptr, ptr %23, align 8, !tbaa !5
  %2482 = load i32, ptr %56, align 4, !tbaa !9
  %2483 = sext i32 %2482 to i64
  %2484 = getelementptr inbounds float, ptr %2481, i64 %2483
  %2485 = load float, ptr %2484, align 4, !tbaa !11
  %2486 = load ptr, ptr %23, align 8, !tbaa !5
  %2487 = load i32, ptr %57, align 4, !tbaa !9
  %2488 = sext i32 %2487 to i64
  %2489 = getelementptr inbounds float, ptr %2486, i64 %2488
  %2490 = load float, ptr %2489, align 4, !tbaa !11
  %2491 = fdiv float %2485, %2490
  store float %2491, ptr %59, align 4, !tbaa !11
  %2492 = load ptr, ptr %23, align 8, !tbaa !5
  %2493 = load i32, ptr %57, align 4, !tbaa !9
  %2494 = sext i32 %2493 to i64
  %2495 = getelementptr inbounds float, ptr %2492, i64 %2494
  %2496 = load float, ptr %2495, align 4, !tbaa !11
  %2497 = load ptr, ptr %23, align 8, !tbaa !5
  %2498 = load i32, ptr %56, align 4, !tbaa !9
  %2499 = sext i32 %2498 to i64
  %2500 = getelementptr inbounds float, ptr %2497, i64 %2499
  %2501 = load float, ptr %2500, align 4, !tbaa !11
  %2502 = fdiv float %2496, %2501
  store float %2502, ptr %60, align 4, !tbaa !11
  %2503 = load ptr, ptr %23, align 8, !tbaa !5
  %2504 = load i32, ptr %56, align 4, !tbaa !9
  %2505 = sext i32 %2504 to i64
  %2506 = getelementptr inbounds float, ptr %2503, i64 %2505
  %2507 = load float, ptr %2506, align 4, !tbaa !11
  %2508 = fcmp oge float %2507, 1.000000e+00
  br i1 %2508, label %2509, label %2671

2509:                                             ; preds = %2473
  %2510 = load ptr, ptr %23, align 8, !tbaa !5
  %2511 = load i32, ptr %57, align 4, !tbaa !9
  %2512 = sext i32 %2511 to i64
  %2513 = getelementptr inbounds float, ptr %2510, i64 %2512
  %2514 = load float, ptr %2513, align 4, !tbaa !11
  %2515 = fcmp oge float %2514, 1.000000e+00
  br i1 %2515, label %2516, label %2575

2516:                                             ; preds = %2509
  %2517 = load float, ptr %58, align 4, !tbaa !11
  %2518 = load float, ptr %59, align 4, !tbaa !11
  %2519 = fmul float %2517, %2518
  %2520 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 2
  store float %2519, ptr %2520, align 8, !tbaa !11
  %2521 = load float, ptr %58, align 4, !tbaa !11
  %2522 = fneg float %2521
  %2523 = load float, ptr %60, align 4, !tbaa !11
  %2524 = fmul float %2522, %2523
  %2525 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 3
  store float %2524, ptr %2525, align 4, !tbaa !11
  %2526 = load float, ptr %68, align 4, !tbaa !11
  %2527 = load ptr, ptr %23, align 8, !tbaa !5
  %2528 = load i32, ptr %56, align 4, !tbaa !9
  %2529 = sext i32 %2528 to i64
  %2530 = getelementptr inbounds float, ptr %2527, i64 %2529
  %2531 = load float, ptr %2530, align 4, !tbaa !11
  %2532 = fmul float %2531, %2526
  store float %2532, ptr %2530, align 4, !tbaa !11
  %2533 = load float, ptr %68, align 4, !tbaa !11
  %2534 = load ptr, ptr %23, align 8, !tbaa !5
  %2535 = load i32, ptr %57, align 4, !tbaa !9
  %2536 = sext i32 %2535 to i64
  %2537 = getelementptr inbounds float, ptr %2534, i64 %2536
  %2538 = load float, ptr %2537, align 4, !tbaa !11
  %2539 = fmul float %2538, %2533
  store float %2539, ptr %2537, align 4, !tbaa !11
  %2540 = load ptr, ptr %19, align 8, !tbaa !5
  %2541 = load ptr, ptr %21, align 8, !tbaa !5
  %2542 = load i32, ptr %56, align 4, !tbaa !9
  %2543 = load i32, ptr %35, align 4, !tbaa !9
  %2544 = mul nsw i32 %2542, %2543
  %2545 = add nsw i32 %2544, 1
  %2546 = sext i32 %2545 to i64
  %2547 = getelementptr inbounds float, ptr %2541, i64 %2546
  %2548 = load ptr, ptr %21, align 8, !tbaa !5
  %2549 = load i32, ptr %57, align 4, !tbaa !9
  %2550 = load i32, ptr %35, align 4, !tbaa !9
  %2551 = mul nsw i32 %2549, %2550
  %2552 = add nsw i32 %2551, 1
  %2553 = sext i32 %2552 to i64
  %2554 = getelementptr inbounds float, ptr %2548, i64 %2553
  %2555 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 0
  call void @srotm_(ptr noundef %2540, ptr noundef %2547, ptr noundef @c__1, ptr noundef %2554, ptr noundef @c__1, ptr noundef %2555)
  %2556 = load i32, ptr %65, align 4, !tbaa !9
  %2557 = icmp ne i32 %2556, 0
  br i1 %2557, label %2558, label %2574

2558:                                             ; preds = %2516
  %2559 = load ptr, ptr %26, align 8, !tbaa !5
  %2560 = load i32, ptr %56, align 4, !tbaa !9
  %2561 = load i32, ptr %37, align 4, !tbaa !9
  %2562 = mul nsw i32 %2560, %2561
  %2563 = add nsw i32 %2562, 1
  %2564 = sext i32 %2563 to i64
  %2565 = getelementptr inbounds float, ptr %2559, i64 %2564
  %2566 = load ptr, ptr %26, align 8, !tbaa !5
  %2567 = load i32, ptr %57, align 4, !tbaa !9
  %2568 = load i32, ptr %37, align 4, !tbaa !9
  %2569 = mul nsw i32 %2567, %2568
  %2570 = add nsw i32 %2569, 1
  %2571 = sext i32 %2570 to i64
  %2572 = getelementptr inbounds float, ptr %2566, i64 %2571
  %2573 = getelementptr inbounds [5 x float], ptr %63, i64 0, i64 0
  call void @srotm_(ptr noundef %88, ptr noundef %2565, ptr noundef @c__1, ptr noundef %2572, ptr noundef @c__1, ptr noundef %2573)
  br label %2574

2574:                                             ; preds = %2558, %2516
  br label %2670

2575:                                             ; preds = %2509
  %2576 = load float, ptr %58, align 4, !tbaa !11
  %2577 = fneg float %2576
  %2578 = load float, ptr %60, align 4, !tbaa !11
  %2579 = fmul float %2577, %2578
  store float %2579, ptr %45, align 4, !tbaa !11
  %2580 = load ptr, ptr %19, align 8, !tbaa !5
  %2581 = load ptr, ptr %21, align 8, !tbaa !5
  %2582 = load i32, ptr %57, align 4, !tbaa !9
  %2583 = load i32, ptr %35, align 4, !tbaa !9
  %2584 = mul nsw i32 %2582, %2583
  %2585 = add nsw i32 %2584, 1
  %2586 = sext i32 %2585 to i64
  %2587 = getelementptr inbounds float, ptr %2581, i64 %2586
  %2588 = load ptr, ptr %21, align 8, !tbaa !5
  %2589 = load i32, ptr %56, align 4, !tbaa !9
  %2590 = load i32, ptr %35, align 4, !tbaa !9
  %2591 = mul nsw i32 %2589, %2590
  %2592 = add nsw i32 %2591, 1
  %2593 = sext i32 %2592 to i64
  %2594 = getelementptr inbounds float, ptr %2588, i64 %2593
  call void @saxpy_(ptr noundef %2580, ptr noundef %45, ptr noundef %2587, ptr noundef @c__1, ptr noundef %2594, ptr noundef @c__1)
  %2595 = load float, ptr %68, align 4, !tbaa !11
  %2596 = load float, ptr %69, align 4, !tbaa !11
  %2597 = fmul float %2595, %2596
  %2598 = load float, ptr %59, align 4, !tbaa !11
  %2599 = fmul float %2597, %2598
  store float %2599, ptr %45, align 4, !tbaa !11
  %2600 = load ptr, ptr %19, align 8, !tbaa !5
  %2601 = load ptr, ptr %21, align 8, !tbaa !5
  %2602 = load i32, ptr %56, align 4, !tbaa !9
  %2603 = load i32, ptr %35, align 4, !tbaa !9
  %2604 = mul nsw i32 %2602, %2603
  %2605 = add nsw i32 %2604, 1
  %2606 = sext i32 %2605 to i64
  %2607 = getelementptr inbounds float, ptr %2601, i64 %2606
  %2608 = load ptr, ptr %21, align 8, !tbaa !5
  %2609 = load i32, ptr %57, align 4, !tbaa !9
  %2610 = load i32, ptr %35, align 4, !tbaa !9
  %2611 = mul nsw i32 %2609, %2610
  %2612 = add nsw i32 %2611, 1
  %2613 = sext i32 %2612 to i64
  %2614 = getelementptr inbounds float, ptr %2608, i64 %2613
  call void @saxpy_(ptr noundef %2600, ptr noundef %45, ptr noundef %2607, ptr noundef @c__1, ptr noundef %2614, ptr noundef @c__1)
  %2615 = load i32, ptr %65, align 4, !tbaa !9
  %2616 = icmp ne i32 %2615, 0
  br i1 %2616, label %2617, label %2655

2617:                                             ; preds = %2575
  %2618 = load float, ptr %58, align 4, !tbaa !11
  %2619 = fneg float %2618
  %2620 = load float, ptr %60, align 4, !tbaa !11
  %2621 = fmul float %2619, %2620
  store float %2621, ptr %45, align 4, !tbaa !11
  %2622 = load ptr, ptr %26, align 8, !tbaa !5
  %2623 = load i32, ptr %57, align 4, !tbaa !9
  %2624 = load i32, ptr %37, align 4, !tbaa !9
  %2625 = mul nsw i32 %2623, %2624
  %2626 = add nsw i32 %2625, 1
  %2627 = sext i32 %2626 to i64
  %2628 = getelementptr inbounds float, ptr %2622, i64 %2627
  %2629 = load ptr, ptr %26, align 8, !tbaa !5
  %2630 = load i32, ptr %56, align 4, !tbaa !9
  %2631 = load i32, ptr %37, align 4, !tbaa !9
  %2632 = mul nsw i32 %2630, %2631
  %2633 = add nsw i32 %2632, 1
  %2634 = sext i32 %2633 to i64
  %2635 = getelementptr inbounds float, ptr %2629, i64 %2634
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %2628, ptr noundef @c__1, ptr noundef %2635, ptr noundef @c__1)
  %2636 = load float, ptr %68, align 4, !tbaa !11
  %2637 = load float, ptr %69, align 4, !tbaa !11
  %2638 = fmul float %2636, %2637
  %2639 = load float, ptr %59, align 4, !tbaa !11
  %2640 = fmul float %2638, %2639
  store float %2640, ptr %45, align 4, !tbaa !11
  %2641 = load ptr, ptr %26, align 8, !tbaa !5
  %2642 = load i32, ptr %56, align 4, !tbaa !9
  %2643 = load i32, ptr %37, align 4, !tbaa !9
  %2644 = mul nsw i32 %2642, %2643
  %2645 = add nsw i32 %2644, 1
  %2646 = sext i32 %2645 to i64
  %2647 = getelementptr inbounds float, ptr %2641, i64 %2646
  %2648 = load ptr, ptr %26, align 8, !tbaa !5
  %2649 = load i32, ptr %57, align 4, !tbaa !9
  %2650 = load i32, ptr %37, align 4, !tbaa !9
  %2651 = mul nsw i32 %2649, %2650
  %2652 = add nsw i32 %2651, 1
  %2653 = sext i32 %2652 to i64
  %2654 = getelementptr inbounds float, ptr %2648, i64 %2653
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %2647, ptr noundef @c__1, ptr noundef %2654, ptr noundef @c__1)
  br label %2655

2655:                                             ; preds = %2617, %2575
  %2656 = load float, ptr %68, align 4, !tbaa !11
  %2657 = load ptr, ptr %23, align 8, !tbaa !5
  %2658 = load i32, ptr %56, align 4, !tbaa !9
  %2659 = sext i32 %2658 to i64
  %2660 = getelementptr inbounds float, ptr %2657, i64 %2659
  %2661 = load float, ptr %2660, align 4, !tbaa !11
  %2662 = fmul float %2661, %2656
  store float %2662, ptr %2660, align 4, !tbaa !11
  %2663 = load float, ptr %68, align 4, !tbaa !11
  %2664 = load ptr, ptr %23, align 8, !tbaa !5
  %2665 = load i32, ptr %57, align 4, !tbaa !9
  %2666 = sext i32 %2665 to i64
  %2667 = getelementptr inbounds float, ptr %2664, i64 %2666
  %2668 = load float, ptr %2667, align 4, !tbaa !11
  %2669 = fdiv float %2668, %2663
  store float %2669, ptr %2667, align 4, !tbaa !11
  br label %2670

2670:                                             ; preds = %2655, %2574
  br label %2977

2671:                                             ; preds = %2473
  %2672 = load ptr, ptr %23, align 8, !tbaa !5
  %2673 = load i32, ptr %57, align 4, !tbaa !9
  %2674 = sext i32 %2673 to i64
  %2675 = getelementptr inbounds float, ptr %2672, i64 %2674
  %2676 = load float, ptr %2675, align 4, !tbaa !11
  %2677 = fcmp oge float %2676, 1.000000e+00
  br i1 %2677, label %2678, label %2773

2678:                                             ; preds = %2671
  %2679 = load float, ptr %58, align 4, !tbaa !11
  %2680 = load float, ptr %59, align 4, !tbaa !11
  %2681 = fmul float %2679, %2680
  store float %2681, ptr %45, align 4, !tbaa !11
  %2682 = load ptr, ptr %19, align 8, !tbaa !5
  %2683 = load ptr, ptr %21, align 8, !tbaa !5
  %2684 = load i32, ptr %56, align 4, !tbaa !9
  %2685 = load i32, ptr %35, align 4, !tbaa !9
  %2686 = mul nsw i32 %2684, %2685
  %2687 = add nsw i32 %2686, 1
  %2688 = sext i32 %2687 to i64
  %2689 = getelementptr inbounds float, ptr %2683, i64 %2688
  %2690 = load ptr, ptr %21, align 8, !tbaa !5
  %2691 = load i32, ptr %57, align 4, !tbaa !9
  %2692 = load i32, ptr %35, align 4, !tbaa !9
  %2693 = mul nsw i32 %2691, %2692
  %2694 = add nsw i32 %2693, 1
  %2695 = sext i32 %2694 to i64
  %2696 = getelementptr inbounds float, ptr %2690, i64 %2695
  call void @saxpy_(ptr noundef %2682, ptr noundef %45, ptr noundef %2689, ptr noundef @c__1, ptr noundef %2696, ptr noundef @c__1)
  %2697 = load float, ptr %68, align 4, !tbaa !11
  %2698 = fneg float %2697
  %2699 = load float, ptr %69, align 4, !tbaa !11
  %2700 = fmul float %2698, %2699
  %2701 = load float, ptr %60, align 4, !tbaa !11
  %2702 = fmul float %2700, %2701
  store float %2702, ptr %45, align 4, !tbaa !11
  %2703 = load ptr, ptr %19, align 8, !tbaa !5
  %2704 = load ptr, ptr %21, align 8, !tbaa !5
  %2705 = load i32, ptr %57, align 4, !tbaa !9
  %2706 = load i32, ptr %35, align 4, !tbaa !9
  %2707 = mul nsw i32 %2705, %2706
  %2708 = add nsw i32 %2707, 1
  %2709 = sext i32 %2708 to i64
  %2710 = getelementptr inbounds float, ptr %2704, i64 %2709
  %2711 = load ptr, ptr %21, align 8, !tbaa !5
  %2712 = load i32, ptr %56, align 4, !tbaa !9
  %2713 = load i32, ptr %35, align 4, !tbaa !9
  %2714 = mul nsw i32 %2712, %2713
  %2715 = add nsw i32 %2714, 1
  %2716 = sext i32 %2715 to i64
  %2717 = getelementptr inbounds float, ptr %2711, i64 %2716
  call void @saxpy_(ptr noundef %2703, ptr noundef %45, ptr noundef %2710, ptr noundef @c__1, ptr noundef %2717, ptr noundef @c__1)
  %2718 = load i32, ptr %65, align 4, !tbaa !9
  %2719 = icmp ne i32 %2718, 0
  br i1 %2719, label %2720, label %2758

2720:                                             ; preds = %2678
  %2721 = load float, ptr %58, align 4, !tbaa !11
  %2722 = load float, ptr %59, align 4, !tbaa !11
  %2723 = fmul float %2721, %2722
  store float %2723, ptr %45, align 4, !tbaa !11
  %2724 = load ptr, ptr %26, align 8, !tbaa !5
  %2725 = load i32, ptr %56, align 4, !tbaa !9
  %2726 = load i32, ptr %37, align 4, !tbaa !9
  %2727 = mul nsw i32 %2725, %2726
  %2728 = add nsw i32 %2727, 1
  %2729 = sext i32 %2728 to i64
  %2730 = getelementptr inbounds float, ptr %2724, i64 %2729
  %2731 = load ptr, ptr %26, align 8, !tbaa !5
  %2732 = load i32, ptr %57, align 4, !tbaa !9
  %2733 = load i32, ptr %37, align 4, !tbaa !9
  %2734 = mul nsw i32 %2732, %2733
  %2735 = add nsw i32 %2734, 1
  %2736 = sext i32 %2735 to i64
  %2737 = getelementptr inbounds float, ptr %2731, i64 %2736
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %2730, ptr noundef @c__1, ptr noundef %2737, ptr noundef @c__1)
  %2738 = load float, ptr %68, align 4, !tbaa !11
  %2739 = fneg float %2738
  %2740 = load float, ptr %69, align 4, !tbaa !11
  %2741 = fmul float %2739, %2740
  %2742 = load float, ptr %60, align 4, !tbaa !11
  %2743 = fmul float %2741, %2742
  store float %2743, ptr %45, align 4, !tbaa !11
  %2744 = load ptr, ptr %26, align 8, !tbaa !5
  %2745 = load i32, ptr %57, align 4, !tbaa !9
  %2746 = load i32, ptr %37, align 4, !tbaa !9
  %2747 = mul nsw i32 %2745, %2746
  %2748 = add nsw i32 %2747, 1
  %2749 = sext i32 %2748 to i64
  %2750 = getelementptr inbounds float, ptr %2744, i64 %2749
  %2751 = load ptr, ptr %26, align 8, !tbaa !5
  %2752 = load i32, ptr %56, align 4, !tbaa !9
  %2753 = load i32, ptr %37, align 4, !tbaa !9
  %2754 = mul nsw i32 %2752, %2753
  %2755 = add nsw i32 %2754, 1
  %2756 = sext i32 %2755 to i64
  %2757 = getelementptr inbounds float, ptr %2751, i64 %2756
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %2750, ptr noundef @c__1, ptr noundef %2757, ptr noundef @c__1)
  br label %2758

2758:                                             ; preds = %2720, %2678
  %2759 = load float, ptr %68, align 4, !tbaa !11
  %2760 = load ptr, ptr %23, align 8, !tbaa !5
  %2761 = load i32, ptr %56, align 4, !tbaa !9
  %2762 = sext i32 %2761 to i64
  %2763 = getelementptr inbounds float, ptr %2760, i64 %2762
  %2764 = load float, ptr %2763, align 4, !tbaa !11
  %2765 = fdiv float %2764, %2759
  store float %2765, ptr %2763, align 4, !tbaa !11
  %2766 = load float, ptr %68, align 4, !tbaa !11
  %2767 = load ptr, ptr %23, align 8, !tbaa !5
  %2768 = load i32, ptr %57, align 4, !tbaa !9
  %2769 = sext i32 %2768 to i64
  %2770 = getelementptr inbounds float, ptr %2767, i64 %2769
  %2771 = load float, ptr %2770, align 4, !tbaa !11
  %2772 = fmul float %2771, %2766
  store float %2772, ptr %2770, align 4, !tbaa !11
  br label %2976

2773:                                             ; preds = %2671
  %2774 = load ptr, ptr %23, align 8, !tbaa !5
  %2775 = load i32, ptr %56, align 4, !tbaa !9
  %2776 = sext i32 %2775 to i64
  %2777 = getelementptr inbounds float, ptr %2774, i64 %2776
  %2778 = load float, ptr %2777, align 4, !tbaa !11
  %2779 = load ptr, ptr %23, align 8, !tbaa !5
  %2780 = load i32, ptr %57, align 4, !tbaa !9
  %2781 = sext i32 %2780 to i64
  %2782 = getelementptr inbounds float, ptr %2779, i64 %2781
  %2783 = load float, ptr %2782, align 4, !tbaa !11
  %2784 = fcmp oge float %2778, %2783
  br i1 %2784, label %2785, label %2880

2785:                                             ; preds = %2773
  %2786 = load float, ptr %58, align 4, !tbaa !11
  %2787 = fneg float %2786
  %2788 = load float, ptr %60, align 4, !tbaa !11
  %2789 = fmul float %2787, %2788
  store float %2789, ptr %45, align 4, !tbaa !11
  %2790 = load ptr, ptr %19, align 8, !tbaa !5
  %2791 = load ptr, ptr %21, align 8, !tbaa !5
  %2792 = load i32, ptr %57, align 4, !tbaa !9
  %2793 = load i32, ptr %35, align 4, !tbaa !9
  %2794 = mul nsw i32 %2792, %2793
  %2795 = add nsw i32 %2794, 1
  %2796 = sext i32 %2795 to i64
  %2797 = getelementptr inbounds float, ptr %2791, i64 %2796
  %2798 = load ptr, ptr %21, align 8, !tbaa !5
  %2799 = load i32, ptr %56, align 4, !tbaa !9
  %2800 = load i32, ptr %35, align 4, !tbaa !9
  %2801 = mul nsw i32 %2799, %2800
  %2802 = add nsw i32 %2801, 1
  %2803 = sext i32 %2802 to i64
  %2804 = getelementptr inbounds float, ptr %2798, i64 %2803
  call void @saxpy_(ptr noundef %2790, ptr noundef %45, ptr noundef %2797, ptr noundef @c__1, ptr noundef %2804, ptr noundef @c__1)
  %2805 = load float, ptr %68, align 4, !tbaa !11
  %2806 = load float, ptr %69, align 4, !tbaa !11
  %2807 = fmul float %2805, %2806
  %2808 = load float, ptr %59, align 4, !tbaa !11
  %2809 = fmul float %2807, %2808
  store float %2809, ptr %45, align 4, !tbaa !11
  %2810 = load ptr, ptr %19, align 8, !tbaa !5
  %2811 = load ptr, ptr %21, align 8, !tbaa !5
  %2812 = load i32, ptr %56, align 4, !tbaa !9
  %2813 = load i32, ptr %35, align 4, !tbaa !9
  %2814 = mul nsw i32 %2812, %2813
  %2815 = add nsw i32 %2814, 1
  %2816 = sext i32 %2815 to i64
  %2817 = getelementptr inbounds float, ptr %2811, i64 %2816
  %2818 = load ptr, ptr %21, align 8, !tbaa !5
  %2819 = load i32, ptr %57, align 4, !tbaa !9
  %2820 = load i32, ptr %35, align 4, !tbaa !9
  %2821 = mul nsw i32 %2819, %2820
  %2822 = add nsw i32 %2821, 1
  %2823 = sext i32 %2822 to i64
  %2824 = getelementptr inbounds float, ptr %2818, i64 %2823
  call void @saxpy_(ptr noundef %2810, ptr noundef %45, ptr noundef %2817, ptr noundef @c__1, ptr noundef %2824, ptr noundef @c__1)
  %2825 = load float, ptr %68, align 4, !tbaa !11
  %2826 = load ptr, ptr %23, align 8, !tbaa !5
  %2827 = load i32, ptr %56, align 4, !tbaa !9
  %2828 = sext i32 %2827 to i64
  %2829 = getelementptr inbounds float, ptr %2826, i64 %2828
  %2830 = load float, ptr %2829, align 4, !tbaa !11
  %2831 = fmul float %2830, %2825
  store float %2831, ptr %2829, align 4, !tbaa !11
  %2832 = load float, ptr %68, align 4, !tbaa !11
  %2833 = load ptr, ptr %23, align 8, !tbaa !5
  %2834 = load i32, ptr %57, align 4, !tbaa !9
  %2835 = sext i32 %2834 to i64
  %2836 = getelementptr inbounds float, ptr %2833, i64 %2835
  %2837 = load float, ptr %2836, align 4, !tbaa !11
  %2838 = fdiv float %2837, %2832
  store float %2838, ptr %2836, align 4, !tbaa !11
  %2839 = load i32, ptr %65, align 4, !tbaa !9
  %2840 = icmp ne i32 %2839, 0
  br i1 %2840, label %2841, label %2879

2841:                                             ; preds = %2785
  %2842 = load float, ptr %58, align 4, !tbaa !11
  %2843 = fneg float %2842
  %2844 = load float, ptr %60, align 4, !tbaa !11
  %2845 = fmul float %2843, %2844
  store float %2845, ptr %45, align 4, !tbaa !11
  %2846 = load ptr, ptr %26, align 8, !tbaa !5
  %2847 = load i32, ptr %57, align 4, !tbaa !9
  %2848 = load i32, ptr %37, align 4, !tbaa !9
  %2849 = mul nsw i32 %2847, %2848
  %2850 = add nsw i32 %2849, 1
  %2851 = sext i32 %2850 to i64
  %2852 = getelementptr inbounds float, ptr %2846, i64 %2851
  %2853 = load ptr, ptr %26, align 8, !tbaa !5
  %2854 = load i32, ptr %56, align 4, !tbaa !9
  %2855 = load i32, ptr %37, align 4, !tbaa !9
  %2856 = mul nsw i32 %2854, %2855
  %2857 = add nsw i32 %2856, 1
  %2858 = sext i32 %2857 to i64
  %2859 = getelementptr inbounds float, ptr %2853, i64 %2858
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %2852, ptr noundef @c__1, ptr noundef %2859, ptr noundef @c__1)
  %2860 = load float, ptr %68, align 4, !tbaa !11
  %2861 = load float, ptr %69, align 4, !tbaa !11
  %2862 = fmul float %2860, %2861
  %2863 = load float, ptr %59, align 4, !tbaa !11
  %2864 = fmul float %2862, %2863
  store float %2864, ptr %45, align 4, !tbaa !11
  %2865 = load ptr, ptr %26, align 8, !tbaa !5
  %2866 = load i32, ptr %56, align 4, !tbaa !9
  %2867 = load i32, ptr %37, align 4, !tbaa !9
  %2868 = mul nsw i32 %2866, %2867
  %2869 = add nsw i32 %2868, 1
  %2870 = sext i32 %2869 to i64
  %2871 = getelementptr inbounds float, ptr %2865, i64 %2870
  %2872 = load ptr, ptr %26, align 8, !tbaa !5
  %2873 = load i32, ptr %57, align 4, !tbaa !9
  %2874 = load i32, ptr %37, align 4, !tbaa !9
  %2875 = mul nsw i32 %2873, %2874
  %2876 = add nsw i32 %2875, 1
  %2877 = sext i32 %2876 to i64
  %2878 = getelementptr inbounds float, ptr %2872, i64 %2877
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %2871, ptr noundef @c__1, ptr noundef %2878, ptr noundef @c__1)
  br label %2879

2879:                                             ; preds = %2841, %2785
  br label %2975

2880:                                             ; preds = %2773
  %2881 = load float, ptr %58, align 4, !tbaa !11
  %2882 = load float, ptr %59, align 4, !tbaa !11
  %2883 = fmul float %2881, %2882
  store float %2883, ptr %45, align 4, !tbaa !11
  %2884 = load ptr, ptr %19, align 8, !tbaa !5
  %2885 = load ptr, ptr %21, align 8, !tbaa !5
  %2886 = load i32, ptr %56, align 4, !tbaa !9
  %2887 = load i32, ptr %35, align 4, !tbaa !9
  %2888 = mul nsw i32 %2886, %2887
  %2889 = add nsw i32 %2888, 1
  %2890 = sext i32 %2889 to i64
  %2891 = getelementptr inbounds float, ptr %2885, i64 %2890
  %2892 = load ptr, ptr %21, align 8, !tbaa !5
  %2893 = load i32, ptr %57, align 4, !tbaa !9
  %2894 = load i32, ptr %35, align 4, !tbaa !9
  %2895 = mul nsw i32 %2893, %2894
  %2896 = add nsw i32 %2895, 1
  %2897 = sext i32 %2896 to i64
  %2898 = getelementptr inbounds float, ptr %2892, i64 %2897
  call void @saxpy_(ptr noundef %2884, ptr noundef %45, ptr noundef %2891, ptr noundef @c__1, ptr noundef %2898, ptr noundef @c__1)
  %2899 = load float, ptr %68, align 4, !tbaa !11
  %2900 = fneg float %2899
  %2901 = load float, ptr %69, align 4, !tbaa !11
  %2902 = fmul float %2900, %2901
  %2903 = load float, ptr %60, align 4, !tbaa !11
  %2904 = fmul float %2902, %2903
  store float %2904, ptr %45, align 4, !tbaa !11
  %2905 = load ptr, ptr %19, align 8, !tbaa !5
  %2906 = load ptr, ptr %21, align 8, !tbaa !5
  %2907 = load i32, ptr %57, align 4, !tbaa !9
  %2908 = load i32, ptr %35, align 4, !tbaa !9
  %2909 = mul nsw i32 %2907, %2908
  %2910 = add nsw i32 %2909, 1
  %2911 = sext i32 %2910 to i64
  %2912 = getelementptr inbounds float, ptr %2906, i64 %2911
  %2913 = load ptr, ptr %21, align 8, !tbaa !5
  %2914 = load i32, ptr %56, align 4, !tbaa !9
  %2915 = load i32, ptr %35, align 4, !tbaa !9
  %2916 = mul nsw i32 %2914, %2915
  %2917 = add nsw i32 %2916, 1
  %2918 = sext i32 %2917 to i64
  %2919 = getelementptr inbounds float, ptr %2913, i64 %2918
  call void @saxpy_(ptr noundef %2905, ptr noundef %45, ptr noundef %2912, ptr noundef @c__1, ptr noundef %2919, ptr noundef @c__1)
  %2920 = load float, ptr %68, align 4, !tbaa !11
  %2921 = load ptr, ptr %23, align 8, !tbaa !5
  %2922 = load i32, ptr %56, align 4, !tbaa !9
  %2923 = sext i32 %2922 to i64
  %2924 = getelementptr inbounds float, ptr %2921, i64 %2923
  %2925 = load float, ptr %2924, align 4, !tbaa !11
  %2926 = fdiv float %2925, %2920
  store float %2926, ptr %2924, align 4, !tbaa !11
  %2927 = load float, ptr %68, align 4, !tbaa !11
  %2928 = load ptr, ptr %23, align 8, !tbaa !5
  %2929 = load i32, ptr %57, align 4, !tbaa !9
  %2930 = sext i32 %2929 to i64
  %2931 = getelementptr inbounds float, ptr %2928, i64 %2930
  %2932 = load float, ptr %2931, align 4, !tbaa !11
  %2933 = fmul float %2932, %2927
  store float %2933, ptr %2931, align 4, !tbaa !11
  %2934 = load i32, ptr %65, align 4, !tbaa !9
  %2935 = icmp ne i32 %2934, 0
  br i1 %2935, label %2936, label %2974

2936:                                             ; preds = %2880
  %2937 = load float, ptr %58, align 4, !tbaa !11
  %2938 = load float, ptr %59, align 4, !tbaa !11
  %2939 = fmul float %2937, %2938
  store float %2939, ptr %45, align 4, !tbaa !11
  %2940 = load ptr, ptr %26, align 8, !tbaa !5
  %2941 = load i32, ptr %56, align 4, !tbaa !9
  %2942 = load i32, ptr %37, align 4, !tbaa !9
  %2943 = mul nsw i32 %2941, %2942
  %2944 = add nsw i32 %2943, 1
  %2945 = sext i32 %2944 to i64
  %2946 = getelementptr inbounds float, ptr %2940, i64 %2945
  %2947 = load ptr, ptr %26, align 8, !tbaa !5
  %2948 = load i32, ptr %57, align 4, !tbaa !9
  %2949 = load i32, ptr %37, align 4, !tbaa !9
  %2950 = mul nsw i32 %2948, %2949
  %2951 = add nsw i32 %2950, 1
  %2952 = sext i32 %2951 to i64
  %2953 = getelementptr inbounds float, ptr %2947, i64 %2952
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %2946, ptr noundef @c__1, ptr noundef %2953, ptr noundef @c__1)
  %2954 = load float, ptr %68, align 4, !tbaa !11
  %2955 = fneg float %2954
  %2956 = load float, ptr %69, align 4, !tbaa !11
  %2957 = fmul float %2955, %2956
  %2958 = load float, ptr %60, align 4, !tbaa !11
  %2959 = fmul float %2957, %2958
  store float %2959, ptr %45, align 4, !tbaa !11
  %2960 = load ptr, ptr %26, align 8, !tbaa !5
  %2961 = load i32, ptr %57, align 4, !tbaa !9
  %2962 = load i32, ptr %37, align 4, !tbaa !9
  %2963 = mul nsw i32 %2961, %2962
  %2964 = add nsw i32 %2963, 1
  %2965 = sext i32 %2964 to i64
  %2966 = getelementptr inbounds float, ptr %2960, i64 %2965
  %2967 = load ptr, ptr %26, align 8, !tbaa !5
  %2968 = load i32, ptr %56, align 4, !tbaa !9
  %2969 = load i32, ptr %37, align 4, !tbaa !9
  %2970 = mul nsw i32 %2968, %2969
  %2971 = add nsw i32 %2970, 1
  %2972 = sext i32 %2971 to i64
  %2973 = getelementptr inbounds float, ptr %2967, i64 %2972
  call void @saxpy_(ptr noundef %88, ptr noundef %45, ptr noundef %2966, ptr noundef @c__1, ptr noundef %2973, ptr noundef @c__1)
  br label %2974

2974:                                             ; preds = %2936, %2880
  br label %2975

2975:                                             ; preds = %2974, %2879
  br label %2976

2976:                                             ; preds = %2975, %2758
  br label %2977

2977:                                             ; preds = %2976, %2670
  br label %2978

2978:                                             ; preds = %2977, %2359
  br label %3166

2979:                                             ; preds = %2185
  %2980 = load float, ptr %47, align 4, !tbaa !11
  %2981 = load float, ptr %49, align 4, !tbaa !11
  %2982 = fcmp ogt float %2980, %2981
  br i1 %2982, label %2983, label %3074

2983:                                             ; preds = %2979
  %2984 = load ptr, ptr %19, align 8, !tbaa !5
  %2985 = load ptr, ptr %21, align 8, !tbaa !5
  %2986 = load i32, ptr %56, align 4, !tbaa !9
  %2987 = load i32, ptr %35, align 4, !tbaa !9
  %2988 = mul nsw i32 %2986, %2987
  %2989 = add nsw i32 %2988, 1
  %2990 = sext i32 %2989 to i64
  %2991 = getelementptr inbounds float, ptr %2985, i64 %2990
  %2992 = load ptr, ptr %32, align 8, !tbaa !5
  %2993 = getelementptr inbounds float, ptr %2992, i64 1
  call void @scopy_(ptr noundef %2984, ptr noundef %2991, ptr noundef @c__1, ptr noundef %2993, ptr noundef @c__1)
  %2994 = load ptr, ptr %19, align 8, !tbaa !5
  %2995 = load ptr, ptr %32, align 8, !tbaa !5
  %2996 = getelementptr inbounds float, ptr %2995, i64 1
  %2997 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %47, ptr noundef @c_b42, ptr noundef %2994, ptr noundef @c__1, ptr noundef %2996, ptr noundef %2997, ptr noundef %50)
  %2998 = load ptr, ptr %19, align 8, !tbaa !5
  %2999 = load ptr, ptr %21, align 8, !tbaa !5
  %3000 = load i32, ptr %57, align 4, !tbaa !9
  %3001 = load i32, ptr %35, align 4, !tbaa !9
  %3002 = mul nsw i32 %3000, %3001
  %3003 = add nsw i32 %3002, 1
  %3004 = sext i32 %3003 to i64
  %3005 = getelementptr inbounds float, ptr %2999, i64 %3004
  %3006 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %49, ptr noundef @c_b42, ptr noundef %2998, ptr noundef @c__1, ptr noundef %3005, ptr noundef %3006, ptr noundef %50)
  %3007 = load float, ptr %48, align 4, !tbaa !11
  %3008 = fneg float %3007
  %3009 = load ptr, ptr %23, align 8, !tbaa !5
  %3010 = load i32, ptr %56, align 4, !tbaa !9
  %3011 = sext i32 %3010 to i64
  %3012 = getelementptr inbounds float, ptr %3009, i64 %3011
  %3013 = load float, ptr %3012, align 4, !tbaa !11
  %3014 = fmul float %3008, %3013
  %3015 = load ptr, ptr %23, align 8, !tbaa !5
  %3016 = load i32, ptr %57, align 4, !tbaa !9
  %3017 = sext i32 %3016 to i64
  %3018 = getelementptr inbounds float, ptr %3015, i64 %3017
  %3019 = load float, ptr %3018, align 4, !tbaa !11
  %3020 = fdiv float %3014, %3019
  store float %3020, ptr %54, align 4, !tbaa !11
  %3021 = load ptr, ptr %19, align 8, !tbaa !5
  %3022 = load ptr, ptr %32, align 8, !tbaa !5
  %3023 = getelementptr inbounds float, ptr %3022, i64 1
  %3024 = load ptr, ptr %21, align 8, !tbaa !5
  %3025 = load i32, ptr %57, align 4, !tbaa !9
  %3026 = load i32, ptr %35, align 4, !tbaa !9
  %3027 = mul nsw i32 %3025, %3026
  %3028 = add nsw i32 %3027, 1
  %3029 = sext i32 %3028 to i64
  %3030 = getelementptr inbounds float, ptr %3024, i64 %3029
  call void @saxpy_(ptr noundef %3021, ptr noundef %54, ptr noundef %3023, ptr noundef @c__1, ptr noundef %3030, ptr noundef @c__1)
  %3031 = load ptr, ptr %19, align 8, !tbaa !5
  %3032 = load ptr, ptr %21, align 8, !tbaa !5
  %3033 = load i32, ptr %57, align 4, !tbaa !9
  %3034 = load i32, ptr %35, align 4, !tbaa !9
  %3035 = mul nsw i32 %3033, %3034
  %3036 = add nsw i32 %3035, 1
  %3037 = sext i32 %3036 to i64
  %3038 = getelementptr inbounds float, ptr %3032, i64 %3037
  %3039 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b42, ptr noundef %49, ptr noundef %3031, ptr noundef @c__1, ptr noundef %3038, ptr noundef %3039, ptr noundef %50)
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %3040 = load float, ptr %48, align 4, !tbaa !11
  %3041 = load float, ptr %48, align 4, !tbaa !11
  %3042 = fneg float %3040
  %3043 = call float @llvm.fmuladd.f32(float %3042, float %3041, float 1.000000e+00)
  store float %3043, ptr %46, align 4, !tbaa !11
  %3044 = load float, ptr %49, align 4, !tbaa !11
  %3045 = fpext float %3044 to double
  %3046 = load float, ptr %45, align 4, !tbaa !11
  %3047 = load float, ptr %46, align 4, !tbaa !11
  %3048 = fcmp oge float %3046, %3047
  br i1 %3048, label %3049, label %3051

3049:                                             ; preds = %2983
  %3050 = load float, ptr %45, align 4, !tbaa !11
  br label %3053

3051:                                             ; preds = %2983
  %3052 = load float, ptr %46, align 4, !tbaa !11
  br label %3053

3053:                                             ; preds = %3051, %3049
  %3054 = phi float [ %3050, %3049 ], [ %3052, %3051 ]
  %3055 = fpext float %3054 to double
  %3056 = call double @sqrt(double noundef %3055) #5
  %3057 = fmul double %3045, %3056
  %3058 = fptrunc double %3057 to float
  %3059 = load ptr, ptr %24, align 8, !tbaa !5
  %3060 = load i32, ptr %57, align 4, !tbaa !9
  %3061 = sext i32 %3060 to i64
  %3062 = getelementptr inbounds float, ptr %3059, i64 %3061
  store float %3058, ptr %3062, align 4, !tbaa !11
  %3063 = load float, ptr %75, align 4, !tbaa !11
  %3064 = load ptr, ptr %29, align 8, !tbaa !5
  %3065 = load float, ptr %3064, align 4, !tbaa !11
  %3066 = fcmp oge float %3063, %3065
  br i1 %3066, label %3067, label %3069

3067:                                             ; preds = %3053
  %3068 = load float, ptr %75, align 4, !tbaa !11
  br label %3072

3069:                                             ; preds = %3053
  %3070 = load ptr, ptr %29, align 8, !tbaa !5
  %3071 = load float, ptr %3070, align 4, !tbaa !11
  br label %3072

3072:                                             ; preds = %3069, %3067
  %3073 = phi float [ %3068, %3067 ], [ %3071, %3069 ]
  store float %3073, ptr %75, align 4, !tbaa !11
  br label %3165

3074:                                             ; preds = %2979
  %3075 = load ptr, ptr %19, align 8, !tbaa !5
  %3076 = load ptr, ptr %21, align 8, !tbaa !5
  %3077 = load i32, ptr %57, align 4, !tbaa !9
  %3078 = load i32, ptr %35, align 4, !tbaa !9
  %3079 = mul nsw i32 %3077, %3078
  %3080 = add nsw i32 %3079, 1
  %3081 = sext i32 %3080 to i64
  %3082 = getelementptr inbounds float, ptr %3076, i64 %3081
  %3083 = load ptr, ptr %32, align 8, !tbaa !5
  %3084 = getelementptr inbounds float, ptr %3083, i64 1
  call void @scopy_(ptr noundef %3075, ptr noundef %3082, ptr noundef @c__1, ptr noundef %3084, ptr noundef @c__1)
  %3085 = load ptr, ptr %19, align 8, !tbaa !5
  %3086 = load ptr, ptr %32, align 8, !tbaa !5
  %3087 = getelementptr inbounds float, ptr %3086, i64 1
  %3088 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %49, ptr noundef @c_b42, ptr noundef %3085, ptr noundef @c__1, ptr noundef %3087, ptr noundef %3088, ptr noundef %50)
  %3089 = load ptr, ptr %19, align 8, !tbaa !5
  %3090 = load ptr, ptr %21, align 8, !tbaa !5
  %3091 = load i32, ptr %56, align 4, !tbaa !9
  %3092 = load i32, ptr %35, align 4, !tbaa !9
  %3093 = mul nsw i32 %3091, %3092
  %3094 = add nsw i32 %3093, 1
  %3095 = sext i32 %3094 to i64
  %3096 = getelementptr inbounds float, ptr %3090, i64 %3095
  %3097 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef %47, ptr noundef @c_b42, ptr noundef %3089, ptr noundef @c__1, ptr noundef %3096, ptr noundef %3097, ptr noundef %50)
  %3098 = load float, ptr %48, align 4, !tbaa !11
  %3099 = fneg float %3098
  %3100 = load ptr, ptr %23, align 8, !tbaa !5
  %3101 = load i32, ptr %57, align 4, !tbaa !9
  %3102 = sext i32 %3101 to i64
  %3103 = getelementptr inbounds float, ptr %3100, i64 %3102
  %3104 = load float, ptr %3103, align 4, !tbaa !11
  %3105 = fmul float %3099, %3104
  %3106 = load ptr, ptr %23, align 8, !tbaa !5
  %3107 = load i32, ptr %56, align 4, !tbaa !9
  %3108 = sext i32 %3107 to i64
  %3109 = getelementptr inbounds float, ptr %3106, i64 %3108
  %3110 = load float, ptr %3109, align 4, !tbaa !11
  %3111 = fdiv float %3105, %3110
  store float %3111, ptr %54, align 4, !tbaa !11
  %3112 = load ptr, ptr %19, align 8, !tbaa !5
  %3113 = load ptr, ptr %32, align 8, !tbaa !5
  %3114 = getelementptr inbounds float, ptr %3113, i64 1
  %3115 = load ptr, ptr %21, align 8, !tbaa !5
  %3116 = load i32, ptr %56, align 4, !tbaa !9
  %3117 = load i32, ptr %35, align 4, !tbaa !9
  %3118 = mul nsw i32 %3116, %3117
  %3119 = add nsw i32 %3118, 1
  %3120 = sext i32 %3119 to i64
  %3121 = getelementptr inbounds float, ptr %3115, i64 %3120
  call void @saxpy_(ptr noundef %3112, ptr noundef %54, ptr noundef %3114, ptr noundef @c__1, ptr noundef %3121, ptr noundef @c__1)
  %3122 = load ptr, ptr %19, align 8, !tbaa !5
  %3123 = load ptr, ptr %21, align 8, !tbaa !5
  %3124 = load i32, ptr %56, align 4, !tbaa !9
  %3125 = load i32, ptr %35, align 4, !tbaa !9
  %3126 = mul nsw i32 %3124, %3125
  %3127 = add nsw i32 %3126, 1
  %3128 = sext i32 %3127 to i64
  %3129 = getelementptr inbounds float, ptr %3123, i64 %3128
  %3130 = load ptr, ptr %22, align 8, !tbaa !5
  call void @slascl_(ptr noundef @.str.4, ptr noundef @c__0, ptr noundef @c__0, ptr noundef @c_b42, ptr noundef %47, ptr noundef %3122, ptr noundef @c__1, ptr noundef %3129, ptr noundef %3130, ptr noundef %50)
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %3131 = load float, ptr %48, align 4, !tbaa !11
  %3132 = load float, ptr %48, align 4, !tbaa !11
  %3133 = fneg float %3131
  %3134 = call float @llvm.fmuladd.f32(float %3133, float %3132, float 1.000000e+00)
  store float %3134, ptr %46, align 4, !tbaa !11
  %3135 = load float, ptr %47, align 4, !tbaa !11
  %3136 = fpext float %3135 to double
  %3137 = load float, ptr %45, align 4, !tbaa !11
  %3138 = load float, ptr %46, align 4, !tbaa !11
  %3139 = fcmp oge float %3137, %3138
  br i1 %3139, label %3140, label %3142

3140:                                             ; preds = %3074
  %3141 = load float, ptr %45, align 4, !tbaa !11
  br label %3144

3142:                                             ; preds = %3074
  %3143 = load float, ptr %46, align 4, !tbaa !11
  br label %3144

3144:                                             ; preds = %3142, %3140
  %3145 = phi float [ %3141, %3140 ], [ %3143, %3142 ]
  %3146 = fpext float %3145 to double
  %3147 = call double @sqrt(double noundef %3146) #5
  %3148 = fmul double %3136, %3147
  %3149 = fptrunc double %3148 to float
  %3150 = load ptr, ptr %24, align 8, !tbaa !5
  %3151 = load i32, ptr %56, align 4, !tbaa !9
  %3152 = sext i32 %3151 to i64
  %3153 = getelementptr inbounds float, ptr %3150, i64 %3152
  store float %3149, ptr %3153, align 4, !tbaa !11
  %3154 = load float, ptr %75, align 4, !tbaa !11
  %3155 = load ptr, ptr %29, align 8, !tbaa !5
  %3156 = load float, ptr %3155, align 4, !tbaa !11
  %3157 = fcmp oge float %3154, %3156
  br i1 %3157, label %3158, label %3160

3158:                                             ; preds = %3144
  %3159 = load float, ptr %75, align 4, !tbaa !11
  br label %3163

3160:                                             ; preds = %3144
  %3161 = load ptr, ptr %29, align 8, !tbaa !5
  %3162 = load float, ptr %3161, align 4, !tbaa !11
  br label %3163

3163:                                             ; preds = %3160, %3158
  %3164 = phi float [ %3159, %3158 ], [ %3162, %3160 ]
  store float %3164, ptr %75, align 4, !tbaa !11
  br label %3165

3165:                                             ; preds = %3163, %3072
  br label %3166

3166:                                             ; preds = %3165, %2978
  %3167 = load ptr, ptr %24, align 8, !tbaa !5
  %3168 = load i32, ptr %57, align 4, !tbaa !9
  %3169 = sext i32 %3168 to i64
  %3170 = getelementptr inbounds float, ptr %3167, i64 %3169
  %3171 = load float, ptr %3170, align 4, !tbaa !11
  %3172 = load float, ptr %49, align 4, !tbaa !11
  %3173 = fdiv float %3171, %3172
  store float %3173, ptr %45, align 4, !tbaa !11
  %3174 = load float, ptr %45, align 4, !tbaa !11
  %3175 = load float, ptr %45, align 4, !tbaa !11
  %3176 = fmul float %3174, %3175
  %3177 = load float, ptr %90, align 4, !tbaa !11
  %3178 = fcmp ole float %3176, %3177
  br i1 %3178, label %3179, label %3235

3179:                                             ; preds = %3166
  %3180 = load float, ptr %49, align 4, !tbaa !11
  %3181 = load float, ptr %89, align 4, !tbaa !11
  %3182 = fcmp olt float %3180, %3181
  br i1 %3182, label %3183, label %3207

3183:                                             ; preds = %3179
  %3184 = load float, ptr %49, align 4, !tbaa !11
  %3185 = load float, ptr %67, align 4, !tbaa !11
  %3186 = fcmp ogt float %3184, %3185
  br i1 %3186, label %3187, label %3207

3187:                                             ; preds = %3183
  %3188 = load ptr, ptr %19, align 8, !tbaa !5
  %3189 = load ptr, ptr %21, align 8, !tbaa !5
  %3190 = load i32, ptr %57, align 4, !tbaa !9
  %3191 = load i32, ptr %35, align 4, !tbaa !9
  %3192 = mul nsw i32 %3190, %3191
  %3193 = add nsw i32 %3192, 1
  %3194 = sext i32 %3193 to i64
  %3195 = getelementptr inbounds float, ptr %3189, i64 %3194
  %3196 = call float @snrm2_(ptr noundef %3188, ptr noundef %3195, ptr noundef @c__1)
  %3197 = load ptr, ptr %23, align 8, !tbaa !5
  %3198 = load i32, ptr %57, align 4, !tbaa !9
  %3199 = sext i32 %3198 to i64
  %3200 = getelementptr inbounds float, ptr %3197, i64 %3199
  %3201 = load float, ptr %3200, align 4, !tbaa !11
  %3202 = fmul float %3196, %3201
  %3203 = load ptr, ptr %24, align 8, !tbaa !5
  %3204 = load i32, ptr %57, align 4, !tbaa !9
  %3205 = sext i32 %3204 to i64
  %3206 = getelementptr inbounds float, ptr %3203, i64 %3205
  store float %3202, ptr %3206, align 4, !tbaa !11
  br label %3234

3207:                                             ; preds = %3183, %3179
  store float 0.000000e+00, ptr %58, align 4, !tbaa !11
  store float 1.000000e+00, ptr %49, align 4, !tbaa !11
  %3208 = load ptr, ptr %19, align 8, !tbaa !5
  %3209 = load ptr, ptr %21, align 8, !tbaa !5
  %3210 = load i32, ptr %57, align 4, !tbaa !9
  %3211 = load i32, ptr %35, align 4, !tbaa !9
  %3212 = mul nsw i32 %3210, %3211
  %3213 = add nsw i32 %3212, 1
  %3214 = sext i32 %3213 to i64
  %3215 = getelementptr inbounds float, ptr %3209, i64 %3214
  call void @slassq_(ptr noundef %3208, ptr noundef %3215, ptr noundef @c__1, ptr noundef %58, ptr noundef %49)
  %3216 = load float, ptr %58, align 4, !tbaa !11
  %3217 = fpext float %3216 to double
  %3218 = load float, ptr %49, align 4, !tbaa !11
  %3219 = fpext float %3218 to double
  %3220 = call double @sqrt(double noundef %3219) #5
  %3221 = fmul double %3217, %3220
  %3222 = load ptr, ptr %23, align 8, !tbaa !5
  %3223 = load i32, ptr %57, align 4, !tbaa !9
  %3224 = sext i32 %3223 to i64
  %3225 = getelementptr inbounds float, ptr %3222, i64 %3224
  %3226 = load float, ptr %3225, align 4, !tbaa !11
  %3227 = fpext float %3226 to double
  %3228 = fmul double %3221, %3227
  %3229 = fptrunc double %3228 to float
  %3230 = load ptr, ptr %24, align 8, !tbaa !5
  %3231 = load i32, ptr %57, align 4, !tbaa !9
  %3232 = sext i32 %3231 to i64
  %3233 = getelementptr inbounds float, ptr %3230, i64 %3232
  store float %3229, ptr %3233, align 4, !tbaa !11
  br label %3234

3234:                                             ; preds = %3207, %3187
  br label %3235

3235:                                             ; preds = %3234, %3166
  %3236 = load float, ptr %47, align 4, !tbaa !11
  %3237 = load float, ptr %53, align 4, !tbaa !11
  %3238 = fdiv float %3236, %3237
  store float %3238, ptr %45, align 4, !tbaa !11
  %3239 = load float, ptr %45, align 4, !tbaa !11
  %3240 = load float, ptr %45, align 4, !tbaa !11
  %3241 = fmul float %3239, %3240
  %3242 = load float, ptr %90, align 4, !tbaa !11
  %3243 = fcmp ole float %3241, %3242
  br i1 %3243, label %3244, label %3297

3244:                                             ; preds = %3235
  %3245 = load float, ptr %47, align 4, !tbaa !11
  %3246 = load float, ptr %89, align 4, !tbaa !11
  %3247 = fcmp olt float %3245, %3246
  br i1 %3247, label %3248, label %3268

3248:                                             ; preds = %3244
  %3249 = load float, ptr %47, align 4, !tbaa !11
  %3250 = load float, ptr %67, align 4, !tbaa !11
  %3251 = fcmp ogt float %3249, %3250
  br i1 %3251, label %3252, label %3268

3252:                                             ; preds = %3248
  %3253 = load ptr, ptr %19, align 8, !tbaa !5
  %3254 = load ptr, ptr %21, align 8, !tbaa !5
  %3255 = load i32, ptr %56, align 4, !tbaa !9
  %3256 = load i32, ptr %35, align 4, !tbaa !9
  %3257 = mul nsw i32 %3255, %3256
  %3258 = add nsw i32 %3257, 1
  %3259 = sext i32 %3258 to i64
  %3260 = getelementptr inbounds float, ptr %3254, i64 %3259
  %3261 = call float @snrm2_(ptr noundef %3253, ptr noundef %3260, ptr noundef @c__1)
  %3262 = load ptr, ptr %23, align 8, !tbaa !5
  %3263 = load i32, ptr %56, align 4, !tbaa !9
  %3264 = sext i32 %3263 to i64
  %3265 = getelementptr inbounds float, ptr %3262, i64 %3264
  %3266 = load float, ptr %3265, align 4, !tbaa !11
  %3267 = fmul float %3261, %3266
  store float %3267, ptr %47, align 4, !tbaa !11
  br label %3291

3268:                                             ; preds = %3248, %3244
  store float 0.000000e+00, ptr %58, align 4, !tbaa !11
  store float 1.000000e+00, ptr %47, align 4, !tbaa !11
  %3269 = load ptr, ptr %19, align 8, !tbaa !5
  %3270 = load ptr, ptr %21, align 8, !tbaa !5
  %3271 = load i32, ptr %56, align 4, !tbaa !9
  %3272 = load i32, ptr %35, align 4, !tbaa !9
  %3273 = mul nsw i32 %3271, %3272
  %3274 = add nsw i32 %3273, 1
  %3275 = sext i32 %3274 to i64
  %3276 = getelementptr inbounds float, ptr %3270, i64 %3275
  call void @slassq_(ptr noundef %3269, ptr noundef %3276, ptr noundef @c__1, ptr noundef %58, ptr noundef %47)
  %3277 = load float, ptr %58, align 4, !tbaa !11
  %3278 = fpext float %3277 to double
  %3279 = load float, ptr %47, align 4, !tbaa !11
  %3280 = fpext float %3279 to double
  %3281 = call double @sqrt(double noundef %3280) #5
  %3282 = fmul double %3278, %3281
  %3283 = load ptr, ptr %23, align 8, !tbaa !5
  %3284 = load i32, ptr %56, align 4, !tbaa !9
  %3285 = sext i32 %3284 to i64
  %3286 = getelementptr inbounds float, ptr %3283, i64 %3285
  %3287 = load float, ptr %3286, align 4, !tbaa !11
  %3288 = fpext float %3287 to double
  %3289 = fmul double %3282, %3288
  %3290 = fptrunc double %3289 to float
  store float %3290, ptr %47, align 4, !tbaa !11
  br label %3291

3291:                                             ; preds = %3268, %3252
  %3292 = load float, ptr %47, align 4, !tbaa !11
  %3293 = load ptr, ptr %24, align 8, !tbaa !5
  %3294 = load i32, ptr %56, align 4, !tbaa !9
  %3295 = sext i32 %3294 to i64
  %3296 = getelementptr inbounds float, ptr %3293, i64 %3295
  store float %3292, ptr %3296, align 4, !tbaa !11
  br label %3297

3297:                                             ; preds = %3291, %3235
  br label %3305

3298:                                             ; preds = %2180
  %3299 = load i32, ptr %78, align 4, !tbaa !9
  %3300 = add nsw i32 %3299, 1
  store i32 %3300, ptr %78, align 4, !tbaa !9
  %3301 = load i32, ptr %52, align 4, !tbaa !9
  %3302 = add nsw i32 %3301, 1
  store i32 %3302, ptr %52, align 4, !tbaa !9
  %3303 = load i32, ptr %70, align 4, !tbaa !9
  %3304 = add nsw i32 %3303, 1
  store i32 %3304, ptr %70, align 4, !tbaa !9
  br label %3305

3305:                                             ; preds = %3298, %3297
  br label %3313

3306:                                             ; preds = %1949
  %3307 = load i32, ptr %78, align 4, !tbaa !9
  %3308 = add nsw i32 %3307, 1
  store i32 %3308, ptr %78, align 4, !tbaa !9
  %3309 = load i32, ptr %52, align 4, !tbaa !9
  %3310 = add nsw i32 %3309, 1
  store i32 %3310, ptr %52, align 4, !tbaa !9
  %3311 = load i32, ptr %70, align 4, !tbaa !9
  %3312 = add nsw i32 %3311, 1
  store i32 %3312, ptr %70, align 4, !tbaa !9
  br label %3313

3313:                                             ; preds = %3306, %3305
  %3314 = load i32, ptr %55, align 4, !tbaa !9
  %3315 = load i32, ptr %71, align 4, !tbaa !9
  %3316 = icmp sle i32 %3314, %3315
  br i1 %3316, label %3317, label %3327

3317:                                             ; preds = %3313
  %3318 = load i32, ptr %70, align 4, !tbaa !9
  %3319 = load i32, ptr %72, align 4, !tbaa !9
  %3320 = icmp sge i32 %3318, %3319
  br i1 %3320, label %3321, label %3327

3321:                                             ; preds = %3317
  %3322 = load float, ptr %47, align 4, !tbaa !11
  %3323 = load ptr, ptr %24, align 8, !tbaa !5
  %3324 = load i32, ptr %56, align 4, !tbaa !9
  %3325 = sext i32 %3324 to i64
  %3326 = getelementptr inbounds float, ptr %3323, i64 %3325
  store float %3322, ptr %3326, align 4, !tbaa !11
  store i32 0, ptr %78, align 4, !tbaa !9
  br label %3387

3327:                                             ; preds = %3317, %3313
  %3328 = load i32, ptr %55, align 4, !tbaa !9
  %3329 = load i32, ptr %71, align 4, !tbaa !9
  %3330 = icmp sle i32 %3328, %3329
  br i1 %3330, label %3331, label %3338

3331:                                             ; preds = %3327
  %3332 = load i32, ptr %52, align 4, !tbaa !9
  %3333 = load i32, ptr %91, align 4, !tbaa !9
  %3334 = icmp sgt i32 %3332, %3333
  br i1 %3334, label %3335, label %3338

3335:                                             ; preds = %3331
  %3336 = load float, ptr %47, align 4, !tbaa !11
  %3337 = fneg float %3336
  store float %3337, ptr %47, align 4, !tbaa !11
  store i32 0, ptr %78, align 4, !tbaa !9
  br label %3343

3338:                                             ; preds = %3331, %3327
  br label %3339

3339:                                             ; preds = %3338
  %3340 = load i32, ptr %57, align 4, !tbaa !9
  %3341 = add nsw i32 %3340, 1
  store i32 %3341, ptr %57, align 4, !tbaa !9
  br label %1945, !llvm.loop !17

3342:                                             ; preds = %1945
  br label %3343

3343:                                             ; preds = %3342, %3335
  %3344 = load float, ptr %47, align 4, !tbaa !11
  %3345 = load ptr, ptr %24, align 8, !tbaa !5
  %3346 = load i32, ptr %56, align 4, !tbaa !9
  %3347 = sext i32 %3346 to i64
  %3348 = getelementptr inbounds float, ptr %3345, i64 %3347
  store float %3344, ptr %3348, align 4, !tbaa !11
  br label %3378

3349:                                             ; preds = %1920
  %3350 = load float, ptr %47, align 4, !tbaa !11
  %3351 = fcmp oeq float %3350, 0.000000e+00
  br i1 %3351, label %3352, label %3373

3352:                                             ; preds = %3349
  %3353 = load i32, ptr %86, align 4, !tbaa !9
  %3354 = load i32, ptr %82, align 4, !tbaa !9
  %3355 = add nsw i32 %3353, %3354
  %3356 = sub nsw i32 %3355, 1
  store i32 %3356, ptr %43, align 4, !tbaa !9
  %3357 = load i32, ptr %78, align 4, !tbaa !9
  %3358 = load i32, ptr %43, align 4, !tbaa !9
  %3359 = load ptr, ptr %20, align 8, !tbaa !5
  %3360 = load i32, ptr %3359, align 4, !tbaa !9
  %3361 = icmp sle i32 %3358, %3360
  br i1 %3361, label %3362, label %3364

3362:                                             ; preds = %3352
  %3363 = load i32, ptr %43, align 4, !tbaa !9
  br label %3367

3364:                                             ; preds = %3352
  %3365 = load ptr, ptr %20, align 8, !tbaa !5
  %3366 = load i32, ptr %3365, align 4, !tbaa !9
  br label %3367

3367:                                             ; preds = %3364, %3362
  %3368 = phi i32 [ %3363, %3362 ], [ %3366, %3364 ]
  %3369 = add nsw i32 %3357, %3368
  %3370 = load i32, ptr %86, align 4, !tbaa !9
  %3371 = sub nsw i32 %3369, %3370
  %3372 = add nsw i32 %3371, 1
  store i32 %3372, ptr %78, align 4, !tbaa !9
  br label %3373

3373:                                             ; preds = %3367, %3349
  %3374 = load float, ptr %47, align 4, !tbaa !11
  %3375 = fcmp olt float %3374, 0.000000e+00
  br i1 %3375, label %3376, label %3377

3376:                                             ; preds = %3373
  store i32 0, ptr %78, align 4, !tbaa !9
  br label %3377

3377:                                             ; preds = %3376, %3373
  br label %3378

3378:                                             ; preds = %3377, %3343
  br label %3379

3379:                                             ; preds = %3378
  %3380 = load i32, ptr %56, align 4, !tbaa !9
  %3381 = add nsw i32 %3380, 1
  store i32 %3381, ptr %56, align 4, !tbaa !9
  br label %1916, !llvm.loop !18

3382:                                             ; preds = %1916
  br label %3383

3383:                                             ; preds = %3382
  %3384 = load i32, ptr %80, align 4, !tbaa !9
  %3385 = add nsw i32 %3384, 1
  store i32 %3385, ptr %80, align 4, !tbaa !9
  br label %1890, !llvm.loop !19

3386:                                             ; preds = %1890
  br label %3387

3387:                                             ; preds = %3386, %3321
  %3388 = load i32, ptr %84, align 4, !tbaa !9
  %3389 = load i32, ptr %82, align 4, !tbaa !9
  %3390 = add nsw i32 %3388, %3389
  %3391 = sub nsw i32 %3390, 1
  store i32 %3391, ptr %42, align 4, !tbaa !9
  %3392 = load i32, ptr %42, align 4, !tbaa !9
  %3393 = load ptr, ptr %20, align 8, !tbaa !5
  %3394 = load i32, ptr %3393, align 4, !tbaa !9
  %3395 = icmp sle i32 %3392, %3394
  br i1 %3395, label %3396, label %3398

3396:                                             ; preds = %3387
  %3397 = load i32, ptr %42, align 4, !tbaa !9
  br label %3401

3398:                                             ; preds = %3387
  %3399 = load ptr, ptr %20, align 8, !tbaa !5
  %3400 = load i32, ptr %3399, align 4, !tbaa !9
  br label %3401

3401:                                             ; preds = %3398, %3396
  %3402 = phi i32 [ %3397, %3396 ], [ %3400, %3398 ]
  store i32 %3402, ptr %41, align 4, !tbaa !9
  %3403 = load i32, ptr %84, align 4, !tbaa !9
  store i32 %3403, ptr %56, align 4, !tbaa !9
  br label %3404

3404:                                             ; preds = %3427, %3401
  %3405 = load i32, ptr %56, align 4, !tbaa !9
  %3406 = load i32, ptr %41, align 4, !tbaa !9
  %3407 = icmp sle i32 %3405, %3406
  br i1 %3407, label %3408, label %3430

3408:                                             ; preds = %3404
  %3409 = load ptr, ptr %24, align 8, !tbaa !5
  %3410 = load i32, ptr %56, align 4, !tbaa !9
  %3411 = sext i32 %3410 to i64
  %3412 = getelementptr inbounds float, ptr %3409, i64 %3411
  %3413 = load float, ptr %3412, align 4, !tbaa !11
  store float %3413, ptr %45, align 4, !tbaa !11
  %3414 = load float, ptr %45, align 4, !tbaa !11
  %3415 = fcmp oge float %3414, 0.000000e+00
  br i1 %3415, label %3416, label %3418

3416:                                             ; preds = %3408
  %3417 = load float, ptr %45, align 4, !tbaa !11
  br label %3421

3418:                                             ; preds = %3408
  %3419 = load float, ptr %45, align 4, !tbaa !11
  %3420 = fneg float %3419
  br label %3421

3421:                                             ; preds = %3418, %3416
  %3422 = phi float [ %3417, %3416 ], [ %3420, %3418 ]
  %3423 = load ptr, ptr %24, align 8, !tbaa !5
  %3424 = load i32, ptr %56, align 4, !tbaa !9
  %3425 = sext i32 %3424 to i64
  %3426 = getelementptr inbounds float, ptr %3423, i64 %3425
  store float %3422, ptr %3426, align 4, !tbaa !11
  br label %3427

3427:                                             ; preds = %3421
  %3428 = load i32, ptr %56, align 4, !tbaa !9
  %3429 = add nsw i32 %3428, 1
  store i32 %3429, ptr %56, align 4, !tbaa !9
  br label %3404, !llvm.loop !20

3430:                                             ; preds = %3404
  br label %3431

3431:                                             ; preds = %3430
  %3432 = load i32, ptr %85, align 4, !tbaa !9
  %3433 = add nsw i32 %3432, 1
  store i32 %3433, ptr %85, align 4, !tbaa !9
  br label %334, !llvm.loop !21

3434:                                             ; preds = %334
  %3435 = load ptr, ptr %24, align 8, !tbaa !5
  %3436 = load ptr, ptr %20, align 8, !tbaa !5
  %3437 = load i32, ptr %3436, align 4, !tbaa !9
  %3438 = sext i32 %3437 to i64
  %3439 = getelementptr inbounds float, ptr %3435, i64 %3438
  %3440 = load float, ptr %3439, align 4, !tbaa !11
  %3441 = load float, ptr %89, align 4, !tbaa !11
  %3442 = fcmp olt float %3440, %3441
  br i1 %3442, label %3443, label %3475

3443:                                             ; preds = %3434
  %3444 = load ptr, ptr %24, align 8, !tbaa !5
  %3445 = load ptr, ptr %20, align 8, !tbaa !5
  %3446 = load i32, ptr %3445, align 4, !tbaa !9
  %3447 = sext i32 %3446 to i64
  %3448 = getelementptr inbounds float, ptr %3444, i64 %3447
  %3449 = load float, ptr %3448, align 4, !tbaa !11
  %3450 = load float, ptr %67, align 4, !tbaa !11
  %3451 = fcmp ogt float %3449, %3450
  br i1 %3451, label %3452, label %3475

3452:                                             ; preds = %3443
  %3453 = load ptr, ptr %19, align 8, !tbaa !5
  %3454 = load ptr, ptr %21, align 8, !tbaa !5
  %3455 = load ptr, ptr %20, align 8, !tbaa !5
  %3456 = load i32, ptr %3455, align 4, !tbaa !9
  %3457 = load i32, ptr %35, align 4, !tbaa !9
  %3458 = mul nsw i32 %3456, %3457
  %3459 = add nsw i32 %3458, 1
  %3460 = sext i32 %3459 to i64
  %3461 = getelementptr inbounds float, ptr %3454, i64 %3460
  %3462 = call float @snrm2_(ptr noundef %3453, ptr noundef %3461, ptr noundef @c__1)
  %3463 = load ptr, ptr %23, align 8, !tbaa !5
  %3464 = load ptr, ptr %20, align 8, !tbaa !5
  %3465 = load i32, ptr %3464, align 4, !tbaa !9
  %3466 = sext i32 %3465 to i64
  %3467 = getelementptr inbounds float, ptr %3463, i64 %3466
  %3468 = load float, ptr %3467, align 4, !tbaa !11
  %3469 = fmul float %3462, %3468
  %3470 = load ptr, ptr %24, align 8, !tbaa !5
  %3471 = load ptr, ptr %20, align 8, !tbaa !5
  %3472 = load i32, ptr %3471, align 4, !tbaa !9
  %3473 = sext i32 %3472 to i64
  %3474 = getelementptr inbounds float, ptr %3470, i64 %3473
  store float %3469, ptr %3474, align 4, !tbaa !11
  br label %3505

3475:                                             ; preds = %3443, %3434
  store float 0.000000e+00, ptr %58, align 4, !tbaa !11
  store float 1.000000e+00, ptr %47, align 4, !tbaa !11
  %3476 = load ptr, ptr %19, align 8, !tbaa !5
  %3477 = load ptr, ptr %21, align 8, !tbaa !5
  %3478 = load ptr, ptr %20, align 8, !tbaa !5
  %3479 = load i32, ptr %3478, align 4, !tbaa !9
  %3480 = load i32, ptr %35, align 4, !tbaa !9
  %3481 = mul nsw i32 %3479, %3480
  %3482 = add nsw i32 %3481, 1
  %3483 = sext i32 %3482 to i64
  %3484 = getelementptr inbounds float, ptr %3477, i64 %3483
  call void @slassq_(ptr noundef %3476, ptr noundef %3484, ptr noundef @c__1, ptr noundef %58, ptr noundef %47)
  %3485 = load float, ptr %58, align 4, !tbaa !11
  %3486 = fpext float %3485 to double
  %3487 = load float, ptr %47, align 4, !tbaa !11
  %3488 = fpext float %3487 to double
  %3489 = call double @sqrt(double noundef %3488) #5
  %3490 = fmul double %3486, %3489
  %3491 = load ptr, ptr %23, align 8, !tbaa !5
  %3492 = load ptr, ptr %20, align 8, !tbaa !5
  %3493 = load i32, ptr %3492, align 4, !tbaa !9
  %3494 = sext i32 %3493 to i64
  %3495 = getelementptr inbounds float, ptr %3491, i64 %3494
  %3496 = load float, ptr %3495, align 4, !tbaa !11
  %3497 = fpext float %3496 to double
  %3498 = fmul double %3490, %3497
  %3499 = fptrunc double %3498 to float
  %3500 = load ptr, ptr %24, align 8, !tbaa !5
  %3501 = load ptr, ptr %20, align 8, !tbaa !5
  %3502 = load i32, ptr %3501, align 4, !tbaa !9
  %3503 = sext i32 %3502 to i64
  %3504 = getelementptr inbounds float, ptr %3500, i64 %3503
  store float %3499, ptr %3504, align 4, !tbaa !11
  br label %3505

3505:                                             ; preds = %3475, %3452
  %3506 = load i32, ptr %55, align 4, !tbaa !9
  %3507 = load i32, ptr %71, align 4, !tbaa !9
  %3508 = icmp slt i32 %3506, %3507
  br i1 %3508, label %3509, label %3520

3509:                                             ; preds = %3505
  %3510 = load float, ptr %73, align 4, !tbaa !11
  %3511 = load float, ptr %92, align 4, !tbaa !11
  %3512 = fcmp ole float %3510, %3511
  br i1 %3512, label %3518, label %3513

3513:                                             ; preds = %3509
  %3514 = load i32, ptr %79, align 4, !tbaa !9
  %3515 = load ptr, ptr %20, align 8, !tbaa !5
  %3516 = load i32, ptr %3515, align 4, !tbaa !9
  %3517 = icmp sle i32 %3514, %3516
  br i1 %3517, label %3518, label %3520

3518:                                             ; preds = %3513, %3509
  %3519 = load i32, ptr %55, align 4, !tbaa !9
  store i32 %3519, ptr %71, align 4, !tbaa !9
  br label %3520

3520:                                             ; preds = %3518, %3513, %3505
  %3521 = load i32, ptr %55, align 4, !tbaa !9
  %3522 = load i32, ptr %71, align 4, !tbaa !9
  %3523 = add nsw i32 %3522, 1
  %3524 = icmp sgt i32 %3521, %3523
  br i1 %3524, label %3525, label %3546

3525:                                             ; preds = %3520
  %3526 = load float, ptr %73, align 4, !tbaa !11
  %3527 = load ptr, ptr %20, align 8, !tbaa !5
  %3528 = load i32, ptr %3527, align 4, !tbaa !9
  %3529 = sitofp i32 %3528 to float
  %3530 = load ptr, ptr %30, align 8, !tbaa !5
  %3531 = load float, ptr %3530, align 4, !tbaa !11
  %3532 = fmul float %3529, %3531
  %3533 = fcmp olt float %3526, %3532
  br i1 %3533, label %3534, label %3546

3534:                                             ; preds = %3525
  %3535 = load ptr, ptr %20, align 8, !tbaa !5
  %3536 = load i32, ptr %3535, align 4, !tbaa !9
  %3537 = sitofp i32 %3536 to float
  %3538 = load float, ptr %73, align 4, !tbaa !11
  %3539 = fmul float %3537, %3538
  %3540 = load float, ptr %75, align 4, !tbaa !11
  %3541 = fmul float %3539, %3540
  %3542 = load ptr, ptr %30, align 8, !tbaa !5
  %3543 = load float, ptr %3542, align 4, !tbaa !11
  %3544 = fcmp olt float %3541, %3543
  br i1 %3544, label %3545, label %3546

3545:                                             ; preds = %3534
  br label %3560

3546:                                             ; preds = %3534, %3525, %3520
  %3547 = load i32, ptr %78, align 4, !tbaa !9
  %3548 = load i32, ptr %77, align 4, !tbaa !9
  %3549 = icmp sge i32 %3547, %3548
  br i1 %3549, label %3550, label %3551

3550:                                             ; preds = %3546
  br label %3560

3551:                                             ; preds = %3546
  br label %3552

3552:                                             ; preds = %3551
  %3553 = load i32, ptr %55, align 4, !tbaa !9
  %3554 = add nsw i32 %3553, 1
  store i32 %3554, ptr %55, align 4, !tbaa !9
  br label %328, !llvm.loop !22

3555:                                             ; preds = %328
  %3556 = load ptr, ptr %31, align 8, !tbaa !5
  %3557 = load i32, ptr %3556, align 4, !tbaa !9
  %3558 = sub nsw i32 %3557, 1
  %3559 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 %3558, ptr %3559, align 4, !tbaa !9
  br label %3562

3560:                                             ; preds = %3550, %3545
  %3561 = load ptr, ptr %34, align 8, !tbaa !5
  store i32 0, ptr %3561, align 4, !tbaa !9
  br label %3562

3562:                                             ; preds = %3560, %3555
  %3563 = load ptr, ptr %20, align 8, !tbaa !5
  %3564 = load i32, ptr %3563, align 4, !tbaa !9
  %3565 = sub nsw i32 %3564, 1
  store i32 %3565, ptr %39, align 4, !tbaa !9
  store i32 1, ptr %56, align 4, !tbaa !9
  br label %3566

3566:                                             ; preds = %3660, %3562
  %3567 = load i32, ptr %56, align 4, !tbaa !9
  %3568 = load i32, ptr %39, align 4, !tbaa !9
  %3569 = icmp sle i32 %3567, %3568
  br i1 %3569, label %3570, label %3663

3570:                                             ; preds = %3566
  %3571 = load ptr, ptr %20, align 8, !tbaa !5
  %3572 = load i32, ptr %3571, align 4, !tbaa !9
  %3573 = load i32, ptr %56, align 4, !tbaa !9
  %3574 = sub nsw i32 %3572, %3573
  %3575 = add nsw i32 %3574, 1
  store i32 %3575, ptr %40, align 4, !tbaa !9
  %3576 = load ptr, ptr %24, align 8, !tbaa !5
  %3577 = load i32, ptr %56, align 4, !tbaa !9
  %3578 = sext i32 %3577 to i64
  %3579 = getelementptr inbounds float, ptr %3576, i64 %3578
  %3580 = call i32 @isamax_(ptr noundef %40, ptr noundef %3579, ptr noundef @c__1)
  %3581 = load i32, ptr %56, align 4, !tbaa !9
  %3582 = add nsw i32 %3580, %3581
  %3583 = sub nsw i32 %3582, 1
  store i32 %3583, ptr %57, align 4, !tbaa !9
  %3584 = load i32, ptr %56, align 4, !tbaa !9
  %3585 = load i32, ptr %57, align 4, !tbaa !9
  %3586 = icmp ne i32 %3584, %3585
  br i1 %3586, label %3587, label %3659

3587:                                             ; preds = %3570
  %3588 = load ptr, ptr %24, align 8, !tbaa !5
  %3589 = load i32, ptr %56, align 4, !tbaa !9
  %3590 = sext i32 %3589 to i64
  %3591 = getelementptr inbounds float, ptr %3588, i64 %3590
  %3592 = load float, ptr %3591, align 4, !tbaa !11
  store float %3592, ptr %54, align 4, !tbaa !11
  %3593 = load ptr, ptr %24, align 8, !tbaa !5
  %3594 = load i32, ptr %57, align 4, !tbaa !9
  %3595 = sext i32 %3594 to i64
  %3596 = getelementptr inbounds float, ptr %3593, i64 %3595
  %3597 = load float, ptr %3596, align 4, !tbaa !11
  %3598 = load ptr, ptr %24, align 8, !tbaa !5
  %3599 = load i32, ptr %56, align 4, !tbaa !9
  %3600 = sext i32 %3599 to i64
  %3601 = getelementptr inbounds float, ptr %3598, i64 %3600
  store float %3597, ptr %3601, align 4, !tbaa !11
  %3602 = load float, ptr %54, align 4, !tbaa !11
  %3603 = load ptr, ptr %24, align 8, !tbaa !5
  %3604 = load i32, ptr %57, align 4, !tbaa !9
  %3605 = sext i32 %3604 to i64
  %3606 = getelementptr inbounds float, ptr %3603, i64 %3605
  store float %3602, ptr %3606, align 4, !tbaa !11
  %3607 = load ptr, ptr %23, align 8, !tbaa !5
  %3608 = load i32, ptr %56, align 4, !tbaa !9
  %3609 = sext i32 %3608 to i64
  %3610 = getelementptr inbounds float, ptr %3607, i64 %3609
  %3611 = load float, ptr %3610, align 4, !tbaa !11
  store float %3611, ptr %54, align 4, !tbaa !11
  %3612 = load ptr, ptr %23, align 8, !tbaa !5
  %3613 = load i32, ptr %57, align 4, !tbaa !9
  %3614 = sext i32 %3613 to i64
  %3615 = getelementptr inbounds float, ptr %3612, i64 %3614
  %3616 = load float, ptr %3615, align 4, !tbaa !11
  %3617 = load ptr, ptr %23, align 8, !tbaa !5
  %3618 = load i32, ptr %56, align 4, !tbaa !9
  %3619 = sext i32 %3618 to i64
  %3620 = getelementptr inbounds float, ptr %3617, i64 %3619
  store float %3616, ptr %3620, align 4, !tbaa !11
  %3621 = load float, ptr %54, align 4, !tbaa !11
  %3622 = load ptr, ptr %23, align 8, !tbaa !5
  %3623 = load i32, ptr %57, align 4, !tbaa !9
  %3624 = sext i32 %3623 to i64
  %3625 = getelementptr inbounds float, ptr %3622, i64 %3624
  store float %3621, ptr %3625, align 4, !tbaa !11
  %3626 = load ptr, ptr %19, align 8, !tbaa !5
  %3627 = load ptr, ptr %21, align 8, !tbaa !5
  %3628 = load i32, ptr %56, align 4, !tbaa !9
  %3629 = load i32, ptr %35, align 4, !tbaa !9
  %3630 = mul nsw i32 %3628, %3629
  %3631 = add nsw i32 %3630, 1
  %3632 = sext i32 %3631 to i64
  %3633 = getelementptr inbounds float, ptr %3627, i64 %3632
  %3634 = load ptr, ptr %21, align 8, !tbaa !5
  %3635 = load i32, ptr %57, align 4, !tbaa !9
  %3636 = load i32, ptr %35, align 4, !tbaa !9
  %3637 = mul nsw i32 %3635, %3636
  %3638 = add nsw i32 %3637, 1
  %3639 = sext i32 %3638 to i64
  %3640 = getelementptr inbounds float, ptr %3634, i64 %3639
  call void @sswap_(ptr noundef %3626, ptr noundef %3633, ptr noundef @c__1, ptr noundef %3640, ptr noundef @c__1)
  %3641 = load i32, ptr %65, align 4, !tbaa !9
  %3642 = icmp ne i32 %3641, 0
  br i1 %3642, label %3643, label %3658

3643:                                             ; preds = %3587
  %3644 = load ptr, ptr %26, align 8, !tbaa !5
  %3645 = load i32, ptr %56, align 4, !tbaa !9
  %3646 = load i32, ptr %37, align 4, !tbaa !9
  %3647 = mul nsw i32 %3645, %3646
  %3648 = add nsw i32 %3647, 1
  %3649 = sext i32 %3648 to i64
  %3650 = getelementptr inbounds float, ptr %3644, i64 %3649
  %3651 = load ptr, ptr %26, align 8, !tbaa !5
  %3652 = load i32, ptr %57, align 4, !tbaa !9
  %3653 = load i32, ptr %37, align 4, !tbaa !9
  %3654 = mul nsw i32 %3652, %3653
  %3655 = add nsw i32 %3654, 1
  %3656 = sext i32 %3655 to i64
  %3657 = getelementptr inbounds float, ptr %3651, i64 %3656
  call void @sswap_(ptr noundef %88, ptr noundef %3650, ptr noundef @c__1, ptr noundef %3657, ptr noundef @c__1)
  br label %3658

3658:                                             ; preds = %3643, %3587
  br label %3659

3659:                                             ; preds = %3658, %3570
  br label %3660

3660:                                             ; preds = %3659
  %3661 = load i32, ptr %56, align 4, !tbaa !9
  %3662 = add nsw i32 %3661, 1
  store i32 %3662, ptr %56, align 4, !tbaa !9
  br label %3566, !llvm.loop !23

3663:                                             ; preds = %3566
  store i32 1, ptr %93, align 4
  br label %3664

3664:                                             ; preds = %3663, %229
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 20, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #5
  ret void
}

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

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

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

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

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

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

declare float @snrm2_(ptr noundef, ptr noundef, ptr noundef) #2

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

declare float @sdot_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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

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

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

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

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

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

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

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


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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [7 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@c__0 = external hidden global i32, align 4
@c_b42 = external hidden global float, align 4

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

41:                                               ; preds = %17
  %42 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  %.not = icmp eq i32 %42, 0
  br i1 %.not, label %72, label %43

43:                                               ; preds = %41, %17
  %44 = load i32, ptr %1, align 4, !tbaa !5
  %45 = icmp slt i32 %44, 0
  br i1 %45, label %72, label %46

46:                                               ; preds = %43
  %47 = load i32, ptr %2, align 4, !tbaa !5
  %or.cond1388 = icmp ugt i32 %47, %44
  br i1 %or.cond1388, label %72, label %48

48:                                               ; preds = %46
  %49 = load i32, ptr %4, align 4, !tbaa !5
  %50 = icmp slt i32 %49, %44
  br i1 %50, label %72, label %51

51:                                               ; preds = %48
  br i1 %or.cond, label %52, label %.thread1408

52:                                               ; preds = %51
  %53 = load i32, ptr %7, align 4, !tbaa !5
  %54 = icmp slt i32 %53, 0
  br i1 %54, label %72, label %55

55:                                               ; preds = %52
  br i1 %39, label %56, label %59

56:                                               ; preds = %55
  %57 = load i32, ptr %9, align 4, !tbaa !5
  %58 = icmp slt i32 %57, %47
  br i1 %58, label %72, label %59

59:                                               ; preds = %56, %55
  br i1 %40, label %60, label %.thread1408

60:                                               ; preds = %59
  %61 = load i32, ptr %9, align 4, !tbaa !5
  %62 = icmp slt i32 %61, %53
  br i1 %62, label %72, label %.thread1408

.thread1408:                                      ; preds = %51, %60, %59
  %63 = load float, ptr %12, align 4, !tbaa !9
  %64 = load float, ptr %10, align 4, !tbaa !9
  %65 = fcmp ugt float %63, %64
  br i1 %65, label %66, label %72

66:                                               ; preds = %.thread1408
  %67 = load i32, ptr %13, align 4, !tbaa !5
  %68 = icmp slt i32 %67, 0
  br i1 %68, label %72, label %69

69:                                               ; preds = %66
  %70 = load i32, ptr %15, align 4, !tbaa !5
  %71 = icmp slt i32 %70, %44
  br i1 %71, label %72, label %74

72:                                               ; preds = %69, %66, %.thread1408, %56, %60, %52, %48, %46, %43, %41
  %.sink = phi i32 [ -1, %41 ], [ -2, %43 ], [ -3, %46 ], [ -5, %48 ], [ -8, %52 ], [ -10, %60 ], [ -10, %56 ], [ -13, %.thread1408 ], [ -14, %66 ], [ -16, %69 ]
  %.ph.neg = phi i32 [ 1, %41 ], [ 2, %43 ], [ 3, %46 ], [ 5, %48 ], [ 8, %52 ], [ 10, %60 ], [ 10, %56 ], [ 13, %.thread1408 ], [ 14, %66 ], [ 16, %69 ]
  store i32 %.sink, ptr %16, align 4, !tbaa !5
  store i32 %.ph.neg, ptr %18, align 4, !tbaa !5
  %73 = call i32 @xerbla_(ptr noundef nonnull @.str.3, ptr noundef nonnull %18, i32 noundef 6) #6
  br label %.loopexit

74:                                               ; preds = %69
  store i32 0, ptr %16, align 4, !tbaa !5
  br i1 %39, label %75, label %77

75:                                               ; preds = %74
  %76 = load i32, ptr %2, align 4, !tbaa !5
  store i32 %76, ptr %28, align 4, !tbaa !5
  br label %80

77:                                               ; preds = %74
  br i1 %40, label %78, label %80

78:                                               ; preds = %77
  %79 = load i32, ptr %7, align 4, !tbaa !5
  store i32 %79, ptr %28, align 4, !tbaa !5
  br label %80

80:                                               ; preds = %77, %78, %75
  %sqrtf = tail call float @sqrtf(float noundef %64) #3
  %81 = load float, ptr %11, align 4, !tbaa !9
  %sqrtf1354 = tail call float @sqrtf(float noundef %81) #3
  %82 = load float, ptr %11, align 4, !tbaa !9
  %83 = load float, ptr %10, align 4, !tbaa !9
  %84 = fdiv float %82, %83
  %85 = fdiv float 1.000000e+00, %82
  %86 = fdiv float 1.000000e+00, %sqrtf1354
  %87 = fdiv float 1.000000e+00, %sqrtf
  %88 = load float, ptr %12, align 4, !tbaa !9
  %sqrtf1355 = tail call float @sqrtf(float noundef %88) #3
  %89 = load i32, ptr %2, align 4, !tbaa !5
  %90 = add nsw i32 %89, -1
  %91 = mul nsw i32 %90, %89
  %92 = sdiv i32 %91, 2
  store float 0.000000e+00, ptr %27, align 16, !tbaa !9
  %spec.select = tail call i32 @llvm.smin.i32(i32 %89, i32 8)
  %93 = sdiv i32 %89, %spec.select
  %94 = mul nsw i32 %93, %spec.select
  %.not1356 = icmp ne i32 %94, %89
  %95 = zext i1 %.not1356 to i32
  %.0 = add i32 %93, %95
  %96 = mul nsw i32 %spec.select, %spec.select
  %97 = tail call i32 @llvm.smin.i32(i32 %89, i32 5)
  %98 = load i32, ptr %13, align 4, !tbaa !5
  store i32 %98, ptr %18, align 4, !tbaa !5
  %invariant.gep1713 = getelementptr i8, ptr %33, i64 4
  %.not13571717 = icmp slt i32 %98, 1
  br i1 %.not13571717, label %._crit_edge1722, label %.lr.ph1721

.lr.ph1721:                                       ; preds = %80
  %99 = add i32 %spec.select, -1
  %invariant.gep1537 = getelementptr i8, ptr %36, i64 4
  %100 = getelementptr inbounds i8, ptr %27, i64 8
  %101 = sext i32 %31 to i64
  %102 = sext i32 %34 to i64
  %.not13581700 = icmp slt i32 %.0, 1
  %103 = insertelement <2 x float> poison, float %84, i64 0
  %104 = shufflevector <2 x float> %103, <2 x float> poison, <2 x i32> zeroinitializer
  br label %105

105:                                              ; preds = %.lr.ph1721, %1009
  %106 = phi i32 [ %89, %.lr.ph1721 ], [ %993, %1009 ]
  %.012891719 = phi i32 [ 0, %.lr.ph1721 ], [ %.11290, %1009 ]
  %.013051718 = phi i32 [ 1, %.lr.ph1721 ], [ %1010, %1009 ]
  store i32 %.0, ptr %19, align 4, !tbaa !5
  br i1 %.not13581700, label %._crit_edge1708, label %.lr.ph1707

.lr.ph1707:                                       ; preds = %105
  %.not1387 = icmp sle i32 %.013051718, %.012891719
  br label %107

..loopexit1430_crit_edge:                         ; preds = %.lr.ph1698, %middle.block
  %.lcssa1832 = phi float [ %955, %middle.block ], [ %957, %.lr.ph1698 ]
  store float %.lcssa1832, ptr %21, align 4, !tbaa !9
  br label %.loopexit1430

.loopexit1430:                                    ; preds = %..loopexit1430_crit_edge, %.loopexit1431
  %indvars.iv.next = add i32 %indvars.iv, %spec.select
  %indvars.iv.next1767 = add i32 %indvars.iv1766, %spec.select
  br i1 %.not13641683.not, label %107, label %._crit_edge1708, !llvm.loop !11

107:                                              ; preds = %.lr.ph1707, %.loopexit1430
  %indvars.iv1766 = phi i32 [ %spec.select, %.lr.ph1707 ], [ %indvars.iv.next1767, %.loopexit1430 ]
  %indvars.iv1764.in = phi i32 [ %.0, %.lr.ph1707 ], [ %indvars.iv1764, %.loopexit1430 ]
  %indvars.iv = phi i32 [ 1, %.lr.ph1707 ], [ %indvars.iv.next, %.loopexit1430 ]
  %.012361705 = phi i32 [ 1, %.lr.ph1707 ], [ %533, %.loopexit1430 ]
  %.012391704 = phi i32 [ 0, %.lr.ph1707 ], [ %.14, %.loopexit1430 ]
  %.012401703 = phi i32 [ 0, %.lr.ph1707 ], [ %.17, %.loopexit1430 ]
  %.012561702 = phi float [ 0.000000e+00, %.lr.ph1707 ], [ %.151271, %.loopexit1430 ]
  %.012731701 = phi float [ 0.000000e+00, %.lr.ph1707 ], [ %.131286, %.loopexit1430 ]
  %108 = sext i32 %indvars.iv to i64
  %indvars.iv1764 = add i32 %indvars.iv1764.in, -1
  %109 = sext i32 %indvars.iv to i64
  %.inv1789 = icmp slt i32 %indvars.iv1764, 1
  %110 = select i1 %.inv1789, i32 1, i32 2
  %111 = add nsw i32 %.012361705, -1
  %112 = mul nsw i32 %111, %spec.select
  %113 = sub nsw i32 %.0, %.012361705
  store i32 %113, ptr %20, align 4, !tbaa !5
  %.not13631556 = icmp slt i32 %113, 0
  br i1 %.not13631556, label %._crit_edge1565, label %.lr.ph1564.preheader

.lr.ph1564.preheader:                             ; preds = %107
  %114 = add nsw i32 %112, 1
  br label %.lr.ph1564

.lr.ph1564:                                       ; preds = %.lr.ph1564.preheader, %._crit_edge
  %indvars.iv1756 = phi i32 [ %indvars.iv, %.lr.ph1564.preheader ], [ %indvars.iv.next1757, %._crit_edge ]
  %indvars.iv1754 = phi i32 [ %spec.select, %.lr.ph1564.preheader ], [ %indvars.iv.next1755, %._crit_edge ]
  %.012371562 = phi i32 [ %114, %.lr.ph1564.preheader ], [ %116, %._crit_edge ]
  %.11561 = phi i32 [ %.012391704, %.lr.ph1564.preheader ], [ %.2.lcssa, %._crit_edge ]
  %.112411560 = phi i32 [ %.012401703, %.lr.ph1564.preheader ], [ %.21242.lcssa, %._crit_edge ]
  %.012551559 = phi i32 [ 0, %.lr.ph1564.preheader ], [ %532, %._crit_edge ]
  %.112571558 = phi float [ %.012561702, %.lr.ph1564.preheader ], [ %.21258.lcssa, %._crit_edge ]
  %.112741557 = phi float [ %.012731701, %.lr.ph1564.preheader ], [ %.21275.lcssa, %._crit_edge ]
  %115 = mul nuw nsw i32 %.012551559, %spec.select
  %116 = add nsw i32 %.012371562, %115
  %117 = add i32 %99, %116
  store i32 %117, ptr %20, align 4, !tbaa !5
  %118 = load i32, ptr %2, align 4, !tbaa !5
  %119 = add nsw i32 %118, -1
  %120 = call i32 @llvm.smin.i32(i32 %117, i32 %119)
  %.not13771546 = icmp sgt i32 %116, %120
  br i1 %.not13771546, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph1564
  %121 = sext i32 %indvars.iv1756 to i64
  %122 = icmp eq i32 %.012551559, 0
  %123 = zext i1 %122 to i32
  %124 = sext i32 %120 to i64
  br label %125

125:                                              ; preds = %.lr.ph, %531
  %indvars.iv1758 = phi i64 [ %121, %.lr.ph ], [ %indvars.iv.next1759, %531 ]
  %.21551 = phi i32 [ %.11561, %.lr.ph ], [ %.7, %531 ]
  %.212421550 = phi i32 [ %.112411560, %.lr.ph ], [ %.91249, %531 ]
  %.212581549 = phi float [ %.112571558, %.lr.ph ], [ %.71263, %531 ]
  %.212751548 = phi float [ %.112741557, %.lr.ph ], [ %.61279, %531 ]
  %126 = load i32, ptr %2, align 4, !tbaa !5
  %127 = trunc nsw i64 %indvars.iv1758 to i32
  %reass.sub = sub i32 %126, %127
  %128 = add i32 %reass.sub, 1
  store i32 %128, ptr %20, align 4, !tbaa !5
  %129 = getelementptr inbounds float, ptr %29, i64 %indvars.iv1758
  %130 = call i32 @isamax_(ptr noundef nonnull %20, ptr noundef nonnull %129, ptr noundef nonnull @c__1) #6
  %131 = add i32 %127, -1
  %132 = add i32 %131, %130
  %.not1378 = icmp eq i32 %132, %127
  br i1 %.not1378, label %150, label %133

133:                                              ; preds = %125
  %134 = mul nsw i64 %indvars.iv1758, %101
  %gep1534 = getelementptr float, ptr %invariant.gep1713, i64 %134
  %135 = mul nsw i32 %132, %31
  %136 = sext i32 %135 to i64
  %gep1536 = getelementptr float, ptr %invariant.gep1713, i64 %136
  call void @sswap_(ptr noundef nonnull %1, ptr noundef %gep1534, ptr noundef nonnull @c__1, ptr noundef %gep1536, ptr noundef nonnull @c__1) #6
  br i1 %or.cond, label %137, label %141

137:                                              ; preds = %133
  %138 = mul nsw i64 %indvars.iv1758, %102
  %gep1538 = getelementptr float, ptr %invariant.gep1537, i64 %138
  %139 = mul nsw i32 %132, %34
  %140 = sext i32 %139 to i64
  %gep1540 = getelementptr float, ptr %invariant.gep1537, i64 %140
  call void @sswap_(ptr noundef nonnull %28, ptr noundef %gep1538, ptr noundef nonnull @c__1, ptr noundef %gep1540, ptr noundef nonnull @c__1) #6
  br label %141

141:                                              ; preds = %137, %133
  %142 = load float, ptr %129, align 4, !tbaa !9
  %143 = sext i32 %132 to i64
  %144 = getelementptr inbounds float, ptr %29, i64 %143
  %145 = load float, ptr %144, align 4, !tbaa !9
  store float %145, ptr %129, align 4, !tbaa !9
  store float %142, ptr %144, align 4, !tbaa !9
  %146 = getelementptr inbounds float, ptr %30, i64 %indvars.iv1758
  %147 = load float, ptr %146, align 4, !tbaa !9
  store float %147, ptr %25, align 4, !tbaa !9
  %148 = getelementptr inbounds float, ptr %30, i64 %143
  %149 = load float, ptr %148, align 4, !tbaa !9
  store float %149, ptr %146, align 4, !tbaa !9
  store float %147, ptr %148, align 4, !tbaa !9
  br label %150

150:                                              ; preds = %141, %125
  %151 = load float, ptr %129, align 4, !tbaa !9
  br i1 %122, label %152, label %thread-pre-split

152:                                              ; preds = %150
  %153 = fcmp olt float %151, %86
  %154 = fcmp ogt float %151, %sqrtf1354
  %or.cond1389 = and i1 %153, %154
  br i1 %or.cond1389, label %155, label %161

155:                                              ; preds = %152
  %156 = mul nsw i64 %indvars.iv1758, %101
  %gep1544 = getelementptr float, ptr %invariant.gep1713, i64 %156
  %157 = call float @snrm2_(ptr noundef nonnull %1, ptr noundef %gep1544, ptr noundef nonnull @c__1) #6
  %158 = getelementptr inbounds float, ptr %30, i64 %indvars.iv1758
  %159 = load float, ptr %158, align 4, !tbaa !9
  %160 = fmul float %157, %159
  br label %174

161:                                              ; preds = %152
  store float 0.000000e+00, ptr %25, align 4, !tbaa !9
  store float 1.000000e+00, ptr %22, align 4, !tbaa !9
  %162 = mul nsw i64 %indvars.iv1758, %101
  %gep1542 = getelementptr float, ptr %invariant.gep1713, i64 %162
  call void @slassq_(ptr noundef nonnull %1, ptr noundef %gep1542, ptr noundef nonnull @c__1, ptr noundef nonnull %25, ptr noundef nonnull %22) #6
  %163 = load float, ptr %25, align 4, !tbaa !9
  %164 = fpext float %163 to double
  %165 = load float, ptr %22, align 4, !tbaa !9
  %166 = fpext float %165 to double
  %167 = call double @sqrt(double noundef %166) #6
  %168 = fmul double %167, %164
  %169 = getelementptr inbounds float, ptr %30, i64 %indvars.iv1758
  %170 = load float, ptr %169, align 4, !tbaa !9
  %171 = fpext float %170 to double
  %172 = fmul double %168, %171
  %173 = fptrunc double %172 to float
  br label %174

174:                                              ; preds = %161, %155
  %storemerge1380 = phi float [ %173, %161 ], [ %160, %155 ]
  store float %storemerge1380, ptr %129, align 4, !tbaa !9
  br label %thread-pre-split

thread-pre-split:                                 ; preds = %150, %174
  %storemerge1379 = phi float [ %storemerge1380, %174 ], [ %151, %150 ]
  store float %storemerge1379, ptr %22, align 4, !tbaa !9
  %175 = fcmp ogt float %storemerge1379, 0.000000e+00
  br i1 %175, label %176, label %525

176:                                              ; preds = %thread-pre-split
  %177 = load i32, ptr %2, align 4, !tbaa !5
  %. = call i32 @llvm.smin.i32(i32 %117, i32 %177)
  store i32 %., ptr %20, align 4, !tbaa !5
  %178 = mul nsw i64 %indvars.iv1758, %101
  %gep = getelementptr float, ptr %invariant.gep1713, i64 %178
  %179 = getelementptr inbounds float, ptr %30, i64 %indvars.iv1758
  %180 = mul nsw i64 %indvars.iv1758, %102
  %gep1482 = getelementptr float, ptr %invariant.gep1537, i64 %180
  br label %181

181:                                              ; preds = %519, %176
  %indvars.iv1760 = phi i64 [ %indvars.iv.next1761, %519 ], [ %indvars.iv1758, %176 ]
  %.01296 = phi i32 [ %.21298, %519 ], [ 0, %176 ]
  %.31276 = phi float [ %.41277, %519 ], [ %.212751548, %176 ]
  %.31259 = phi float [ %.51261, %519 ], [ %.212581549, %176 ]
  %.31243 = phi i32 [ %.71247, %519 ], [ %.212421550, %176 ]
  %.3 = phi i32 [ %.5, %519 ], [ %.21551, %176 ]
  %indvars.iv.next1761 = add nsw i64 %indvars.iv1760, 1
  %182 = load i32, ptr %20, align 4, !tbaa !5
  %183 = sext i32 %182 to i64
  %.not1383.not = icmp slt i64 %indvars.iv1760, %183
  br i1 %.not1383.not, label %184, label %.loopexit1429.loopexit

184:                                              ; preds = %181
  %185 = getelementptr float, ptr %6, i64 %indvars.iv1760
  %186 = load float, ptr %185, align 4, !tbaa !9
  store float %186, ptr %23, align 4, !tbaa !9
  %187 = fcmp ogt float %186, 0.000000e+00
  br i1 %187, label %188, label %517

188:                                              ; preds = %184
  %189 = load float, ptr %22, align 4, !tbaa !9
  %190 = fcmp ult float %186, 1.000000e+00
  br i1 %190, label %215, label %191

191:                                              ; preds = %188
  %192 = fmul float %84, %189
  %193 = fcmp ole float %192, %186
  %194 = fdiv float %85, %186
  %195 = fcmp olt float %189, %194
  %196 = getelementptr float, ptr %5, i64 %indvars.iv1760
  br i1 %195, label %197, label %208

197:                                              ; preds = %191
  %198 = mul nsw i64 %indvars.iv.next1761, %101
  %gep1464 = getelementptr float, ptr %invariant.gep1713, i64 %198
  %199 = call float @sdot_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep1464, ptr noundef nonnull @c__1) #6
  %200 = load float, ptr %179, align 4, !tbaa !9
  %201 = fmul float %199, %200
  %202 = load float, ptr %196, align 4, !tbaa !9
  %203 = fmul float %201, %202
  %204 = load float, ptr %23, align 4, !tbaa !9
  %205 = fdiv float %203, %204
  %206 = load float, ptr %22, align 4, !tbaa !9
  %207 = fdiv float %205, %206
  br label %239

208:                                              ; preds = %191
  call void @scopy_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #6
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %22, ptr noundef nonnull %179, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %24) #6
  %209 = mul nsw i64 %indvars.iv.next1761, %101
  %gep1460 = getelementptr float, ptr %invariant.gep1713, i64 %209
  %210 = call float @sdot_(ptr noundef nonnull %1, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef %gep1460, ptr noundef nonnull @c__1) #6
  %211 = load float, ptr %196, align 4, !tbaa !9
  %212 = fmul float %210, %211
  %213 = load float, ptr %23, align 4, !tbaa !9
  %214 = fdiv float %212, %213
  br label %239

215:                                              ; preds = %188
  %216 = fdiv float %186, %84
  %217 = fcmp ole float %189, %216
  %218 = fdiv float %84, %186
  %219 = fcmp ogt float %189, %218
  %220 = mul nsw i64 %indvars.iv.next1761, %101
  %gep1472 = getelementptr float, ptr %invariant.gep1713, i64 %220
  br i1 %219, label %221, label %232

221:                                              ; preds = %215
  %222 = call float @sdot_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep1472, ptr noundef nonnull @c__1) #6
  %223 = load float, ptr %179, align 4, !tbaa !9
  %224 = fmul float %222, %223
  %225 = getelementptr float, ptr %5, i64 %indvars.iv1760
  %226 = load float, ptr %225, align 4, !tbaa !9
  %227 = fmul float %224, %226
  %228 = load float, ptr %23, align 4, !tbaa !9
  %229 = fdiv float %227, %228
  %230 = load float, ptr %22, align 4, !tbaa !9
  %231 = fdiv float %229, %230
  br label %239

232:                                              ; preds = %215
  call void @scopy_(ptr noundef nonnull %1, ptr noundef %gep1472, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #6
  %233 = getelementptr float, ptr %5, i64 %indvars.iv1760
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull %233, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %24) #6
  %234 = call float @sdot_(ptr noundef nonnull %1, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %235 = load float, ptr %179, align 4, !tbaa !9
  %236 = fmul float %234, %235
  %237 = load float, ptr %22, align 4, !tbaa !9
  %238 = fdiv float %236, %237
  br label %239

239:                                              ; preds = %221, %232, %197, %208
  %.01301.in = phi i1 [ %193, %197 ], [ %193, %208 ], [ %217, %221 ], [ %217, %232 ]
  %.01287 = phi float [ %207, %197 ], [ %214, %208 ], [ %231, %221 ], [ %238, %232 ]
  store float %.31276, ptr %21, align 4, !tbaa !9
  %240 = fcmp oge float %.01287, 0.000000e+00
  %241 = fneg float %.01287
  %242 = select i1 %240, float %.01287, float %241
  %243 = fcmp oge float %.31276, %242
  %244 = select i1 %243, float %.31276, float %242
  %245 = load float, ptr %12, align 4, !tbaa !9
  %246 = fcmp ogt float %242, %245
  br i1 %246, label %247, label %515

247:                                              ; preds = %239
  %.11297 = select i1 %122, i32 0, i32 %.01296
  %.41244 = select i1 %122, i32 0, i32 %.31243
  %.4 = add nsw i32 %.3, %123
  br i1 %.01301.in, label %248, label %448

248:                                              ; preds = %247
  %249 = load float, ptr %23, align 4, !tbaa !9
  %250 = load float, ptr %22, align 4, !tbaa !9
  %251 = insertelement <2 x float> poison, float %249, i64 0
  %252 = insertelement <2 x float> %251, float %250, i64 1
  %253 = insertelement <2 x float> poison, float %250, i64 0
  %254 = insertelement <2 x float> %253, float %249, i64 1
  %255 = fdiv <2 x float> %252, %254
  %shift = shufflevector <2 x float> %255, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %256 = fsub <2 x float> %255, %shift
  %257 = extractelement <2 x float> %256, i64 0
  store float %257, ptr %21, align 4, !tbaa !9
  %258 = fcmp oge float %257, 0.000000e+00
  %259 = fneg float %257
  %260 = select i1 %258, float %257, float %259
  %261 = fmul float %260, -5.000000e-01
  %262 = fdiv float %261, %.01287
  %263 = fcmp oge float %262, 0.000000e+00
  %264 = fneg float %262
  %265 = select i1 %263, float %262, float %264
  %266 = fcmp ogt float %265, %87
  br i1 %266, label %267, label %314

267:                                              ; preds = %248
  %268 = fdiv float 5.000000e-01, %262
  store float %268, ptr %26, align 4, !tbaa !9
  %269 = load float, ptr %179, align 4, !tbaa !9
  %270 = getelementptr float, ptr %5, i64 %indvars.iv1760
  %271 = load float, ptr %270, align 4, !tbaa !9
  %272 = fneg float %268
  %273 = insertelement <2 x float> poison, float %268, i64 0
  %274 = insertelement <2 x float> %273, float %271, i64 1
  %275 = insertelement <2 x float> poison, float %269, i64 0
  %276 = insertelement <2 x float> %275, float %272, i64 1
  %277 = fmul <2 x float> %274, %276
  %278 = insertelement <2 x float> poison, float %271, i64 0
  %279 = insertelement <2 x float> %278, float %269, i64 1
  %280 = fdiv <2 x float> %277, %279
  store <2 x float> %280, ptr %100, align 8, !tbaa !9
  %281 = mul nsw i64 %indvars.iv.next1761, %101
  %gep1520 = getelementptr float, ptr %invariant.gep1713, i64 %281
  call void @srotm_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep1520, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #6
  br i1 %or.cond, label %282, label %284

282:                                              ; preds = %267
  %283 = mul nsw i64 %indvars.iv.next1761, %102
  %gep1524 = getelementptr float, ptr %invariant.gep1537, i64 %283
  call void @srotm_(ptr noundef nonnull %28, ptr noundef %gep1482, ptr noundef nonnull @c__1, ptr noundef %gep1524, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #6
  br label %284

284:                                              ; preds = %282, %267
  %285 = load float, ptr %26, align 4
  %286 = load float, ptr %23, align 4, !tbaa !9
  %287 = fpext float %286 to double
  store float 0.000000e+00, ptr %21, align 4, !tbaa !9
  %288 = fneg float %285
  %289 = insertelement <2 x float> poison, float %288, i64 0
  %290 = insertelement <2 x float> %289, float %285, i64 1
  %291 = fmul <2 x float> %255, %290
  %292 = insertelement <2 x float> poison, float %.01287, i64 0
  %293 = shufflevector <2 x float> %292, <2 x float> poison, <2 x i32> zeroinitializer
  %294 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %291, <2 x float> %293, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %295 = fcmp ole <2 x float> %294, zeroinitializer
  %296 = extractelement <2 x i1> %295, i64 1
  %297 = extractelement <2 x float> %294, i64 1
  %298 = fpext float %297 to double
  %299 = select i1 %296, double 0.000000e+00, double %298
  %sqrt1413 = call double @llvm.sqrt.f64(double %299)
  %300 = fmul double %sqrt1413, %287
  %301 = fptrunc double %300 to float
  store float %301, ptr %185, align 4, !tbaa !9
  %302 = extractelement <2 x i1> %295, i64 0
  %303 = extractelement <2 x float> %294, i64 0
  %304 = fpext float %303 to double
  %305 = select i1 %302, double 0.000000e+00, double %304
  %sqrt = call double @llvm.sqrt.f64(double %305)
  %306 = load float, ptr %22, align 4, !tbaa !9
  %307 = fpext float %306 to double
  %308 = fmul double %sqrt, %307
  %309 = fptrunc double %308 to float
  store float %309, ptr %22, align 4, !tbaa !9
  %310 = fcmp oge float %285, 0.000000e+00
  %311 = select i1 %310, float %285, float %288
  %312 = fcmp oge float %.31259, %311
  %313 = select i1 %312, float %.31259, float %311
  br label %464

314:                                              ; preds = %248
  %315 = load float, ptr @c_b42, align 4
  %316 = fcmp oge float %315, 0.000000e+00
  %317 = fneg float %315
  br i1 %240, label %318, label %320

318:                                              ; preds = %314
  %319 = select i1 %316, float %315, float %317
  br label %322

320:                                              ; preds = %314
  %321 = select i1 %316, float %317, float %315
  br label %322

322:                                              ; preds = %320, %318
  %323 = phi float [ %319, %318 ], [ %321, %320 ]
  %324 = fneg float %323
  %325 = fpext float %262 to double
  %326 = fpext float %324 to double
  %327 = call float @llvm.fmuladd.f32(float %262, float %262, float 1.000000e+00)
  %328 = fpext float %327 to double
  %sqrt1417 = call double @llvm.sqrt.f64(double %328)
  %329 = call double @llvm.fmuladd.f64(double %326, double %sqrt1417, double %325)
  %330 = fdiv double 1.000000e+00, %329
  %331 = fptrunc double %330 to float
  store float %331, ptr %26, align 4, !tbaa !9
  %332 = call float @llvm.fmuladd.f32(float %331, float %331, float 1.000000e+00)
  %333 = fdiv float 1.000000e+00, %332
  %sqrt1416 = call float @llvm.sqrt.f32(float %333)
  %334 = fmul float %sqrt1416, %331
  %335 = fcmp oge float %334, 0.000000e+00
  %336 = fneg float %334
  %337 = select i1 %335, float %334, float %336
  %338 = fcmp oge float %.31259, %337
  %339 = select i1 %338, float %.31259, float %337
  %340 = fpext float %249 to double
  store float 0.000000e+00, ptr %21, align 4, !tbaa !9
  %341 = fneg float %331
  %342 = insertelement <2 x float> poison, float %341, i64 0
  %343 = insertelement <2 x float> %342, float %331, i64 1
  %344 = fmul <2 x float> %255, %343
  %345 = insertelement <2 x float> poison, float %.01287, i64 0
  %346 = shufflevector <2 x float> %345, <2 x float> poison, <2 x i32> zeroinitializer
  %347 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %344, <2 x float> %346, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %348 = fcmp ole <2 x float> %347, zeroinitializer
  %349 = extractelement <2 x i1> %348, i64 1
  %350 = extractelement <2 x float> %347, i64 1
  %351 = fpext float %350 to double
  %352 = select i1 %349, double 0.000000e+00, double %351
  %sqrt1415 = call double @llvm.sqrt.f64(double %352)
  %353 = fmul double %sqrt1415, %340
  %354 = fptrunc double %353 to float
  store float %354, ptr %185, align 4, !tbaa !9
  %355 = extractelement <2 x i1> %348, i64 0
  %356 = extractelement <2 x float> %347, i64 0
  %357 = fpext float %356 to double
  %358 = select i1 %355, double 0.000000e+00, double %357
  %sqrt1414 = call double @llvm.sqrt.f64(double %358)
  %359 = fpext float %250 to double
  %360 = fmul double %sqrt1414, %359
  %361 = fptrunc double %360 to float
  store float %361, ptr %22, align 4, !tbaa !9
  %362 = load float, ptr %179, align 4, !tbaa !9
  %363 = getelementptr float, ptr %5, i64 %indvars.iv1760
  %364 = load float, ptr %363, align 4, !tbaa !9
  %365 = insertelement <2 x float> poison, float %364, i64 0
  %366 = insertelement <2 x float> %365, float %362, i64 1
  %367 = insertelement <2 x float> poison, float %362, i64 0
  %368 = insertelement <2 x float> %367, float %364, i64 1
  %369 = fdiv <2 x float> %366, %368
  %370 = fcmp ult float %362, 1.000000e+00
  %371 = fcmp ult float %364, 1.000000e+00
  br i1 %370, label %398, label %372

372:                                              ; preds = %322
  br i1 %371, label %382, label %373

373:                                              ; preds = %372
  %374 = fmul <2 x float> %369, %343
  %375 = shufflevector <2 x float> %374, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  store <2 x float> %375, ptr %100, align 8, !tbaa !9
  %376 = fmul float %sqrt1416, %362
  store float %376, ptr %179, align 4, !tbaa !9
  %377 = load float, ptr %363, align 4, !tbaa !9
  %378 = fmul float %sqrt1416, %377
  store float %378, ptr %363, align 4, !tbaa !9
  %379 = mul nsw i64 %indvars.iv.next1761, %101
  %gep1480 = getelementptr float, ptr %invariant.gep1713, i64 %379
  call void @srotm_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep1480, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #6
  br i1 %or.cond, label %380, label %464

380:                                              ; preds = %373
  %381 = mul nsw i64 %indvars.iv.next1761, %102
  %gep1484 = getelementptr float, ptr %invariant.gep1537, i64 %381
  call void @srotm_(ptr noundef nonnull %28, ptr noundef %gep1482, ptr noundef nonnull @c__1, ptr noundef %gep1484, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #6
  br label %464

382:                                              ; preds = %372
  %383 = extractelement <2 x float> %369, i64 0
  %384 = fmul float %383, %341
  store float %384, ptr %21, align 4, !tbaa !9
  %385 = mul nsw i64 %indvars.iv.next1761, %101
  %gep1486 = getelementptr float, ptr %invariant.gep1713, i64 %385
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep1486, ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %386 = fmul float %sqrt1416, %334
  %387 = extractelement <2 x float> %369, i64 1
  %388 = fmul float %386, %387
  store float %388, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep1486, ptr noundef nonnull @c__1) #6
  %389 = load float, ptr %179, align 4, !tbaa !9
  %390 = fmul float %sqrt1416, %389
  store float %390, ptr %179, align 4, !tbaa !9
  %391 = load float, ptr %363, align 4, !tbaa !9
  %392 = fdiv float %391, %sqrt1416
  store float %392, ptr %363, align 4, !tbaa !9
  br i1 %or.cond, label %393, label %464

393:                                              ; preds = %382
  %394 = load float, ptr %26, align 4, !tbaa !9
  %395 = fneg float %394
  %396 = fmul float %383, %395
  store float %396, ptr %21, align 4, !tbaa !9
  %397 = mul nsw i64 %indvars.iv.next1761, %102
  %gep1490 = getelementptr float, ptr %invariant.gep1537, i64 %397
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1490, ptr noundef nonnull @c__1, ptr noundef %gep1482, ptr noundef nonnull @c__1) #6
  store float %388, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1482, ptr noundef nonnull @c__1, ptr noundef %gep1490, ptr noundef nonnull @c__1) #6
  br label %464

398:                                              ; preds = %322
  br i1 %371, label %415, label %399

399:                                              ; preds = %398
  %400 = extractelement <2 x float> %369, i64 1
  %401 = fmul float %400, %331
  store float %401, ptr %21, align 4, !tbaa !9
  %402 = mul nsw i64 %indvars.iv.next1761, %101
  %gep1496 = getelementptr float, ptr %invariant.gep1713, i64 %402
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep1496, ptr noundef nonnull @c__1) #6
  %403 = fneg float %sqrt1416
  %404 = fmul float %334, %403
  %405 = extractelement <2 x float> %369, i64 0
  %406 = fmul float %404, %405
  store float %406, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep1496, ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %407 = load float, ptr %179, align 4, !tbaa !9
  %408 = fdiv float %407, %sqrt1416
  store float %408, ptr %179, align 4, !tbaa !9
  %409 = load float, ptr %363, align 4, !tbaa !9
  %410 = fmul float %sqrt1416, %409
  store float %410, ptr %363, align 4, !tbaa !9
  br i1 %or.cond, label %411, label %464

411:                                              ; preds = %399
  %412 = load float, ptr %26, align 4, !tbaa !9
  %413 = fmul float %400, %412
  store float %413, ptr %21, align 4, !tbaa !9
  %414 = mul nsw i64 %indvars.iv.next1761, %102
  %gep1500 = getelementptr float, ptr %invariant.gep1537, i64 %414
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1482, ptr noundef nonnull @c__1, ptr noundef %gep1500, ptr noundef nonnull @c__1) #6
  store float %406, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1500, ptr noundef nonnull @c__1, ptr noundef %gep1482, ptr noundef nonnull @c__1) #6
  br label %464

415:                                              ; preds = %398
  %416 = fcmp ult float %362, %364
  %417 = mul nsw i64 %indvars.iv.next1761, %101
  %gep1512 = getelementptr float, ptr %invariant.gep1713, i64 %417
  br i1 %416, label %433, label %418

418:                                              ; preds = %415
  %419 = extractelement <2 x float> %369, i64 0
  %420 = fmul float %419, %341
  store float %420, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep1512, ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %421 = fmul float %sqrt1416, %334
  %422 = extractelement <2 x float> %369, i64 1
  %423 = fmul float %421, %422
  store float %423, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep1512, ptr noundef nonnull @c__1) #6
  %424 = load float, ptr %179, align 4, !tbaa !9
  %425 = fmul float %sqrt1416, %424
  store float %425, ptr %179, align 4, !tbaa !9
  %426 = load float, ptr %363, align 4, !tbaa !9
  %427 = fdiv float %426, %sqrt1416
  store float %427, ptr %363, align 4, !tbaa !9
  br i1 %or.cond, label %428, label %464

428:                                              ; preds = %418
  %429 = load float, ptr %26, align 4, !tbaa !9
  %430 = fneg float %429
  %431 = fmul float %419, %430
  store float %431, ptr %21, align 4, !tbaa !9
  %432 = mul nsw i64 %indvars.iv.next1761, %102
  %gep1506 = getelementptr float, ptr %invariant.gep1537, i64 %432
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1506, ptr noundef nonnull @c__1, ptr noundef %gep1482, ptr noundef nonnull @c__1) #6
  store float %423, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1482, ptr noundef nonnull @c__1, ptr noundef %gep1506, ptr noundef nonnull @c__1) #6
  br label %464

433:                                              ; preds = %415
  %434 = extractelement <2 x float> %369, i64 1
  %435 = fmul float %434, %331
  store float %435, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %gep1512, ptr noundef nonnull @c__1) #6
  %436 = fneg float %sqrt1416
  %437 = fmul float %334, %436
  %438 = extractelement <2 x float> %369, i64 0
  %439 = fmul float %437, %438
  store float %439, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep1512, ptr noundef nonnull @c__1, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %440 = load float, ptr %179, align 4, !tbaa !9
  %441 = fdiv float %440, %sqrt1416
  store float %441, ptr %179, align 4, !tbaa !9
  %442 = load float, ptr %363, align 4, !tbaa !9
  %443 = fmul float %sqrt1416, %442
  store float %443, ptr %363, align 4, !tbaa !9
  br i1 %or.cond, label %444, label %464

444:                                              ; preds = %433
  %445 = load float, ptr %26, align 4, !tbaa !9
  %446 = fmul float %434, %445
  store float %446, ptr %21, align 4, !tbaa !9
  %447 = mul nsw i64 %indvars.iv.next1761, %102
  %gep1516 = getelementptr float, ptr %invariant.gep1537, i64 %447
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1482, ptr noundef nonnull @c__1, ptr noundef %gep1516, ptr noundef nonnull @c__1) #6
  store float %439, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1516, ptr noundef nonnull @c__1, ptr noundef %gep1482, ptr noundef nonnull @c__1) #6
  br label %464

448:                                              ; preds = %247
  call void @scopy_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #6
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %22, ptr noundef nonnull @c_b42, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %24) #6
  %449 = mul nsw i64 %indvars.iv.next1761, %101
  %gep1476 = getelementptr float, ptr %invariant.gep1713, i64 %449
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep1476, ptr noundef nonnull %4, ptr noundef nonnull %24) #6
  %450 = load float, ptr %179, align 4, !tbaa !9
  %451 = fmul float %450, %241
  %452 = getelementptr float, ptr %5, i64 %indvars.iv1760
  %453 = load float, ptr %452, align 4, !tbaa !9
  %454 = fdiv float %451, %453
  store float %454, ptr %25, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %25, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef %gep1476, ptr noundef nonnull @c__1) #6
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b42, ptr noundef nonnull %23, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep1476, ptr noundef nonnull %4, ptr noundef nonnull %24) #6
  store float 0.000000e+00, ptr %21, align 4, !tbaa !9
  %455 = call float @llvm.fmuladd.f32(float %241, float %.01287, float 1.000000e+00)
  %456 = load float, ptr %23, align 4, !tbaa !9
  %457 = fpext float %456 to double
  %458 = fcmp ole float %455, 0.000000e+00
  %459 = select i1 %458, float 0.000000e+00, float %455
  %460 = fpext float %459 to double
  %sqrt1418 = call double @llvm.sqrt.f64(double %460)
  %461 = fmul double %sqrt1418, %457
  %462 = fptrunc double %461 to float
  store float %462, ptr %185, align 4, !tbaa !9
  %463 = load float, ptr %11, align 4, !tbaa !9
  %.inv = fcmp oge float %.31259, %463
  %..31259 = select i1 %.inv, float %.31259, float %463
  br label %464

464:                                              ; preds = %284, %411, %399, %433, %444, %418, %428, %380, %373, %393, %382, %448
  %.41260 = phi float [ %313, %284 ], [ %339, %380 ], [ %339, %373 ], [ %339, %393 ], [ %339, %382 ], [ %339, %411 ], [ %339, %399 ], [ %339, %428 ], [ %339, %418 ], [ %339, %444 ], [ %339, %433 ], [ %..31259, %448 ]
  %465 = load float, ptr %185, align 4, !tbaa !9
  %466 = load float, ptr %23, align 4, !tbaa !9
  %467 = fdiv float %465, %466
  store float %467, ptr %21, align 4, !tbaa !9
  %468 = fmul float %467, %467
  %469 = fcmp ugt float %468, %sqrtf
  br i1 %469, label %492, label %470

470:                                              ; preds = %464
  %471 = fcmp olt float %466, %86
  %472 = fcmp ogt float %466, %sqrtf1354
  %or.cond1390 = and i1 %471, %472
  br i1 %or.cond1390, label %473, label %479

473:                                              ; preds = %470
  %474 = mul nsw i64 %indvars.iv.next1761, %101
  %gep1528 = getelementptr float, ptr %invariant.gep1713, i64 %474
  %475 = call float @snrm2_(ptr noundef nonnull %1, ptr noundef %gep1528, ptr noundef nonnull @c__1) #6
  %476 = getelementptr float, ptr %5, i64 %indvars.iv1760
  %477 = load float, ptr %476, align 4, !tbaa !9
  %478 = fmul float %475, %477
  br label %.sink.split

479:                                              ; preds = %470
  store float 0.000000e+00, ptr %26, align 4, !tbaa !9
  store float 1.000000e+00, ptr %23, align 4, !tbaa !9
  %480 = mul nsw i64 %indvars.iv.next1761, %101
  %gep1526 = getelementptr float, ptr %invariant.gep1713, i64 %480
  call void @slassq_(ptr noundef nonnull %1, ptr noundef %gep1526, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef nonnull %23) #6
  %481 = load float, ptr %26, align 4, !tbaa !9
  %482 = fpext float %481 to double
  %483 = load float, ptr %23, align 4, !tbaa !9
  %484 = fpext float %483 to double
  %485 = call double @sqrt(double noundef %484) #6
  %486 = fmul double %485, %482
  %487 = getelementptr float, ptr %5, i64 %indvars.iv1760
  %488 = load float, ptr %487, align 4, !tbaa !9
  %489 = fpext float %488 to double
  %490 = fmul double %486, %489
  %491 = fptrunc double %490 to float
  br label %.sink.split

.sink.split:                                      ; preds = %479, %473
  %.sink1808 = phi float [ %478, %473 ], [ %491, %479 ]
  store float %.sink1808, ptr %185, align 4, !tbaa !9
  br label %492

492:                                              ; preds = %.sink.split, %464
  %493 = load float, ptr %22, align 4, !tbaa !9
  %494 = fdiv float %493, %189
  %495 = fcmp ugt float %494, %sqrtf
  br i1 %495, label %519, label %496

496:                                              ; preds = %492
  %497 = fcmp olt float %493, %86
  %498 = fcmp ogt float %493, %sqrtf1354
  %or.cond1391 = and i1 %497, %498
  br i1 %or.cond1391, label %499, label %503

499:                                              ; preds = %496
  %500 = call float @snrm2_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1) #6
  %501 = load float, ptr %179, align 4, !tbaa !9
  %502 = fmul float %500, %501
  br label %514

503:                                              ; preds = %496
  store float 0.000000e+00, ptr %26, align 4, !tbaa !9
  store float 1.000000e+00, ptr %22, align 4, !tbaa !9
  call void @slassq_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef nonnull %22) #6
  %504 = load float, ptr %26, align 4, !tbaa !9
  %505 = fpext float %504 to double
  %506 = load float, ptr %22, align 4, !tbaa !9
  %507 = fpext float %506 to double
  %508 = call double @sqrt(double noundef %507) #6
  %509 = fmul double %508, %505
  %510 = load float, ptr %179, align 4, !tbaa !9
  %511 = fpext float %510 to double
  %512 = fmul double %509, %511
  %513 = fptrunc double %512 to float
  br label %514

514:                                              ; preds = %503, %499
  %storemerge1386 = phi float [ %513, %503 ], [ %502, %499 ]
  store float %storemerge1386, ptr %22, align 4, !tbaa !9
  store float %storemerge1386, ptr %129, align 4, !tbaa !9
  br label %519

515:                                              ; preds = %239
  %spec.select1392 = add nsw i32 %.31243, %123
  %516 = add nsw i32 %.01296, 1
  br label %519

517:                                              ; preds = %184
  %spec.select1393 = add nsw i32 %.31243, %123
  %518 = add nsw i32 %.01296, 1
  br label %519

519:                                              ; preds = %515, %514, %492, %517
  %.21298 = phi i32 [ %.11297, %514 ], [ %.11297, %492 ], [ %516, %515 ], [ %518, %517 ]
  %.41277 = phi float [ %244, %514 ], [ %244, %492 ], [ %244, %515 ], [ %.31276, %517 ]
  %.51261 = phi float [ %.41260, %514 ], [ %.41260, %492 ], [ %.31259, %515 ], [ %.31259, %517 ]
  %.71247 = phi i32 [ %.41244, %514 ], [ %.41244, %492 ], [ %spec.select1392, %515 ], [ %spec.select1393, %517 ]
  %.5 = phi i32 [ %.4, %514 ], [ %.4, %492 ], [ %.3, %515 ], [ %.3, %517 ]
  %520 = icmp sgt i32 %.21298, %97
  %or.cond1394 = select i1 %.not1387, i1 %520, i1 false
  br i1 %or.cond1394, label %521, label %181, !llvm.loop !13

521:                                              ; preds = %519
  %.pre1785 = load float, ptr %22, align 4, !tbaa !9
  br i1 %122, label %522, label %.loopexit1429

522:                                              ; preds = %521
  %523 = fneg float %.pre1785
  store float %523, ptr %22, align 4, !tbaa !9
  br label %.loopexit1429

.loopexit1429.loopexit:                           ; preds = %181
  %.pre = load float, ptr %22, align 4, !tbaa !9
  br label %.loopexit1429

.loopexit1429:                                    ; preds = %.loopexit1429.loopexit, %521, %522
  %524 = phi float [ %523, %522 ], [ %.pre1785, %521 ], [ %.pre, %.loopexit1429.loopexit ]
  %.51278 = phi float [ %.41277, %522 ], [ %.41277, %521 ], [ %.31276, %.loopexit1429.loopexit ]
  %.61262 = phi float [ %.51261, %522 ], [ %.51261, %521 ], [ %.31259, %.loopexit1429.loopexit ]
  %.81248 = phi i32 [ 0, %522 ], [ 0, %521 ], [ %.31243, %.loopexit1429.loopexit ]
  %.6 = phi i32 [ %.5, %522 ], [ %.5, %521 ], [ %.3, %.loopexit1429.loopexit ]
  store float %524, ptr %129, align 4, !tbaa !9
  br label %531

525:                                              ; preds = %thread-pre-split
  %526 = fcmp oeq float %storemerge1379, 0.000000e+00
  %or.cond5 = and i1 %122, %526
  br i1 %or.cond5, label %527, label %531

527:                                              ; preds = %525
  store i32 %117, ptr %20, align 4, !tbaa !5
  %528 = load i32, ptr %2, align 4, !tbaa !5
  %.1395 = call i32 @llvm.smin.i32(i32 %117, i32 %528)
  %529 = sub i32 %.212421550, %127
  %530 = add i32 %529, %.1395
  br label %531

531:                                              ; preds = %.loopexit1429, %527, %525
  %.61279 = phi float [ %.51278, %.loopexit1429 ], [ %.212751548, %527 ], [ %.212751548, %525 ]
  %.71263 = phi float [ %.61262, %.loopexit1429 ], [ %.212581549, %527 ], [ %.212581549, %525 ]
  %.91249 = phi i32 [ %.81248, %.loopexit1429 ], [ %530, %527 ], [ %.212421550, %525 ]
  %.7 = phi i32 [ %.6, %.loopexit1429 ], [ %.21551, %527 ], [ %.21551, %525 ]
  %indvars.iv.next1759 = add nsw i64 %indvars.iv1758, 1
  %.not1377.not = icmp slt i64 %indvars.iv1758, %124
  br i1 %.not1377.not, label %125, label %._crit_edge, !llvm.loop !14

._crit_edge:                                      ; preds = %531, %.lr.ph1564
  %.21275.lcssa = phi float [ %.112741557, %.lr.ph1564 ], [ %.61279, %531 ]
  %.21258.lcssa = phi float [ %.112571558, %.lr.ph1564 ], [ %.71263, %531 ]
  %.21242.lcssa = phi i32 [ %.112411560, %.lr.ph1564 ], [ %.91249, %531 ]
  %.2.lcssa = phi i32 [ %.11561, %.lr.ph1564 ], [ %.7, %531 ]
  %532 = add nuw nsw i32 %.012551559, 1
  %indvars.iv.next1755 = add i32 %indvars.iv1754, %spec.select
  %indvars.iv.next1757 = add i32 %indvars.iv1756, %indvars.iv1754
  %exitcond.not = icmp eq i32 %532, %110
  br i1 %exitcond.not, label %._crit_edge1565, label %.lr.ph1564, !llvm.loop !15

._crit_edge1565:                                  ; preds = %._crit_edge, %107
  %.11274.lcssa = phi float [ %.012731701, %107 ], [ %.21275.lcssa, %._crit_edge ]
  %.11257.lcssa = phi float [ %.012561702, %107 ], [ %.21258.lcssa, %._crit_edge ]
  %.11241.lcssa = phi i32 [ %.012401703, %107 ], [ %.21242.lcssa, %._crit_edge ]
  %.1.lcssa = phi i32 [ %.012391704, %107 ], [ %.2.lcssa, %._crit_edge ]
  %533 = add nuw nsw i32 %.012361705, 1
  %.not13641683.not = icmp slt i32 %.012361705, %.0
  %534 = mul i32 %.012361705, %spec.select
  br i1 %.not13641683.not, label %.lr.ph1690, label %.loopexit1431

.lr.ph1690:                                       ; preds = %._crit_edge1565, %._crit_edge1678
  %indvars.iv1768 = phi i32 [ %indvars.iv.next1769, %._crit_edge1678 ], [ %indvars.iv1766, %._crit_edge1565 ]
  %.012381688 = phi i32 [ %942, %._crit_edge1678 ], [ %533, %._crit_edge1565 ]
  %.81687 = phi i32 [ %.9.lcssa, %._crit_edge1678 ], [ %.1.lcssa, %._crit_edge1565 ]
  %.1012501686 = phi i32 [ %.111251.lcssa, %._crit_edge1678 ], [ %.11241.lcssa, %._crit_edge1565 ]
  %.812641685 = phi float [ %.91265.lcssa, %._crit_edge1678 ], [ %.11257.lcssa, %._crit_edge1565 ]
  %.712801684 = phi float [ %.81281.lcssa, %._crit_edge1678 ], [ %.11274.lcssa, %._crit_edge1565 ]
  %535 = sext i32 %indvars.iv1768 to i64
  %536 = add nsw i32 %.012381688, -1
  %537 = mul nsw i32 %536, %spec.select
  store i32 %534, ptr %20, align 4, !tbaa !5
  %538 = load i32, ptr %2, align 4, !tbaa !5
  %.1396 = call i32 @llvm.smin.i32(i32 %534, i32 %538)
  %.not13661667.not = icmp slt i32 %112, %.1396
  br i1 %.not13661667.not, label %.lr.ph1677, label %._crit_edge1678

.lr.ph1677:                                       ; preds = %.lr.ph1690
  %539 = mul i32 %.012381688, %spec.select
  %540 = sext i32 %.1396 to i64
  br label %541

541:                                              ; preds = %.lr.ph1677, %941
  %indvars.iv1773 = phi i64 [ %109, %.lr.ph1677 ], [ %indvars.iv.next1774, %941 ]
  %.91675 = phi i32 [ %.81687, %.lr.ph1677 ], [ %.13, %941 ]
  %.1112511674 = phi i32 [ %.1012501686, %.lr.ph1677 ], [ %.16, %941 ]
  %.912651673 = phi float [ %.812641685, %.lr.ph1677 ], [ %.141270, %941 ]
  %.812811672 = phi float [ %.712801684, %.lr.ph1677 ], [ %.121285, %941 ]
  %.012911671 = phi i32 [ 0, %.lr.ph1677 ], [ %.41295, %941 ]
  %542 = getelementptr inbounds float, ptr %29, i64 %indvars.iv1773
  %543 = load float, ptr %542, align 4, !tbaa !9
  store float %543, ptr %22, align 4, !tbaa !9
  %544 = fcmp ogt float %543, 0.000000e+00
  br i1 %544, label %545, label %932

545:                                              ; preds = %541
  %546 = load i32, ptr %2, align 4, !tbaa !5
  %.1397 = call i32 @llvm.smin.i32(i32 %539, i32 %546)
  store i32 %.1397, ptr %20, align 4, !tbaa !5
  %.not13691650.not = icmp slt i32 %537, %.1397
  br i1 %.not13691650.not, label %.lr.ph1661, label %.loopexit1428

.lr.ph1661:                                       ; preds = %545
  %547 = mul nsw i64 %indvars.iv1773, %101
  %gep1571 = getelementptr float, ptr %invariant.gep1713, i64 %547
  %548 = getelementptr inbounds float, ptr %30, i64 %indvars.iv1773
  %549 = mul nsw i64 %indvars.iv1773, %102
  %gep1599 = getelementptr float, ptr %invariant.gep1537, i64 %549
  br label %553

550:                                              ; preds = %926
  %551 = load i32, ptr %20, align 4, !tbaa !5
  %552 = sext i32 %551 to i64
  %.not1369.not = icmp slt i64 %indvars.iv.next1771, %552
  br i1 %.not1369.not, label %553, label %.loopexit1428.loopexit, !llvm.loop !16

553:                                              ; preds = %.lr.ph1661, %550
  %indvars.iv1770 = phi i64 [ %535, %.lr.ph1661 ], [ %indvars.iv.next1771, %550 ]
  %.101659 = phi i32 [ %.91675, %.lr.ph1661 ], [ %.11, %550 ]
  %.1212521658 = phi i32 [ %.1112511674, %.lr.ph1661 ], [ %.131253, %550 ]
  %.1012661657 = phi float [ %.912651673, %.lr.ph1661 ], [ %.121268, %550 ]
  %.912821656 = phi float [ %.812811672, %.lr.ph1661 ], [ %.101283, %550 ]
  %.112921655 = phi i32 [ %.012911671, %.lr.ph1661 ], [ %.21293, %550 ]
  %.312991654 = phi i32 [ 0, %.lr.ph1661 ], [ %.41300, %550 ]
  %indvars.iv.next1771 = add nsw i64 %indvars.iv1770, 1
  %554 = getelementptr float, ptr %6, i64 %indvars.iv1770
  %555 = load float, ptr %554, align 4, !tbaa !9
  store float %555, ptr %23, align 4, !tbaa !9
  %556 = fcmp ogt float %555, 0.000000e+00
  br i1 %556, label %557, label %919

557:                                              ; preds = %553
  %558 = load float, ptr %22, align 4, !tbaa !9
  %559 = fcmp ult float %555, 1.000000e+00
  %560 = fcmp ult float %558, %555
  br i1 %559, label %587, label %561

561:                                              ; preds = %557
  %562 = fmul float %84, %558
  %563 = fcmp ole float %562, %555
  %564 = fmul float %84, %555
  %565 = fcmp ole float %564, %558
  %.11302.in = select i1 %560, i1 %565, i1 %563
  %566 = fdiv float %85, %555
  %567 = fcmp olt float %558, %566
  %568 = getelementptr float, ptr %5, i64 %indvars.iv1770
  br i1 %567, label %569, label %580

569:                                              ; preds = %561
  %570 = mul nsw i64 %indvars.iv.next1771, %101
  %gep1577 = getelementptr float, ptr %invariant.gep1713, i64 %570
  %571 = call float @sdot_(ptr noundef nonnull %1, ptr noundef %gep1571, ptr noundef nonnull @c__1, ptr noundef %gep1577, ptr noundef nonnull @c__1) #6
  %572 = load float, ptr %548, align 4, !tbaa !9
  %573 = fmul float %571, %572
  %574 = load float, ptr %568, align 4, !tbaa !9
  %575 = fmul float %573, %574
  %576 = load float, ptr %23, align 4, !tbaa !9
  %577 = fdiv float %575, %576
  %578 = load float, ptr %22, align 4, !tbaa !9
  %579 = fdiv float %577, %578
  br label %617

580:                                              ; preds = %561
  call void @scopy_(ptr noundef nonnull %1, ptr noundef %gep1571, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #6
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %22, ptr noundef nonnull %548, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %24) #6
  %581 = mul nsw i64 %indvars.iv.next1771, %101
  %gep1573 = getelementptr float, ptr %invariant.gep1713, i64 %581
  %582 = call float @sdot_(ptr noundef nonnull %1, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef %gep1573, ptr noundef nonnull @c__1) #6
  %583 = load float, ptr %568, align 4, !tbaa !9
  %584 = fmul float %582, %583
  %585 = load float, ptr %23, align 4, !tbaa !9
  %586 = fdiv float %584, %585
  br label %617

587:                                              ; preds = %557
  %588 = insertelement <2 x float> poison, float %555, i64 0
  %589 = insertelement <2 x float> %588, float %558, i64 1
  %590 = fdiv <2 x float> %589, %104
  %591 = insertelement <2 x float> poison, float %558, i64 0
  %592 = insertelement <2 x float> %591, float %555, i64 1
  %593 = fcmp ole <2 x float> %592, %590
  %594 = extractelement <2 x i1> %593, i64 0
  %595 = extractelement <2 x i1> %593, i64 1
  %.21303.in = select i1 %560, i1 %595, i1 %594
  %596 = fdiv float %84, %555
  %597 = fcmp ogt float %558, %596
  %598 = mul nsw i64 %indvars.iv.next1771, %101
  %gep1585 = getelementptr float, ptr %invariant.gep1713, i64 %598
  br i1 %597, label %599, label %610

599:                                              ; preds = %587
  %600 = call float @sdot_(ptr noundef nonnull %1, ptr noundef %gep1571, ptr noundef nonnull @c__1, ptr noundef %gep1585, ptr noundef nonnull @c__1) #6
  %601 = load float, ptr %548, align 4, !tbaa !9
  %602 = fmul float %600, %601
  %603 = getelementptr float, ptr %5, i64 %indvars.iv1770
  %604 = load float, ptr %603, align 4, !tbaa !9
  %605 = fmul float %602, %604
  %606 = load float, ptr %23, align 4, !tbaa !9
  %607 = fdiv float %605, %606
  %608 = load float, ptr %22, align 4, !tbaa !9
  %609 = fdiv float %607, %608
  br label %617

610:                                              ; preds = %587
  call void @scopy_(ptr noundef nonnull %1, ptr noundef %gep1585, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #6
  %611 = getelementptr float, ptr %5, i64 %indvars.iv1770
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull %611, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %24) #6
  %612 = call float @sdot_(ptr noundef nonnull %1, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef %gep1571, ptr noundef nonnull @c__1) #6
  %613 = load float, ptr %548, align 4, !tbaa !9
  %614 = fmul float %612, %613
  %615 = load float, ptr %22, align 4, !tbaa !9
  %616 = fdiv float %614, %615
  br label %617

617:                                              ; preds = %599, %610, %569, %580
  %.31304.in = phi i1 [ %.11302.in, %569 ], [ %.11302.in, %580 ], [ %.21303.in, %599 ], [ %.21303.in, %610 ]
  %.11288 = phi float [ %579, %569 ], [ %586, %580 ], [ %609, %599 ], [ %616, %610 ]
  store float %.912821656, ptr %21, align 4, !tbaa !9
  %618 = fcmp oge float %.11288, 0.000000e+00
  %619 = fneg float %.11288
  %620 = select i1 %618, float %.11288, float %619
  %621 = fcmp oge float %.912821656, %620
  %622 = select i1 %621, float %.912821656, float %620
  %623 = load float, ptr %12, align 4, !tbaa !9
  %624 = fcmp ogt float %620, %623
  br i1 %624, label %625, label %915

625:                                              ; preds = %617
  %626 = add nsw i32 %.101659, 1
  br i1 %.31304.in, label %627, label %831

627:                                              ; preds = %625
  %628 = load float, ptr %23, align 4, !tbaa !9
  %629 = load float, ptr %22, align 4, !tbaa !9
  %630 = insertelement <2 x float> poison, float %628, i64 0
  %631 = insertelement <2 x float> %630, float %629, i64 1
  %632 = insertelement <2 x float> poison, float %629, i64 0
  %633 = insertelement <2 x float> %632, float %628, i64 1
  %634 = fdiv <2 x float> %631, %633
  %shift1835 = shufflevector <2 x float> %634, <2 x float> poison, <2 x i32> <i32 1, i32 poison>
  %635 = fsub <2 x float> %634, %shift1835
  %636 = extractelement <2 x float> %635, i64 0
  store float %636, ptr %21, align 4, !tbaa !9
  %637 = fcmp oge float %636, 0.000000e+00
  %638 = fneg float %636
  %639 = select i1 %637, float %636, float %638
  %640 = fmul float %639, -5.000000e-01
  %641 = fdiv float %640, %.11288
  %642 = fcmp ogt float %628, %558
  %643 = fneg float %641
  %.01306 = select i1 %642, float %643, float %641
  %644 = fcmp oge float %.01306, 0.000000e+00
  %645 = fneg float %.01306
  %646 = select i1 %644, float %.01306, float %645
  %647 = fcmp ogt float %646, %87
  br i1 %647, label %648, label %695

648:                                              ; preds = %627
  %649 = fdiv float 5.000000e-01, %.01306
  store float %649, ptr %26, align 4, !tbaa !9
  %650 = load float, ptr %548, align 4, !tbaa !9
  %651 = getelementptr float, ptr %5, i64 %indvars.iv1770
  %652 = load float, ptr %651, align 4, !tbaa !9
  %653 = fneg float %649
  %654 = insertelement <2 x float> poison, float %649, i64 0
  %655 = insertelement <2 x float> %654, float %652, i64 1
  %656 = insertelement <2 x float> poison, float %650, i64 0
  %657 = insertelement <2 x float> %656, float %653, i64 1
  %658 = fmul <2 x float> %655, %657
  %659 = insertelement <2 x float> poison, float %652, i64 0
  %660 = insertelement <2 x float> %659, float %650, i64 1
  %661 = fdiv <2 x float> %658, %660
  store <2 x float> %661, ptr %100, align 8, !tbaa !9
  %662 = mul nsw i64 %indvars.iv.next1771, %101
  %gep1637 = getelementptr float, ptr %invariant.gep1713, i64 %662
  call void @srotm_(ptr noundef nonnull %1, ptr noundef %gep1571, ptr noundef nonnull @c__1, ptr noundef %gep1637, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #6
  br i1 %or.cond, label %663, label %665

663:                                              ; preds = %648
  %664 = mul nsw i64 %indvars.iv.next1771, %102
  %gep1641 = getelementptr float, ptr %invariant.gep1537, i64 %664
  call void @srotm_(ptr noundef nonnull %28, ptr noundef %gep1599, ptr noundef nonnull @c__1, ptr noundef %gep1641, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #6
  br label %665

665:                                              ; preds = %663, %648
  %666 = load float, ptr %26, align 4
  %667 = load float, ptr %23, align 4, !tbaa !9
  %668 = fpext float %667 to double
  store float 0.000000e+00, ptr %21, align 4, !tbaa !9
  %669 = fneg float %666
  %670 = insertelement <2 x float> poison, float %669, i64 0
  %671 = insertelement <2 x float> %670, float %666, i64 1
  %672 = fmul <2 x float> %634, %671
  %673 = insertelement <2 x float> poison, float %.11288, i64 0
  %674 = shufflevector <2 x float> %673, <2 x float> poison, <2 x i32> zeroinitializer
  %675 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %672, <2 x float> %674, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %676 = fcmp ole <2 x float> %675, zeroinitializer
  %677 = extractelement <2 x i1> %676, i64 1
  %678 = extractelement <2 x float> %675, i64 1
  %679 = fpext float %678 to double
  %680 = select i1 %677, double 0.000000e+00, double %679
  %sqrt1420 = call double @llvm.sqrt.f64(double %680)
  %681 = fmul double %sqrt1420, %668
  %682 = fptrunc double %681 to float
  store float %682, ptr %554, align 4, !tbaa !9
  %683 = extractelement <2 x i1> %676, i64 0
  %684 = extractelement <2 x float> %675, i64 0
  %685 = fpext float %684 to double
  %686 = select i1 %683, double 0.000000e+00, double %685
  %sqrt1419 = call double @llvm.sqrt.f64(double %686)
  %687 = load float, ptr %22, align 4, !tbaa !9
  %688 = fpext float %687 to double
  %689 = fmul double %sqrt1419, %688
  %690 = fptrunc double %689 to float
  store float %690, ptr %22, align 4, !tbaa !9
  %691 = fcmp oge float %666, 0.000000e+00
  %692 = select i1 %691, float %666, float %669
  %693 = fcmp oge float %.1012661657, %692
  %694 = select i1 %693, float %.1012661657, float %692
  br label %863

695:                                              ; preds = %627
  %696 = load float, ptr @c_b42, align 4
  %697 = fcmp oge float %696, 0.000000e+00
  %698 = fneg float %696
  br i1 %618, label %699, label %701

699:                                              ; preds = %695
  %700 = select i1 %697, float %696, float %698
  br label %703

701:                                              ; preds = %695
  %702 = select i1 %697, float %698, float %696
  br label %703

703:                                              ; preds = %701, %699
  %704 = phi float [ %700, %699 ], [ %702, %701 ]
  %705 = fneg float %704
  %.01272 = select i1 %642, float %704, float %705
  %706 = fpext float %.01306 to double
  %707 = fpext float %.01272 to double
  %708 = call float @llvm.fmuladd.f32(float %.01306, float %.01306, float 1.000000e+00)
  %709 = fpext float %708 to double
  %sqrt1424 = call double @llvm.sqrt.f64(double %709)
  %710 = call double @llvm.fmuladd.f64(double %707, double %sqrt1424, double %706)
  %711 = fdiv double 1.000000e+00, %710
  %712 = fptrunc double %711 to float
  store float %712, ptr %26, align 4, !tbaa !9
  %713 = call float @llvm.fmuladd.f32(float %712, float %712, float 1.000000e+00)
  %714 = fdiv float 1.000000e+00, %713
  %sqrt1423 = call float @llvm.sqrt.f32(float %714)
  %715 = fmul float %sqrt1423, %712
  %716 = fcmp oge float %715, 0.000000e+00
  %717 = fneg float %715
  %718 = select i1 %716, float %715, float %717
  %719 = fcmp oge float %.1012661657, %718
  %720 = select i1 %719, float %.1012661657, float %718
  %721 = fpext float %628 to double
  store float 0.000000e+00, ptr %21, align 4, !tbaa !9
  %722 = fneg float %712
  %723 = insertelement <2 x float> poison, float %722, i64 0
  %724 = insertelement <2 x float> %723, float %712, i64 1
  %725 = fmul <2 x float> %634, %724
  %726 = insertelement <2 x float> poison, float %.11288, i64 0
  %727 = shufflevector <2 x float> %726, <2 x float> poison, <2 x i32> zeroinitializer
  %728 = call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %725, <2 x float> %727, <2 x float> <float 1.000000e+00, float 1.000000e+00>)
  %729 = fcmp ole <2 x float> %728, zeroinitializer
  %730 = extractelement <2 x i1> %729, i64 1
  %731 = extractelement <2 x float> %728, i64 1
  %732 = fpext float %731 to double
  %733 = select i1 %730, double 0.000000e+00, double %732
  %sqrt1422 = call double @llvm.sqrt.f64(double %733)
  %734 = fmul double %sqrt1422, %721
  %735 = fptrunc double %734 to float
  store float %735, ptr %554, align 4, !tbaa !9
  %736 = extractelement <2 x i1> %729, i64 0
  %737 = extractelement <2 x float> %728, i64 0
  %738 = fpext float %737 to double
  %739 = select i1 %736, double 0.000000e+00, double %738
  %sqrt1421 = call double @llvm.sqrt.f64(double %739)
  %740 = fpext float %629 to double
  %741 = fmul double %sqrt1421, %740
  %742 = fptrunc double %741 to float
  store float %742, ptr %22, align 4, !tbaa !9
  %743 = load float, ptr %548, align 4, !tbaa !9
  %744 = getelementptr float, ptr %5, i64 %indvars.iv1770
  %745 = load float, ptr %744, align 4, !tbaa !9
  %746 = insertelement <2 x float> poison, float %745, i64 0
  %747 = insertelement <2 x float> %746, float %743, i64 1
  %748 = insertelement <2 x float> poison, float %743, i64 0
  %749 = insertelement <2 x float> %748, float %745, i64 1
  %750 = fdiv <2 x float> %747, %749
  %751 = fcmp ult float %743, 1.000000e+00
  %752 = fcmp ult float %745, 1.000000e+00
  br i1 %751, label %780, label %753

753:                                              ; preds = %703
  br i1 %752, label %763, label %754

754:                                              ; preds = %753
  %755 = fmul <2 x float> %750, %724
  %756 = shufflevector <2 x float> %755, <2 x float> poison, <2 x i32> <i32 1, i32 0>
  store <2 x float> %756, ptr %100, align 8, !tbaa !9
  %757 = fmul float %sqrt1423, %743
  store float %757, ptr %548, align 4, !tbaa !9
  %758 = load float, ptr %744, align 4, !tbaa !9
  %759 = fmul float %sqrt1423, %758
  store float %759, ptr %744, align 4, !tbaa !9
  %760 = mul nsw i64 %indvars.iv.next1771, %101
  %gep1597 = getelementptr float, ptr %invariant.gep1713, i64 %760
  call void @srotm_(ptr noundef nonnull %1, ptr noundef %gep1571, ptr noundef nonnull @c__1, ptr noundef %gep1597, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #6
  br i1 %or.cond, label %761, label %863

761:                                              ; preds = %754
  %762 = mul nsw i64 %indvars.iv.next1771, %102
  %gep1601 = getelementptr float, ptr %invariant.gep1537, i64 %762
  call void @srotm_(ptr noundef nonnull %28, ptr noundef %gep1599, ptr noundef nonnull @c__1, ptr noundef %gep1601, ptr noundef nonnull @c__1, ptr noundef nonnull %27) #6
  br label %863

763:                                              ; preds = %753
  %764 = extractelement <2 x float> %750, i64 0
  %765 = fmul float %764, %722
  store float %765, ptr %21, align 4, !tbaa !9
  %766 = mul nsw i64 %indvars.iv.next1771, %101
  %gep1603 = getelementptr float, ptr %invariant.gep1713, i64 %766
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep1603, ptr noundef nonnull @c__1, ptr noundef %gep1571, ptr noundef nonnull @c__1) #6
  %767 = fmul float %sqrt1423, %715
  %768 = extractelement <2 x float> %750, i64 1
  %769 = fmul float %767, %768
  store float %769, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep1571, ptr noundef nonnull @c__1, ptr noundef %gep1603, ptr noundef nonnull @c__1) #6
  br i1 %or.cond, label %770, label %775

770:                                              ; preds = %763
  %771 = load float, ptr %26, align 4, !tbaa !9
  %772 = fneg float %771
  %773 = fmul float %764, %772
  store float %773, ptr %21, align 4, !tbaa !9
  %774 = mul nsw i64 %indvars.iv.next1771, %102
  %gep1607 = getelementptr float, ptr %invariant.gep1537, i64 %774
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1607, ptr noundef nonnull @c__1, ptr noundef %gep1599, ptr noundef nonnull @c__1) #6
  store float %769, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1599, ptr noundef nonnull @c__1, ptr noundef %gep1607, ptr noundef nonnull @c__1) #6
  br label %775

775:                                              ; preds = %770, %763
  %776 = load float, ptr %548, align 4, !tbaa !9
  %777 = fmul float %sqrt1423, %776
  store float %777, ptr %548, align 4, !tbaa !9
  %778 = load float, ptr %744, align 4, !tbaa !9
  %779 = fdiv float %778, %sqrt1423
  store float %779, ptr %744, align 4, !tbaa !9
  br label %863

780:                                              ; preds = %703
  br i1 %752, label %798, label %781

781:                                              ; preds = %780
  %782 = extractelement <2 x float> %750, i64 1
  %783 = fmul float %782, %712
  store float %783, ptr %21, align 4, !tbaa !9
  %784 = mul nsw i64 %indvars.iv.next1771, %101
  %gep1613 = getelementptr float, ptr %invariant.gep1713, i64 %784
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep1571, ptr noundef nonnull @c__1, ptr noundef %gep1613, ptr noundef nonnull @c__1) #6
  %785 = fneg float %sqrt1423
  %786 = fmul float %715, %785
  %787 = extractelement <2 x float> %750, i64 0
  %788 = fmul float %786, %787
  store float %788, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep1613, ptr noundef nonnull @c__1, ptr noundef %gep1571, ptr noundef nonnull @c__1) #6
  br i1 %or.cond, label %789, label %793

789:                                              ; preds = %781
  %790 = load float, ptr %26, align 4, !tbaa !9
  %791 = fmul float %782, %790
  store float %791, ptr %21, align 4, !tbaa !9
  %792 = mul nsw i64 %indvars.iv.next1771, %102
  %gep1617 = getelementptr float, ptr %invariant.gep1537, i64 %792
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1599, ptr noundef nonnull @c__1, ptr noundef %gep1617, ptr noundef nonnull @c__1) #6
  store float %788, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1617, ptr noundef nonnull @c__1, ptr noundef %gep1599, ptr noundef nonnull @c__1) #6
  br label %793

793:                                              ; preds = %789, %781
  %794 = load float, ptr %548, align 4, !tbaa !9
  %795 = fdiv float %794, %sqrt1423
  store float %795, ptr %548, align 4, !tbaa !9
  %796 = load float, ptr %744, align 4, !tbaa !9
  %797 = fmul float %sqrt1423, %796
  store float %797, ptr %744, align 4, !tbaa !9
  br label %863

798:                                              ; preds = %780
  %799 = fcmp ult float %743, %745
  %800 = mul nsw i64 %indvars.iv.next1771, %101
  %gep1629 = getelementptr float, ptr %invariant.gep1713, i64 %800
  br i1 %799, label %816, label %801

801:                                              ; preds = %798
  %802 = extractelement <2 x float> %750, i64 0
  %803 = fmul float %802, %722
  store float %803, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep1629, ptr noundef nonnull @c__1, ptr noundef %gep1571, ptr noundef nonnull @c__1) #6
  %804 = fmul float %sqrt1423, %715
  %805 = extractelement <2 x float> %750, i64 1
  %806 = fmul float %804, %805
  store float %806, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep1571, ptr noundef nonnull @c__1, ptr noundef %gep1629, ptr noundef nonnull @c__1) #6
  %807 = load float, ptr %548, align 4, !tbaa !9
  %808 = fmul float %sqrt1423, %807
  store float %808, ptr %548, align 4, !tbaa !9
  %809 = load float, ptr %744, align 4, !tbaa !9
  %810 = fdiv float %809, %sqrt1423
  store float %810, ptr %744, align 4, !tbaa !9
  br i1 %or.cond, label %811, label %863

811:                                              ; preds = %801
  %812 = load float, ptr %26, align 4, !tbaa !9
  %813 = fneg float %812
  %814 = fmul float %802, %813
  store float %814, ptr %21, align 4, !tbaa !9
  %815 = mul nsw i64 %indvars.iv.next1771, %102
  %gep1623 = getelementptr float, ptr %invariant.gep1537, i64 %815
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1623, ptr noundef nonnull @c__1, ptr noundef %gep1599, ptr noundef nonnull @c__1) #6
  store float %806, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1599, ptr noundef nonnull @c__1, ptr noundef %gep1623, ptr noundef nonnull @c__1) #6
  br label %863

816:                                              ; preds = %798
  %817 = extractelement <2 x float> %750, i64 1
  %818 = fmul float %817, %712
  store float %818, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep1571, ptr noundef nonnull @c__1, ptr noundef %gep1629, ptr noundef nonnull @c__1) #6
  %819 = fneg float %sqrt1423
  %820 = fmul float %715, %819
  %821 = extractelement <2 x float> %750, i64 0
  %822 = fmul float %820, %821
  store float %822, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %21, ptr noundef %gep1629, ptr noundef nonnull @c__1, ptr noundef %gep1571, ptr noundef nonnull @c__1) #6
  %823 = load float, ptr %548, align 4, !tbaa !9
  %824 = fdiv float %823, %sqrt1423
  store float %824, ptr %548, align 4, !tbaa !9
  %825 = load float, ptr %744, align 4, !tbaa !9
  %826 = fmul float %sqrt1423, %825
  store float %826, ptr %744, align 4, !tbaa !9
  br i1 %or.cond, label %827, label %863

827:                                              ; preds = %816
  %828 = load float, ptr %26, align 4, !tbaa !9
  %829 = fmul float %817, %828
  store float %829, ptr %21, align 4, !tbaa !9
  %830 = mul nsw i64 %indvars.iv.next1771, %102
  %gep1633 = getelementptr float, ptr %invariant.gep1537, i64 %830
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1599, ptr noundef nonnull @c__1, ptr noundef %gep1633, ptr noundef nonnull @c__1) #6
  store float %822, ptr %21, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %28, ptr noundef nonnull %21, ptr noundef %gep1633, ptr noundef nonnull @c__1, ptr noundef %gep1599, ptr noundef nonnull @c__1) #6
  br label %863

831:                                              ; preds = %625
  %832 = load float, ptr %22, align 4, !tbaa !9
  %833 = load float, ptr %23, align 4, !tbaa !9
  %834 = fcmp ogt float %832, %833
  %835 = call float @llvm.fmuladd.f32(float %619, float %.11288, float 1.000000e+00)
  %836 = fcmp ole float %835, 0.000000e+00
  %837 = select i1 %836, float 0.000000e+00, float %835
  %838 = fpext float %837 to double
  %sqrt1425 = call double @llvm.sqrt.f64(double %838)
  br i1 %834, label %839, label %851

839:                                              ; preds = %831
  call void @scopy_(ptr noundef nonnull %1, ptr noundef %gep1571, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #6
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %22, ptr noundef nonnull @c_b42, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %24) #6
  %840 = mul nsw i64 %indvars.iv.next1771, %101
  %gep1593 = getelementptr float, ptr %invariant.gep1713, i64 %840
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep1593, ptr noundef nonnull %4, ptr noundef nonnull %24) #6
  %841 = load float, ptr %548, align 4, !tbaa !9
  %842 = fmul float %841, %619
  %843 = getelementptr float, ptr %5, i64 %indvars.iv1770
  %844 = load float, ptr %843, align 4, !tbaa !9
  %845 = fdiv float %842, %844
  store float %845, ptr %25, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %25, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef %gep1593, ptr noundef nonnull @c__1) #6
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b42, ptr noundef nonnull %23, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep1593, ptr noundef nonnull %4, ptr noundef nonnull %24) #6
  store float 0.000000e+00, ptr %21, align 4, !tbaa !9
  %846 = load float, ptr %23, align 4, !tbaa !9
  %847 = fpext float %846 to double
  %848 = fmul double %sqrt1425, %847
  %849 = fptrunc double %848 to float
  store float %849, ptr %554, align 4, !tbaa !9
  %850 = load float, ptr %11, align 4, !tbaa !9
  %.inv1412 = fcmp oge float %.1012661657, %850
  %..101266 = select i1 %.inv1412, float %.1012661657, float %850
  br label %863

851:                                              ; preds = %831
  %852 = mul nsw i64 %indvars.iv.next1771, %101
  %gep1587 = getelementptr float, ptr %invariant.gep1713, i64 %852
  call void @scopy_(ptr noundef nonnull %1, ptr noundef %gep1587, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull @c__1) #6
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %23, ptr noundef nonnull @c_b42, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %14, ptr noundef nonnull %4, ptr noundef nonnull %24) #6
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull %22, ptr noundef nonnull @c_b42, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep1571, ptr noundef nonnull %4, ptr noundef nonnull %24) #6
  %853 = getelementptr float, ptr %5, i64 %indvars.iv1770
  %854 = load float, ptr %853, align 4, !tbaa !9
  %855 = fmul float %854, %619
  %856 = load float, ptr %548, align 4, !tbaa !9
  %857 = fdiv float %855, %856
  store float %857, ptr %25, align 4, !tbaa !9
  call void @saxpy_(ptr noundef nonnull %1, ptr noundef nonnull %25, ptr noundef %14, ptr noundef nonnull @c__1, ptr noundef %gep1571, ptr noundef nonnull @c__1) #6
  call void @slascl_(ptr noundef nonnull @.str.4, ptr noundef nonnull @c__0, ptr noundef nonnull @c__0, ptr noundef nonnull @c_b42, ptr noundef nonnull %22, ptr noundef nonnull %1, ptr noundef nonnull @c__1, ptr noundef %gep1571, ptr noundef nonnull %4, ptr noundef nonnull %24) #6
  store float 0.000000e+00, ptr %21, align 4, !tbaa !9
  %858 = load float, ptr %22, align 4, !tbaa !9
  %859 = fpext float %858 to double
  %860 = fmul double %sqrt1425, %859
  %861 = fptrunc double %860 to float
  store float %861, ptr %542, align 4, !tbaa !9
  %862 = load float, ptr %11, align 4, !tbaa !9
  %.inv1411 = fcmp oge float %.1012661657, %862
  %..1012661398 = select i1 %.inv1411, float %.1012661657, float %862
  br label %863

863:                                              ; preds = %839, %851, %665, %793, %816, %827, %801, %811, %775, %761, %754
  %.111267 = phi float [ %694, %665 ], [ %720, %761 ], [ %720, %754 ], [ %720, %775 ], [ %720, %793 ], [ %720, %811 ], [ %720, %801 ], [ %720, %827 ], [ %720, %816 ], [ %..101266, %839 ], [ %..1012661398, %851 ]
  %864 = load float, ptr %554, align 4, !tbaa !9
  %865 = load float, ptr %23, align 4, !tbaa !9
  %866 = fdiv float %864, %865
  store float %866, ptr %21, align 4, !tbaa !9
  %867 = fmul float %866, %866
  %868 = fcmp ugt float %867, %sqrtf
  br i1 %868, label %891, label %869

869:                                              ; preds = %863
  %870 = fcmp olt float %865, %86
  %871 = fcmp ogt float %865, %sqrtf1354
  %or.cond1399 = and i1 %870, %871
  br i1 %or.cond1399, label %872, label %878

872:                                              ; preds = %869
  %873 = mul nsw i64 %indvars.iv.next1771, %101
  %gep1645 = getelementptr float, ptr %invariant.gep1713, i64 %873
  %874 = call float @snrm2_(ptr noundef nonnull %1, ptr noundef %gep1645, ptr noundef nonnull @c__1) #6
  %875 = getelementptr float, ptr %5, i64 %indvars.iv1770
  %876 = load float, ptr %875, align 4, !tbaa !9
  %877 = fmul float %874, %876
  br label %.sink.split1809

878:                                              ; preds = %869
  store float 0.000000e+00, ptr %26, align 4, !tbaa !9
  store float 1.000000e+00, ptr %23, align 4, !tbaa !9
  %879 = mul nsw i64 %indvars.iv.next1771, %101
  %gep1643 = getelementptr float, ptr %invariant.gep1713, i64 %879
  call void @slassq_(ptr noundef nonnull %1, ptr noundef %gep1643, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef nonnull %23) #6
  %880 = load float, ptr %26, align 4, !tbaa !9
  %881 = fpext float %880 to double
  %882 = load float, ptr %23, align 4, !tbaa !9
  %883 = fpext float %882 to double
  %884 = call double @sqrt(double noundef %883) #6
  %885 = fmul double %884, %881
  %886 = getelementptr float, ptr %5, i64 %indvars.iv1770
  %887 = load float, ptr %886, align 4, !tbaa !9
  %888 = fpext float %887 to double
  %889 = fmul double %885, %888
  %890 = fptrunc double %889 to float
  br label %.sink.split1809

.sink.split1809:                                  ; preds = %878, %872
  %.sink1810 = phi float [ %877, %872 ], [ %890, %878 ]
  store float %.sink1810, ptr %554, align 4, !tbaa !9
  br label %891

891:                                              ; preds = %.sink.split1809, %863
  %892 = load float, ptr %22, align 4, !tbaa !9
  %893 = fdiv float %892, %558
  store float %893, ptr %21, align 4, !tbaa !9
  %894 = fmul float %893, %893
  %895 = fcmp ugt float %894, %sqrtf
  br i1 %895, label %923, label %896

896:                                              ; preds = %891
  %897 = fcmp olt float %892, %86
  %898 = fcmp ogt float %892, %sqrtf1354
  %or.cond1400 = and i1 %897, %898
  br i1 %or.cond1400, label %899, label %903

899:                                              ; preds = %896
  %900 = call float @snrm2_(ptr noundef nonnull %1, ptr noundef %gep1571, ptr noundef nonnull @c__1) #6
  %901 = load float, ptr %548, align 4, !tbaa !9
  %902 = fmul float %900, %901
  br label %914

903:                                              ; preds = %896
  store float 0.000000e+00, ptr %26, align 4, !tbaa !9
  store float 1.000000e+00, ptr %22, align 4, !tbaa !9
  call void @slassq_(ptr noundef nonnull %1, ptr noundef %gep1571, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef nonnull %22) #6
  %904 = load float, ptr %26, align 4, !tbaa !9
  %905 = fpext float %904 to double
  %906 = load float, ptr %22, align 4, !tbaa !9
  %907 = fpext float %906 to double
  %908 = call double @sqrt(double noundef %907) #6
  %909 = fmul double %908, %905
  %910 = load float, ptr %548, align 4, !tbaa !9
  %911 = fpext float %910 to double
  %912 = fmul double %909, %911
  %913 = fptrunc double %912 to float
  br label %914

914:                                              ; preds = %903, %899
  %storemerge1371 = phi float [ %913, %903 ], [ %902, %899 ]
  store float %storemerge1371, ptr %22, align 4, !tbaa !9
  store float %storemerge1371, ptr %542, align 4, !tbaa !9
  br label %923

915:                                              ; preds = %617
  %916 = add nsw i32 %.1212521658, 1
  %917 = add nsw i32 %.312991654, 1
  %918 = add nsw i32 %.112921655, 1
  br label %923

919:                                              ; preds = %553
  %920 = add nsw i32 %.1212521658, 1
  %921 = add nsw i32 %.312991654, 1
  %922 = add nsw i32 %.112921655, 1
  br label %923

923:                                              ; preds = %915, %914, %891, %919
  %.41300 = phi i32 [ 0, %914 ], [ 0, %891 ], [ %917, %915 ], [ %921, %919 ]
  %.21293 = phi i32 [ %.112921655, %914 ], [ %.112921655, %891 ], [ %918, %915 ], [ %922, %919 ]
  %.101283 = phi float [ %622, %914 ], [ %622, %891 ], [ %622, %915 ], [ %.912821656, %919 ]
  %.121268 = phi float [ %.111267, %914 ], [ %.111267, %891 ], [ %.1012661657, %915 ], [ %.1012661657, %919 ]
  %.131253 = phi i32 [ 0, %914 ], [ 0, %891 ], [ %916, %915 ], [ %920, %919 ]
  %.11 = phi i32 [ %626, %914 ], [ %626, %891 ], [ %.101659, %915 ], [ %.101659, %919 ]
  %.not1373.not = icmp sgt i32 %.21293, %96
  %or.cond1401 = select i1 %.not1387, i1 %.not1373.not, i1 false
  br i1 %or.cond1401, label %924, label %926

924:                                              ; preds = %923
  %925 = load float, ptr %22, align 4, !tbaa !9
  store float %925, ptr %542, align 4, !tbaa !9
  br label %.loopexit1431

926:                                              ; preds = %923
  %927 = icmp sgt i32 %.41300, %97
  %or.cond1403 = select i1 %.not1387, i1 %927, i1 false
  br i1 %or.cond1403, label %928, label %550

928:                                              ; preds = %926
  %929 = load float, ptr %22, align 4, !tbaa !9
  %930 = fneg float %929
  store float %930, ptr %22, align 4, !tbaa !9
  br label %.loopexit1428

.loopexit1428.loopexit:                           ; preds = %550
  %.pre1786 = load float, ptr %22, align 4, !tbaa !9
  br label %.loopexit1428

.loopexit1428:                                    ; preds = %.loopexit1428.loopexit, %545, %928
  %931 = phi float [ %930, %928 ], [ %543, %545 ], [ %.pre1786, %.loopexit1428.loopexit ]
  %.31294 = phi i32 [ %.21293, %928 ], [ %.012911671, %545 ], [ %.21293, %.loopexit1428.loopexit ]
  %.111284 = phi float [ %.101283, %928 ], [ %.812811672, %545 ], [ %.101283, %.loopexit1428.loopexit ]
  %.131269 = phi float [ %.121268, %928 ], [ %.912651673, %545 ], [ %.121268, %.loopexit1428.loopexit ]
  %.141254 = phi i32 [ 0, %928 ], [ %.1112511674, %545 ], [ %.131253, %.loopexit1428.loopexit ]
  %.12 = phi i32 [ %.11, %928 ], [ %.91675, %545 ], [ %.11, %.loopexit1428.loopexit ]
  store float %931, ptr %542, align 4, !tbaa !9
  br label %941

932:                                              ; preds = %541
  %933 = fcmp oeq float %543, 0.000000e+00
  br i1 %933, label %934, label %938

934:                                              ; preds = %932
  store i32 %539, ptr %20, align 4, !tbaa !5
  %935 = load i32, ptr %2, align 4, !tbaa !5
  %.1404 = call i32 @llvm.smin.i32(i32 %539, i32 %935)
  %936 = sub i32 %.1112511674, %537
  %937 = add i32 %936, %.1404
  br label %938

938:                                              ; preds = %934, %932
  %.15 = phi i32 [ %937, %934 ], [ %.1112511674, %932 ]
  %939 = fcmp olt float %543, 0.000000e+00
  br i1 %939, label %940, label %941

940:                                              ; preds = %938
  br label %941

941:                                              ; preds = %.loopexit1428, %940, %938
  %.41295 = phi i32 [ %.31294, %.loopexit1428 ], [ %.012911671, %940 ], [ %.012911671, %938 ]
  %.121285 = phi float [ %.111284, %.loopexit1428 ], [ %.812811672, %940 ], [ %.812811672, %938 ]
  %.141270 = phi float [ %.131269, %.loopexit1428 ], [ %.912651673, %940 ], [ %.912651673, %938 ]
  %.16 = phi i32 [ %.141254, %.loopexit1428 ], [ 0, %940 ], [ %.15, %938 ]
  %.13 = phi i32 [ %.12, %.loopexit1428 ], [ %.91675, %940 ], [ %.91675, %938 ]
  %indvars.iv.next1774 = add nsw i64 %indvars.iv1773, 1
  %.not1366.not = icmp slt i64 %indvars.iv1773, %540
  br i1 %.not1366.not, label %541, label %._crit_edge1678, !llvm.loop !17

._crit_edge1678:                                  ; preds = %941, %.lr.ph1690
  %.81281.lcssa = phi float [ %.712801684, %.lr.ph1690 ], [ %.121285, %941 ]
  %.91265.lcssa = phi float [ %.812641685, %.lr.ph1690 ], [ %.141270, %941 ]
  %.111251.lcssa = phi i32 [ %.1012501686, %.lr.ph1690 ], [ %.16, %941 ]
  %.9.lcssa = phi i32 [ %.81687, %.lr.ph1690 ], [ %.13, %941 ]
  %942 = add nuw nsw i32 %.012381688, 1
  %.not1364.not = icmp slt i32 %.012381688, %.0
  %indvars.iv.next1769 = add i32 %indvars.iv1768, %spec.select
  br i1 %.not1364.not, label %.lr.ph1690, label %.loopexit1431, !llvm.loop !18

.loopexit1431:                                    ; preds = %._crit_edge1678, %._crit_edge1565, %924
  %.131286 = phi float [ %.101283, %924 ], [ %.11274.lcssa, %._crit_edge1565 ], [ %.81281.lcssa, %._crit_edge1678 ]
  %.151271 = phi float [ %.121268, %924 ], [ %.11257.lcssa, %._crit_edge1565 ], [ %.91265.lcssa, %._crit_edge1678 ]
  %.17 = phi i32 [ 0, %924 ], [ %.11241.lcssa, %._crit_edge1565 ], [ %.111251.lcssa, %._crit_edge1678 ]
  %.14 = phi i32 [ %.11, %924 ], [ %.1.lcssa, %._crit_edge1565 ], [ %.9.lcssa, %._crit_edge1678 ]
  %943 = load i32, ptr %2, align 4, !tbaa !5
  %.1405 = call i32 @llvm.smin.i32(i32 %534, i32 %943)
  %.not13751695.not = icmp slt i32 %112, %.1405
  br i1 %.not13751695.not, label %.lr.ph1698.preheader, label %.loopexit1430

.lr.ph1698.preheader:                             ; preds = %.loopexit1431
  %944 = sext i32 %.1405 to i64
  %smax = call i64 @llvm.smax.i64(i64 %944, i64 %108)
  %945 = add i64 %smax, 1
  %946 = sub i64 %945, %108
  %min.iters.check = icmp ult i64 %946, 8
  br i1 %min.iters.check, label %.lr.ph1698.preheader1837, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph1698.preheader
  %n.vec = and i64 %946, -8
  %ind.end = add i64 %n.vec, %109
  %invariant.gep = getelementptr float, ptr %29, i64 %109
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %gep1872 = getelementptr float, ptr %invariant.gep, i64 %index
  %947 = getelementptr inbounds i8, ptr %gep1872, i64 16
  %wide.load = load <4 x float>, ptr %gep1872, align 4, !tbaa !9
  %wide.load1834 = load <4 x float>, ptr %947, align 4, !tbaa !9
  %948 = fcmp oge <4 x float> %wide.load, zeroinitializer
  %949 = fcmp oge <4 x float> %wide.load1834, zeroinitializer
  %950 = fneg <4 x float> %wide.load
  %951 = fneg <4 x float> %wide.load1834
  %952 = select <4 x i1> %948, <4 x float> %wide.load, <4 x float> %950
  %953 = select <4 x i1> %949, <4 x float> %wide.load1834, <4 x float> %951
  store <4 x float> %952, ptr %gep1872, align 4, !tbaa !9
  store <4 x float> %953, ptr %947, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 8
  %954 = icmp eq i64 %index.next, %n.vec
  br i1 %954, label %middle.block, label %vector.body, !llvm.loop !19

middle.block:                                     ; preds = %vector.body
  %955 = extractelement <4 x float> %wide.load1834, i64 3
  %cmp.n = icmp eq i64 %946, %n.vec
  br i1 %cmp.n, label %..loopexit1430_crit_edge, label %.lr.ph1698.preheader1837

.lr.ph1698.preheader1837:                         ; preds = %middle.block, %.lr.ph1698.preheader
  %indvars.iv1776.ph = phi i64 [ %109, %.lr.ph1698.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph1698

.lr.ph1698:                                       ; preds = %.lr.ph1698.preheader1837, %.lr.ph1698
  %indvars.iv1776 = phi i64 [ %indvars.iv.next1777, %.lr.ph1698 ], [ %indvars.iv1776.ph, %.lr.ph1698.preheader1837 ]
  %956 = getelementptr inbounds float, ptr %29, i64 %indvars.iv1776
  %957 = load float, ptr %956, align 4, !tbaa !9
  %958 = fcmp oge float %957, 0.000000e+00
  %959 = fneg float %957
  %960 = select i1 %958, float %957, float %959
  store float %960, ptr %956, align 4, !tbaa !9
  %indvars.iv.next1777 = add nsw i64 %indvars.iv1776, 1
  %.not1375.not = icmp slt i64 %indvars.iv1776, %944
  br i1 %.not1375.not, label %.lr.ph1698, label %..loopexit1430_crit_edge, !llvm.loop !22

._crit_edge1708:                                  ; preds = %.loopexit1430, %105
  %961 = phi i32 [ %106, %105 ], [ %943, %.loopexit1430 ]
  %.01273.lcssa = phi float [ 0.000000e+00, %105 ], [ %.131286, %.loopexit1430 ]
  %.01256.lcssa = phi float [ 0.000000e+00, %105 ], [ %.151271, %.loopexit1430 ]
  %.01240.lcssa = phi i32 [ 0, %105 ], [ %.17, %.loopexit1430 ]
  %.01239.lcssa = phi i32 [ 0, %105 ], [ %.14, %.loopexit1430 ]
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds float, ptr %29, i64 %962
  %964 = load float, ptr %963, align 4, !tbaa !9
  %965 = fcmp olt float %964, %86
  %966 = fcmp ogt float %964, %sqrtf1354
  %or.cond1406 = and i1 %965, %966
  br i1 %or.cond1406, label %967, label %976

967:                                              ; preds = %._crit_edge1708
  %968 = mul nsw i32 %961, %31
  %969 = sext i32 %968 to i64
  %gep1716 = getelementptr float, ptr %invariant.gep1713, i64 %969
  %970 = call float @snrm2_(ptr noundef nonnull %1, ptr noundef %gep1716, ptr noundef nonnull @c__1) #6
  %971 = load i32, ptr %2, align 4, !tbaa !5
  %972 = sext i32 %971 to i64
  %973 = getelementptr inbounds float, ptr %30, i64 %972
  %974 = load float, ptr %973, align 4, !tbaa !9
  %975 = fmul float %970, %974
  br label %992

976:                                              ; preds = %._crit_edge1708
  store float 0.000000e+00, ptr %26, align 4, !tbaa !9
  store float 1.000000e+00, ptr %22, align 4, !tbaa !9
  %977 = mul nsw i32 %961, %31
  %978 = sext i32 %977 to i64
  %gep1714 = getelementptr float, ptr %invariant.gep1713, i64 %978
  call void @slassq_(ptr noundef nonnull %1, ptr noundef %gep1714, ptr noundef nonnull @c__1, ptr noundef nonnull %26, ptr noundef nonnull %22) #6
  %979 = load float, ptr %26, align 4, !tbaa !9
  %980 = fpext float %979 to double
  %981 = load float, ptr %22, align 4, !tbaa !9
  %982 = fpext float %981 to double
  %983 = call double @sqrt(double noundef %982) #6
  %984 = fmul double %983, %980
  %985 = load i32, ptr %2, align 4, !tbaa !5
  %986 = sext i32 %985 to i64
  %987 = getelementptr inbounds float, ptr %30, i64 %986
  %988 = load float, ptr %987, align 4, !tbaa !9
  %989 = fpext float %988 to double
  %990 = fmul double %984, %989
  %991 = fptrunc double %990 to float
  br label %992

992:                                              ; preds = %976, %967
  %.sink1813 = phi i64 [ %986, %976 ], [ %972, %967 ]
  %.sink1811 = phi float [ %991, %976 ], [ %975, %967 ]
  %993 = phi i32 [ %985, %976 ], [ %971, %967 ]
  %994 = getelementptr inbounds float, ptr %29, i64 %.sink1813
  store float %.sink1811, ptr %994, align 4, !tbaa !9
  %995 = icmp slt i32 %.013051718, %.012891719
  %996 = fcmp ugt float %.01273.lcssa, %sqrtf1355
  %.not1359 = icmp sgt i32 %.01239.lcssa, %993
  %or.cond1814 = select i1 %996, i1 %.not1359, i1 false
  %spec.select1815 = select i1 %or.cond1814, i32 %.012891719, i32 %.013051718
  %.11290 = select i1 %995, i32 %spec.select1815, i32 %.012891719
  %997 = add nsw i32 %.11290, 1
  %998 = icmp sgt i32 %.013051718, %997
  br i1 %998, label %999, label %1008

999:                                              ; preds = %992
  %1000 = sitofp i32 %993 to float
  %1001 = load float, ptr %12, align 4, !tbaa !9
  %1002 = fmul float %1001, %1000
  %1003 = fcmp olt float %.01273.lcssa, %1002
  br i1 %1003, label %1004, label %1008

1004:                                             ; preds = %999
  %1005 = fmul float %.01273.lcssa, %1000
  %1006 = fmul float %.01256.lcssa, %1005
  %1007 = fcmp uge float %1006, %1001
  %.not1360 = icmp slt i32 %.01240.lcssa, %92
  %or.cond1407 = select i1 %1007, i1 %.not1360, i1 false
  br i1 %or.cond1407, label %1009, label %.loopexit1432

1008:                                             ; preds = %999, %992
  %.not1360.old = icmp slt i32 %.01240.lcssa, %92
  br i1 %.not1360.old, label %1009, label %.loopexit1432

1009:                                             ; preds = %1004, %1008
  %1010 = add nuw nsw i32 %.013051718, 1
  %.not1357.not = icmp slt i32 %.013051718, %98
  br i1 %.not1357.not, label %105, label %._crit_edge1722.loopexit, !llvm.loop !23

._crit_edge1722.loopexit:                         ; preds = %1009
  %.pre1787 = load i32, ptr %13, align 4, !tbaa !5
  br label %._crit_edge1722

._crit_edge1722:                                  ; preds = %._crit_edge1722.loopexit, %80
  %1011 = phi i32 [ %.pre1787, %._crit_edge1722.loopexit ], [ %98, %80 ]
  %1012 = add nsw i32 %1011, -1
  br label %.loopexit1432

.loopexit1432:                                    ; preds = %1004, %1008, %._crit_edge1722
  %storemerge = phi i32 [ %1012, %._crit_edge1722 ], [ 0, %1008 ], [ 0, %1004 ]
  store i32 %storemerge, ptr %16, align 4, !tbaa !5
  %1013 = load i32, ptr %2, align 4, !tbaa !5
  %1014 = add nsw i32 %1013, -1
  %invariant.gep1727 = getelementptr i8, ptr %36, i64 4
  %.not13611731 = icmp slt i32 %1013, 2
  br i1 %.not13611731, label %.loopexit, label %.lr.ph1734

.lr.ph1734:                                       ; preds = %.loopexit1432
  %1015 = sext i32 %31 to i64
  br i1 %or.cond, label %.lr.ph1734.split.us.preheader, label %.lr.ph1734.split.preheader

.lr.ph1734.split.preheader:                       ; preds = %.lr.ph1734
  %1016 = sext i32 %1014 to i64
  br label %.lr.ph1734.split

.lr.ph1734.split.us.preheader:                    ; preds = %.lr.ph1734
  %1017 = sext i32 %34 to i64
  %1018 = sext i32 %1014 to i64
  br label %.lr.ph1734.split.us

.lr.ph1734.split.us:                              ; preds = %.lr.ph1734.split.us.preheader, %1043
  %indvars.iv1782 = phi i64 [ 1, %.lr.ph1734.split.us.preheader ], [ %indvars.iv.next1783, %1043 ]
  %1019 = load i32, ptr %2, align 4, !tbaa !5
  %1020 = trunc nuw nsw i64 %indvars.iv1782 to i32
  %reass.sub1736 = sub i32 %1019, %1020
  %1021 = add i32 %reass.sub1736, 1
  store i32 %1021, ptr %19, align 4, !tbaa !5
  %1022 = getelementptr inbounds float, ptr %29, i64 %indvars.iv1782
  %1023 = call i32 @isamax_(ptr noundef nonnull %19, ptr noundef nonnull %1022, ptr noundef nonnull @c__1) #6
  %1024 = trunc i64 %indvars.iv1782 to i32
  %1025 = add i32 %1024, -1
  %1026 = add i32 %1025, %1023
  %1027 = zext i32 %1026 to i64
  %.not1362.us = icmp eq i64 %indvars.iv1782, %1027
  br i1 %.not1362.us, label %1043, label %1028

1028:                                             ; preds = %.lr.ph1734.split.us
  %1029 = load float, ptr %1022, align 4, !tbaa !9
  %1030 = sext i32 %1026 to i64
  %1031 = getelementptr inbounds float, ptr %29, i64 %1030
  %1032 = load float, ptr %1031, align 4, !tbaa !9
  store float %1032, ptr %1022, align 4, !tbaa !9
  store float %1029, ptr %1031, align 4, !tbaa !9
  %1033 = getelementptr inbounds float, ptr %30, i64 %indvars.iv1782
  %1034 = load float, ptr %1033, align 4, !tbaa !9
  store float %1034, ptr %25, align 4, !tbaa !9
  %1035 = getelementptr inbounds float, ptr %30, i64 %1030
  %1036 = load float, ptr %1035, align 4, !tbaa !9
  store float %1036, ptr %1033, align 4, !tbaa !9
  store float %1034, ptr %1035, align 4, !tbaa !9
  %1037 = mul nsw i64 %indvars.iv1782, %1015
  %gep1724.us = getelementptr float, ptr %invariant.gep1713, i64 %1037
  %1038 = mul nsw i32 %1026, %31
  %1039 = sext i32 %1038 to i64
  %gep1726.us = getelementptr float, ptr %invariant.gep1713, i64 %1039
  call void @sswap_(ptr noundef nonnull %1, ptr noundef %gep1724.us, ptr noundef nonnull @c__1, ptr noundef %gep1726.us, ptr noundef nonnull @c__1) #6
  %1040 = mul nsw i64 %indvars.iv1782, %1017
  %gep1728.us = getelementptr float, ptr %invariant.gep1727, i64 %1040
  %1041 = mul nsw i32 %1026, %34
  %1042 = sext i32 %1041 to i64
  %gep1730.us = getelementptr float, ptr %invariant.gep1727, i64 %1042
  call void @sswap_(ptr noundef nonnull %28, ptr noundef %gep1728.us, ptr noundef nonnull @c__1, ptr noundef %gep1730.us, ptr noundef nonnull @c__1) #6
  br label %1043

1043:                                             ; preds = %1028, %.lr.ph1734.split.us
  %indvars.iv.next1783 = add nuw nsw i64 %indvars.iv1782, 1
  %.not1361.us.not = icmp slt i64 %indvars.iv1782, %1018
  br i1 %.not1361.us.not, label %.lr.ph1734.split.us, label %.loopexit, !llvm.loop !24

.lr.ph1734.split:                                 ; preds = %.lr.ph1734.split.preheader, %1065
  %indvars.iv1779 = phi i64 [ 1, %.lr.ph1734.split.preheader ], [ %indvars.iv.next1780, %1065 ]
  %1044 = load i32, ptr %2, align 4, !tbaa !5
  %1045 = trunc nuw nsw i64 %indvars.iv1779 to i32
  %reass.sub1735 = sub i32 %1044, %1045
  %1046 = add i32 %reass.sub1735, 1
  store i32 %1046, ptr %19, align 4, !tbaa !5
  %1047 = getelementptr inbounds float, ptr %29, i64 %indvars.iv1779
  %1048 = call i32 @isamax_(ptr noundef nonnull %19, ptr noundef nonnull %1047, ptr noundef nonnull @c__1) #6
  %1049 = trunc i64 %indvars.iv1779 to i32
  %1050 = add i32 %1049, -1
  %1051 = add i32 %1050, %1048
  %1052 = zext i32 %1051 to i64
  %.not1362 = icmp eq i64 %indvars.iv1779, %1052
  br i1 %.not1362, label %1065, label %1053

1053:                                             ; preds = %.lr.ph1734.split
  %1054 = load float, ptr %1047, align 4, !tbaa !9
  %1055 = sext i32 %1051 to i64
  %1056 = getelementptr inbounds float, ptr %29, i64 %1055
  %1057 = load float, ptr %1056, align 4, !tbaa !9
  store float %1057, ptr %1047, align 4, !tbaa !9
  store float %1054, ptr %1056, align 4, !tbaa !9
  %1058 = getelementptr inbounds float, ptr %30, i64 %indvars.iv1779
  %1059 = load float, ptr %1058, align 4, !tbaa !9
  store float %1059, ptr %25, align 4, !tbaa !9
  %1060 = getelementptr inbounds float, ptr %30, i64 %1055
  %1061 = load float, ptr %1060, align 4, !tbaa !9
  store float %1061, ptr %1058, align 4, !tbaa !9
  store float %1059, ptr %1060, align 4, !tbaa !9
  %1062 = mul nsw i64 %indvars.iv1779, %1015
  %gep1724 = getelementptr float, ptr %invariant.gep1713, i64 %1062
  %1063 = mul nsw i32 %1051, %31
  %1064 = sext i32 %1063 to i64
  %gep1726 = getelementptr float, ptr %invariant.gep1713, i64 %1064
  call void @sswap_(ptr noundef nonnull %1, ptr noundef %gep1724, ptr noundef nonnull @c__1, ptr noundef %gep1726, ptr noundef nonnull @c__1) #6
  br label %1065

1065:                                             ; preds = %1053, %.lr.ph1734.split
  %indvars.iv.next1780 = add nuw nsw i64 %indvars.iv1779, 1
  %.not1361.not = icmp slt i64 %indvars.iv1779, %1016
  br i1 %.not1361.not, label %.lr.ph1734.split, label %.loopexit, !llvm.loop !24

.loopexit:                                        ; preds = %1065, %1043, %.loopexit1432, %72
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  ret void
}

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

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

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

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

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

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

declare float @snrm2_(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare float @sdot_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.fmuladd.f32(float, float, float) #4

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #4

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

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

declare float @sqrtf(float) local_unnamed_addr

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smin.i32(i32, i32) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.sqrt.f64(double) #5

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare float @llvm.sqrt.f32(float) #5

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x float> @llvm.fmuladd.v2f32(<2 x float>, <2 x float>, <2 x float>) #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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nounwind }

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

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


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