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

; 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 [8 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.3 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @ssyequb_(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) #0 {
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca float, align 4
  %24 = alloca float, align 4
  %25 = alloca float, align 4
  %26 = alloca float, align 4
  %27 = alloca i32, align 4
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca float, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca float, align 4
  %36 = alloca float, align 4
  %37 = alloca float, align 4
  %38 = alloca float, align 4
  %39 = alloca float, align 4
  %40 = alloca float, align 4
  %41 = alloca i32, align 4
  %42 = alloca float, align 4
  %43 = alloca float, align 4
  %44 = alloca float, align 4
  %45 = alloca float, align 4
  %46 = alloca float, align 4
  %47 = alloca i32, align 4
  store ptr %0, ptr %10, align 8, !tbaa !5
  store ptr %1, ptr %11, align 8, !tbaa !5
  store ptr %2, ptr %12, align 8, !tbaa !5
  store ptr %3, ptr %13, align 8, !tbaa !5
  store ptr %4, ptr %14, align 8, !tbaa !5
  store ptr %5, ptr %15, align 8, !tbaa !5
  store ptr %6, ptr %16, align 8, !tbaa !5
  store ptr %7, ptr %17, align 8, !tbaa !5
  store ptr %8, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #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
  %48 = load ptr, ptr %13, align 8, !tbaa !5
  %49 = load i32, ptr %48, align 4, !tbaa !9
  store i32 %49, ptr %19, align 4, !tbaa !9
  %50 = load i32, ptr %19, align 4, !tbaa !9
  %51 = mul nsw i32 %50, 1
  %52 = add nsw i32 1, %51
  store i32 %52, ptr %20, align 4, !tbaa !9
  %53 = load i32, ptr %20, align 4, !tbaa !9
  %54 = load ptr, ptr %12, align 8, !tbaa !5
  %55 = sext i32 %53 to i64
  %56 = sub i64 0, %55
  %57 = getelementptr inbounds float, ptr %54, i64 %56
  store ptr %57, ptr %12, align 8, !tbaa !5
  %58 = load ptr, ptr %14, align 8, !tbaa !5
  %59 = getelementptr inbounds float, ptr %58, i32 -1
  store ptr %59, ptr %14, align 8, !tbaa !5
  %60 = load ptr, ptr %17, align 8, !tbaa !5
  %61 = getelementptr inbounds float, ptr %60, i32 -1
  store ptr %61, ptr %17, align 8, !tbaa !5
  %62 = load ptr, ptr %18, align 8, !tbaa !5
  store i32 0, ptr %62, align 4, !tbaa !9
  %63 = load ptr, ptr %10, align 8, !tbaa !5
  %64 = call i32 @lsame_(ptr noundef %63, ptr noundef @.str)
  %65 = icmp ne i32 %64, 0
  br i1 %65, label %72, label %66

66:                                               ; preds = %9
  %67 = load ptr, ptr %10, align 8, !tbaa !5
  %68 = call i32 @lsame_(ptr noundef %67, ptr noundef @.str.1)
  %69 = icmp ne i32 %68, 0
  br i1 %69, label %72, label %70

70:                                               ; preds = %66
  %71 = load ptr, ptr %18, align 8, !tbaa !5
  store i32 -1, ptr %71, align 4, !tbaa !9
  br label %95

72:                                               ; preds = %66, %9
  %73 = load ptr, ptr %11, align 8, !tbaa !5
  %74 = load i32, ptr %73, align 4, !tbaa !9
  %75 = icmp slt i32 %74, 0
  br i1 %75, label %76, label %78

76:                                               ; preds = %72
  %77 = load ptr, ptr %18, align 8, !tbaa !5
  store i32 -2, ptr %77, align 4, !tbaa !9
  br label %94

78:                                               ; preds = %72
  %79 = load ptr, ptr %13, align 8, !tbaa !5
  %80 = load i32, ptr %79, align 4, !tbaa !9
  %81 = load ptr, ptr %11, align 8, !tbaa !5
  %82 = load i32, ptr %81, align 4, !tbaa !9
  %83 = icmp sge i32 1, %82
  br i1 %83, label %84, label %85

84:                                               ; preds = %78
  br label %88

85:                                               ; preds = %78
  %86 = load ptr, ptr %11, align 8, !tbaa !5
  %87 = load i32, ptr %86, align 4, !tbaa !9
  br label %88

88:                                               ; preds = %85, %84
  %89 = phi i32 [ 1, %84 ], [ %87, %85 ]
  %90 = icmp slt i32 %80, %89
  br i1 %90, label %91, label %93

91:                                               ; preds = %88
  %92 = load ptr, ptr %18, align 8, !tbaa !5
  store i32 -4, ptr %92, align 4, !tbaa !9
  br label %93

93:                                               ; preds = %91, %88
  br label %94

94:                                               ; preds = %93, %76
  br label %95

95:                                               ; preds = %94, %70
  %96 = load ptr, ptr %18, align 8, !tbaa !5
  %97 = load i32, ptr %96, align 4, !tbaa !9
  %98 = icmp ne i32 %97, 0
  br i1 %98, label %99, label %104

99:                                               ; preds = %95
  %100 = load ptr, ptr %18, align 8, !tbaa !5
  %101 = load i32, ptr %100, align 4, !tbaa !9
  %102 = sub nsw i32 0, %101
  store i32 %102, ptr %21, align 4, !tbaa !9
  %103 = call i32 @xerbla_(ptr noundef @.str.2, ptr noundef %21, i32 noundef 7)
  store i32 1, ptr %47, align 4
  br label %1294

104:                                              ; preds = %95
  %105 = load ptr, ptr %10, align 8, !tbaa !5
  %106 = call i32 @lsame_(ptr noundef %105, ptr noundef @.str)
  store i32 %106, ptr %41, align 4, !tbaa !9
  %107 = load ptr, ptr %16, align 8, !tbaa !5
  store float 0.000000e+00, ptr %107, align 4, !tbaa !11
  %108 = load ptr, ptr %11, align 8, !tbaa !5
  %109 = load i32, ptr %108, align 4, !tbaa !9
  %110 = icmp eq i32 %109, 0
  br i1 %110, label %111, label %113

111:                                              ; preds = %104
  %112 = load ptr, ptr %15, align 8, !tbaa !5
  store float 1.000000e+00, ptr %112, align 4, !tbaa !11
  store i32 1, ptr %47, align 4
  br label %1294

113:                                              ; preds = %104
  %114 = load ptr, ptr %11, align 8, !tbaa !5
  %115 = load i32, ptr %114, align 4, !tbaa !9
  store i32 %115, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %116

116:                                              ; preds = %125, %113
  %117 = load i32, ptr %31, align 4, !tbaa !9
  %118 = load i32, ptr %21, align 4, !tbaa !9
  %119 = icmp sle i32 %117, %118
  br i1 %119, label %120, label %128

120:                                              ; preds = %116
  %121 = load ptr, ptr %14, align 8, !tbaa !5
  %122 = load i32, ptr %31, align 4, !tbaa !9
  %123 = sext i32 %122 to i64
  %124 = getelementptr inbounds float, ptr %121, i64 %123
  store float 0.000000e+00, ptr %124, align 4, !tbaa !11
  br label %125

125:                                              ; preds = %120
  %126 = load i32, ptr %31, align 4, !tbaa !9
  %127 = add nsw i32 %126, 1
  store i32 %127, ptr %31, align 4, !tbaa !9
  br label %116, !llvm.loop !13

128:                                              ; preds = %116
  %129 = load ptr, ptr %16, align 8, !tbaa !5
  store float 0.000000e+00, ptr %129, align 4, !tbaa !11
  %130 = load i32, ptr %41, align 4, !tbaa !9
  %131 = icmp ne i32 %130, 0
  br i1 %131, label %132, label %323

132:                                              ; preds = %128
  %133 = load ptr, ptr %11, align 8, !tbaa !5
  %134 = load i32, ptr %133, align 4, !tbaa !9
  store i32 %134, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %32, align 4, !tbaa !9
  br label %135

135:                                              ; preds = %319, %132
  %136 = load i32, ptr %32, align 4, !tbaa !9
  %137 = load i32, ptr %21, align 4, !tbaa !9
  %138 = icmp sle i32 %136, %137
  br i1 %138, label %139, label %322

139:                                              ; preds = %135
  %140 = load i32, ptr %32, align 4, !tbaa !9
  %141 = sub nsw i32 %140, 1
  store i32 %141, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %142

142:                                              ; preds = %249, %139
  %143 = load i32, ptr %31, align 4, !tbaa !9
  %144 = load i32, ptr %22, align 4, !tbaa !9
  %145 = icmp sle i32 %143, %144
  br i1 %145, label %146, label %252

146:                                              ; preds = %142
  %147 = load ptr, ptr %14, align 8, !tbaa !5
  %148 = load i32, ptr %31, align 4, !tbaa !9
  %149 = sext i32 %148 to i64
  %150 = getelementptr inbounds float, ptr %147, i64 %149
  %151 = load float, ptr %150, align 4, !tbaa !11
  store float %151, ptr %24, align 4, !tbaa !11
  %152 = load ptr, ptr %12, align 8, !tbaa !5
  %153 = load i32, ptr %31, align 4, !tbaa !9
  %154 = load i32, ptr %32, align 4, !tbaa !9
  %155 = load i32, ptr %19, align 4, !tbaa !9
  %156 = mul nsw i32 %154, %155
  %157 = add nsw i32 %153, %156
  %158 = sext i32 %157 to i64
  %159 = getelementptr inbounds float, ptr %152, i64 %158
  %160 = load float, ptr %159, align 4, !tbaa !11
  store float %160, ptr %23, align 4, !tbaa !11
  %161 = load float, ptr %23, align 4, !tbaa !11
  %162 = fcmp oge float %161, 0.000000e+00
  br i1 %162, label %163, label %165

163:                                              ; preds = %146
  %164 = load float, ptr %23, align 4, !tbaa !11
  br label %168

165:                                              ; preds = %146
  %166 = load float, ptr %23, align 4, !tbaa !11
  %167 = fneg float %166
  br label %168

168:                                              ; preds = %165, %163
  %169 = phi float [ %164, %163 ], [ %167, %165 ]
  store float %169, ptr %25, align 4, !tbaa !11
  %170 = load float, ptr %24, align 4, !tbaa !11
  %171 = load float, ptr %25, align 4, !tbaa !11
  %172 = fcmp oge float %170, %171
  br i1 %172, label %173, label %175

173:                                              ; preds = %168
  %174 = load float, ptr %24, align 4, !tbaa !11
  br label %177

175:                                              ; preds = %168
  %176 = load float, ptr %25, align 4, !tbaa !11
  br label %177

177:                                              ; preds = %175, %173
  %178 = phi float [ %174, %173 ], [ %176, %175 ]
  %179 = load ptr, ptr %14, align 8, !tbaa !5
  %180 = load i32, ptr %31, align 4, !tbaa !9
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds float, ptr %179, i64 %181
  store float %178, ptr %182, align 4, !tbaa !11
  %183 = load ptr, ptr %14, align 8, !tbaa !5
  %184 = load i32, ptr %32, align 4, !tbaa !9
  %185 = sext i32 %184 to i64
  %186 = getelementptr inbounds float, ptr %183, i64 %185
  %187 = load float, ptr %186, align 4, !tbaa !11
  store float %187, ptr %24, align 4, !tbaa !11
  %188 = load ptr, ptr %12, align 8, !tbaa !5
  %189 = load i32, ptr %31, align 4, !tbaa !9
  %190 = load i32, ptr %32, align 4, !tbaa !9
  %191 = load i32, ptr %19, align 4, !tbaa !9
  %192 = mul nsw i32 %190, %191
  %193 = add nsw i32 %189, %192
  %194 = sext i32 %193 to i64
  %195 = getelementptr inbounds float, ptr %188, i64 %194
  %196 = load float, ptr %195, align 4, !tbaa !11
  store float %196, ptr %23, align 4, !tbaa !11
  %197 = load float, ptr %23, align 4, !tbaa !11
  %198 = fcmp oge float %197, 0.000000e+00
  br i1 %198, label %199, label %201

199:                                              ; preds = %177
  %200 = load float, ptr %23, align 4, !tbaa !11
  br label %204

201:                                              ; preds = %177
  %202 = load float, ptr %23, align 4, !tbaa !11
  %203 = fneg float %202
  br label %204

204:                                              ; preds = %201, %199
  %205 = phi float [ %200, %199 ], [ %203, %201 ]
  store float %205, ptr %25, align 4, !tbaa !11
  %206 = load float, ptr %24, align 4, !tbaa !11
  %207 = load float, ptr %25, align 4, !tbaa !11
  %208 = fcmp oge float %206, %207
  br i1 %208, label %209, label %211

209:                                              ; preds = %204
  %210 = load float, ptr %24, align 4, !tbaa !11
  br label %213

211:                                              ; preds = %204
  %212 = load float, ptr %25, align 4, !tbaa !11
  br label %213

213:                                              ; preds = %211, %209
  %214 = phi float [ %210, %209 ], [ %212, %211 ]
  %215 = load ptr, ptr %14, align 8, !tbaa !5
  %216 = load i32, ptr %32, align 4, !tbaa !9
  %217 = sext i32 %216 to i64
  %218 = getelementptr inbounds float, ptr %215, i64 %217
  store float %214, ptr %218, align 4, !tbaa !11
  %219 = load ptr, ptr %16, align 8, !tbaa !5
  %220 = load float, ptr %219, align 4, !tbaa !11
  store float %220, ptr %24, align 4, !tbaa !11
  %221 = load ptr, ptr %12, align 8, !tbaa !5
  %222 = load i32, ptr %31, align 4, !tbaa !9
  %223 = load i32, ptr %32, align 4, !tbaa !9
  %224 = load i32, ptr %19, align 4, !tbaa !9
  %225 = mul nsw i32 %223, %224
  %226 = add nsw i32 %222, %225
  %227 = sext i32 %226 to i64
  %228 = getelementptr inbounds float, ptr %221, i64 %227
  %229 = load float, ptr %228, align 4, !tbaa !11
  store float %229, ptr %23, align 4, !tbaa !11
  %230 = load float, ptr %23, align 4, !tbaa !11
  %231 = fcmp oge float %230, 0.000000e+00
  br i1 %231, label %232, label %234

232:                                              ; preds = %213
  %233 = load float, ptr %23, align 4, !tbaa !11
  br label %237

234:                                              ; preds = %213
  %235 = load float, ptr %23, align 4, !tbaa !11
  %236 = fneg float %235
  br label %237

237:                                              ; preds = %234, %232
  %238 = phi float [ %233, %232 ], [ %236, %234 ]
  store float %238, ptr %25, align 4, !tbaa !11
  %239 = load float, ptr %24, align 4, !tbaa !11
  %240 = load float, ptr %25, align 4, !tbaa !11
  %241 = fcmp oge float %239, %240
  br i1 %241, label %242, label %244

242:                                              ; preds = %237
  %243 = load float, ptr %24, align 4, !tbaa !11
  br label %246

244:                                              ; preds = %237
  %245 = load float, ptr %25, align 4, !tbaa !11
  br label %246

246:                                              ; preds = %244, %242
  %247 = phi float [ %243, %242 ], [ %245, %244 ]
  %248 = load ptr, ptr %16, align 8, !tbaa !5
  store float %247, ptr %248, align 4, !tbaa !11
  br label %249

249:                                              ; preds = %246
  %250 = load i32, ptr %31, align 4, !tbaa !9
  %251 = add nsw i32 %250, 1
  store i32 %251, ptr %31, align 4, !tbaa !9
  br label %142, !llvm.loop !15

252:                                              ; preds = %142
  %253 = load ptr, ptr %14, align 8, !tbaa !5
  %254 = load i32, ptr %32, align 4, !tbaa !9
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds float, ptr %253, i64 %255
  %257 = load float, ptr %256, align 4, !tbaa !11
  store float %257, ptr %24, align 4, !tbaa !11
  %258 = load ptr, ptr %12, align 8, !tbaa !5
  %259 = load i32, ptr %32, align 4, !tbaa !9
  %260 = load i32, ptr %32, align 4, !tbaa !9
  %261 = load i32, ptr %19, align 4, !tbaa !9
  %262 = mul nsw i32 %260, %261
  %263 = add nsw i32 %259, %262
  %264 = sext i32 %263 to i64
  %265 = getelementptr inbounds float, ptr %258, i64 %264
  %266 = load float, ptr %265, align 4, !tbaa !11
  store float %266, ptr %23, align 4, !tbaa !11
  %267 = load float, ptr %23, align 4, !tbaa !11
  %268 = fcmp oge float %267, 0.000000e+00
  br i1 %268, label %269, label %271

269:                                              ; preds = %252
  %270 = load float, ptr %23, align 4, !tbaa !11
  br label %274

271:                                              ; preds = %252
  %272 = load float, ptr %23, align 4, !tbaa !11
  %273 = fneg float %272
  br label %274

274:                                              ; preds = %271, %269
  %275 = phi float [ %270, %269 ], [ %273, %271 ]
  store float %275, ptr %25, align 4, !tbaa !11
  %276 = load float, ptr %24, align 4, !tbaa !11
  %277 = load float, ptr %25, align 4, !tbaa !11
  %278 = fcmp oge float %276, %277
  br i1 %278, label %279, label %281

279:                                              ; preds = %274
  %280 = load float, ptr %24, align 4, !tbaa !11
  br label %283

281:                                              ; preds = %274
  %282 = load float, ptr %25, align 4, !tbaa !11
  br label %283

283:                                              ; preds = %281, %279
  %284 = phi float [ %280, %279 ], [ %282, %281 ]
  %285 = load ptr, ptr %14, align 8, !tbaa !5
  %286 = load i32, ptr %32, align 4, !tbaa !9
  %287 = sext i32 %286 to i64
  %288 = getelementptr inbounds float, ptr %285, i64 %287
  store float %284, ptr %288, align 4, !tbaa !11
  %289 = load ptr, ptr %16, align 8, !tbaa !5
  %290 = load float, ptr %289, align 4, !tbaa !11
  store float %290, ptr %24, align 4, !tbaa !11
  %291 = load ptr, ptr %12, align 8, !tbaa !5
  %292 = load i32, ptr %32, align 4, !tbaa !9
  %293 = load i32, ptr %32, align 4, !tbaa !9
  %294 = load i32, ptr %19, align 4, !tbaa !9
  %295 = mul nsw i32 %293, %294
  %296 = add nsw i32 %292, %295
  %297 = sext i32 %296 to i64
  %298 = getelementptr inbounds float, ptr %291, i64 %297
  %299 = load float, ptr %298, align 4, !tbaa !11
  store float %299, ptr %23, align 4, !tbaa !11
  %300 = load float, ptr %23, align 4, !tbaa !11
  %301 = fcmp oge float %300, 0.000000e+00
  br i1 %301, label %302, label %304

302:                                              ; preds = %283
  %303 = load float, ptr %23, align 4, !tbaa !11
  br label %307

304:                                              ; preds = %283
  %305 = load float, ptr %23, align 4, !tbaa !11
  %306 = fneg float %305
  br label %307

307:                                              ; preds = %304, %302
  %308 = phi float [ %303, %302 ], [ %306, %304 ]
  store float %308, ptr %25, align 4, !tbaa !11
  %309 = load float, ptr %24, align 4, !tbaa !11
  %310 = load float, ptr %25, align 4, !tbaa !11
  %311 = fcmp oge float %309, %310
  br i1 %311, label %312, label %314

312:                                              ; preds = %307
  %313 = load float, ptr %24, align 4, !tbaa !11
  br label %316

314:                                              ; preds = %307
  %315 = load float, ptr %25, align 4, !tbaa !11
  br label %316

316:                                              ; preds = %314, %312
  %317 = phi float [ %313, %312 ], [ %315, %314 ]
  %318 = load ptr, ptr %16, align 8, !tbaa !5
  store float %317, ptr %318, align 4, !tbaa !11
  br label %319

319:                                              ; preds = %316
  %320 = load i32, ptr %32, align 4, !tbaa !9
  %321 = add nsw i32 %320, 1
  store i32 %321, ptr %32, align 4, !tbaa !9
  br label %135, !llvm.loop !16

322:                                              ; preds = %135
  br label %516

323:                                              ; preds = %128
  %324 = load ptr, ptr %11, align 8, !tbaa !5
  %325 = load i32, ptr %324, align 4, !tbaa !9
  store i32 %325, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %32, align 4, !tbaa !9
  br label %326

326:                                              ; preds = %512, %323
  %327 = load i32, ptr %32, align 4, !tbaa !9
  %328 = load i32, ptr %21, align 4, !tbaa !9
  %329 = icmp sle i32 %327, %328
  br i1 %329, label %330, label %515

330:                                              ; preds = %326
  %331 = load ptr, ptr %14, align 8, !tbaa !5
  %332 = load i32, ptr %32, align 4, !tbaa !9
  %333 = sext i32 %332 to i64
  %334 = getelementptr inbounds float, ptr %331, i64 %333
  %335 = load float, ptr %334, align 4, !tbaa !11
  store float %335, ptr %24, align 4, !tbaa !11
  %336 = load ptr, ptr %12, align 8, !tbaa !5
  %337 = load i32, ptr %32, align 4, !tbaa !9
  %338 = load i32, ptr %32, align 4, !tbaa !9
  %339 = load i32, ptr %19, align 4, !tbaa !9
  %340 = mul nsw i32 %338, %339
  %341 = add nsw i32 %337, %340
  %342 = sext i32 %341 to i64
  %343 = getelementptr inbounds float, ptr %336, i64 %342
  %344 = load float, ptr %343, align 4, !tbaa !11
  store float %344, ptr %23, align 4, !tbaa !11
  %345 = load float, ptr %23, align 4, !tbaa !11
  %346 = fcmp oge float %345, 0.000000e+00
  br i1 %346, label %347, label %349

347:                                              ; preds = %330
  %348 = load float, ptr %23, align 4, !tbaa !11
  br label %352

349:                                              ; preds = %330
  %350 = load float, ptr %23, align 4, !tbaa !11
  %351 = fneg float %350
  br label %352

352:                                              ; preds = %349, %347
  %353 = phi float [ %348, %347 ], [ %351, %349 ]
  store float %353, ptr %25, align 4, !tbaa !11
  %354 = load float, ptr %24, align 4, !tbaa !11
  %355 = load float, ptr %25, align 4, !tbaa !11
  %356 = fcmp oge float %354, %355
  br i1 %356, label %357, label %359

357:                                              ; preds = %352
  %358 = load float, ptr %24, align 4, !tbaa !11
  br label %361

359:                                              ; preds = %352
  %360 = load float, ptr %25, align 4, !tbaa !11
  br label %361

361:                                              ; preds = %359, %357
  %362 = phi float [ %358, %357 ], [ %360, %359 ]
  %363 = load ptr, ptr %14, align 8, !tbaa !5
  %364 = load i32, ptr %32, align 4, !tbaa !9
  %365 = sext i32 %364 to i64
  %366 = getelementptr inbounds float, ptr %363, i64 %365
  store float %362, ptr %366, align 4, !tbaa !11
  %367 = load ptr, ptr %16, align 8, !tbaa !5
  %368 = load float, ptr %367, align 4, !tbaa !11
  store float %368, ptr %24, align 4, !tbaa !11
  %369 = load ptr, ptr %12, align 8, !tbaa !5
  %370 = load i32, ptr %32, align 4, !tbaa !9
  %371 = load i32, ptr %32, align 4, !tbaa !9
  %372 = load i32, ptr %19, align 4, !tbaa !9
  %373 = mul nsw i32 %371, %372
  %374 = add nsw i32 %370, %373
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds float, ptr %369, i64 %375
  %377 = load float, ptr %376, align 4, !tbaa !11
  store float %377, ptr %23, align 4, !tbaa !11
  %378 = load float, ptr %23, align 4, !tbaa !11
  %379 = fcmp oge float %378, 0.000000e+00
  br i1 %379, label %380, label %382

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

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

385:                                              ; preds = %382, %380
  %386 = phi float [ %381, %380 ], [ %384, %382 ]
  store float %386, ptr %25, align 4, !tbaa !11
  %387 = load float, ptr %24, align 4, !tbaa !11
  %388 = load float, ptr %25, align 4, !tbaa !11
  %389 = fcmp oge float %387, %388
  br i1 %389, label %390, label %392

390:                                              ; preds = %385
  %391 = load float, ptr %24, align 4, !tbaa !11
  br label %394

392:                                              ; preds = %385
  %393 = load float, ptr %25, align 4, !tbaa !11
  br label %394

394:                                              ; preds = %392, %390
  %395 = phi float [ %391, %390 ], [ %393, %392 ]
  %396 = load ptr, ptr %16, align 8, !tbaa !5
  store float %395, ptr %396, align 4, !tbaa !11
  %397 = load ptr, ptr %11, align 8, !tbaa !5
  %398 = load i32, ptr %397, align 4, !tbaa !9
  store i32 %398, ptr %22, align 4, !tbaa !9
  %399 = load i32, ptr %32, align 4, !tbaa !9
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr %31, align 4, !tbaa !9
  br label %401

401:                                              ; preds = %508, %394
  %402 = load i32, ptr %31, align 4, !tbaa !9
  %403 = load i32, ptr %22, align 4, !tbaa !9
  %404 = icmp sle i32 %402, %403
  br i1 %404, label %405, label %511

405:                                              ; preds = %401
  %406 = load ptr, ptr %14, align 8, !tbaa !5
  %407 = load i32, ptr %31, align 4, !tbaa !9
  %408 = sext i32 %407 to i64
  %409 = getelementptr inbounds float, ptr %406, i64 %408
  %410 = load float, ptr %409, align 4, !tbaa !11
  store float %410, ptr %24, align 4, !tbaa !11
  %411 = load ptr, ptr %12, align 8, !tbaa !5
  %412 = load i32, ptr %31, align 4, !tbaa !9
  %413 = load i32, ptr %32, align 4, !tbaa !9
  %414 = load i32, ptr %19, align 4, !tbaa !9
  %415 = mul nsw i32 %413, %414
  %416 = add nsw i32 %412, %415
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds float, ptr %411, i64 %417
  %419 = load float, ptr %418, align 4, !tbaa !11
  store float %419, ptr %23, align 4, !tbaa !11
  %420 = load float, ptr %23, align 4, !tbaa !11
  %421 = fcmp oge float %420, 0.000000e+00
  br i1 %421, label %422, label %424

422:                                              ; preds = %405
  %423 = load float, ptr %23, align 4, !tbaa !11
  br label %427

424:                                              ; preds = %405
  %425 = load float, ptr %23, align 4, !tbaa !11
  %426 = fneg float %425
  br label %427

427:                                              ; preds = %424, %422
  %428 = phi float [ %423, %422 ], [ %426, %424 ]
  store float %428, ptr %25, align 4, !tbaa !11
  %429 = load float, ptr %24, align 4, !tbaa !11
  %430 = load float, ptr %25, align 4, !tbaa !11
  %431 = fcmp oge float %429, %430
  br i1 %431, label %432, label %434

432:                                              ; preds = %427
  %433 = load float, ptr %24, align 4, !tbaa !11
  br label %436

434:                                              ; preds = %427
  %435 = load float, ptr %25, align 4, !tbaa !11
  br label %436

436:                                              ; preds = %434, %432
  %437 = phi float [ %433, %432 ], [ %435, %434 ]
  %438 = load ptr, ptr %14, align 8, !tbaa !5
  %439 = load i32, ptr %31, align 4, !tbaa !9
  %440 = sext i32 %439 to i64
  %441 = getelementptr inbounds float, ptr %438, i64 %440
  store float %437, ptr %441, align 4, !tbaa !11
  %442 = load ptr, ptr %14, align 8, !tbaa !5
  %443 = load i32, ptr %32, align 4, !tbaa !9
  %444 = sext i32 %443 to i64
  %445 = getelementptr inbounds float, ptr %442, i64 %444
  %446 = load float, ptr %445, align 4, !tbaa !11
  store float %446, ptr %24, align 4, !tbaa !11
  %447 = load ptr, ptr %12, align 8, !tbaa !5
  %448 = load i32, ptr %31, align 4, !tbaa !9
  %449 = load i32, ptr %32, align 4, !tbaa !9
  %450 = load i32, ptr %19, align 4, !tbaa !9
  %451 = mul nsw i32 %449, %450
  %452 = add nsw i32 %448, %451
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds float, ptr %447, i64 %453
  %455 = load float, ptr %454, align 4, !tbaa !11
  store float %455, ptr %23, align 4, !tbaa !11
  %456 = load float, ptr %23, align 4, !tbaa !11
  %457 = fcmp oge float %456, 0.000000e+00
  br i1 %457, label %458, label %460

458:                                              ; preds = %436
  %459 = load float, ptr %23, align 4, !tbaa !11
  br label %463

460:                                              ; preds = %436
  %461 = load float, ptr %23, align 4, !tbaa !11
  %462 = fneg float %461
  br label %463

463:                                              ; preds = %460, %458
  %464 = phi float [ %459, %458 ], [ %462, %460 ]
  store float %464, ptr %25, align 4, !tbaa !11
  %465 = load float, ptr %24, align 4, !tbaa !11
  %466 = load float, ptr %25, align 4, !tbaa !11
  %467 = fcmp oge float %465, %466
  br i1 %467, label %468, label %470

468:                                              ; preds = %463
  %469 = load float, ptr %24, align 4, !tbaa !11
  br label %472

470:                                              ; preds = %463
  %471 = load float, ptr %25, align 4, !tbaa !11
  br label %472

472:                                              ; preds = %470, %468
  %473 = phi float [ %469, %468 ], [ %471, %470 ]
  %474 = load ptr, ptr %14, align 8, !tbaa !5
  %475 = load i32, ptr %32, align 4, !tbaa !9
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds float, ptr %474, i64 %476
  store float %473, ptr %477, align 4, !tbaa !11
  %478 = load ptr, ptr %16, align 8, !tbaa !5
  %479 = load float, ptr %478, align 4, !tbaa !11
  store float %479, ptr %24, align 4, !tbaa !11
  %480 = load ptr, ptr %12, align 8, !tbaa !5
  %481 = load i32, ptr %31, align 4, !tbaa !9
  %482 = load i32, ptr %32, align 4, !tbaa !9
  %483 = load i32, ptr %19, align 4, !tbaa !9
  %484 = mul nsw i32 %482, %483
  %485 = add nsw i32 %481, %484
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds float, ptr %480, i64 %486
  %488 = load float, ptr %487, align 4, !tbaa !11
  store float %488, ptr %23, align 4, !tbaa !11
  %489 = load float, ptr %23, align 4, !tbaa !11
  %490 = fcmp oge float %489, 0.000000e+00
  br i1 %490, label %491, label %493

491:                                              ; preds = %472
  %492 = load float, ptr %23, align 4, !tbaa !11
  br label %496

493:                                              ; preds = %472
  %494 = load float, ptr %23, align 4, !tbaa !11
  %495 = fneg float %494
  br label %496

496:                                              ; preds = %493, %491
  %497 = phi float [ %492, %491 ], [ %495, %493 ]
  store float %497, ptr %25, align 4, !tbaa !11
  %498 = load float, ptr %24, align 4, !tbaa !11
  %499 = load float, ptr %25, align 4, !tbaa !11
  %500 = fcmp oge float %498, %499
  br i1 %500, label %501, label %503

501:                                              ; preds = %496
  %502 = load float, ptr %24, align 4, !tbaa !11
  br label %505

503:                                              ; preds = %496
  %504 = load float, ptr %25, align 4, !tbaa !11
  br label %505

505:                                              ; preds = %503, %501
  %506 = phi float [ %502, %501 ], [ %504, %503 ]
  %507 = load ptr, ptr %16, align 8, !tbaa !5
  store float %506, ptr %507, align 4, !tbaa !11
  br label %508

508:                                              ; preds = %505
  %509 = load i32, ptr %31, align 4, !tbaa !9
  %510 = add nsw i32 %509, 1
  store i32 %510, ptr %31, align 4, !tbaa !9
  br label %401, !llvm.loop !17

511:                                              ; preds = %401
  br label %512

512:                                              ; preds = %511
  %513 = load i32, ptr %32, align 4, !tbaa !9
  %514 = add nsw i32 %513, 1
  store i32 %514, ptr %32, align 4, !tbaa !9
  br label %326, !llvm.loop !18

515:                                              ; preds = %326
  br label %516

516:                                              ; preds = %515, %322
  %517 = load ptr, ptr %11, align 8, !tbaa !5
  %518 = load i32, ptr %517, align 4, !tbaa !9
  store i32 %518, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %32, align 4, !tbaa !9
  br label %519

519:                                              ; preds = %534, %516
  %520 = load i32, ptr %32, align 4, !tbaa !9
  %521 = load i32, ptr %21, align 4, !tbaa !9
  %522 = icmp sle i32 %520, %521
  br i1 %522, label %523, label %537

523:                                              ; preds = %519
  %524 = load ptr, ptr %14, align 8, !tbaa !5
  %525 = load i32, ptr %32, align 4, !tbaa !9
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds float, ptr %524, i64 %526
  %528 = load float, ptr %527, align 4, !tbaa !11
  %529 = fdiv float 1.000000e+00, %528
  %530 = load ptr, ptr %14, align 8, !tbaa !5
  %531 = load i32, ptr %32, align 4, !tbaa !9
  %532 = sext i32 %531 to i64
  %533 = getelementptr inbounds float, ptr %530, i64 %532
  store float %529, ptr %533, align 4, !tbaa !11
  br label %534

534:                                              ; preds = %523
  %535 = load i32, ptr %32, align 4, !tbaa !9
  %536 = add nsw i32 %535, 1
  store i32 %536, ptr %32, align 4, !tbaa !9
  br label %519, !llvm.loop !19

537:                                              ; preds = %519
  %538 = load ptr, ptr %11, align 8, !tbaa !5
  %539 = load i32, ptr %538, align 4, !tbaa !9
  %540 = sitofp i32 %539 to float
  %541 = fmul float %540, 2.000000e+00
  %542 = fpext float %541 to double
  %543 = call double @sqrt(double noundef %542) #5
  %544 = fdiv double 1.000000e+00, %543
  %545 = fptrunc double %544 to float
  store float %545, ptr %46, align 4, !tbaa !11
  store i32 1, ptr %27, align 4, !tbaa !9
  br label %546

546:                                              ; preds = %1193, %537
  %547 = load i32, ptr %27, align 4, !tbaa !9
  %548 = icmp sle i32 %547, 100
  br i1 %548, label %549, label %1196

549:                                              ; preds = %546
  store float 0.000000e+00, ptr %35, align 4, !tbaa !11
  store float 0.000000e+00, ptr %39, align 4, !tbaa !11
  %550 = load ptr, ptr %11, align 8, !tbaa !5
  %551 = load i32, ptr %550, align 4, !tbaa !9
  store i32 %551, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %552

552:                                              ; preds = %561, %549
  %553 = load i32, ptr %31, align 4, !tbaa !9
  %554 = load i32, ptr %21, align 4, !tbaa !9
  %555 = icmp sle i32 %553, %554
  br i1 %555, label %556, label %564

556:                                              ; preds = %552
  %557 = load ptr, ptr %17, align 8, !tbaa !5
  %558 = load i32, ptr %31, align 4, !tbaa !9
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds float, ptr %557, i64 %559
  store float 0.000000e+00, ptr %560, align 4, !tbaa !11
  br label %561

561:                                              ; preds = %556
  %562 = load i32, ptr %31, align 4, !tbaa !9
  %563 = add nsw i32 %562, 1
  store i32 %563, ptr %31, align 4, !tbaa !9
  br label %552, !llvm.loop !20

564:                                              ; preds = %552
  %565 = load i32, ptr %41, align 4, !tbaa !9
  %566 = icmp ne i32 %565, 0
  br i1 %566, label %567, label %677

567:                                              ; preds = %564
  %568 = load ptr, ptr %11, align 8, !tbaa !5
  %569 = load i32, ptr %568, align 4, !tbaa !9
  store i32 %569, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %32, align 4, !tbaa !9
  br label %570

570:                                              ; preds = %673, %567
  %571 = load i32, ptr %32, align 4, !tbaa !9
  %572 = load i32, ptr %21, align 4, !tbaa !9
  %573 = icmp sle i32 %571, %572
  br i1 %573, label %574, label %676

574:                                              ; preds = %570
  %575 = load i32, ptr %32, align 4, !tbaa !9
  %576 = sub nsw i32 %575, 1
  store i32 %576, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %577

577:                                              ; preds = %640, %574
  %578 = load i32, ptr %31, align 4, !tbaa !9
  %579 = load i32, ptr %22, align 4, !tbaa !9
  %580 = icmp sle i32 %578, %579
  br i1 %580, label %581, label %643

581:                                              ; preds = %577
  %582 = load ptr, ptr %12, align 8, !tbaa !5
  %583 = load i32, ptr %31, align 4, !tbaa !9
  %584 = load i32, ptr %32, align 4, !tbaa !9
  %585 = load i32, ptr %19, align 4, !tbaa !9
  %586 = mul nsw i32 %584, %585
  %587 = add nsw i32 %583, %586
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds float, ptr %582, i64 %588
  %590 = load float, ptr %589, align 4, !tbaa !11
  store float %590, ptr %23, align 4, !tbaa !11
  %591 = load float, ptr %23, align 4, !tbaa !11
  %592 = fcmp oge float %591, 0.000000e+00
  br i1 %592, label %593, label %595

593:                                              ; preds = %581
  %594 = load float, ptr %23, align 4, !tbaa !11
  br label %598

595:                                              ; preds = %581
  %596 = load float, ptr %23, align 4, !tbaa !11
  %597 = fneg float %596
  br label %598

598:                                              ; preds = %595, %593
  %599 = phi float [ %594, %593 ], [ %597, %595 ]
  %600 = load ptr, ptr %14, align 8, !tbaa !5
  %601 = load i32, ptr %32, align 4, !tbaa !9
  %602 = sext i32 %601 to i64
  %603 = getelementptr inbounds float, ptr %600, i64 %602
  %604 = load float, ptr %603, align 4, !tbaa !11
  %605 = load ptr, ptr %17, align 8, !tbaa !5
  %606 = load i32, ptr %31, align 4, !tbaa !9
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds float, ptr %605, i64 %607
  %609 = load float, ptr %608, align 4, !tbaa !11
  %610 = call float @llvm.fmuladd.f32(float %599, float %604, float %609)
  store float %610, ptr %608, align 4, !tbaa !11
  %611 = load ptr, ptr %12, align 8, !tbaa !5
  %612 = load i32, ptr %31, align 4, !tbaa !9
  %613 = load i32, ptr %32, align 4, !tbaa !9
  %614 = load i32, ptr %19, align 4, !tbaa !9
  %615 = mul nsw i32 %613, %614
  %616 = add nsw i32 %612, %615
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds float, ptr %611, i64 %617
  %619 = load float, ptr %618, align 4, !tbaa !11
  store float %619, ptr %23, align 4, !tbaa !11
  %620 = load float, ptr %23, align 4, !tbaa !11
  %621 = fcmp oge float %620, 0.000000e+00
  br i1 %621, label %622, label %624

622:                                              ; preds = %598
  %623 = load float, ptr %23, align 4, !tbaa !11
  br label %627

624:                                              ; preds = %598
  %625 = load float, ptr %23, align 4, !tbaa !11
  %626 = fneg float %625
  br label %627

627:                                              ; preds = %624, %622
  %628 = phi float [ %623, %622 ], [ %626, %624 ]
  %629 = load ptr, ptr %14, align 8, !tbaa !5
  %630 = load i32, ptr %31, align 4, !tbaa !9
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds float, ptr %629, i64 %631
  %633 = load float, ptr %632, align 4, !tbaa !11
  %634 = load ptr, ptr %17, align 8, !tbaa !5
  %635 = load i32, ptr %32, align 4, !tbaa !9
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds float, ptr %634, i64 %636
  %638 = load float, ptr %637, align 4, !tbaa !11
  %639 = call float @llvm.fmuladd.f32(float %628, float %633, float %638)
  store float %639, ptr %637, align 4, !tbaa !11
  br label %640

640:                                              ; preds = %627
  %641 = load i32, ptr %31, align 4, !tbaa !9
  %642 = add nsw i32 %641, 1
  store i32 %642, ptr %31, align 4, !tbaa !9
  br label %577, !llvm.loop !21

643:                                              ; preds = %577
  %644 = load ptr, ptr %12, align 8, !tbaa !5
  %645 = load i32, ptr %32, align 4, !tbaa !9
  %646 = load i32, ptr %32, align 4, !tbaa !9
  %647 = load i32, ptr %19, align 4, !tbaa !9
  %648 = mul nsw i32 %646, %647
  %649 = add nsw i32 %645, %648
  %650 = sext i32 %649 to i64
  %651 = getelementptr inbounds float, ptr %644, i64 %650
  %652 = load float, ptr %651, align 4, !tbaa !11
  store float %652, ptr %23, align 4, !tbaa !11
  %653 = load float, ptr %23, align 4, !tbaa !11
  %654 = fcmp oge float %653, 0.000000e+00
  br i1 %654, label %655, label %657

655:                                              ; preds = %643
  %656 = load float, ptr %23, align 4, !tbaa !11
  br label %660

657:                                              ; preds = %643
  %658 = load float, ptr %23, align 4, !tbaa !11
  %659 = fneg float %658
  br label %660

660:                                              ; preds = %657, %655
  %661 = phi float [ %656, %655 ], [ %659, %657 ]
  %662 = load ptr, ptr %14, align 8, !tbaa !5
  %663 = load i32, ptr %32, align 4, !tbaa !9
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds float, ptr %662, i64 %664
  %666 = load float, ptr %665, align 4, !tbaa !11
  %667 = load ptr, ptr %17, align 8, !tbaa !5
  %668 = load i32, ptr %32, 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 = call float @llvm.fmuladd.f32(float %661, float %666, float %671)
  store float %672, ptr %670, align 4, !tbaa !11
  br label %673

673:                                              ; preds = %660
  %674 = load i32, ptr %32, align 4, !tbaa !9
  %675 = add nsw i32 %674, 1
  store i32 %675, ptr %32, align 4, !tbaa !9
  br label %570, !llvm.loop !22

676:                                              ; preds = %570
  br label %789

677:                                              ; preds = %564
  %678 = load ptr, ptr %11, align 8, !tbaa !5
  %679 = load i32, ptr %678, align 4, !tbaa !9
  store i32 %679, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %32, align 4, !tbaa !9
  br label %680

680:                                              ; preds = %785, %677
  %681 = load i32, ptr %32, align 4, !tbaa !9
  %682 = load i32, ptr %21, align 4, !tbaa !9
  %683 = icmp sle i32 %681, %682
  br i1 %683, label %684, label %788

684:                                              ; preds = %680
  %685 = load ptr, ptr %12, align 8, !tbaa !5
  %686 = load i32, ptr %32, align 4, !tbaa !9
  %687 = load i32, ptr %32, align 4, !tbaa !9
  %688 = load i32, ptr %19, align 4, !tbaa !9
  %689 = mul nsw i32 %687, %688
  %690 = add nsw i32 %686, %689
  %691 = sext i32 %690 to i64
  %692 = getelementptr inbounds float, ptr %685, i64 %691
  %693 = load float, ptr %692, align 4, !tbaa !11
  store float %693, ptr %23, align 4, !tbaa !11
  %694 = load float, ptr %23, align 4, !tbaa !11
  %695 = fcmp oge float %694, 0.000000e+00
  br i1 %695, label %696, label %698

696:                                              ; preds = %684
  %697 = load float, ptr %23, align 4, !tbaa !11
  br label %701

698:                                              ; preds = %684
  %699 = load float, ptr %23, align 4, !tbaa !11
  %700 = fneg float %699
  br label %701

701:                                              ; preds = %698, %696
  %702 = phi float [ %697, %696 ], [ %700, %698 ]
  %703 = load ptr, ptr %14, align 8, !tbaa !5
  %704 = load i32, ptr %32, align 4, !tbaa !9
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds float, ptr %703, i64 %705
  %707 = load float, ptr %706, align 4, !tbaa !11
  %708 = load ptr, ptr %17, align 8, !tbaa !5
  %709 = load i32, ptr %32, align 4, !tbaa !9
  %710 = sext i32 %709 to i64
  %711 = getelementptr inbounds float, ptr %708, i64 %710
  %712 = load float, ptr %711, align 4, !tbaa !11
  %713 = call float @llvm.fmuladd.f32(float %702, float %707, float %712)
  store float %713, ptr %711, align 4, !tbaa !11
  %714 = load ptr, ptr %11, align 8, !tbaa !5
  %715 = load i32, ptr %714, align 4, !tbaa !9
  store i32 %715, ptr %22, align 4, !tbaa !9
  %716 = load i32, ptr %32, align 4, !tbaa !9
  %717 = add nsw i32 %716, 1
  store i32 %717, ptr %31, align 4, !tbaa !9
  br label %718

718:                                              ; preds = %781, %701
  %719 = load i32, ptr %31, align 4, !tbaa !9
  %720 = load i32, ptr %22, align 4, !tbaa !9
  %721 = icmp sle i32 %719, %720
  br i1 %721, label %722, label %784

722:                                              ; preds = %718
  %723 = load ptr, ptr %12, align 8, !tbaa !5
  %724 = load i32, ptr %31, align 4, !tbaa !9
  %725 = load i32, ptr %32, align 4, !tbaa !9
  %726 = load i32, ptr %19, align 4, !tbaa !9
  %727 = mul nsw i32 %725, %726
  %728 = add nsw i32 %724, %727
  %729 = sext i32 %728 to i64
  %730 = getelementptr inbounds float, ptr %723, i64 %729
  %731 = load float, ptr %730, align 4, !tbaa !11
  store float %731, ptr %23, align 4, !tbaa !11
  %732 = load float, ptr %23, align 4, !tbaa !11
  %733 = fcmp oge float %732, 0.000000e+00
  br i1 %733, label %734, label %736

734:                                              ; preds = %722
  %735 = load float, ptr %23, align 4, !tbaa !11
  br label %739

736:                                              ; preds = %722
  %737 = load float, ptr %23, align 4, !tbaa !11
  %738 = fneg float %737
  br label %739

739:                                              ; preds = %736, %734
  %740 = phi float [ %735, %734 ], [ %738, %736 ]
  %741 = load ptr, ptr %14, align 8, !tbaa !5
  %742 = load i32, ptr %32, align 4, !tbaa !9
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds float, ptr %741, i64 %743
  %745 = load float, ptr %744, align 4, !tbaa !11
  %746 = load ptr, ptr %17, align 8, !tbaa !5
  %747 = load i32, ptr %31, align 4, !tbaa !9
  %748 = sext i32 %747 to i64
  %749 = getelementptr inbounds float, ptr %746, i64 %748
  %750 = load float, ptr %749, align 4, !tbaa !11
  %751 = call float @llvm.fmuladd.f32(float %740, float %745, float %750)
  store float %751, ptr %749, align 4, !tbaa !11
  %752 = load ptr, ptr %12, align 8, !tbaa !5
  %753 = load i32, ptr %31, align 4, !tbaa !9
  %754 = load i32, ptr %32, align 4, !tbaa !9
  %755 = load i32, ptr %19, align 4, !tbaa !9
  %756 = mul nsw i32 %754, %755
  %757 = add nsw i32 %753, %756
  %758 = sext i32 %757 to i64
  %759 = getelementptr inbounds float, ptr %752, i64 %758
  %760 = load float, ptr %759, align 4, !tbaa !11
  store float %760, ptr %23, align 4, !tbaa !11
  %761 = load float, ptr %23, align 4, !tbaa !11
  %762 = fcmp oge float %761, 0.000000e+00
  br i1 %762, label %763, label %765

763:                                              ; preds = %739
  %764 = load float, ptr %23, align 4, !tbaa !11
  br label %768

765:                                              ; preds = %739
  %766 = load float, ptr %23, align 4, !tbaa !11
  %767 = fneg float %766
  br label %768

768:                                              ; preds = %765, %763
  %769 = phi float [ %764, %763 ], [ %767, %765 ]
  %770 = load ptr, ptr %14, align 8, !tbaa !5
  %771 = load i32, ptr %31, align 4, !tbaa !9
  %772 = sext i32 %771 to i64
  %773 = getelementptr inbounds float, ptr %770, i64 %772
  %774 = load float, ptr %773, align 4, !tbaa !11
  %775 = load ptr, ptr %17, align 8, !tbaa !5
  %776 = load i32, ptr %32, align 4, !tbaa !9
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds float, ptr %775, i64 %777
  %779 = load float, ptr %778, align 4, !tbaa !11
  %780 = call float @llvm.fmuladd.f32(float %769, float %774, float %779)
  store float %780, ptr %778, align 4, !tbaa !11
  br label %781

781:                                              ; preds = %768
  %782 = load i32, ptr %31, align 4, !tbaa !9
  %783 = add nsw i32 %782, 1
  store i32 %783, ptr %31, align 4, !tbaa !9
  br label %718, !llvm.loop !23

784:                                              ; preds = %718
  br label %785

785:                                              ; preds = %784
  %786 = load i32, ptr %32, align 4, !tbaa !9
  %787 = add nsw i32 %786, 1
  store i32 %787, ptr %32, align 4, !tbaa !9
  br label %680, !llvm.loop !24

788:                                              ; preds = %680
  br label %789

789:                                              ; preds = %788, %676
  store float 0.000000e+00, ptr %44, align 4, !tbaa !11
  %790 = load ptr, ptr %11, align 8, !tbaa !5
  %791 = load i32, ptr %790, align 4, !tbaa !9
  store i32 %791, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %792

792:                                              ; preds = %809, %789
  %793 = load i32, ptr %31, align 4, !tbaa !9
  %794 = load i32, ptr %21, align 4, !tbaa !9
  %795 = icmp sle i32 %793, %794
  br i1 %795, label %796, label %812

796:                                              ; preds = %792
  %797 = load ptr, ptr %14, align 8, !tbaa !5
  %798 = load i32, ptr %31, align 4, !tbaa !9
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds float, ptr %797, i64 %799
  %801 = load float, ptr %800, align 4, !tbaa !11
  %802 = load ptr, ptr %17, align 8, !tbaa !5
  %803 = load i32, ptr %31, align 4, !tbaa !9
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds float, ptr %802, i64 %804
  %806 = load float, ptr %805, align 4, !tbaa !11
  %807 = load float, ptr %44, align 4, !tbaa !11
  %808 = call float @llvm.fmuladd.f32(float %801, float %806, float %807)
  store float %808, ptr %44, align 4, !tbaa !11
  br label %809

809:                                              ; preds = %796
  %810 = load i32, ptr %31, align 4, !tbaa !9
  %811 = add nsw i32 %810, 1
  store i32 %811, ptr %31, align 4, !tbaa !9
  br label %792, !llvm.loop !25

812:                                              ; preds = %792
  %813 = load ptr, ptr %11, align 8, !tbaa !5
  %814 = load i32, ptr %813, align 4, !tbaa !9
  %815 = sitofp i32 %814 to float
  %816 = load float, ptr %44, align 4, !tbaa !11
  %817 = fdiv float %816, %815
  store float %817, ptr %44, align 4, !tbaa !11
  store float 0.000000e+00, ptr %45, align 4, !tbaa !11
  %818 = load ptr, ptr %11, align 8, !tbaa !5
  %819 = load i32, ptr %818, align 4, !tbaa !9
  %820 = shl i32 %819, 1
  store i32 %820, ptr %21, align 4, !tbaa !9
  %821 = load ptr, ptr %11, align 8, !tbaa !5
  %822 = load i32, ptr %821, align 4, !tbaa !9
  %823 = add nsw i32 %822, 1
  store i32 %823, ptr %31, align 4, !tbaa !9
  br label %824

824:                                              ; preds = %852, %812
  %825 = load i32, ptr %31, align 4, !tbaa !9
  %826 = load i32, ptr %21, align 4, !tbaa !9
  %827 = icmp sle i32 %825, %826
  br i1 %827, label %828, label %855

828:                                              ; preds = %824
  %829 = load ptr, ptr %14, align 8, !tbaa !5
  %830 = load i32, ptr %31, align 4, !tbaa !9
  %831 = load ptr, ptr %11, align 8, !tbaa !5
  %832 = load i32, ptr %831, align 4, !tbaa !9
  %833 = sub nsw i32 %830, %832
  %834 = sext i32 %833 to i64
  %835 = getelementptr inbounds float, ptr %829, i64 %834
  %836 = load float, ptr %835, align 4, !tbaa !11
  %837 = load ptr, ptr %17, align 8, !tbaa !5
  %838 = load i32, ptr %31, align 4, !tbaa !9
  %839 = load ptr, ptr %11, align 8, !tbaa !5
  %840 = load i32, ptr %839, align 4, !tbaa !9
  %841 = sub nsw i32 %838, %840
  %842 = sext i32 %841 to i64
  %843 = getelementptr inbounds float, ptr %837, i64 %842
  %844 = load float, ptr %843, align 4, !tbaa !11
  %845 = load float, ptr %44, align 4, !tbaa !11
  %846 = fneg float %845
  %847 = call float @llvm.fmuladd.f32(float %836, float %844, float %846)
  %848 = load ptr, ptr %17, align 8, !tbaa !5
  %849 = load i32, ptr %31, align 4, !tbaa !9
  %850 = sext i32 %849 to i64
  %851 = getelementptr inbounds float, ptr %848, i64 %850
  store float %847, ptr %851, align 4, !tbaa !11
  br label %852

852:                                              ; preds = %828
  %853 = load i32, ptr %31, align 4, !tbaa !9
  %854 = add nsw i32 %853, 1
  store i32 %854, ptr %31, align 4, !tbaa !9
  br label %824, !llvm.loop !26

855:                                              ; preds = %824
  %856 = load ptr, ptr %11, align 8, !tbaa !5
  %857 = load ptr, ptr %17, align 8, !tbaa !5
  %858 = load ptr, ptr %11, align 8, !tbaa !5
  %859 = load i32, ptr %858, align 4, !tbaa !9
  %860 = add nsw i32 %859, 1
  %861 = sext i32 %860 to i64
  %862 = getelementptr inbounds float, ptr %857, i64 %861
  call void @slassq_(ptr noundef %856, ptr noundef %862, ptr noundef @c__1, ptr noundef %35, ptr noundef %39)
  %863 = load float, ptr %35, align 4, !tbaa !11
  %864 = fpext float %863 to double
  %865 = load float, ptr %39, align 4, !tbaa !11
  %866 = load ptr, ptr %11, align 8, !tbaa !5
  %867 = load i32, ptr %866, align 4, !tbaa !9
  %868 = sitofp i32 %867 to float
  %869 = fdiv float %865, %868
  %870 = fpext float %869 to double
  %871 = call double @sqrt(double noundef %870) #5
  %872 = fmul double %864, %871
  %873 = fptrunc double %872 to float
  store float %873, ptr %45, align 4, !tbaa !11
  %874 = load float, ptr %45, align 4, !tbaa !11
  %875 = load float, ptr %46, align 4, !tbaa !11
  %876 = load float, ptr %44, align 4, !tbaa !11
  %877 = fmul float %875, %876
  %878 = fcmp olt float %874, %877
  br i1 %878, label %879, label %880

879:                                              ; preds = %855
  br label %1197

880:                                              ; preds = %855
  %881 = load ptr, ptr %11, align 8, !tbaa !5
  %882 = load i32, ptr %881, align 4, !tbaa !9
  store i32 %882, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %883

883:                                              ; preds = %1189, %880
  %884 = load i32, ptr %31, align 4, !tbaa !9
  %885 = load i32, ptr %21, align 4, !tbaa !9
  %886 = icmp sle i32 %884, %885
  br i1 %886, label %887, label %1192

887:                                              ; preds = %883
  %888 = load ptr, ptr %12, align 8, !tbaa !5
  %889 = load i32, ptr %31, align 4, !tbaa !9
  %890 = load i32, ptr %31, align 4, !tbaa !9
  %891 = load i32, ptr %19, align 4, !tbaa !9
  %892 = mul nsw i32 %890, %891
  %893 = add nsw i32 %889, %892
  %894 = sext i32 %893 to i64
  %895 = getelementptr inbounds float, ptr %888, i64 %894
  %896 = load float, ptr %895, align 4, !tbaa !11
  store float %896, ptr %23, align 4, !tbaa !11
  %897 = load float, ptr %23, align 4, !tbaa !11
  %898 = fcmp oge float %897, 0.000000e+00
  br i1 %898, label %899, label %901

899:                                              ; preds = %887
  %900 = load float, ptr %23, align 4, !tbaa !11
  br label %904

901:                                              ; preds = %887
  %902 = load float, ptr %23, align 4, !tbaa !11
  %903 = fneg float %902
  br label %904

904:                                              ; preds = %901, %899
  %905 = phi float [ %900, %899 ], [ %903, %901 ]
  store float %905, ptr %33, align 4, !tbaa !11
  %906 = load ptr, ptr %14, align 8, !tbaa !5
  %907 = load i32, ptr %31, align 4, !tbaa !9
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds float, ptr %906, i64 %908
  %910 = load float, ptr %909, align 4, !tbaa !11
  store float %910, ptr %40, align 4, !tbaa !11
  %911 = load ptr, ptr %11, align 8, !tbaa !5
  %912 = load i32, ptr %911, align 4, !tbaa !9
  %913 = sub nsw i32 %912, 1
  %914 = sitofp i32 %913 to float
  %915 = load float, ptr %33, align 4, !tbaa !11
  %916 = fmul float %914, %915
  store float %916, ptr %38, align 4, !tbaa !11
  %917 = load ptr, ptr %11, align 8, !tbaa !5
  %918 = load i32, ptr %917, align 4, !tbaa !9
  %919 = sub nsw i32 %918, 2
  %920 = sitofp i32 %919 to float
  %921 = load ptr, ptr %17, align 8, !tbaa !5
  %922 = load i32, ptr %31, align 4, !tbaa !9
  %923 = sext i32 %922 to i64
  %924 = getelementptr inbounds float, ptr %921, i64 %923
  %925 = load float, ptr %924, align 4, !tbaa !11
  %926 = load float, ptr %33, align 4, !tbaa !11
  %927 = load float, ptr %40, align 4, !tbaa !11
  %928 = fneg float %926
  %929 = call float @llvm.fmuladd.f32(float %928, float %927, float %925)
  %930 = fmul float %920, %929
  store float %930, ptr %37, align 4, !tbaa !11
  %931 = load float, ptr %33, align 4, !tbaa !11
  %932 = load float, ptr %40, align 4, !tbaa !11
  %933 = fmul float %931, %932
  %934 = fneg float %933
  %935 = load float, ptr %40, align 4, !tbaa !11
  %936 = load ptr, ptr %17, align 8, !tbaa !5
  %937 = load i32, ptr %31, align 4, !tbaa !9
  %938 = sext i32 %937 to i64
  %939 = getelementptr inbounds float, ptr %936, i64 %938
  %940 = load float, ptr %939, align 4, !tbaa !11
  %941 = fmul float %940, 2.000000e+00
  %942 = load float, ptr %40, align 4, !tbaa !11
  %943 = fmul float %941, %942
  %944 = call float @llvm.fmuladd.f32(float %934, float %935, float %943)
  %945 = load ptr, ptr %11, align 8, !tbaa !5
  %946 = load i32, ptr %945, align 4, !tbaa !9
  %947 = sitofp i32 %946 to float
  %948 = load float, ptr %44, align 4, !tbaa !11
  %949 = fneg float %947
  %950 = call float @llvm.fmuladd.f32(float %949, float %948, float %944)
  store float %950, ptr %36, align 4, !tbaa !11
  %951 = load float, ptr %37, align 4, !tbaa !11
  %952 = load float, ptr %37, align 4, !tbaa !11
  %953 = load float, ptr %36, align 4, !tbaa !11
  %954 = fmul float %953, 4.000000e+00
  %955 = load float, ptr %38, align 4, !tbaa !11
  %956 = fmul float %954, %955
  %957 = fneg float %956
  %958 = call float @llvm.fmuladd.f32(float %951, float %952, float %957)
  store float %958, ptr %30, align 4, !tbaa !11
  %959 = load float, ptr %30, align 4, !tbaa !11
  %960 = fcmp ole float %959, 0.000000e+00
  br i1 %960, label %961, label %963

961:                                              ; preds = %904
  %962 = load ptr, ptr %18, align 8, !tbaa !5
  store i32 -1, ptr %962, align 4, !tbaa !9
  store i32 1, ptr %47, align 4
  br label %1294

963:                                              ; preds = %904
  %964 = load float, ptr %36, align 4, !tbaa !11
  %965 = fmul float %964, -2.000000e+00
  %966 = fpext float %965 to double
  %967 = load float, ptr %37, align 4, !tbaa !11
  %968 = fpext float %967 to double
  %969 = load float, ptr %30, align 4, !tbaa !11
  %970 = fpext float %969 to double
  %971 = call double @sqrt(double noundef %970) #5
  %972 = fadd double %968, %971
  %973 = fdiv double %966, %972
  %974 = fptrunc double %973 to float
  store float %974, ptr %40, align 4, !tbaa !11
  %975 = load float, ptr %40, align 4, !tbaa !11
  %976 = load ptr, ptr %14, align 8, !tbaa !5
  %977 = load i32, ptr %31, align 4, !tbaa !9
  %978 = sext i32 %977 to i64
  %979 = getelementptr inbounds float, ptr %976, i64 %978
  %980 = load float, ptr %979, align 4, !tbaa !11
  %981 = fsub float %975, %980
  store float %981, ptr %30, align 4, !tbaa !11
  store float 0.000000e+00, ptr %34, align 4, !tbaa !11
  %982 = load i32, ptr %41, align 4, !tbaa !9
  %983 = icmp ne i32 %982, 0
  br i1 %983, label %984, label %1076

984:                                              ; preds = %963
  %985 = load i32, ptr %31, align 4, !tbaa !9
  store i32 %985, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %32, align 4, !tbaa !9
  br label %986

986:                                              ; preds = %1025, %984
  %987 = load i32, ptr %32, align 4, !tbaa !9
  %988 = load i32, ptr %22, align 4, !tbaa !9
  %989 = icmp sle i32 %987, %988
  br i1 %989, label %990, label %1028

990:                                              ; preds = %986
  %991 = load ptr, ptr %12, align 8, !tbaa !5
  %992 = load i32, ptr %32, align 4, !tbaa !9
  %993 = load i32, ptr %31, align 4, !tbaa !9
  %994 = load i32, ptr %19, align 4, !tbaa !9
  %995 = mul nsw i32 %993, %994
  %996 = add nsw i32 %992, %995
  %997 = sext i32 %996 to i64
  %998 = getelementptr inbounds float, ptr %991, i64 %997
  %999 = load float, ptr %998, align 4, !tbaa !11
  store float %999, ptr %23, align 4, !tbaa !11
  %1000 = load float, ptr %23, align 4, !tbaa !11
  %1001 = fcmp oge float %1000, 0.000000e+00
  br i1 %1001, label %1002, label %1004

1002:                                             ; preds = %990
  %1003 = load float, ptr %23, align 4, !tbaa !11
  br label %1007

1004:                                             ; preds = %990
  %1005 = load float, ptr %23, align 4, !tbaa !11
  %1006 = fneg float %1005
  br label %1007

1007:                                             ; preds = %1004, %1002
  %1008 = phi float [ %1003, %1002 ], [ %1006, %1004 ]
  store float %1008, ptr %33, align 4, !tbaa !11
  %1009 = load ptr, ptr %14, align 8, !tbaa !5
  %1010 = load i32, ptr %32, align 4, !tbaa !9
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds float, ptr %1009, i64 %1011
  %1013 = load float, ptr %1012, align 4, !tbaa !11
  %1014 = load float, ptr %33, align 4, !tbaa !11
  %1015 = load float, ptr %34, align 4, !tbaa !11
  %1016 = call float @llvm.fmuladd.f32(float %1013, float %1014, float %1015)
  store float %1016, ptr %34, align 4, !tbaa !11
  %1017 = load float, ptr %30, align 4, !tbaa !11
  %1018 = load float, ptr %33, align 4, !tbaa !11
  %1019 = load ptr, ptr %17, align 8, !tbaa !5
  %1020 = load i32, ptr %32, align 4, !tbaa !9
  %1021 = sext i32 %1020 to i64
  %1022 = getelementptr inbounds float, ptr %1019, i64 %1021
  %1023 = load float, ptr %1022, align 4, !tbaa !11
  %1024 = call float @llvm.fmuladd.f32(float %1017, float %1018, float %1023)
  store float %1024, ptr %1022, align 4, !tbaa !11
  br label %1025

1025:                                             ; preds = %1007
  %1026 = load i32, ptr %32, align 4, !tbaa !9
  %1027 = add nsw i32 %1026, 1
  store i32 %1027, ptr %32, align 4, !tbaa !9
  br label %986, !llvm.loop !27

1028:                                             ; preds = %986
  %1029 = load ptr, ptr %11, align 8, !tbaa !5
  %1030 = load i32, ptr %1029, align 4, !tbaa !9
  store i32 %1030, ptr %22, align 4, !tbaa !9
  %1031 = load i32, ptr %31, align 4, !tbaa !9
  %1032 = add nsw i32 %1031, 1
  store i32 %1032, ptr %32, align 4, !tbaa !9
  br label %1033

1033:                                             ; preds = %1072, %1028
  %1034 = load i32, ptr %32, align 4, !tbaa !9
  %1035 = load i32, ptr %22, align 4, !tbaa !9
  %1036 = icmp sle i32 %1034, %1035
  br i1 %1036, label %1037, label %1075

1037:                                             ; preds = %1033
  %1038 = load ptr, ptr %12, align 8, !tbaa !5
  %1039 = load i32, ptr %31, align 4, !tbaa !9
  %1040 = load i32, ptr %32, align 4, !tbaa !9
  %1041 = load i32, ptr %19, align 4, !tbaa !9
  %1042 = mul nsw i32 %1040, %1041
  %1043 = add nsw i32 %1039, %1042
  %1044 = sext i32 %1043 to i64
  %1045 = getelementptr inbounds float, ptr %1038, i64 %1044
  %1046 = load float, ptr %1045, align 4, !tbaa !11
  store float %1046, ptr %23, align 4, !tbaa !11
  %1047 = load float, ptr %23, align 4, !tbaa !11
  %1048 = fcmp oge float %1047, 0.000000e+00
  br i1 %1048, label %1049, label %1051

1049:                                             ; preds = %1037
  %1050 = load float, ptr %23, align 4, !tbaa !11
  br label %1054

1051:                                             ; preds = %1037
  %1052 = load float, ptr %23, align 4, !tbaa !11
  %1053 = fneg float %1052
  br label %1054

1054:                                             ; preds = %1051, %1049
  %1055 = phi float [ %1050, %1049 ], [ %1053, %1051 ]
  store float %1055, ptr %33, align 4, !tbaa !11
  %1056 = load ptr, ptr %14, align 8, !tbaa !5
  %1057 = load i32, ptr %32, align 4, !tbaa !9
  %1058 = sext i32 %1057 to i64
  %1059 = getelementptr inbounds float, ptr %1056, i64 %1058
  %1060 = load float, ptr %1059, align 4, !tbaa !11
  %1061 = load float, ptr %33, align 4, !tbaa !11
  %1062 = load float, ptr %34, align 4, !tbaa !11
  %1063 = call float @llvm.fmuladd.f32(float %1060, float %1061, float %1062)
  store float %1063, ptr %34, align 4, !tbaa !11
  %1064 = load float, ptr %30, align 4, !tbaa !11
  %1065 = load float, ptr %33, align 4, !tbaa !11
  %1066 = load ptr, ptr %17, align 8, !tbaa !5
  %1067 = load i32, ptr %32, align 4, !tbaa !9
  %1068 = sext i32 %1067 to i64
  %1069 = getelementptr inbounds float, ptr %1066, i64 %1068
  %1070 = load float, ptr %1069, align 4, !tbaa !11
  %1071 = call float @llvm.fmuladd.f32(float %1064, float %1065, float %1070)
  store float %1071, ptr %1069, align 4, !tbaa !11
  br label %1072

1072:                                             ; preds = %1054
  %1073 = load i32, ptr %32, align 4, !tbaa !9
  %1074 = add nsw i32 %1073, 1
  store i32 %1074, ptr %32, align 4, !tbaa !9
  br label %1033, !llvm.loop !28

1075:                                             ; preds = %1033
  br label %1168

1076:                                             ; preds = %963
  %1077 = load i32, ptr %31, align 4, !tbaa !9
  store i32 %1077, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %32, align 4, !tbaa !9
  br label %1078

1078:                                             ; preds = %1117, %1076
  %1079 = load i32, ptr %32, align 4, !tbaa !9
  %1080 = load i32, ptr %22, align 4, !tbaa !9
  %1081 = icmp sle i32 %1079, %1080
  br i1 %1081, label %1082, label %1120

1082:                                             ; preds = %1078
  %1083 = load ptr, ptr %12, align 8, !tbaa !5
  %1084 = load i32, ptr %31, align 4, !tbaa !9
  %1085 = load i32, ptr %32, align 4, !tbaa !9
  %1086 = load i32, ptr %19, align 4, !tbaa !9
  %1087 = mul nsw i32 %1085, %1086
  %1088 = add nsw i32 %1084, %1087
  %1089 = sext i32 %1088 to i64
  %1090 = getelementptr inbounds float, ptr %1083, i64 %1089
  %1091 = load float, ptr %1090, align 4, !tbaa !11
  store float %1091, ptr %23, align 4, !tbaa !11
  %1092 = load float, ptr %23, align 4, !tbaa !11
  %1093 = fcmp oge float %1092, 0.000000e+00
  br i1 %1093, label %1094, label %1096

1094:                                             ; preds = %1082
  %1095 = load float, ptr %23, align 4, !tbaa !11
  br label %1099

1096:                                             ; preds = %1082
  %1097 = load float, ptr %23, align 4, !tbaa !11
  %1098 = fneg float %1097
  br label %1099

1099:                                             ; preds = %1096, %1094
  %1100 = phi float [ %1095, %1094 ], [ %1098, %1096 ]
  store float %1100, ptr %33, align 4, !tbaa !11
  %1101 = load ptr, ptr %14, align 8, !tbaa !5
  %1102 = load i32, ptr %32, align 4, !tbaa !9
  %1103 = sext i32 %1102 to i64
  %1104 = getelementptr inbounds float, ptr %1101, i64 %1103
  %1105 = load float, ptr %1104, align 4, !tbaa !11
  %1106 = load float, ptr %33, align 4, !tbaa !11
  %1107 = load float, ptr %34, align 4, !tbaa !11
  %1108 = call float @llvm.fmuladd.f32(float %1105, float %1106, float %1107)
  store float %1108, ptr %34, align 4, !tbaa !11
  %1109 = load float, ptr %30, align 4, !tbaa !11
  %1110 = load float, ptr %33, align 4, !tbaa !11
  %1111 = load ptr, ptr %17, align 8, !tbaa !5
  %1112 = load i32, ptr %32, align 4, !tbaa !9
  %1113 = sext i32 %1112 to i64
  %1114 = getelementptr inbounds float, ptr %1111, i64 %1113
  %1115 = load float, ptr %1114, align 4, !tbaa !11
  %1116 = call float @llvm.fmuladd.f32(float %1109, float %1110, float %1115)
  store float %1116, ptr %1114, align 4, !tbaa !11
  br label %1117

1117:                                             ; preds = %1099
  %1118 = load i32, ptr %32, align 4, !tbaa !9
  %1119 = add nsw i32 %1118, 1
  store i32 %1119, ptr %32, align 4, !tbaa !9
  br label %1078, !llvm.loop !29

1120:                                             ; preds = %1078
  %1121 = load ptr, ptr %11, align 8, !tbaa !5
  %1122 = load i32, ptr %1121, align 4, !tbaa !9
  store i32 %1122, ptr %22, align 4, !tbaa !9
  %1123 = load i32, ptr %31, align 4, !tbaa !9
  %1124 = add nsw i32 %1123, 1
  store i32 %1124, ptr %32, align 4, !tbaa !9
  br label %1125

1125:                                             ; preds = %1164, %1120
  %1126 = load i32, ptr %32, align 4, !tbaa !9
  %1127 = load i32, ptr %22, align 4, !tbaa !9
  %1128 = icmp sle i32 %1126, %1127
  br i1 %1128, label %1129, label %1167

1129:                                             ; preds = %1125
  %1130 = load ptr, ptr %12, align 8, !tbaa !5
  %1131 = load i32, ptr %32, align 4, !tbaa !9
  %1132 = load i32, ptr %31, align 4, !tbaa !9
  %1133 = load i32, ptr %19, align 4, !tbaa !9
  %1134 = mul nsw i32 %1132, %1133
  %1135 = add nsw i32 %1131, %1134
  %1136 = sext i32 %1135 to i64
  %1137 = getelementptr inbounds float, ptr %1130, i64 %1136
  %1138 = load float, ptr %1137, align 4, !tbaa !11
  store float %1138, ptr %23, align 4, !tbaa !11
  %1139 = load float, ptr %23, align 4, !tbaa !11
  %1140 = fcmp oge float %1139, 0.000000e+00
  br i1 %1140, label %1141, label %1143

1141:                                             ; preds = %1129
  %1142 = load float, ptr %23, align 4, !tbaa !11
  br label %1146

1143:                                             ; preds = %1129
  %1144 = load float, ptr %23, align 4, !tbaa !11
  %1145 = fneg float %1144
  br label %1146

1146:                                             ; preds = %1143, %1141
  %1147 = phi float [ %1142, %1141 ], [ %1145, %1143 ]
  store float %1147, ptr %33, align 4, !tbaa !11
  %1148 = load ptr, ptr %14, align 8, !tbaa !5
  %1149 = load i32, ptr %32, align 4, !tbaa !9
  %1150 = sext i32 %1149 to i64
  %1151 = getelementptr inbounds float, ptr %1148, i64 %1150
  %1152 = load float, ptr %1151, align 4, !tbaa !11
  %1153 = load float, ptr %33, align 4, !tbaa !11
  %1154 = load float, ptr %34, align 4, !tbaa !11
  %1155 = call float @llvm.fmuladd.f32(float %1152, float %1153, float %1154)
  store float %1155, ptr %34, align 4, !tbaa !11
  %1156 = load float, ptr %30, align 4, !tbaa !11
  %1157 = load float, ptr %33, align 4, !tbaa !11
  %1158 = load ptr, ptr %17, align 8, !tbaa !5
  %1159 = load i32, ptr %32, align 4, !tbaa !9
  %1160 = sext i32 %1159 to i64
  %1161 = getelementptr inbounds float, ptr %1158, i64 %1160
  %1162 = load float, ptr %1161, align 4, !tbaa !11
  %1163 = call float @llvm.fmuladd.f32(float %1156, float %1157, float %1162)
  store float %1163, ptr %1161, align 4, !tbaa !11
  br label %1164

1164:                                             ; preds = %1146
  %1165 = load i32, ptr %32, align 4, !tbaa !9
  %1166 = add nsw i32 %1165, 1
  store i32 %1166, ptr %32, align 4, !tbaa !9
  br label %1125, !llvm.loop !30

1167:                                             ; preds = %1125
  br label %1168

1168:                                             ; preds = %1167, %1075
  %1169 = load float, ptr %34, align 4, !tbaa !11
  %1170 = load ptr, ptr %17, align 8, !tbaa !5
  %1171 = load i32, ptr %31, align 4, !tbaa !9
  %1172 = sext i32 %1171 to i64
  %1173 = getelementptr inbounds float, ptr %1170, i64 %1172
  %1174 = load float, ptr %1173, align 4, !tbaa !11
  %1175 = fadd float %1169, %1174
  %1176 = load float, ptr %30, align 4, !tbaa !11
  %1177 = fmul float %1175, %1176
  %1178 = load ptr, ptr %11, align 8, !tbaa !5
  %1179 = load i32, ptr %1178, align 4, !tbaa !9
  %1180 = sitofp i32 %1179 to float
  %1181 = fdiv float %1177, %1180
  %1182 = load float, ptr %44, align 4, !tbaa !11
  %1183 = fadd float %1182, %1181
  store float %1183, ptr %44, align 4, !tbaa !11
  %1184 = load float, ptr %40, align 4, !tbaa !11
  %1185 = load ptr, ptr %14, align 8, !tbaa !5
  %1186 = load i32, ptr %31, align 4, !tbaa !9
  %1187 = sext i32 %1186 to i64
  %1188 = getelementptr inbounds float, ptr %1185, i64 %1187
  store float %1184, ptr %1188, align 4, !tbaa !11
  br label %1189

1189:                                             ; preds = %1168
  %1190 = load i32, ptr %31, align 4, !tbaa !9
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr %31, align 4, !tbaa !9
  br label %883, !llvm.loop !31

1192:                                             ; preds = %883
  br label %1193

1193:                                             ; preds = %1192
  %1194 = load i32, ptr %27, align 4, !tbaa !9
  %1195 = add nsw i32 %1194, 1
  store i32 %1195, ptr %27, align 4, !tbaa !9
  br label %546, !llvm.loop !32

1196:                                             ; preds = %546
  br label %1197

1197:                                             ; preds = %1196, %879
  %1198 = call float @slamch_(ptr noundef @.str.3)
  store float %1198, ptr %43, align 4, !tbaa !11
  %1199 = load float, ptr %43, align 4, !tbaa !11
  %1200 = fdiv float 1.000000e+00, %1199
  store float %1200, ptr %42, align 4, !tbaa !11
  %1201 = load float, ptr %42, align 4, !tbaa !11
  store float %1201, ptr %28, align 4, !tbaa !11
  store float 0.000000e+00, ptr %29, align 4, !tbaa !11
  %1202 = load float, ptr %44, align 4, !tbaa !11
  %1203 = fpext float %1202 to double
  %1204 = call double @sqrt(double noundef %1203) #5
  %1205 = fdiv double 1.000000e+00, %1204
  %1206 = fptrunc double %1205 to float
  store float %1206, ptr %33, align 4, !tbaa !11
  %1207 = call float @slamch_(ptr noundef @.str.4)
  store float %1207, ptr %26, align 4, !tbaa !11
  %1208 = load float, ptr %26, align 4, !tbaa !11
  %1209 = fpext float %1208 to double
  %1210 = call double @log(double noundef %1209) #5
  %1211 = fdiv double 1.000000e+00, %1210
  %1212 = fptrunc double %1211 to float
  store float %1212, ptr %34, align 4, !tbaa !11
  %1213 = load ptr, ptr %11, align 8, !tbaa !5
  %1214 = load i32, ptr %1213, align 4, !tbaa !9
  store i32 %1214, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %31, align 4, !tbaa !9
  br label %1215

1215:                                             ; preds = %1270, %1197
  %1216 = load i32, ptr %31, align 4, !tbaa !9
  %1217 = load i32, ptr %21, align 4, !tbaa !9
  %1218 = icmp sle i32 %1216, %1217
  br i1 %1218, label %1219, label %1273

1219:                                             ; preds = %1215
  %1220 = load float, ptr %34, align 4, !tbaa !11
  %1221 = fpext float %1220 to double
  %1222 = load ptr, ptr %14, align 8, !tbaa !5
  %1223 = load i32, ptr %31, align 4, !tbaa !9
  %1224 = sext i32 %1223 to i64
  %1225 = getelementptr inbounds float, ptr %1222, i64 %1224
  %1226 = load float, ptr %1225, align 4, !tbaa !11
  %1227 = load float, ptr %33, align 4, !tbaa !11
  %1228 = fmul float %1226, %1227
  %1229 = fpext float %1228 to double
  %1230 = call double @log(double noundef %1229) #5
  %1231 = fmul double %1221, %1230
  %1232 = fptosi double %1231 to i32
  store i32 %1232, ptr %22, align 4, !tbaa !9
  %1233 = load float, ptr %26, align 4, !tbaa !11
  %1234 = load i32, ptr %22, align 4, !tbaa !9
  %1235 = call float @spow_ui(float noundef %1233, i32 noundef %1234)
  %1236 = load ptr, ptr %14, align 8, !tbaa !5
  %1237 = load i32, ptr %31, align 4, !tbaa !9
  %1238 = sext i32 %1237 to i64
  %1239 = getelementptr inbounds float, ptr %1236, i64 %1238
  store float %1235, ptr %1239, align 4, !tbaa !11
  %1240 = load float, ptr %28, align 4, !tbaa !11
  store float %1240, ptr %23, align 4, !tbaa !11
  %1241 = load ptr, ptr %14, align 8, !tbaa !5
  %1242 = load i32, ptr %31, align 4, !tbaa !9
  %1243 = sext i32 %1242 to i64
  %1244 = getelementptr inbounds float, ptr %1241, i64 %1243
  %1245 = load float, ptr %1244, align 4, !tbaa !11
  store float %1245, ptr %24, align 4, !tbaa !11
  %1246 = load float, ptr %23, align 4, !tbaa !11
  %1247 = load float, ptr %24, align 4, !tbaa !11
  %1248 = fcmp ole float %1246, %1247
  br i1 %1248, label %1249, label %1251

1249:                                             ; preds = %1219
  %1250 = load float, ptr %23, align 4, !tbaa !11
  br label %1253

1251:                                             ; preds = %1219
  %1252 = load float, ptr %24, align 4, !tbaa !11
  br label %1253

1253:                                             ; preds = %1251, %1249
  %1254 = phi float [ %1250, %1249 ], [ %1252, %1251 ]
  store float %1254, ptr %28, align 4, !tbaa !11
  %1255 = load float, ptr %29, align 4, !tbaa !11
  store float %1255, ptr %23, align 4, !tbaa !11
  %1256 = load ptr, ptr %14, align 8, !tbaa !5
  %1257 = load i32, ptr %31, align 4, !tbaa !9
  %1258 = sext i32 %1257 to i64
  %1259 = getelementptr inbounds float, ptr %1256, i64 %1258
  %1260 = load float, ptr %1259, align 4, !tbaa !11
  store float %1260, ptr %24, align 4, !tbaa !11
  %1261 = load float, ptr %23, align 4, !tbaa !11
  %1262 = load float, ptr %24, align 4, !tbaa !11
  %1263 = fcmp oge float %1261, %1262
  br i1 %1263, label %1264, label %1266

1264:                                             ; preds = %1253
  %1265 = load float, ptr %23, align 4, !tbaa !11
  br label %1268

1266:                                             ; preds = %1253
  %1267 = load float, ptr %24, align 4, !tbaa !11
  br label %1268

1268:                                             ; preds = %1266, %1264
  %1269 = phi float [ %1265, %1264 ], [ %1267, %1266 ]
  store float %1269, ptr %29, align 4, !tbaa !11
  br label %1270

1270:                                             ; preds = %1268
  %1271 = load i32, ptr %31, align 4, !tbaa !9
  %1272 = add nsw i32 %1271, 1
  store i32 %1272, ptr %31, align 4, !tbaa !9
  br label %1215, !llvm.loop !33

1273:                                             ; preds = %1215
  %1274 = load float, ptr %28, align 4, !tbaa !11
  %1275 = load float, ptr %43, align 4, !tbaa !11
  %1276 = fcmp oge float %1274, %1275
  br i1 %1276, label %1277, label %1279

1277:                                             ; preds = %1273
  %1278 = load float, ptr %28, align 4, !tbaa !11
  br label %1281

1279:                                             ; preds = %1273
  %1280 = load float, ptr %43, align 4, !tbaa !11
  br label %1281

1281:                                             ; preds = %1279, %1277
  %1282 = phi float [ %1278, %1277 ], [ %1280, %1279 ]
  %1283 = load float, ptr %29, align 4, !tbaa !11
  %1284 = load float, ptr %42, align 4, !tbaa !11
  %1285 = fcmp ole float %1283, %1284
  br i1 %1285, label %1286, label %1288

1286:                                             ; preds = %1281
  %1287 = load float, ptr %29, align 4, !tbaa !11
  br label %1290

1288:                                             ; preds = %1281
  %1289 = load float, ptr %42, align 4, !tbaa !11
  br label %1290

1290:                                             ; preds = %1288, %1286
  %1291 = phi float [ %1287, %1286 ], [ %1289, %1288 ]
  %1292 = fdiv float %1282, %1291
  %1293 = load ptr, ptr %15, align 8, !tbaa !5
  store float %1292, ptr %1293, align 4, !tbaa !11
  store i32 1, ptr %47, align 4
  br label %1294

1294:                                             ; preds = %1290, %961, %111, %99
  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
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #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

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

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

declare float @slamch_(ptr noundef) #2

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

; Function Attrs: nounwind uwtable
declare hidden float @spow_ui(float noundef, i32 noundef) #0

; 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}
!24 = distinct !{!24, !14}
!25 = distinct !{!25, !14}
!26 = distinct !{!26, !14}
!27 = distinct !{!27, !14}
!28 = distinct !{!28, !14}
!29 = distinct !{!29, !14}
!30 = distinct !{!30, !14}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14}
!33 = distinct !{!33, !14}


; 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 [8 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.3 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @ssyequb_(ptr noundef %0, ptr noundef %1, ptr nocapture noundef readonly %2, ptr nocapture noundef readonly %3, ptr nocapture noundef %4, ptr nocapture noundef writeonly %5, ptr nocapture noundef %6, ptr noundef %7, ptr nocapture noundef %8) local_unnamed_addr #0 {
  %10 = ptrtoint ptr %4 to i64
  %11 = ptrtoint ptr %7 to i64
  %12 = alloca i32, align 4
  %13 = alloca float, align 4
  %14 = alloca float, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #7
  %15 = load i32, ptr %3, align 4, !tbaa !5
  %narrow = xor i32 %15, -1
  %16 = sext i32 %narrow to i64
  %17 = getelementptr inbounds float, ptr %2, i64 %16
  %18 = getelementptr inbounds i8, ptr %4, i64 -4
  %19 = getelementptr inbounds i8, ptr %7, i64 -4
  store i32 0, ptr %8, align 4, !tbaa !5
  %20 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #7
  %.not = icmp eq i32 %20, 0
  br i1 %.not, label %21, label %23

21:                                               ; preds = %9
  %22 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #7
  %.not502 = icmp eq i32 %22, 0
  br i1 %.not502, label %.thread.sink.split, label %23

23:                                               ; preds = %21, %9
  %24 = load i32, ptr %1, align 4, !tbaa !5
  %25 = icmp slt i32 %24, 0
  br i1 %25, label %.thread.sink.split, label %26

26:                                               ; preds = %23
  %27 = load i32, ptr %3, align 4, !tbaa !5
  %spec.select = tail call i32 @llvm.umax.i32(i32 %24, i32 1)
  %28 = icmp slt i32 %27, %spec.select
  br i1 %28, label %.thread.sink.split, label %29

29:                                               ; preds = %26
  %.pr = load i32, ptr %8, align 4, !tbaa !5
  %.not503 = icmp eq i32 %.pr, 0
  br i1 %.not503, label %33, label %.thread

.thread.sink.split:                               ; preds = %26, %23, %21
  %.sink = phi i32 [ -1, %21 ], [ -2, %23 ], [ -4, %26 ]
  store i32 %.sink, ptr %8, align 4, !tbaa !5
  br label %.thread

.thread:                                          ; preds = %.thread.sink.split, %29
  %30 = phi i32 [ %.pr, %29 ], [ %.sink, %.thread.sink.split ]
  %31 = sub nsw i32 0, %30
  store i32 %31, ptr %12, align 4, !tbaa !5
  %32 = call i32 @xerbla_(ptr noundef nonnull @.str.2, ptr noundef nonnull %12, i32 noundef 7) #7
  br label %439

33:                                               ; preds = %29
  %34 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #7
  store float 0.000000e+00, ptr %6, align 4, !tbaa !9
  %35 = load i32, ptr %1, align 4, !tbaa !5
  %36 = icmp eq i32 %35, 0
  br i1 %36, label %37, label %38

37:                                               ; preds = %33
  store float 1.000000e+00, ptr %5, align 4, !tbaa !9
  br label %439

38:                                               ; preds = %33
  %.not504536 = icmp slt i32 %35, 1
  br i1 %.not504536, label %._crit_edge, label %._crit_edge.thread

._crit_edge:                                      ; preds = %38
  %.not505 = icmp eq i32 %34, 0
  br label %.loopexit532

._crit_edge.thread:                               ; preds = %38
  %39 = zext nneg i32 %35 to i64
  %40 = shl nuw nsw i64 %39, 2
  tail call void @llvm.memset.p0.i64(ptr align 4 %4, i8 0, i64 %40, i1 false), !tbaa !9
  store float 0.000000e+00, ptr %6, align 4, !tbaa !9
  %.not505723 = icmp eq i32 %34, 0
  %41 = sext i32 %15 to i64
  br i1 %.not505723, label %.lr.ph551.preheader, label %.preheader533.lr.ph

.preheader533.lr.ph:                              ; preds = %._crit_edge.thread
  %42 = add i32 %15, 1
  %43 = add nuw i32 %35, 1
  %wide.trip.count636 = zext i32 %43 to i64
  br label %.preheader533

.preheader533:                                    ; preds = %.preheader533.lr.ph, %._crit_edge541
  %indvars.iv633 = phi i64 [ 1, %.preheader533.lr.ph ], [ %indvars.iv.next634, %._crit_edge541 ]
  %.not523.not538 = icmp ugt i64 %indvars.iv633, 1
  br i1 %.not523.not538, label %.lr.ph540, label %._crit_edge541

.lr.ph540:                                        ; preds = %.preheader533
  %44 = mul nsw i64 %indvars.iv633, %41
  %45 = getelementptr inbounds float, ptr %18, i64 %indvars.iv633
  %invariant.gep = getelementptr float, ptr %17, i64 %44
  br label %46

46:                                               ; preds = %.lr.ph540, %46
  %indvars.iv = phi i64 [ 1, %.lr.ph540 ], [ %indvars.iv.next, %46 ]
  %47 = getelementptr inbounds float, ptr %18, i64 %indvars.iv
  %48 = load float, ptr %47, align 4, !tbaa !9
  %gep747 = getelementptr float, ptr %invariant.gep, i64 %indvars.iv
  %49 = load float, ptr %gep747, align 4, !tbaa !9
  %50 = fcmp oge float %49, 0.000000e+00
  %51 = fneg float %49
  %52 = select i1 %50, float %49, float %51
  %53 = fcmp oge float %48, %52
  %54 = select i1 %53, float %48, float %52
  store float %54, ptr %47, align 4, !tbaa !9
  %55 = load float, ptr %45, align 4, !tbaa !9
  %56 = load float, ptr %gep747, align 4, !tbaa !9
  %57 = fcmp oge float %56, 0.000000e+00
  %58 = fneg float %56
  %59 = select i1 %57, float %56, float %58
  %60 = fcmp oge float %55, %59
  %61 = select i1 %60, float %55, float %59
  store float %61, ptr %45, align 4, !tbaa !9
  %62 = load float, ptr %6, align 4, !tbaa !9
  %63 = load float, ptr %gep747, align 4, !tbaa !9
  %64 = fcmp oge float %63, 0.000000e+00
  %65 = fneg float %63
  %66 = select i1 %64, float %63, float %65
  %67 = fcmp oge float %62, %66
  %68 = select i1 %67, float %62, float %66
  store float %68, ptr %6, align 4, !tbaa !9
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %indvars.iv633
  br i1 %exitcond.not, label %._crit_edge541, label %46, !llvm.loop !11

._crit_edge541:                                   ; preds = %46, %.preheader533
  %69 = getelementptr inbounds float, ptr %18, i64 %indvars.iv633
  %70 = load float, ptr %69, align 4, !tbaa !9
  %71 = trunc nuw nsw i64 %indvars.iv633 to i32
  %72 = mul i32 %42, %71
  %73 = sext i32 %72 to i64
  %74 = getelementptr inbounds float, ptr %17, i64 %73
  %75 = load float, ptr %74, align 4, !tbaa !9
  %76 = fcmp oge float %75, 0.000000e+00
  %77 = fneg float %75
  %78 = select i1 %76, float %75, float %77
  %79 = fcmp oge float %70, %78
  %80 = select i1 %79, float %70, float %78
  store float %80, ptr %69, align 4, !tbaa !9
  %81 = load float, ptr %6, align 4, !tbaa !9
  %82 = load float, ptr %74, align 4, !tbaa !9
  %83 = fcmp oge float %82, 0.000000e+00
  %84 = fneg float %82
  %85 = select i1 %83, float %82, float %84
  %86 = fcmp oge float %81, %85
  %87 = select i1 %86, float %81, float %85
  store float %87, ptr %6, align 4, !tbaa !9
  %indvars.iv.next634 = add nuw nsw i64 %indvars.iv633, 1
  %exitcond637.not = icmp eq i64 %indvars.iv.next634, %wide.trip.count636
  br i1 %exitcond637.not, label %.loopexit532, label %.preheader533, !llvm.loop !13

.lr.ph551.preheader:                              ; preds = %._crit_edge.thread
  %88 = add nuw i32 %35, 1
  %89 = zext nneg i32 %35 to i64
  %wide.trip.count = zext i32 %88 to i64
  br label %.lr.ph551

.loopexit531:                                     ; preds = %.lr.ph547, %.lr.ph551
  %indvars.iv.next639 = add nuw i32 %indvars.iv638, 1
  %exitcond647.not = icmp eq i64 %indvars.iv.next645, %wide.trip.count
  br i1 %exitcond647.not, label %.loopexit532, label %.lr.ph551, !llvm.loop !14

.lr.ph551:                                        ; preds = %.lr.ph551.preheader, %.loopexit531
  %indvars.iv644 = phi i64 [ 1, %.lr.ph551.preheader ], [ %indvars.iv.next645, %.loopexit531 ]
  %indvars.iv638 = phi i32 [ 2, %.lr.ph551.preheader ], [ %indvars.iv.next639, %.loopexit531 ]
  %indvars646 = trunc i64 %indvars.iv644 to i32
  %90 = getelementptr inbounds float, ptr %18, i64 %indvars.iv644
  %91 = load float, ptr %90, align 4, !tbaa !9
  %92 = mul nsw i32 %15, %indvars646
  %93 = sext i32 %92 to i64
  %94 = getelementptr float, ptr %17, i64 %indvars.iv644
  %95 = getelementptr float, ptr %94, i64 %93
  %96 = load float, ptr %95, align 4, !tbaa !9
  %97 = fcmp oge float %96, 0.000000e+00
  %98 = fneg float %96
  %99 = select i1 %97, float %96, float %98
  %100 = fcmp oge float %91, %99
  %101 = select i1 %100, float %91, float %99
  store float %101, ptr %90, align 4, !tbaa !9
  %102 = load float, ptr %6, align 4, !tbaa !9
  %103 = load float, ptr %95, align 4, !tbaa !9
  %104 = fcmp oge float %103, 0.000000e+00
  %105 = fneg float %103
  %106 = select i1 %104, float %103, float %105
  %107 = fcmp oge float %102, %106
  %108 = select i1 %107, float %102, float %106
  store float %108, ptr %6, align 4, !tbaa !9
  %indvars.iv.next645 = add nuw nsw i64 %indvars.iv644, 1
  %.not507544.not = icmp ult i64 %indvars.iv644, %89
  br i1 %.not507544.not, label %.lr.ph547.preheader, label %.loopexit531

.lr.ph547.preheader:                              ; preds = %.lr.ph551
  %109 = mul nsw i64 %indvars.iv644, %41
  %110 = sext i32 %indvars.iv638 to i64
  %invariant.gep748 = getelementptr float, ptr %17, i64 %109
  br label %.lr.ph547

.lr.ph547:                                        ; preds = %.lr.ph547.preheader, %.lr.ph547
  %indvars.iv640 = phi i64 [ %110, %.lr.ph547.preheader ], [ %indvars.iv.next641, %.lr.ph547 ]
  %111 = getelementptr inbounds float, ptr %18, i64 %indvars.iv640
  %112 = load float, ptr %111, align 4, !tbaa !9
  %gep749 = getelementptr float, ptr %invariant.gep748, i64 %indvars.iv640
  %113 = load float, ptr %gep749, align 4, !tbaa !9
  %114 = fcmp oge float %113, 0.000000e+00
  %115 = fneg float %113
  %116 = select i1 %114, float %113, float %115
  %117 = fcmp oge float %112, %116
  %118 = select i1 %117, float %112, float %116
  store float %118, ptr %111, align 4, !tbaa !9
  %119 = load float, ptr %90, align 4, !tbaa !9
  %120 = load float, ptr %gep749, align 4, !tbaa !9
  %121 = fcmp oge float %120, 0.000000e+00
  %122 = fneg float %120
  %123 = select i1 %121, float %120, float %122
  %124 = fcmp oge float %119, %123
  %125 = select i1 %124, float %119, float %123
  store float %125, ptr %90, align 4, !tbaa !9
  %126 = load float, ptr %6, align 4, !tbaa !9
  %127 = load float, ptr %gep749, align 4, !tbaa !9
  %128 = fcmp oge float %127, 0.000000e+00
  %129 = fneg float %127
  %130 = select i1 %128, float %127, float %129
  %131 = fcmp oge float %126, %130
  %132 = select i1 %131, float %126, float %130
  store float %132, ptr %6, align 4, !tbaa !9
  %indvars.iv.next641 = add nsw i64 %indvars.iv640, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next641 to i32
  %exitcond643.not = icmp eq i32 %88, %lftr.wideiv
  br i1 %exitcond643.not, label %.loopexit531, label %.lr.ph547, !llvm.loop !15

.loopexit532:                                     ; preds = %._crit_edge541, %.loopexit531, %._crit_edge
  %.not505724 = phi i1 [ %.not505, %._crit_edge ], [ %.not505723, %.loopexit531 ], [ %.not505723, %._crit_edge541 ]
  br i1 %.not504536, label %._crit_edge556, label %.lr.ph555.preheader

.lr.ph555.preheader:                              ; preds = %.loopexit532
  %133 = add nuw i32 %35, 1
  %wide.trip.count651 = zext i32 %133 to i64
  %134 = zext nneg i32 %35 to i64
  %min.iters.check = icmp ult i32 %35, 4
  br i1 %min.iters.check, label %.lr.ph555.preheader803, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph555.preheader
  %n.vec = and i64 %134, 2147483644
  %ind.end = or disjoint i64 %n.vec, 1
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %135 = getelementptr float, ptr %4, i64 %index
  %wide.load = load <4 x float>, ptr %135, align 4, !tbaa !9
  %136 = fdiv <4 x float> <float 1.000000e+00, float 1.000000e+00, float 1.000000e+00, float 1.000000e+00>, %wide.load
  store <4 x float> %136, ptr %135, align 4, !tbaa !9
  %index.next = add nuw i64 %index, 4
  %137 = icmp eq i64 %index.next, %n.vec
  br i1 %137, label %middle.block, label %vector.body, !llvm.loop !16

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %134
  br i1 %cmp.n, label %._crit_edge556, label %.lr.ph555.preheader803

.lr.ph555.preheader803:                           ; preds = %middle.block, %.lr.ph555.preheader
  %indvars.iv648.ph = phi i64 [ 1, %.lr.ph555.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph555

.lr.ph555:                                        ; preds = %.lr.ph555.preheader803, %.lr.ph555
  %indvars.iv648 = phi i64 [ %indvars.iv.next649, %.lr.ph555 ], [ %indvars.iv648.ph, %.lr.ph555.preheader803 ]
  %138 = getelementptr inbounds float, ptr %18, i64 %indvars.iv648
  %139 = load float, ptr %138, align 4, !tbaa !9
  %140 = fdiv float 1.000000e+00, %139
  store float %140, ptr %138, align 4, !tbaa !9
  %indvars.iv.next649 = add nuw nsw i64 %indvars.iv648, 1
  %exitcond652.not = icmp eq i64 %indvars.iv.next649, %wide.trip.count651
  br i1 %exitcond652.not, label %._crit_edge556, label %.lr.ph555, !llvm.loop !19

._crit_edge556:                                   ; preds = %.lr.ph555, %middle.block, %.loopexit532
  %141 = sitofp i32 %35 to float
  %142 = fmul float %141, 2.000000e+00
  %143 = fpext float %142 to double
  %144 = tail call double @sqrt(double noundef %143) #7
  %145 = fdiv double 1.000000e+00, %144
  %146 = fptrunc double %145 to float
  %147 = add i32 %15, 1
  %148 = sext i32 %15 to i64
  %.pre = load i32, ptr %1, align 4, !tbaa !5
  %149 = sub i64 %11, %10
  br label %150

150:                                              ; preds = %._crit_edge556, %._crit_edge609
  %151 = phi i32 [ %.pre, %._crit_edge556 ], [ %404, %._crit_edge609 ]
  %.0497611 = phi i32 [ 1, %._crit_edge556 ], [ %405, %._crit_edge609 ]
  store float 0.000000e+00, ptr %13, align 4, !tbaa !9
  store float 0.000000e+00, ptr %14, align 4, !tbaa !9
  %.not510557 = icmp slt i32 %151, 1
  br i1 %.not510557, label %._crit_edge581, label %._crit_edge561.thread

._crit_edge561.thread:                            ; preds = %150
  %152 = zext nneg i32 %151 to i64
  %153 = shl nuw nsw i64 %152, 2
  call void @llvm.memset.p0.i64(ptr align 4 %7, i8 0, i64 %153, i1 false), !tbaa !9
  %154 = add nuw i32 %151, 1
  br i1 %.not505724, label %.lr.ph575.preheader, label %.preheader528.preheader

.preheader528.preheader:                          ; preds = %._crit_edge561.thread
  %wide.trip.count664 = zext i32 %154 to i64
  br label %.preheader528

.preheader528:                                    ; preds = %.preheader528.preheader, %._crit_edge565
  %indvars.iv661 = phi i64 [ 1, %.preheader528.preheader ], [ %indvars.iv.next662, %._crit_edge565 ]
  %.not522.not562 = icmp ugt i64 %indvars.iv661, 1
  br i1 %.not522.not562, label %.lr.ph564, label %.preheader528.._crit_edge565_crit_edge

.preheader528.._crit_edge565_crit_edge:           ; preds = %.preheader528
  %.phi.trans.insert = getelementptr inbounds float, ptr %19, i64 %indvars.iv661
  %.pre721 = load float, ptr %.phi.trans.insert, align 4, !tbaa !9
  br label %._crit_edge565

.lr.ph564:                                        ; preds = %.preheader528
  %155 = mul nsw i64 %indvars.iv661, %148
  %156 = getelementptr inbounds float, ptr %18, i64 %indvars.iv661
  %157 = getelementptr inbounds float, ptr %19, i64 %indvars.iv661
  %invariant.gep750 = getelementptr float, ptr %17, i64 %155
  br label %158

158:                                              ; preds = %.lr.ph564, %158
  %indvars.iv656 = phi i64 [ 1, %.lr.ph564 ], [ %indvars.iv.next657, %158 ]
  %gep751 = getelementptr float, ptr %invariant.gep750, i64 %indvars.iv656
  %159 = load float, ptr %gep751, align 4, !tbaa !9
  %160 = fcmp oge float %159, 0.000000e+00
  %161 = fneg float %159
  %162 = select i1 %160, float %159, float %161
  %163 = load float, ptr %156, align 4, !tbaa !9
  %164 = getelementptr inbounds float, ptr %19, i64 %indvars.iv656
  %165 = load float, ptr %164, align 4, !tbaa !9
  %166 = call float @llvm.fmuladd.f32(float %162, float %163, float %165)
  store float %166, ptr %164, align 4, !tbaa !9
  %167 = load float, ptr %gep751, align 4, !tbaa !9
  %168 = fcmp oge float %167, 0.000000e+00
  %169 = fneg float %167
  %170 = select i1 %168, float %167, float %169
  %171 = getelementptr inbounds float, ptr %18, i64 %indvars.iv656
  %172 = load float, ptr %171, align 4, !tbaa !9
  %173 = load float, ptr %157, align 4, !tbaa !9
  %174 = call float @llvm.fmuladd.f32(float %170, float %172, float %173)
  store float %174, ptr %157, align 4, !tbaa !9
  %indvars.iv.next657 = add nuw nsw i64 %indvars.iv656, 1
  %exitcond660.not = icmp eq i64 %indvars.iv.next657, %indvars.iv661
  br i1 %exitcond660.not, label %._crit_edge565, label %158, !llvm.loop !20

._crit_edge565:                                   ; preds = %158, %.preheader528.._crit_edge565_crit_edge
  %175 = phi float [ %.pre721, %.preheader528.._crit_edge565_crit_edge ], [ %174, %158 ]
  %176 = trunc nuw nsw i64 %indvars.iv661 to i32
  %177 = mul i32 %147, %176
  %178 = sext i32 %177 to i64
  %179 = getelementptr inbounds float, ptr %17, i64 %178
  %180 = load float, ptr %179, align 4, !tbaa !9
  %181 = fcmp oge float %180, 0.000000e+00
  %182 = fneg float %180
  %183 = select i1 %181, float %180, float %182
  %184 = getelementptr inbounds float, ptr %18, i64 %indvars.iv661
  %185 = load float, ptr %184, align 4, !tbaa !9
  %186 = getelementptr inbounds float, ptr %19, i64 %indvars.iv661
  %187 = call float @llvm.fmuladd.f32(float %183, float %185, float %175)
  store float %187, ptr %186, align 4, !tbaa !9
  %indvars.iv.next662 = add nuw nsw i64 %indvars.iv661, 1
  %exitcond665.not = icmp eq i64 %indvars.iv.next662, %wide.trip.count664
  br i1 %exitcond665.not, label %.loopexit529, label %.preheader528, !llvm.loop !21

.lr.ph575.preheader:                              ; preds = %._crit_edge561.thread
  %188 = zext nneg i32 %151 to i64
  %wide.trip.count676 = zext i32 %154 to i64
  br label %.lr.ph575

.loopexit527:                                     ; preds = %.lr.ph571, %.lr.ph575
  %indvars.iv.next667 = add nuw i32 %indvars.iv666, 1
  %exitcond677.not = icmp eq i64 %indvars.iv.next674, %wide.trip.count676
  br i1 %exitcond677.not, label %.loopexit529, label %.lr.ph575, !llvm.loop !22

.lr.ph575:                                        ; preds = %.lr.ph575.preheader, %.loopexit527
  %indvars.iv673 = phi i64 [ 1, %.lr.ph575.preheader ], [ %indvars.iv.next674, %.loopexit527 ]
  %indvars.iv666 = phi i32 [ 2, %.lr.ph575.preheader ], [ %indvars.iv.next667, %.loopexit527 ]
  %indvars675 = trunc i64 %indvars.iv673 to i32
  %189 = mul nsw i32 %15, %indvars675
  %190 = sext i32 %189 to i64
  %191 = getelementptr float, ptr %17, i64 %indvars.iv673
  %192 = getelementptr float, ptr %191, i64 %190
  %193 = load float, ptr %192, align 4, !tbaa !9
  %194 = fcmp oge float %193, 0.000000e+00
  %195 = fneg float %193
  %196 = select i1 %194, float %193, float %195
  %197 = getelementptr inbounds float, ptr %18, i64 %indvars.iv673
  %198 = load float, ptr %197, align 4, !tbaa !9
  %199 = getelementptr inbounds float, ptr %19, i64 %indvars.iv673
  %200 = load float, ptr %199, align 4, !tbaa !9
  %201 = call float @llvm.fmuladd.f32(float %196, float %198, float %200)
  store float %201, ptr %199, align 4, !tbaa !9
  %indvars.iv.next674 = add nuw nsw i64 %indvars.iv673, 1
  %.not512568.not = icmp ult i64 %indvars.iv673, %188
  br i1 %.not512568.not, label %.lr.ph571.preheader, label %.loopexit527

.lr.ph571.preheader:                              ; preds = %.lr.ph575
  %202 = mul nsw i64 %indvars.iv673, %148
  %203 = sext i32 %indvars.iv666 to i64
  %invariant.gep752 = getelementptr float, ptr %17, i64 %202
  br label %.lr.ph571

.lr.ph571:                                        ; preds = %.lr.ph571.preheader, %.lr.ph571
  %indvars.iv668 = phi i64 [ %203, %.lr.ph571.preheader ], [ %indvars.iv.next669, %.lr.ph571 ]
  %gep753 = getelementptr float, ptr %invariant.gep752, i64 %indvars.iv668
  %204 = load float, ptr %gep753, align 4, !tbaa !9
  %205 = fcmp oge float %204, 0.000000e+00
  %206 = fneg float %204
  %207 = select i1 %205, float %204, float %206
  %208 = load float, ptr %197, align 4, !tbaa !9
  %209 = getelementptr inbounds float, ptr %19, i64 %indvars.iv668
  %210 = load float, ptr %209, align 4, !tbaa !9
  %211 = call float @llvm.fmuladd.f32(float %207, float %208, float %210)
  store float %211, ptr %209, align 4, !tbaa !9
  %212 = load float, ptr %gep753, align 4, !tbaa !9
  %213 = fcmp oge float %212, 0.000000e+00
  %214 = fneg float %212
  %215 = select i1 %213, float %212, float %214
  %216 = getelementptr inbounds float, ptr %18, i64 %indvars.iv668
  %217 = load float, ptr %216, align 4, !tbaa !9
  %218 = load float, ptr %199, align 4, !tbaa !9
  %219 = call float @llvm.fmuladd.f32(float %215, float %217, float %218)
  store float %219, ptr %199, align 4, !tbaa !9
  %indvars.iv.next669 = add nsw i64 %indvars.iv668, 1
  %lftr.wideiv671 = trunc i64 %indvars.iv.next669 to i32
  %exitcond672.not = icmp eq i32 %154, %lftr.wideiv671
  br i1 %exitcond672.not, label %.loopexit527, label %.lr.ph571, !llvm.loop !23

.loopexit529:                                     ; preds = %._crit_edge565, %.loopexit527
  br i1 %.not510557, label %._crit_edge581, label %.lr.ph580.preheader

.lr.ph580.preheader:                              ; preds = %.loopexit529
  %220 = zext nneg i32 %151 to i64
  %xtraiter = and i64 %220, 3
  %221 = icmp ult i32 %151, 4
  br i1 %221, label %._crit_edge581.loopexit.unr-lcssa, label %.lr.ph580.preheader.new

.lr.ph580.preheader.new:                          ; preds = %.lr.ph580.preheader
  %unroll_iter = and i64 %220, 2147483644
  br label %.lr.ph580

.lr.ph580:                                        ; preds = %.lr.ph580, %.lr.ph580.preheader.new
  %indvars.iv678 = phi i64 [ 1, %.lr.ph580.preheader.new ], [ %indvars.iv.next679.3, %.lr.ph580 ]
  %.1578 = phi float [ 0.000000e+00, %.lr.ph580.preheader.new ], [ %241, %.lr.ph580 ]
  %niter = phi i64 [ 0, %.lr.ph580.preheader.new ], [ %niter.next.3, %.lr.ph580 ]
  %222 = getelementptr inbounds float, ptr %18, i64 %indvars.iv678
  %223 = load float, ptr %222, align 4, !tbaa !9
  %224 = getelementptr inbounds float, ptr %19, i64 %indvars.iv678
  %225 = load float, ptr %224, align 4, !tbaa !9
  %226 = call float @llvm.fmuladd.f32(float %223, float %225, float %.1578)
  %227 = getelementptr float, ptr %4, i64 %indvars.iv678
  %228 = load float, ptr %227, align 4, !tbaa !9
  %229 = getelementptr float, ptr %7, i64 %indvars.iv678
  %230 = load float, ptr %229, align 4, !tbaa !9
  %231 = call float @llvm.fmuladd.f32(float %228, float %230, float %226)
  %indvars.iv.next679.1 = add nuw nsw i64 %indvars.iv678, 2
  %232 = getelementptr inbounds float, ptr %18, i64 %indvars.iv.next679.1
  %233 = load float, ptr %232, align 4, !tbaa !9
  %234 = getelementptr inbounds float, ptr %19, i64 %indvars.iv.next679.1
  %235 = load float, ptr %234, align 4, !tbaa !9
  %236 = call float @llvm.fmuladd.f32(float %233, float %235, float %231)
  %indvars.iv.next679.2 = add nuw nsw i64 %indvars.iv678, 3
  %237 = getelementptr inbounds float, ptr %18, i64 %indvars.iv.next679.2
  %238 = load float, ptr %237, align 4, !tbaa !9
  %239 = getelementptr inbounds float, ptr %19, i64 %indvars.iv.next679.2
  %240 = load float, ptr %239, align 4, !tbaa !9
  %241 = call float @llvm.fmuladd.f32(float %238, float %240, float %236)
  %indvars.iv.next679.3 = add nuw nsw i64 %indvars.iv678, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge581.loopexit.unr-lcssa, label %.lr.ph580, !llvm.loop !24

._crit_edge581.loopexit.unr-lcssa:                ; preds = %.lr.ph580, %.lr.ph580.preheader
  %.lcssa796.ph = phi float [ poison, %.lr.ph580.preheader ], [ %241, %.lr.ph580 ]
  %indvars.iv678.unr = phi i64 [ 1, %.lr.ph580.preheader ], [ %indvars.iv.next679.3, %.lr.ph580 ]
  %.1578.unr = phi float [ 0.000000e+00, %.lr.ph580.preheader ], [ %241, %.lr.ph580 ]
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %._crit_edge581, label %.lr.ph580.epil

.lr.ph580.epil:                                   ; preds = %._crit_edge581.loopexit.unr-lcssa, %.lr.ph580.epil
  %indvars.iv678.epil = phi i64 [ %indvars.iv.next679.epil, %.lr.ph580.epil ], [ %indvars.iv678.unr, %._crit_edge581.loopexit.unr-lcssa ]
  %.1578.epil = phi float [ %246, %.lr.ph580.epil ], [ %.1578.unr, %._crit_edge581.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph580.epil ], [ 0, %._crit_edge581.loopexit.unr-lcssa ]
  %242 = getelementptr inbounds float, ptr %18, i64 %indvars.iv678.epil
  %243 = load float, ptr %242, align 4, !tbaa !9
  %244 = getelementptr inbounds float, ptr %19, i64 %indvars.iv678.epil
  %245 = load float, ptr %244, align 4, !tbaa !9
  %246 = call float @llvm.fmuladd.f32(float %243, float %245, float %.1578.epil)
  %indvars.iv.next679.epil = add nuw nsw i64 %indvars.iv678.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter
  br i1 %epil.iter.cmp.not, label %._crit_edge581, label %.lr.ph580.epil, !llvm.loop !25

._crit_edge581:                                   ; preds = %._crit_edge581.loopexit.unr-lcssa, %.lr.ph580.epil, %150, %.loopexit529
  %.1.lcssa = phi float [ 0.000000e+00, %.loopexit529 ], [ 0.000000e+00, %150 ], [ %.lcssa796.ph, %._crit_edge581.loopexit.unr-lcssa ], [ %246, %.lr.ph580.epil ]
  %247 = sitofp i32 %151 to float
  %248 = fdiv float %.1.lcssa, %247
  %249 = shl i32 %151, 1
  %.not515.not582 = icmp slt i32 %151, %249
  br i1 %.not515.not582, label %.lr.ph585, label %._crit_edge581.._crit_edge586_crit_edge

._crit_edge581.._crit_edge586_crit_edge:          ; preds = %._crit_edge581
  %.pre722 = sext i32 %151 to i64
  br label %._crit_edge586

.lr.ph585:                                        ; preds = %._crit_edge581
  %250 = fneg float %248
  %251 = sext i32 %151 to i64
  %wide.trip.count686 = sext i32 %249 to i64
  %252 = sub nsw i64 %wide.trip.count686, %251
  %min.iters.check777 = icmp ult i64 %252, 8
  br i1 %min.iters.check777, label %scalar.ph776.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph585
  %253 = shl nsw i64 %251, 2
  %254 = add i64 %149, %253
  %diff.check = icmp ult i64 %254, 32
  %diff.check774 = icmp ult i64 %253, 32
  %conflict.rdx = or i1 %diff.check, %diff.check774
  br i1 %conflict.rdx, label %scalar.ph776.preheader, label %vector.ph778

vector.ph778:                                     ; preds = %vector.memcheck
  %n.vec780 = and i64 %252, -8
  %ind.end781 = add nsw i64 %n.vec780, %251
  %broadcast.splatinsert = insertelement <4 x float> poison, float %250, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body783

vector.body783:                                   ; preds = %vector.body783, %vector.ph778
  %index784 = phi i64 [ 0, %vector.ph778 ], [ %index.next790, %vector.body783 ]
  %offset.idx785 = add i64 %index784, %251
  %255 = add nsw i64 %offset.idx785, 1
  %256 = sub nsw i64 %255, %251
  %257 = getelementptr inbounds float, ptr %18, i64 %256
  %258 = getelementptr inbounds i8, ptr %257, i64 16
  %wide.load786 = load <4 x float>, ptr %257, align 4, !tbaa !9
  %wide.load787 = load <4 x float>, ptr %258, align 4, !tbaa !9
  %259 = getelementptr inbounds float, ptr %19, i64 %256
  %260 = getelementptr inbounds i8, ptr %259, i64 16
  %wide.load788 = load <4 x float>, ptr %259, align 4, !tbaa !9
  %wide.load789 = load <4 x float>, ptr %260, align 4, !tbaa !9
  %261 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load786, <4 x float> %wide.load788, <4 x float> %broadcast.splat)
  %262 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %wide.load787, <4 x float> %wide.load789, <4 x float> %broadcast.splat)
  %263 = getelementptr float, ptr %7, i64 %offset.idx785
  %264 = getelementptr i8, ptr %263, i64 16
  store <4 x float> %261, ptr %263, align 4, !tbaa !9
  store <4 x float> %262, ptr %264, align 4, !tbaa !9
  %index.next790 = add nuw i64 %index784, 8
  %265 = icmp eq i64 %index.next790, %n.vec780
  br i1 %265, label %middle.block775, label %vector.body783, !llvm.loop !27

middle.block775:                                  ; preds = %vector.body783
  %cmp.n791 = icmp eq i64 %252, %n.vec780
  br i1 %cmp.n791, label %._crit_edge586, label %scalar.ph776.preheader

scalar.ph776.preheader:                           ; preds = %middle.block775, %vector.memcheck, %.lr.ph585
  %indvars.iv683.ph = phi i64 [ %251, %vector.memcheck ], [ %251, %.lr.ph585 ], [ %ind.end781, %middle.block775 ]
  %xtraiter806 = and i64 %indvars.iv683.ph, 1
  %lcmp.mod807.not = icmp eq i64 %xtraiter806, 0
  br i1 %lcmp.mod807.not, label %scalar.ph776.prol.loopexit, label %scalar.ph776.prol

scalar.ph776.prol:                                ; preds = %scalar.ph776.preheader
  %indvars.iv.next684.prol = add nsw i64 %indvars.iv683.ph, 1
  %266 = sub nsw i64 %indvars.iv.next684.prol, %251
  %267 = getelementptr inbounds float, ptr %18, i64 %266
  %268 = load float, ptr %267, align 4, !tbaa !9
  %269 = getelementptr inbounds float, ptr %19, i64 %266
  %270 = load float, ptr %269, align 4, !tbaa !9
  %271 = call float @llvm.fmuladd.f32(float %268, float %270, float %250)
  %272 = getelementptr float, ptr %7, i64 %indvars.iv683.ph
  store float %271, ptr %272, align 4, !tbaa !9
  br label %scalar.ph776.prol.loopexit

scalar.ph776.prol.loopexit:                       ; preds = %scalar.ph776.prol, %scalar.ph776.preheader
  %indvars.iv683.unr = phi i64 [ %indvars.iv683.ph, %scalar.ph776.preheader ], [ %indvars.iv.next684.prol, %scalar.ph776.prol ]
  %273 = add nsw i64 %wide.trip.count686, -1
  %274 = icmp eq i64 %indvars.iv683.ph, %273
  br i1 %274, label %._crit_edge586, label %scalar.ph776

scalar.ph776:                                     ; preds = %scalar.ph776.prol.loopexit, %scalar.ph776
  %indvars.iv683 = phi i64 [ %indvars.iv.next684.1, %scalar.ph776 ], [ %indvars.iv683.unr, %scalar.ph776.prol.loopexit ]
  %indvars.iv.next684 = add nsw i64 %indvars.iv683, 1
  %275 = sub nsw i64 %indvars.iv.next684, %251
  %276 = getelementptr inbounds float, ptr %18, i64 %275
  %277 = load float, ptr %276, align 4, !tbaa !9
  %278 = getelementptr inbounds float, ptr %19, i64 %275
  %279 = load float, ptr %278, align 4, !tbaa !9
  %280 = call float @llvm.fmuladd.f32(float %277, float %279, float %250)
  %281 = getelementptr float, ptr %7, i64 %indvars.iv683
  store float %280, ptr %281, align 4, !tbaa !9
  %indvars.iv.next684.1 = add nsw i64 %indvars.iv683, 2
  %282 = sub nsw i64 %indvars.iv.next684.1, %251
  %283 = getelementptr inbounds float, ptr %18, i64 %282
  %284 = load float, ptr %283, align 4, !tbaa !9
  %285 = getelementptr inbounds float, ptr %19, i64 %282
  %286 = load float, ptr %285, align 4, !tbaa !9
  %287 = call float @llvm.fmuladd.f32(float %284, float %286, float %250)
  %288 = getelementptr float, ptr %7, i64 %indvars.iv.next684
  store float %287, ptr %288, align 4, !tbaa !9
  %exitcond687.not.1 = icmp eq i64 %indvars.iv.next684.1, %wide.trip.count686
  br i1 %exitcond687.not.1, label %._crit_edge586, label %scalar.ph776, !llvm.loop !28

._crit_edge586:                                   ; preds = %scalar.ph776.prol.loopexit, %scalar.ph776, %middle.block775, %._crit_edge581.._crit_edge586_crit_edge
  %.pre-phi = phi i64 [ %.pre722, %._crit_edge581.._crit_edge586_crit_edge ], [ %251, %middle.block775 ], [ %251, %scalar.ph776 ], [ %251, %scalar.ph776.prol.loopexit ]
  %gep = getelementptr float, ptr %7, i64 %.pre-phi
  call void @slassq_(ptr noundef nonnull %1, ptr noundef %gep, ptr noundef nonnull @c__1, ptr noundef nonnull %13, ptr noundef nonnull %14) #7
  %289 = load float, ptr %13, align 4, !tbaa !9
  %290 = fpext float %289 to double
  %291 = load float, ptr %14, align 4, !tbaa !9
  %292 = load i32, ptr %1, align 4, !tbaa !5
  %293 = sitofp i32 %292 to float
  %294 = fdiv float %291, %293
  %295 = fpext float %294 to double
  %296 = call double @sqrt(double noundef %295) #7
  %297 = fmul double %296, %290
  %298 = fptrunc double %297 to float
  %299 = fmul float %248, %146
  %300 = fcmp ogt float %299, %298
  br i1 %300, label %406, label %301

301:                                              ; preds = %._crit_edge586
  %302 = load i32, ptr %1, align 4, !tbaa !5
  %.not516603 = icmp slt i32 %302, 1
  br i1 %.not516603, label %._crit_edge609, label %.lr.ph608.preheader

.lr.ph608.preheader:                              ; preds = %301
  %303 = zext nneg i32 %302 to i64
  br label %.lr.ph608

.lr.ph608:                                        ; preds = %.lr.ph608.preheader, %.loopexit
  %304 = phi i32 [ %302, %.lr.ph608.preheader ], [ %397, %.loopexit ]
  %indvars.iv712 = phi i64 [ 2, %.lr.ph608.preheader ], [ %indvars.iv.next713, %.loopexit ]
  %indvars.iv695 = phi i64 [ 1, %.lr.ph608.preheader ], [ %indvars.iv.next696, %.loopexit ]
  %.2606 = phi float [ %248, %.lr.ph608.preheader ], [ %403, %.loopexit ]
  %indvars716 = trunc i64 %indvars.iv695 to i32
  %305 = mul nsw i64 %indvars.iv695, %148
  %306 = mul nsw i32 %15, %indvars716
  %307 = sext i32 %306 to i64
  %308 = getelementptr float, ptr %17, i64 %indvars.iv695
  %309 = getelementptr float, ptr %308, i64 %307
  %310 = load float, ptr %309, align 4, !tbaa !9
  %311 = fcmp oge float %310, 0.000000e+00
  %312 = fneg float %310
  %313 = select i1 %311, float %310, float %312
  %314 = getelementptr inbounds float, ptr %18, i64 %indvars.iv695
  %315 = load float, ptr %314, align 4, !tbaa !9
  %316 = add nsw i32 %304, -1
  %317 = sitofp i32 %316 to float
  %318 = fmul float %313, %317
  %319 = add nsw i32 %304, -2
  %320 = sitofp i32 %319 to float
  %321 = getelementptr inbounds float, ptr %19, i64 %indvars.iv695
  %322 = load float, ptr %321, align 4, !tbaa !9
  %323 = fneg float %313
  %324 = call float @llvm.fmuladd.f32(float %323, float %315, float %322)
  %325 = fmul float %324, %320
  %326 = fmul float %315, %323
  %327 = fmul float %322, 2.000000e+00
  %328 = fmul float %315, %327
  %329 = call float @llvm.fmuladd.f32(float %326, float %315, float %328)
  %330 = sitofp i32 %304 to float
  %331 = fneg float %330
  %332 = call float @llvm.fmuladd.f32(float %331, float %.2606, float %329)
  %333 = fmul float %332, -4.000000e+00
  %334 = fmul float %318, %333
  %335 = call float @llvm.fmuladd.f32(float %325, float %325, float %334)
  %336 = fcmp ugt float %335, 0.000000e+00
  br i1 %336, label %338, label %337

337:                                              ; preds = %.lr.ph608
  store i32 -1, ptr %8, align 4, !tbaa !5
  br label %439

338:                                              ; preds = %.lr.ph608
  %339 = fmul float %332, -2.000000e+00
  %340 = fpext float %339 to double
  %341 = fpext float %325 to double
  %342 = fpext float %335 to double
  %343 = call double @sqrt(double noundef %342) #7
  %344 = fadd double %343, %341
  %345 = fdiv double %340, %344
  %346 = fptrunc double %345 to float
  %347 = load float, ptr %314, align 4, !tbaa !9
  %348 = fsub float %346, %347
  br i1 %.not505724, label %.preheader.preheader, label %.preheader526.preheader

.preheader526.preheader:                          ; preds = %338
  %invariant.gep754 = getelementptr float, ptr %17, i64 %305
  br label %.preheader526

.preheader.preheader:                             ; preds = %338
  %invariant.gep758 = getelementptr float, ptr %17, i64 %indvars.iv695
  br label %.preheader

.preheader526:                                    ; preds = %.preheader526.preheader, %.preheader526
  %indvars.iv688 = phi i64 [ 1, %.preheader526.preheader ], [ %indvars.iv.next689, %.preheader526 ]
  %.0477588 = phi float [ 0.000000e+00, %.preheader526.preheader ], [ %355, %.preheader526 ]
  %gep755 = getelementptr float, ptr %invariant.gep754, i64 %indvars.iv688
  %349 = load float, ptr %gep755, align 4, !tbaa !9
  %350 = fcmp oge float %349, 0.000000e+00
  %351 = fneg float %349
  %352 = select i1 %350, float %349, float %351
  %353 = getelementptr inbounds float, ptr %18, i64 %indvars.iv688
  %354 = load float, ptr %353, align 4, !tbaa !9
  %355 = call float @llvm.fmuladd.f32(float %354, float %352, float %.0477588)
  %356 = getelementptr inbounds float, ptr %19, i64 %indvars.iv688
  %357 = load float, ptr %356, align 4, !tbaa !9
  %358 = call float @llvm.fmuladd.f32(float %348, float %352, float %357)
  store float %358, ptr %356, align 4, !tbaa !9
  %indvars.iv.next689 = add nuw nsw i64 %indvars.iv688, 1
  %exitcond694.not = icmp eq i64 %indvars.iv.next689, %indvars.iv712
  br i1 %exitcond694.not, label %359, label %.preheader526, !llvm.loop !29

359:                                              ; preds = %.preheader526
  %360 = load i32, ptr %1, align 4, !tbaa !5
  %361 = sext i32 %360 to i64
  %.not520.not589 = icmp slt i64 %indvars.iv695, %361
  br i1 %.not520.not589, label %.lr.ph593.preheader, label %.loopexit

.lr.ph593.preheader:                              ; preds = %359
  %wide.trip.count700 = zext i32 %360 to i64
  %invariant.gep756 = getelementptr float, ptr %17, i64 %indvars.iv695
  br label %.lr.ph593

.lr.ph593:                                        ; preds = %.lr.ph593.preheader, %.lr.ph593
  %indvars.iv697 = phi i64 [ %indvars.iv695, %.lr.ph593.preheader ], [ %indvars.iv.next698, %.lr.ph593 ]
  %.1478591 = phi float [ %355, %.lr.ph593.preheader ], [ %369, %.lr.ph593 ]
  %indvars.iv.next698 = add nuw nsw i64 %indvars.iv697, 1
  %362 = mul nsw i64 %indvars.iv.next698, %148
  %gep757 = getelementptr float, ptr %invariant.gep756, i64 %362
  %363 = load float, ptr %gep757, align 4, !tbaa !9
  %364 = fcmp oge float %363, 0.000000e+00
  %365 = fneg float %363
  %366 = select i1 %364, float %363, float %365
  %367 = getelementptr float, ptr %4, i64 %indvars.iv697
  %368 = load float, ptr %367, align 4, !tbaa !9
  %369 = call float @llvm.fmuladd.f32(float %368, float %366, float %.1478591)
  %370 = getelementptr float, ptr %7, i64 %indvars.iv697
  %371 = load float, ptr %370, align 4, !tbaa !9
  %372 = call float @llvm.fmuladd.f32(float %348, float %366, float %371)
  store float %372, ptr %370, align 4, !tbaa !9
  %exitcond701.not = icmp eq i64 %indvars.iv.next698, %wide.trip.count700
  br i1 %exitcond701.not, label %.loopexit, label %.lr.ph593, !llvm.loop !30

.preheader:                                       ; preds = %.preheader.preheader, %.preheader
  %indvars.iv702 = phi i64 [ 1, %.preheader.preheader ], [ %indvars.iv.next703, %.preheader ]
  %.2479596 = phi float [ 0.000000e+00, %.preheader.preheader ], [ %380, %.preheader ]
  %373 = mul nsw i64 %indvars.iv702, %148
  %gep759 = getelementptr float, ptr %invariant.gep758, i64 %373
  %374 = load float, ptr %gep759, align 4, !tbaa !9
  %375 = fcmp oge float %374, 0.000000e+00
  %376 = fneg float %374
  %377 = select i1 %375, float %374, float %376
  %378 = getelementptr inbounds float, ptr %18, i64 %indvars.iv702
  %379 = load float, ptr %378, align 4, !tbaa !9
  %380 = call float @llvm.fmuladd.f32(float %379, float %377, float %.2479596)
  %381 = getelementptr inbounds float, ptr %19, i64 %indvars.iv702
  %382 = load float, ptr %381, align 4, !tbaa !9
  %383 = call float @llvm.fmuladd.f32(float %348, float %377, float %382)
  store float %383, ptr %381, align 4, !tbaa !9
  %indvars.iv.next703 = add nuw nsw i64 %indvars.iv702, 1
  %exitcond706.not = icmp eq i64 %indvars.iv.next703, %indvars.iv712
  br i1 %exitcond706.not, label %384, label %.preheader, !llvm.loop !31

384:                                              ; preds = %.preheader
  %385 = load i32, ptr %1, align 4, !tbaa !5
  %386 = sext i32 %385 to i64
  %.not518.not597 = icmp slt i64 %indvars.iv695, %386
  br i1 %.not518.not597, label %.lr.ph601.preheader, label %.loopexit

.lr.ph601.preheader:                              ; preds = %384
  %wide.trip.count710 = zext i32 %385 to i64
  %invariant.gep760 = getelementptr float, ptr %17, i64 %305
  br label %.lr.ph601

.lr.ph601:                                        ; preds = %.lr.ph601.preheader, %.lr.ph601
  %indvars.iv707 = phi i64 [ %indvars.iv695, %.lr.ph601.preheader ], [ %indvars.iv.next708, %.lr.ph601 ]
  %.3480599 = phi float [ %380, %.lr.ph601.preheader ], [ %393, %.lr.ph601 ]
  %indvars.iv.next708 = add nuw nsw i64 %indvars.iv707, 1
  %gep761 = getelementptr float, ptr %invariant.gep760, i64 %indvars.iv.next708
  %387 = load float, ptr %gep761, align 4, !tbaa !9
  %388 = fcmp oge float %387, 0.000000e+00
  %389 = fneg float %387
  %390 = select i1 %388, float %387, float %389
  %391 = getelementptr float, ptr %4, i64 %indvars.iv707
  %392 = load float, ptr %391, align 4, !tbaa !9
  %393 = call float @llvm.fmuladd.f32(float %392, float %390, float %.3480599)
  %394 = getelementptr float, ptr %7, i64 %indvars.iv707
  %395 = load float, ptr %394, align 4, !tbaa !9
  %396 = call float @llvm.fmuladd.f32(float %348, float %390, float %395)
  store float %396, ptr %394, align 4, !tbaa !9
  %exitcond711.not = icmp eq i64 %indvars.iv.next708, %wide.trip.count710
  br i1 %exitcond711.not, label %.loopexit, label %.lr.ph601, !llvm.loop !32

.loopexit:                                        ; preds = %.lr.ph593, %.lr.ph601, %359, %384
  %397 = phi i32 [ %385, %384 ], [ %360, %359 ], [ %385, %.lr.ph601 ], [ %360, %.lr.ph593 ]
  %.4 = phi float [ %380, %384 ], [ %355, %359 ], [ %393, %.lr.ph601 ], [ %369, %.lr.ph593 ]
  %398 = load float, ptr %321, align 4, !tbaa !9
  %399 = fadd float %.4, %398
  %400 = fmul float %348, %399
  %401 = sitofp i32 %397 to float
  %402 = fdiv float %400, %401
  %403 = fadd float %.2606, %402
  store float %346, ptr %314, align 4, !tbaa !9
  %indvars.iv.next696 = add nuw nsw i64 %indvars.iv695, 1
  %.not516.not = icmp ult i64 %indvars.iv695, %303
  %indvars.iv.next713 = add nuw nsw i64 %indvars.iv712, 1
  br i1 %.not516.not, label %.lr.ph608, label %._crit_edge609, !llvm.loop !33

._crit_edge609:                                   ; preds = %.loopexit, %301
  %404 = phi i32 [ %302, %301 ], [ %397, %.loopexit ]
  %.2.lcssa = phi float [ %248, %301 ], [ %403, %.loopexit ]
  %405 = add nuw nsw i32 %.0497611, 1
  %exitcond717.not = icmp eq i32 %405, 101
  br i1 %exitcond717.not, label %406, label %150, !llvm.loop !34

406:                                              ; preds = %._crit_edge609, %._crit_edge586
  %.3 = phi float [ %248, %._crit_edge586 ], [ %.2.lcssa, %._crit_edge609 ]
  %407 = call float @slamch_(ptr noundef nonnull @.str.3) #7
  %408 = fdiv float 1.000000e+00, %407
  %409 = fpext float %.3 to double
  %410 = call double @sqrt(double noundef %409) #7
  %411 = fdiv double 1.000000e+00, %410
  %412 = fptrunc double %411 to float
  %413 = call float @slamch_(ptr noundef nonnull @.str.4) #7
  %414 = fpext float %413 to double
  %415 = call double @log(double noundef %414) #7
  %416 = load i32, ptr %1, align 4, !tbaa !5
  %.not521612 = icmp slt i32 %416, 1
  br i1 %.not521612, label %._crit_edge618, label %.lr.ph617

.lr.ph617:                                        ; preds = %406
  %417 = fdiv double 1.000000e+00, %415
  %418 = fptrunc double %417 to float
  %419 = fpext float %418 to double
  %420 = zext nneg i32 %416 to i64
  br label %421

421:                                              ; preds = %.lr.ph617, %421
  %indvars.iv718 = phi i64 [ 1, %.lr.ph617 ], [ %indvars.iv.next719, %421 ]
  %.0495614 = phi float [ 0.000000e+00, %.lr.ph617 ], [ %433, %421 ]
  %.0496613 = phi float [ %408, %.lr.ph617 ], [ %431, %421 ]
  %422 = getelementptr inbounds float, ptr %18, i64 %indvars.iv718
  %423 = load float, ptr %422, align 4, !tbaa !9
  %424 = fmul float %423, %412
  %425 = fpext float %424 to double
  %426 = call double @log(double noundef %425) #7
  %427 = fmul double %426, %419
  %428 = fptosi double %427 to i32
  %429 = call float @spow_ui(float noundef %413, i32 noundef %428)
  store float %429, ptr %422, align 4, !tbaa !9
  %430 = fcmp ole float %.0496613, %429
  %431 = select i1 %430, float %.0496613, float %429
  %432 = fcmp oge float %.0495614, %429
  %433 = select i1 %432, float %.0495614, float %429
  %indvars.iv.next719 = add nuw nsw i64 %indvars.iv718, 1
  %.not521.not = icmp ult i64 %indvars.iv718, %420
  br i1 %.not521.not, label %421, label %._crit_edge618, !llvm.loop !35

._crit_edge618:                                   ; preds = %421, %406
  %.0496.lcssa = phi float [ %408, %406 ], [ %431, %421 ]
  %.0495.lcssa = phi float [ 0.000000e+00, %406 ], [ %433, %421 ]
  %434 = fcmp oge float %.0496.lcssa, %407
  %435 = select i1 %434, float %.0496.lcssa, float %407
  %436 = fcmp ole float %.0495.lcssa, %408
  %437 = select i1 %436, float %.0495.lcssa, float %408
  %438 = fdiv float %435, %437
  store float %438, ptr %5, align 4, !tbaa !9
  br label %439

439:                                              ; preds = %._crit_edge618, %337, %37, %.thread
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  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

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

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

declare float @slamch_(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nounwind uwtable
declare hidden float @spow_ui(float noundef, i32 noundef) local_unnamed_addr #0

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <4 x float> @llvm.fmuladd.v4f32(<4 x float>, <4 x float>, <4 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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #7 = { 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, !18}
!17 = !{!"llvm.loop.isvectorized", i32 1}
!18 = !{!"llvm.loop.unroll.runtime.disable"}
!19 = distinct !{!19, !12, !18, !17}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.unroll.disable"}
!27 = distinct !{!27, !12, !17, !18}
!28 = distinct !{!28, !12, !17}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12}
!31 = distinct !{!31, !12}
!32 = distinct !{!32, !12}
!33 = distinct !{!33, !12}
!34 = distinct !{!34, !12}
!35 = distinct !{!35, !12}


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