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

; 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 [8 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b5 = external hidden global double, align 8

; Function Attrs: nounwind uwtable
define dso_local void @dlaic1_(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 double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  %23 = alloca double, align 8
  %24 = alloca double, align 8
  %25 = alloca double, align 8
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca double, align 8
  %29 = alloca double, align 8
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca double, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = 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 8, ptr %19) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #5
  %40 = load ptr, ptr %14, align 8, !tbaa !5
  %41 = getelementptr inbounds double, ptr %40, i32 -1
  store ptr %41, ptr %14, align 8, !tbaa !5
  %42 = load ptr, ptr %12, align 8, !tbaa !5
  %43 = getelementptr inbounds double, ptr %42, i32 -1
  store ptr %43, ptr %12, align 8, !tbaa !5
  %44 = call double @dlamch_(ptr noundef @.str)
  store double %44, ptr %37, align 8, !tbaa !9
  %45 = load ptr, ptr %11, align 8, !tbaa !5
  %46 = load ptr, ptr %12, align 8, !tbaa !5
  %47 = getelementptr inbounds double, ptr %46, i64 1
  %48 = load ptr, ptr %14, align 8, !tbaa !5
  %49 = getelementptr inbounds double, ptr %48, i64 1
  %50 = call double @ddot_(ptr noundef %45, ptr noundef %47, ptr noundef @c__1, ptr noundef %49, ptr noundef @c__1)
  store double %50, ptr %29, align 8, !tbaa !9
  %51 = load double, ptr %29, align 8, !tbaa !9
  %52 = fcmp oge double %51, 0.000000e+00
  br i1 %52, label %53, label %55

53:                                               ; preds = %9
  %54 = load double, ptr %29, align 8, !tbaa !9
  br label %58

55:                                               ; preds = %9
  %56 = load double, ptr %29, align 8, !tbaa !9
  %57 = fneg double %56
  br label %58

58:                                               ; preds = %55, %53
  %59 = phi double [ %54, %53 ], [ %57, %55 ]
  store double %59, ptr %34, align 8, !tbaa !9
  %60 = load ptr, ptr %15, align 8, !tbaa !5
  %61 = load double, ptr %60, align 8, !tbaa !9
  %62 = fcmp oge double %61, 0.000000e+00
  br i1 %62, label %63, label %66

63:                                               ; preds = %58
  %64 = load ptr, ptr %15, align 8, !tbaa !5
  %65 = load double, ptr %64, align 8, !tbaa !9
  br label %70

66:                                               ; preds = %58
  %67 = load ptr, ptr %15, align 8, !tbaa !5
  %68 = load double, ptr %67, align 8, !tbaa !9
  %69 = fneg double %68
  br label %70

70:                                               ; preds = %66, %63
  %71 = phi double [ %65, %63 ], [ %69, %66 ]
  store double %71, ptr %33, align 8, !tbaa !9
  %72 = load ptr, ptr %13, align 8, !tbaa !5
  %73 = load double, ptr %72, align 8, !tbaa !9
  %74 = fcmp oge double %73, 0.000000e+00
  br i1 %74, label %75, label %78

75:                                               ; preds = %70
  %76 = load ptr, ptr %13, align 8, !tbaa !5
  %77 = load double, ptr %76, align 8, !tbaa !9
  br label %82

78:                                               ; preds = %70
  %79 = load ptr, ptr %13, align 8, !tbaa !5
  %80 = load double, ptr %79, align 8, !tbaa !9
  %81 = fneg double %80
  br label %82

82:                                               ; preds = %78, %75
  %83 = phi double [ %77, %75 ], [ %81, %78 ]
  store double %83, ptr %36, align 8, !tbaa !9
  %84 = load ptr, ptr %10, align 8, !tbaa !5
  %85 = load i32, ptr %84, align 4, !tbaa !11
  %86 = icmp eq i32 %85, 1
  br i1 %86, label %87, label %394

87:                                               ; preds = %82
  %88 = load ptr, ptr %13, align 8, !tbaa !5
  %89 = load double, ptr %88, align 8, !tbaa !9
  %90 = fcmp oeq double %89, 0.000000e+00
  br i1 %90, label %91, label %141

91:                                               ; preds = %87
  %92 = load double, ptr %33, align 8, !tbaa !9
  %93 = load double, ptr %34, align 8, !tbaa !9
  %94 = fcmp oge double %92, %93
  br i1 %94, label %95, label %97

95:                                               ; preds = %91
  %96 = load double, ptr %33, align 8, !tbaa !9
  br label %99

97:                                               ; preds = %91
  %98 = load double, ptr %34, align 8, !tbaa !9
  br label %99

99:                                               ; preds = %97, %95
  %100 = phi double [ %96, %95 ], [ %98, %97 ]
  store double %100, ptr %31, align 8, !tbaa !9
  %101 = load double, ptr %31, align 8, !tbaa !9
  %102 = fcmp oeq double %101, 0.000000e+00
  br i1 %102, label %103, label %107

103:                                              ; preds = %99
  %104 = load ptr, ptr %17, align 8, !tbaa !5
  store double 0.000000e+00, ptr %104, align 8, !tbaa !9
  %105 = load ptr, ptr %18, align 8, !tbaa !5
  store double 1.000000e+00, ptr %105, align 8, !tbaa !9
  %106 = load ptr, ptr %16, align 8, !tbaa !5
  store double 0.000000e+00, ptr %106, align 8, !tbaa !9
  br label %140

107:                                              ; preds = %99
  %108 = load double, ptr %29, align 8, !tbaa !9
  %109 = load double, ptr %31, align 8, !tbaa !9
  %110 = fdiv double %108, %109
  %111 = load ptr, ptr %17, align 8, !tbaa !5
  store double %110, ptr %111, align 8, !tbaa !9
  %112 = load ptr, ptr %15, align 8, !tbaa !5
  %113 = load double, ptr %112, align 8, !tbaa !9
  %114 = load double, ptr %31, align 8, !tbaa !9
  %115 = fdiv double %113, %114
  %116 = load ptr, ptr %18, align 8, !tbaa !5
  store double %115, ptr %116, align 8, !tbaa !9
  %117 = load ptr, ptr %17, align 8, !tbaa !5
  %118 = load double, ptr %117, align 8, !tbaa !9
  %119 = load ptr, ptr %17, align 8, !tbaa !5
  %120 = load double, ptr %119, align 8, !tbaa !9
  %121 = load ptr, ptr %18, align 8, !tbaa !5
  %122 = load double, ptr %121, align 8, !tbaa !9
  %123 = load ptr, ptr %18, align 8, !tbaa !5
  %124 = load double, ptr %123, align 8, !tbaa !9
  %125 = fmul double %122, %124
  %126 = call double @llvm.fmuladd.f64(double %118, double %120, double %125)
  %127 = call double @sqrt(double noundef %126) #5
  store double %127, ptr %38, align 8, !tbaa !9
  %128 = load double, ptr %38, align 8, !tbaa !9
  %129 = load ptr, ptr %17, align 8, !tbaa !5
  %130 = load double, ptr %129, align 8, !tbaa !9
  %131 = fdiv double %130, %128
  store double %131, ptr %129, align 8, !tbaa !9
  %132 = load double, ptr %38, align 8, !tbaa !9
  %133 = load ptr, ptr %18, align 8, !tbaa !5
  %134 = load double, ptr %133, align 8, !tbaa !9
  %135 = fdiv double %134, %132
  store double %135, ptr %133, align 8, !tbaa !9
  %136 = load double, ptr %31, align 8, !tbaa !9
  %137 = load double, ptr %38, align 8, !tbaa !9
  %138 = fmul double %136, %137
  %139 = load ptr, ptr %16, align 8, !tbaa !5
  store double %138, ptr %139, align 8, !tbaa !9
  br label %140

140:                                              ; preds = %107, %103
  store i32 1, ptr %39, align 4
  br label %822

141:                                              ; preds = %87
  %142 = load double, ptr %33, align 8, !tbaa !9
  %143 = load double, ptr %37, align 8, !tbaa !9
  %144 = load double, ptr %36, align 8, !tbaa !9
  %145 = fmul double %143, %144
  %146 = fcmp ole double %142, %145
  br i1 %146, label %147, label %175

147:                                              ; preds = %141
  %148 = load ptr, ptr %17, align 8, !tbaa !5
  store double 1.000000e+00, ptr %148, align 8, !tbaa !9
  %149 = load ptr, ptr %18, align 8, !tbaa !5
  store double 0.000000e+00, ptr %149, align 8, !tbaa !9
  %150 = load double, ptr %36, align 8, !tbaa !9
  %151 = load double, ptr %34, align 8, !tbaa !9
  %152 = fcmp oge double %150, %151
  br i1 %152, label %153, label %155

153:                                              ; preds = %147
  %154 = load double, ptr %36, align 8, !tbaa !9
  br label %157

155:                                              ; preds = %147
  %156 = load double, ptr %34, align 8, !tbaa !9
  br label %157

157:                                              ; preds = %155, %153
  %158 = phi double [ %154, %153 ], [ %156, %155 ]
  store double %158, ptr %38, align 8, !tbaa !9
  %159 = load double, ptr %36, align 8, !tbaa !9
  %160 = load double, ptr %38, align 8, !tbaa !9
  %161 = fdiv double %159, %160
  store double %161, ptr %31, align 8, !tbaa !9
  %162 = load double, ptr %34, align 8, !tbaa !9
  %163 = load double, ptr %38, align 8, !tbaa !9
  %164 = fdiv double %162, %163
  store double %164, ptr %32, align 8, !tbaa !9
  %165 = load double, ptr %38, align 8, !tbaa !9
  %166 = load double, ptr %31, align 8, !tbaa !9
  %167 = load double, ptr %31, align 8, !tbaa !9
  %168 = load double, ptr %32, align 8, !tbaa !9
  %169 = load double, ptr %32, align 8, !tbaa !9
  %170 = fmul double %168, %169
  %171 = call double @llvm.fmuladd.f64(double %166, double %167, double %170)
  %172 = call double @sqrt(double noundef %171) #5
  %173 = fmul double %165, %172
  %174 = load ptr, ptr %16, align 8, !tbaa !5
  store double %173, ptr %174, align 8, !tbaa !9
  store i32 1, ptr %39, align 4
  br label %822

175:                                              ; preds = %141
  %176 = load double, ptr %34, align 8, !tbaa !9
  %177 = load double, ptr %37, align 8, !tbaa !9
  %178 = load double, ptr %36, align 8, !tbaa !9
  %179 = fmul double %177, %178
  %180 = fcmp ole double %176, %179
  br i1 %180, label %181, label %198

181:                                              ; preds = %175
  %182 = load double, ptr %33, align 8, !tbaa !9
  store double %182, ptr %31, align 8, !tbaa !9
  %183 = load double, ptr %36, align 8, !tbaa !9
  store double %183, ptr %32, align 8, !tbaa !9
  %184 = load double, ptr %31, align 8, !tbaa !9
  %185 = load double, ptr %32, align 8, !tbaa !9
  %186 = fcmp ole double %184, %185
  br i1 %186, label %187, label %192

187:                                              ; preds = %181
  %188 = load ptr, ptr %17, align 8, !tbaa !5
  store double 1.000000e+00, ptr %188, align 8, !tbaa !9
  %189 = load ptr, ptr %18, align 8, !tbaa !5
  store double 0.000000e+00, ptr %189, align 8, !tbaa !9
  %190 = load double, ptr %32, align 8, !tbaa !9
  %191 = load ptr, ptr %16, align 8, !tbaa !5
  store double %190, ptr %191, align 8, !tbaa !9
  br label %197

192:                                              ; preds = %181
  %193 = load ptr, ptr %17, align 8, !tbaa !5
  store double 0.000000e+00, ptr %193, align 8, !tbaa !9
  %194 = load ptr, ptr %18, align 8, !tbaa !5
  store double 1.000000e+00, ptr %194, align 8, !tbaa !9
  %195 = load double, ptr %31, align 8, !tbaa !9
  %196 = load ptr, ptr %16, align 8, !tbaa !5
  store double %195, ptr %196, align 8, !tbaa !9
  br label %197

197:                                              ; preds = %192, %187
  store i32 1, ptr %39, align 4
  br label %822

198:                                              ; preds = %175
  %199 = load double, ptr %36, align 8, !tbaa !9
  %200 = load double, ptr %37, align 8, !tbaa !9
  %201 = load double, ptr %34, align 8, !tbaa !9
  %202 = fmul double %200, %201
  %203 = fcmp ole double %199, %202
  br i1 %203, label %210, label %204

204:                                              ; preds = %198
  %205 = load double, ptr %36, align 8, !tbaa !9
  %206 = load double, ptr %37, align 8, !tbaa !9
  %207 = load double, ptr %33, align 8, !tbaa !9
  %208 = fmul double %206, %207
  %209 = fcmp ole double %205, %208
  br i1 %209, label %210, label %319

210:                                              ; preds = %204, %198
  %211 = load double, ptr %33, align 8, !tbaa !9
  store double %211, ptr %31, align 8, !tbaa !9
  %212 = load double, ptr %34, align 8, !tbaa !9
  store double %212, ptr %32, align 8, !tbaa !9
  %213 = load double, ptr %31, align 8, !tbaa !9
  %214 = load double, ptr %32, align 8, !tbaa !9
  %215 = fcmp ole double %213, %214
  br i1 %215, label %216, label %267

216:                                              ; preds = %210
  %217 = load double, ptr %31, align 8, !tbaa !9
  %218 = load double, ptr %32, align 8, !tbaa !9
  %219 = fdiv double %217, %218
  store double %219, ptr %38, align 8, !tbaa !9
  %220 = load double, ptr %38, align 8, !tbaa !9
  %221 = load double, ptr %38, align 8, !tbaa !9
  %222 = call double @llvm.fmuladd.f64(double %220, double %221, double 1.000000e+00)
  %223 = call double @sqrt(double noundef %222) #5
  %224 = load ptr, ptr %17, align 8, !tbaa !5
  store double %223, ptr %224, align 8, !tbaa !9
  %225 = load double, ptr %32, align 8, !tbaa !9
  %226 = load ptr, ptr %17, align 8, !tbaa !5
  %227 = load double, ptr %226, align 8, !tbaa !9
  %228 = fmul double %225, %227
  %229 = load ptr, ptr %16, align 8, !tbaa !5
  store double %228, ptr %229, align 8, !tbaa !9
  %230 = load ptr, ptr %15, align 8, !tbaa !5
  %231 = load double, ptr %230, align 8, !tbaa !9
  %232 = load double, ptr %32, align 8, !tbaa !9
  %233 = fdiv double %231, %232
  %234 = load ptr, ptr %17, align 8, !tbaa !5
  %235 = load double, ptr %234, align 8, !tbaa !9
  %236 = fdiv double %233, %235
  %237 = load ptr, ptr %18, align 8, !tbaa !5
  store double %236, ptr %237, align 8, !tbaa !9
  %238 = load double, ptr %29, align 8, !tbaa !9
  %239 = fcmp oge double %238, 0.000000e+00
  br i1 %239, label %240, label %250

240:                                              ; preds = %216
  %241 = load double, ptr @c_b5, align 8, !tbaa !9
  %242 = fcmp oge double %241, 0.000000e+00
  br i1 %242, label %243, label %245

243:                                              ; preds = %240
  %244 = load double, ptr @c_b5, align 8, !tbaa !9
  br label %248

245:                                              ; preds = %240
  %246 = load double, ptr @c_b5, align 8, !tbaa !9
  %247 = fneg double %246
  br label %248

248:                                              ; preds = %245, %243
  %249 = phi double [ %244, %243 ], [ %247, %245 ]
  br label %261

250:                                              ; preds = %216
  %251 = load double, ptr @c_b5, align 8, !tbaa !9
  %252 = fcmp oge double %251, 0.000000e+00
  br i1 %252, label %253, label %255

253:                                              ; preds = %250
  %254 = load double, ptr @c_b5, align 8, !tbaa !9
  br label %258

255:                                              ; preds = %250
  %256 = load double, ptr @c_b5, align 8, !tbaa !9
  %257 = fneg double %256
  br label %258

258:                                              ; preds = %255, %253
  %259 = phi double [ %254, %253 ], [ %257, %255 ]
  %260 = fneg double %259
  br label %261

261:                                              ; preds = %258, %248
  %262 = phi double [ %249, %248 ], [ %260, %258 ]
  %263 = load ptr, ptr %17, align 8, !tbaa !5
  %264 = load double, ptr %263, align 8, !tbaa !9
  %265 = fdiv double %262, %264
  %266 = load ptr, ptr %17, align 8, !tbaa !5
  store double %265, ptr %266, align 8, !tbaa !9
  br label %318

267:                                              ; preds = %210
  %268 = load double, ptr %32, align 8, !tbaa !9
  %269 = load double, ptr %31, align 8, !tbaa !9
  %270 = fdiv double %268, %269
  store double %270, ptr %38, align 8, !tbaa !9
  %271 = load double, ptr %38, align 8, !tbaa !9
  %272 = load double, ptr %38, align 8, !tbaa !9
  %273 = call double @llvm.fmuladd.f64(double %271, double %272, double 1.000000e+00)
  %274 = call double @sqrt(double noundef %273) #5
  %275 = load ptr, ptr %18, align 8, !tbaa !5
  store double %274, ptr %275, align 8, !tbaa !9
  %276 = load double, ptr %31, align 8, !tbaa !9
  %277 = load ptr, ptr %18, align 8, !tbaa !5
  %278 = load double, ptr %277, align 8, !tbaa !9
  %279 = fmul double %276, %278
  %280 = load ptr, ptr %16, align 8, !tbaa !5
  store double %279, ptr %280, align 8, !tbaa !9
  %281 = load double, ptr %29, align 8, !tbaa !9
  %282 = load double, ptr %31, align 8, !tbaa !9
  %283 = fdiv double %281, %282
  %284 = load ptr, ptr %18, align 8, !tbaa !5
  %285 = load double, ptr %284, align 8, !tbaa !9
  %286 = fdiv double %283, %285
  %287 = load ptr, ptr %17, align 8, !tbaa !5
  store double %286, ptr %287, align 8, !tbaa !9
  %288 = load ptr, ptr %15, align 8, !tbaa !5
  %289 = load double, ptr %288, align 8, !tbaa !9
  %290 = fcmp oge double %289, 0.000000e+00
  br i1 %290, label %291, label %301

291:                                              ; preds = %267
  %292 = load double, ptr @c_b5, align 8, !tbaa !9
  %293 = fcmp oge double %292, 0.000000e+00
  br i1 %293, label %294, label %296

294:                                              ; preds = %291
  %295 = load double, ptr @c_b5, align 8, !tbaa !9
  br label %299

296:                                              ; preds = %291
  %297 = load double, ptr @c_b5, align 8, !tbaa !9
  %298 = fneg double %297
  br label %299

299:                                              ; preds = %296, %294
  %300 = phi double [ %295, %294 ], [ %298, %296 ]
  br label %312

301:                                              ; preds = %267
  %302 = load double, ptr @c_b5, align 8, !tbaa !9
  %303 = fcmp oge double %302, 0.000000e+00
  br i1 %303, label %304, label %306

304:                                              ; preds = %301
  %305 = load double, ptr @c_b5, align 8, !tbaa !9
  br label %309

306:                                              ; preds = %301
  %307 = load double, ptr @c_b5, align 8, !tbaa !9
  %308 = fneg double %307
  br label %309

309:                                              ; preds = %306, %304
  %310 = phi double [ %305, %304 ], [ %308, %306 ]
  %311 = fneg double %310
  br label %312

312:                                              ; preds = %309, %299
  %313 = phi double [ %300, %299 ], [ %311, %309 ]
  %314 = load ptr, ptr %18, align 8, !tbaa !5
  %315 = load double, ptr %314, align 8, !tbaa !9
  %316 = fdiv double %313, %315
  %317 = load ptr, ptr %18, align 8, !tbaa !5
  store double %316, ptr %317, align 8, !tbaa !9
  br label %318

318:                                              ; preds = %312, %261
  store i32 1, ptr %39, align 4
  br label %822

319:                                              ; preds = %204
  %320 = load double, ptr %29, align 8, !tbaa !9
  %321 = load double, ptr %36, align 8, !tbaa !9
  %322 = fdiv double %320, %321
  store double %322, ptr %25, align 8, !tbaa !9
  %323 = load ptr, ptr %15, align 8, !tbaa !5
  %324 = load double, ptr %323, align 8, !tbaa !9
  %325 = load double, ptr %36, align 8, !tbaa !9
  %326 = fdiv double %324, %325
  store double %326, ptr %26, align 8, !tbaa !9
  %327 = load double, ptr %25, align 8, !tbaa !9
  %328 = load double, ptr %25, align 8, !tbaa !9
  %329 = fneg double %327
  %330 = call double @llvm.fmuladd.f64(double %329, double %328, double 1.000000e+00)
  %331 = load double, ptr %26, align 8, !tbaa !9
  %332 = load double, ptr %26, align 8, !tbaa !9
  %333 = fneg double %331
  %334 = call double @llvm.fmuladd.f64(double %333, double %332, double %330)
  %335 = fmul double %334, 5.000000e-01
  store double %335, ptr %27, align 8, !tbaa !9
  %336 = load double, ptr %25, align 8, !tbaa !9
  %337 = load double, ptr %25, align 8, !tbaa !9
  %338 = fmul double %336, %337
  %339 = load ptr, ptr %18, align 8, !tbaa !5
  store double %338, ptr %339, align 8, !tbaa !9
  %340 = load double, ptr %27, align 8, !tbaa !9
  %341 = fcmp ogt double %340, 0.000000e+00
  br i1 %341, label %342, label %354

342:                                              ; preds = %319
  %343 = load ptr, ptr %18, align 8, !tbaa !5
  %344 = load double, ptr %343, align 8, !tbaa !9
  %345 = load double, ptr %27, align 8, !tbaa !9
  %346 = load double, ptr %27, align 8, !tbaa !9
  %347 = load double, ptr %27, align 8, !tbaa !9
  %348 = load ptr, ptr %18, align 8, !tbaa !5
  %349 = load double, ptr %348, align 8, !tbaa !9
  %350 = call double @llvm.fmuladd.f64(double %346, double %347, double %349)
  %351 = call double @sqrt(double noundef %350) #5
  %352 = fadd double %345, %351
  %353 = fdiv double %344, %352
  store double %353, ptr %28, align 8, !tbaa !9
  br label %363

354:                                              ; preds = %319
  %355 = load double, ptr %27, align 8, !tbaa !9
  %356 = load double, ptr %27, align 8, !tbaa !9
  %357 = load ptr, ptr %18, align 8, !tbaa !5
  %358 = load double, ptr %357, align 8, !tbaa !9
  %359 = call double @llvm.fmuladd.f64(double %355, double %356, double %358)
  %360 = call double @sqrt(double noundef %359) #5
  %361 = load double, ptr %27, align 8, !tbaa !9
  %362 = fsub double %360, %361
  store double %362, ptr %28, align 8, !tbaa !9
  br label %363

363:                                              ; preds = %354, %342
  %364 = load double, ptr %25, align 8, !tbaa !9
  %365 = fneg double %364
  %366 = load double, ptr %28, align 8, !tbaa !9
  %367 = fdiv double %365, %366
  store double %367, ptr %23, align 8, !tbaa !9
  %368 = load double, ptr %26, align 8, !tbaa !9
  %369 = fneg double %368
  %370 = load double, ptr %28, align 8, !tbaa !9
  %371 = fadd double %370, 1.000000e+00
  %372 = fdiv double %369, %371
  store double %372, ptr %35, align 8, !tbaa !9
  %373 = load double, ptr %23, align 8, !tbaa !9
  %374 = load double, ptr %23, align 8, !tbaa !9
  %375 = load double, ptr %35, align 8, !tbaa !9
  %376 = load double, ptr %35, align 8, !tbaa !9
  %377 = fmul double %375, %376
  %378 = call double @llvm.fmuladd.f64(double %373, double %374, double %377)
  %379 = call double @sqrt(double noundef %378) #5
  store double %379, ptr %38, align 8, !tbaa !9
  %380 = load double, ptr %23, align 8, !tbaa !9
  %381 = load double, ptr %38, align 8, !tbaa !9
  %382 = fdiv double %380, %381
  %383 = load ptr, ptr %17, align 8, !tbaa !5
  store double %382, ptr %383, align 8, !tbaa !9
  %384 = load double, ptr %35, align 8, !tbaa !9
  %385 = load double, ptr %38, align 8, !tbaa !9
  %386 = fdiv double %384, %385
  %387 = load ptr, ptr %18, align 8, !tbaa !5
  store double %386, ptr %387, align 8, !tbaa !9
  %388 = load double, ptr %28, align 8, !tbaa !9
  %389 = fadd double %388, 1.000000e+00
  %390 = call double @sqrt(double noundef %389) #5
  %391 = load double, ptr %36, align 8, !tbaa !9
  %392 = fmul double %390, %391
  %393 = load ptr, ptr %16, align 8, !tbaa !5
  store double %392, ptr %393, align 8, !tbaa !9
  store i32 1, ptr %39, align 4
  br label %822

394:                                              ; preds = %82
  %395 = load ptr, ptr %10, align 8, !tbaa !5
  %396 = load i32, ptr %395, align 4, !tbaa !11
  %397 = icmp eq i32 %396, 2
  br i1 %397, label %398, label %820

398:                                              ; preds = %394
  %399 = load ptr, ptr %13, align 8, !tbaa !5
  %400 = load double, ptr %399, align 8, !tbaa !9
  %401 = fcmp oeq double %400, 0.000000e+00
  br i1 %401, label %402, label %475

402:                                              ; preds = %398
  %403 = load ptr, ptr %16, align 8, !tbaa !5
  store double 0.000000e+00, ptr %403, align 8, !tbaa !9
  %404 = load double, ptr %33, align 8, !tbaa !9
  %405 = load double, ptr %34, align 8, !tbaa !9
  %406 = fcmp oge double %404, %405
  br i1 %406, label %407, label %409

407:                                              ; preds = %402
  %408 = load double, ptr %33, align 8, !tbaa !9
  br label %411

409:                                              ; preds = %402
  %410 = load double, ptr %34, align 8, !tbaa !9
  br label %411

411:                                              ; preds = %409, %407
  %412 = phi double [ %408, %407 ], [ %410, %409 ]
  %413 = fcmp oeq double %412, 0.000000e+00
  br i1 %413, label %414, label %415

414:                                              ; preds = %411
  store double 1.000000e+00, ptr %23, align 8, !tbaa !9
  store double 0.000000e+00, ptr %35, align 8, !tbaa !9
  br label %420

415:                                              ; preds = %411
  %416 = load ptr, ptr %15, align 8, !tbaa !5
  %417 = load double, ptr %416, align 8, !tbaa !9
  %418 = fneg double %417
  store double %418, ptr %23, align 8, !tbaa !9
  %419 = load double, ptr %29, align 8, !tbaa !9
  store double %419, ptr %35, align 8, !tbaa !9
  br label %420

420:                                              ; preds = %415, %414
  %421 = load double, ptr %23, align 8, !tbaa !9
  %422 = fcmp oge double %421, 0.000000e+00
  br i1 %422, label %423, label %425

423:                                              ; preds = %420
  %424 = load double, ptr %23, align 8, !tbaa !9
  br label %428

425:                                              ; preds = %420
  %426 = load double, ptr %23, align 8, !tbaa !9
  %427 = fneg double %426
  br label %428

428:                                              ; preds = %425, %423
  %429 = phi double [ %424, %423 ], [ %427, %425 ]
  store double %429, ptr %19, align 8, !tbaa !9
  %430 = load double, ptr %35, align 8, !tbaa !9
  %431 = fcmp oge double %430, 0.000000e+00
  br i1 %431, label %432, label %434

432:                                              ; preds = %428
  %433 = load double, ptr %35, align 8, !tbaa !9
  br label %437

434:                                              ; preds = %428
  %435 = load double, ptr %35, align 8, !tbaa !9
  %436 = fneg double %435
  br label %437

437:                                              ; preds = %434, %432
  %438 = phi double [ %433, %432 ], [ %436, %434 ]
  store double %438, ptr %20, align 8, !tbaa !9
  %439 = load double, ptr %19, align 8, !tbaa !9
  %440 = load double, ptr %20, align 8, !tbaa !9
  %441 = fcmp oge double %439, %440
  br i1 %441, label %442, label %444

442:                                              ; preds = %437
  %443 = load double, ptr %19, align 8, !tbaa !9
  br label %446

444:                                              ; preds = %437
  %445 = load double, ptr %20, align 8, !tbaa !9
  br label %446

446:                                              ; preds = %444, %442
  %447 = phi double [ %443, %442 ], [ %445, %444 ]
  store double %447, ptr %31, align 8, !tbaa !9
  %448 = load double, ptr %23, align 8, !tbaa !9
  %449 = load double, ptr %31, align 8, !tbaa !9
  %450 = fdiv double %448, %449
  %451 = load ptr, ptr %17, align 8, !tbaa !5
  store double %450, ptr %451, align 8, !tbaa !9
  %452 = load double, ptr %35, align 8, !tbaa !9
  %453 = load double, ptr %31, align 8, !tbaa !9
  %454 = fdiv double %452, %453
  %455 = load ptr, ptr %18, align 8, !tbaa !5
  store double %454, ptr %455, align 8, !tbaa !9
  %456 = load ptr, ptr %17, align 8, !tbaa !5
  %457 = load double, ptr %456, align 8, !tbaa !9
  %458 = load ptr, ptr %17, align 8, !tbaa !5
  %459 = load double, ptr %458, align 8, !tbaa !9
  %460 = load ptr, ptr %18, align 8, !tbaa !5
  %461 = load double, ptr %460, align 8, !tbaa !9
  %462 = load ptr, ptr %18, align 8, !tbaa !5
  %463 = load double, ptr %462, align 8, !tbaa !9
  %464 = fmul double %461, %463
  %465 = call double @llvm.fmuladd.f64(double %457, double %459, double %464)
  %466 = call double @sqrt(double noundef %465) #5
  store double %466, ptr %38, align 8, !tbaa !9
  %467 = load double, ptr %38, align 8, !tbaa !9
  %468 = load ptr, ptr %17, align 8, !tbaa !5
  %469 = load double, ptr %468, align 8, !tbaa !9
  %470 = fdiv double %469, %467
  store double %470, ptr %468, align 8, !tbaa !9
  %471 = load double, ptr %38, align 8, !tbaa !9
  %472 = load ptr, ptr %18, align 8, !tbaa !5
  %473 = load double, ptr %472, align 8, !tbaa !9
  %474 = fdiv double %473, %471
  store double %474, ptr %472, align 8, !tbaa !9
  store i32 1, ptr %39, align 4
  br label %822

475:                                              ; preds = %398
  %476 = load double, ptr %33, align 8, !tbaa !9
  %477 = load double, ptr %37, align 8, !tbaa !9
  %478 = load double, ptr %36, align 8, !tbaa !9
  %479 = fmul double %477, %478
  %480 = fcmp ole double %476, %479
  br i1 %480, label %481, label %486

481:                                              ; preds = %475
  %482 = load ptr, ptr %17, align 8, !tbaa !5
  store double 0.000000e+00, ptr %482, align 8, !tbaa !9
  %483 = load ptr, ptr %18, align 8, !tbaa !5
  store double 1.000000e+00, ptr %483, align 8, !tbaa !9
  %484 = load double, ptr %33, align 8, !tbaa !9
  %485 = load ptr, ptr %16, align 8, !tbaa !5
  store double %484, ptr %485, align 8, !tbaa !9
  store i32 1, ptr %39, align 4
  br label %822

486:                                              ; preds = %475
  %487 = load double, ptr %34, align 8, !tbaa !9
  %488 = load double, ptr %37, align 8, !tbaa !9
  %489 = load double, ptr %36, align 8, !tbaa !9
  %490 = fmul double %488, %489
  %491 = fcmp ole double %487, %490
  br i1 %491, label %492, label %509

492:                                              ; preds = %486
  %493 = load double, ptr %33, align 8, !tbaa !9
  store double %493, ptr %31, align 8, !tbaa !9
  %494 = load double, ptr %36, align 8, !tbaa !9
  store double %494, ptr %32, align 8, !tbaa !9
  %495 = load double, ptr %31, align 8, !tbaa !9
  %496 = load double, ptr %32, align 8, !tbaa !9
  %497 = fcmp ole double %495, %496
  br i1 %497, label %498, label %503

498:                                              ; preds = %492
  %499 = load ptr, ptr %17, align 8, !tbaa !5
  store double 0.000000e+00, ptr %499, align 8, !tbaa !9
  %500 = load ptr, ptr %18, align 8, !tbaa !5
  store double 1.000000e+00, ptr %500, align 8, !tbaa !9
  %501 = load double, ptr %31, align 8, !tbaa !9
  %502 = load ptr, ptr %16, align 8, !tbaa !5
  store double %501, ptr %502, align 8, !tbaa !9
  br label %508

503:                                              ; preds = %492
  %504 = load ptr, ptr %17, align 8, !tbaa !5
  store double 1.000000e+00, ptr %504, align 8, !tbaa !9
  %505 = load ptr, ptr %18, align 8, !tbaa !5
  store double 0.000000e+00, ptr %505, align 8, !tbaa !9
  %506 = load double, ptr %32, align 8, !tbaa !9
  %507 = load ptr, ptr %16, align 8, !tbaa !5
  store double %506, ptr %507, align 8, !tbaa !9
  br label %508

508:                                              ; preds = %503, %498
  store i32 1, ptr %39, align 4
  br label %822

509:                                              ; preds = %486
  %510 = load double, ptr %36, align 8, !tbaa !9
  %511 = load double, ptr %37, align 8, !tbaa !9
  %512 = load double, ptr %34, align 8, !tbaa !9
  %513 = fmul double %511, %512
  %514 = fcmp ole double %510, %513
  br i1 %514, label %521, label %515

515:                                              ; preds = %509
  %516 = load double, ptr %36, align 8, !tbaa !9
  %517 = load double, ptr %37, align 8, !tbaa !9
  %518 = load double, ptr %33, align 8, !tbaa !9
  %519 = fmul double %517, %518
  %520 = fcmp ole double %516, %519
  br i1 %520, label %521, label %634

521:                                              ; preds = %515, %509
  %522 = load double, ptr %33, align 8, !tbaa !9
  store double %522, ptr %31, align 8, !tbaa !9
  %523 = load double, ptr %34, align 8, !tbaa !9
  store double %523, ptr %32, align 8, !tbaa !9
  %524 = load double, ptr %31, align 8, !tbaa !9
  %525 = load double, ptr %32, align 8, !tbaa !9
  %526 = fcmp ole double %524, %525
  br i1 %526, label %527, label %581

527:                                              ; preds = %521
  %528 = load double, ptr %31, align 8, !tbaa !9
  %529 = load double, ptr %32, align 8, !tbaa !9
  %530 = fdiv double %528, %529
  store double %530, ptr %38, align 8, !tbaa !9
  %531 = load double, ptr %38, align 8, !tbaa !9
  %532 = load double, ptr %38, align 8, !tbaa !9
  %533 = call double @llvm.fmuladd.f64(double %531, double %532, double 1.000000e+00)
  %534 = call double @sqrt(double noundef %533) #5
  %535 = load ptr, ptr %18, align 8, !tbaa !5
  store double %534, ptr %535, align 8, !tbaa !9
  %536 = load double, ptr %36, align 8, !tbaa !9
  %537 = load double, ptr %38, align 8, !tbaa !9
  %538 = load ptr, ptr %18, align 8, !tbaa !5
  %539 = load double, ptr %538, align 8, !tbaa !9
  %540 = fdiv double %537, %539
  %541 = fmul double %536, %540
  %542 = load ptr, ptr %16, align 8, !tbaa !5
  store double %541, ptr %542, align 8, !tbaa !9
  %543 = load ptr, ptr %15, align 8, !tbaa !5
  %544 = load double, ptr %543, align 8, !tbaa !9
  %545 = load double, ptr %32, align 8, !tbaa !9
  %546 = fdiv double %544, %545
  %547 = fneg double %546
  %548 = load ptr, ptr %18, align 8, !tbaa !5
  %549 = load double, ptr %548, align 8, !tbaa !9
  %550 = fdiv double %547, %549
  %551 = load ptr, ptr %17, align 8, !tbaa !5
  store double %550, ptr %551, align 8, !tbaa !9
  %552 = load double, ptr %29, align 8, !tbaa !9
  %553 = fcmp oge double %552, 0.000000e+00
  br i1 %553, label %554, label %564

554:                                              ; preds = %527
  %555 = load double, ptr @c_b5, align 8, !tbaa !9
  %556 = fcmp oge double %555, 0.000000e+00
  br i1 %556, label %557, label %559

557:                                              ; preds = %554
  %558 = load double, ptr @c_b5, align 8, !tbaa !9
  br label %562

559:                                              ; preds = %554
  %560 = load double, ptr @c_b5, align 8, !tbaa !9
  %561 = fneg double %560
  br label %562

562:                                              ; preds = %559, %557
  %563 = phi double [ %558, %557 ], [ %561, %559 ]
  br label %575

564:                                              ; preds = %527
  %565 = load double, ptr @c_b5, align 8, !tbaa !9
  %566 = fcmp oge double %565, 0.000000e+00
  br i1 %566, label %567, label %569

567:                                              ; preds = %564
  %568 = load double, ptr @c_b5, align 8, !tbaa !9
  br label %572

569:                                              ; preds = %564
  %570 = load double, ptr @c_b5, align 8, !tbaa !9
  %571 = fneg double %570
  br label %572

572:                                              ; preds = %569, %567
  %573 = phi double [ %568, %567 ], [ %571, %569 ]
  %574 = fneg double %573
  br label %575

575:                                              ; preds = %572, %562
  %576 = phi double [ %563, %562 ], [ %574, %572 ]
  %577 = load ptr, ptr %18, align 8, !tbaa !5
  %578 = load double, ptr %577, align 8, !tbaa !9
  %579 = fdiv double %576, %578
  %580 = load ptr, ptr %18, align 8, !tbaa !5
  store double %579, ptr %580, align 8, !tbaa !9
  br label %633

581:                                              ; preds = %521
  %582 = load double, ptr %32, align 8, !tbaa !9
  %583 = load double, ptr %31, align 8, !tbaa !9
  %584 = fdiv double %582, %583
  store double %584, ptr %38, align 8, !tbaa !9
  %585 = load double, ptr %38, align 8, !tbaa !9
  %586 = load double, ptr %38, align 8, !tbaa !9
  %587 = call double @llvm.fmuladd.f64(double %585, double %586, double 1.000000e+00)
  %588 = call double @sqrt(double noundef %587) #5
  %589 = load ptr, ptr %17, align 8, !tbaa !5
  store double %588, ptr %589, align 8, !tbaa !9
  %590 = load double, ptr %36, align 8, !tbaa !9
  %591 = load ptr, ptr %17, align 8, !tbaa !5
  %592 = load double, ptr %591, align 8, !tbaa !9
  %593 = fdiv double %590, %592
  %594 = load ptr, ptr %16, align 8, !tbaa !5
  store double %593, ptr %594, align 8, !tbaa !9
  %595 = load double, ptr %29, align 8, !tbaa !9
  %596 = load double, ptr %31, align 8, !tbaa !9
  %597 = fdiv double %595, %596
  %598 = load ptr, ptr %17, align 8, !tbaa !5
  %599 = load double, ptr %598, align 8, !tbaa !9
  %600 = fdiv double %597, %599
  %601 = load ptr, ptr %18, align 8, !tbaa !5
  store double %600, ptr %601, align 8, !tbaa !9
  %602 = load ptr, ptr %15, align 8, !tbaa !5
  %603 = load double, ptr %602, align 8, !tbaa !9
  %604 = fcmp oge double %603, 0.000000e+00
  br i1 %604, label %605, label %615

605:                                              ; preds = %581
  %606 = load double, ptr @c_b5, align 8, !tbaa !9
  %607 = fcmp oge double %606, 0.000000e+00
  br i1 %607, label %608, label %610

608:                                              ; preds = %605
  %609 = load double, ptr @c_b5, align 8, !tbaa !9
  br label %613

610:                                              ; preds = %605
  %611 = load double, ptr @c_b5, align 8, !tbaa !9
  %612 = fneg double %611
  br label %613

613:                                              ; preds = %610, %608
  %614 = phi double [ %609, %608 ], [ %612, %610 ]
  br label %626

615:                                              ; preds = %581
  %616 = load double, ptr @c_b5, align 8, !tbaa !9
  %617 = fcmp oge double %616, 0.000000e+00
  br i1 %617, label %618, label %620

618:                                              ; preds = %615
  %619 = load double, ptr @c_b5, align 8, !tbaa !9
  br label %623

620:                                              ; preds = %615
  %621 = load double, ptr @c_b5, align 8, !tbaa !9
  %622 = fneg double %621
  br label %623

623:                                              ; preds = %620, %618
  %624 = phi double [ %619, %618 ], [ %622, %620 ]
  %625 = fneg double %624
  br label %626

626:                                              ; preds = %623, %613
  %627 = phi double [ %614, %613 ], [ %625, %623 ]
  %628 = fneg double %627
  %629 = load ptr, ptr %17, align 8, !tbaa !5
  %630 = load double, ptr %629, align 8, !tbaa !9
  %631 = fdiv double %628, %630
  %632 = load ptr, ptr %17, align 8, !tbaa !5
  store double %631, ptr %632, align 8, !tbaa !9
  br label %633

633:                                              ; preds = %626, %575
  store i32 1, ptr %39, align 4
  br label %822

634:                                              ; preds = %515
  %635 = load double, ptr %29, align 8, !tbaa !9
  %636 = load double, ptr %36, align 8, !tbaa !9
  %637 = fdiv double %635, %636
  store double %637, ptr %25, align 8, !tbaa !9
  %638 = load ptr, ptr %15, align 8, !tbaa !5
  %639 = load double, ptr %638, align 8, !tbaa !9
  %640 = load double, ptr %36, align 8, !tbaa !9
  %641 = fdiv double %639, %640
  store double %641, ptr %26, align 8, !tbaa !9
  %642 = load double, ptr %25, align 8, !tbaa !9
  %643 = load double, ptr %25, align 8, !tbaa !9
  %644 = call double @llvm.fmuladd.f64(double %642, double %643, double 1.000000e+00)
  %645 = load double, ptr %25, align 8, !tbaa !9
  %646 = load double, ptr %26, align 8, !tbaa !9
  %647 = fmul double %645, %646
  store double %647, ptr %19, align 8, !tbaa !9
  %648 = load double, ptr %19, align 8, !tbaa !9
  %649 = fcmp oge double %648, 0.000000e+00
  br i1 %649, label %650, label %652

650:                                              ; preds = %634
  %651 = load double, ptr %19, align 8, !tbaa !9
  br label %655

652:                                              ; preds = %634
  %653 = load double, ptr %19, align 8, !tbaa !9
  %654 = fneg double %653
  br label %655

655:                                              ; preds = %652, %650
  %656 = phi double [ %651, %650 ], [ %654, %652 ]
  %657 = fadd double %644, %656
  store double %657, ptr %21, align 8, !tbaa !9
  %658 = load double, ptr %25, align 8, !tbaa !9
  %659 = load double, ptr %26, align 8, !tbaa !9
  %660 = fmul double %658, %659
  store double %660, ptr %20, align 8, !tbaa !9
  %661 = load double, ptr %20, align 8, !tbaa !9
  %662 = fcmp oge double %661, 0.000000e+00
  br i1 %662, label %663, label %665

663:                                              ; preds = %655
  %664 = load double, ptr %20, align 8, !tbaa !9
  br label %668

665:                                              ; preds = %655
  %666 = load double, ptr %20, align 8, !tbaa !9
  %667 = fneg double %666
  br label %668

668:                                              ; preds = %665, %663
  %669 = phi double [ %664, %663 ], [ %667, %665 ]
  %670 = load double, ptr %26, align 8, !tbaa !9
  %671 = load double, ptr %26, align 8, !tbaa !9
  %672 = call double @llvm.fmuladd.f64(double %670, double %671, double %669)
  store double %672, ptr %22, align 8, !tbaa !9
  %673 = load double, ptr %21, align 8, !tbaa !9
  %674 = load double, ptr %22, align 8, !tbaa !9
  %675 = fcmp oge double %673, %674
  br i1 %675, label %676, label %678

676:                                              ; preds = %668
  %677 = load double, ptr %21, align 8, !tbaa !9
  br label %680

678:                                              ; preds = %668
  %679 = load double, ptr %22, align 8, !tbaa !9
  br label %680

680:                                              ; preds = %678, %676
  %681 = phi double [ %677, %676 ], [ %679, %678 ]
  store double %681, ptr %30, align 8, !tbaa !9
  %682 = load double, ptr %25, align 8, !tbaa !9
  %683 = load double, ptr %26, align 8, !tbaa !9
  %684 = fsub double %682, %683
  %685 = fmul double %684, 2.000000e+00
  %686 = load double, ptr %25, align 8, !tbaa !9
  %687 = load double, ptr %26, align 8, !tbaa !9
  %688 = fadd double %686, %687
  %689 = call double @llvm.fmuladd.f64(double %685, double %688, double 1.000000e+00)
  store double %689, ptr %24, align 8, !tbaa !9
  %690 = load double, ptr %24, align 8, !tbaa !9
  %691 = fcmp oge double %690, 0.000000e+00
  br i1 %691, label %692, label %745

692:                                              ; preds = %680
  %693 = load double, ptr %25, align 8, !tbaa !9
  %694 = load double, ptr %25, align 8, !tbaa !9
  %695 = load double, ptr %26, align 8, !tbaa !9
  %696 = load double, ptr %26, align 8, !tbaa !9
  %697 = fmul double %695, %696
  %698 = call double @llvm.fmuladd.f64(double %693, double %694, double %697)
  %699 = fadd double %698, 1.000000e+00
  %700 = fmul double %699, 5.000000e-01
  store double %700, ptr %27, align 8, !tbaa !9
  %701 = load double, ptr %26, align 8, !tbaa !9
  %702 = load double, ptr %26, align 8, !tbaa !9
  %703 = fmul double %701, %702
  %704 = load ptr, ptr %18, align 8, !tbaa !5
  store double %703, ptr %704, align 8, !tbaa !9
  %705 = load ptr, ptr %18, align 8, !tbaa !5
  %706 = load double, ptr %705, align 8, !tbaa !9
  %707 = load double, ptr %27, align 8, !tbaa !9
  %708 = load double, ptr %27, align 8, !tbaa !9
  %709 = load double, ptr %27, align 8, !tbaa !9
  %710 = load ptr, ptr %18, align 8, !tbaa !5
  %711 = load double, ptr %710, align 8, !tbaa !9
  %712 = fneg double %711
  %713 = call double @llvm.fmuladd.f64(double %708, double %709, double %712)
  store double %713, ptr %19, align 8, !tbaa !9
  %714 = load double, ptr %19, align 8, !tbaa !9
  %715 = fcmp oge double %714, 0.000000e+00
  br i1 %715, label %716, label %718

716:                                              ; preds = %692
  %717 = load double, ptr %19, align 8, !tbaa !9
  br label %721

718:                                              ; preds = %692
  %719 = load double, ptr %19, align 8, !tbaa !9
  %720 = fneg double %719
  br label %721

721:                                              ; preds = %718, %716
  %722 = phi double [ %717, %716 ], [ %720, %718 ]
  %723 = call double @sqrt(double noundef %722) #5
  %724 = fadd double %707, %723
  %725 = fdiv double %706, %724
  store double %725, ptr %28, align 8, !tbaa !9
  %726 = load double, ptr %25, align 8, !tbaa !9
  %727 = load double, ptr %28, align 8, !tbaa !9
  %728 = fsub double 1.000000e+00, %727
  %729 = fdiv double %726, %728
  store double %729, ptr %23, align 8, !tbaa !9
  %730 = load double, ptr %26, align 8, !tbaa !9
  %731 = fneg double %730
  %732 = load double, ptr %28, align 8, !tbaa !9
  %733 = fdiv double %731, %732
  store double %733, ptr %35, align 8, !tbaa !9
  %734 = load double, ptr %28, align 8, !tbaa !9
  %735 = load double, ptr %37, align 8, !tbaa !9
  %736 = fmul double %735, 4.000000e+00
  %737 = load double, ptr %37, align 8, !tbaa !9
  %738 = fmul double %736, %737
  %739 = load double, ptr %30, align 8, !tbaa !9
  %740 = call double @llvm.fmuladd.f64(double %738, double %739, double %734)
  %741 = call double @sqrt(double noundef %740) #5
  %742 = load double, ptr %36, align 8, !tbaa !9
  %743 = fmul double %741, %742
  %744 = load ptr, ptr %16, align 8, !tbaa !5
  store double %743, ptr %744, align 8, !tbaa !9
  br label %804

745:                                              ; preds = %680
  %746 = load double, ptr %26, align 8, !tbaa !9
  %747 = load double, ptr %26, align 8, !tbaa !9
  %748 = load double, ptr %25, align 8, !tbaa !9
  %749 = load double, ptr %25, align 8, !tbaa !9
  %750 = fmul double %748, %749
  %751 = call double @llvm.fmuladd.f64(double %746, double %747, double %750)
  %752 = fsub double %751, 1.000000e+00
  %753 = fmul double %752, 5.000000e-01
  store double %753, ptr %27, align 8, !tbaa !9
  %754 = load double, ptr %25, align 8, !tbaa !9
  %755 = load double, ptr %25, align 8, !tbaa !9
  %756 = fmul double %754, %755
  %757 = load ptr, ptr %18, align 8, !tbaa !5
  store double %756, ptr %757, align 8, !tbaa !9
  %758 = load double, ptr %27, align 8, !tbaa !9
  %759 = fcmp oge double %758, 0.000000e+00
  br i1 %759, label %760, label %773

760:                                              ; preds = %745
  %761 = load ptr, ptr %18, align 8, !tbaa !5
  %762 = load double, ptr %761, align 8, !tbaa !9
  %763 = fneg double %762
  %764 = load double, ptr %27, align 8, !tbaa !9
  %765 = load double, ptr %27, align 8, !tbaa !9
  %766 = load double, ptr %27, align 8, !tbaa !9
  %767 = load ptr, ptr %18, align 8, !tbaa !5
  %768 = load double, ptr %767, align 8, !tbaa !9
  %769 = call double @llvm.fmuladd.f64(double %765, double %766, double %768)
  %770 = call double @sqrt(double noundef %769) #5
  %771 = fadd double %764, %770
  %772 = fdiv double %763, %771
  store double %772, ptr %28, align 8, !tbaa !9
  br label %782

773:                                              ; preds = %745
  %774 = load double, ptr %27, align 8, !tbaa !9
  %775 = load double, ptr %27, align 8, !tbaa !9
  %776 = load double, ptr %27, align 8, !tbaa !9
  %777 = load ptr, ptr %18, align 8, !tbaa !5
  %778 = load double, ptr %777, align 8, !tbaa !9
  %779 = call double @llvm.fmuladd.f64(double %775, double %776, double %778)
  %780 = call double @sqrt(double noundef %779) #5
  %781 = fsub double %774, %780
  store double %781, ptr %28, align 8, !tbaa !9
  br label %782

782:                                              ; preds = %773, %760
  %783 = load double, ptr %25, align 8, !tbaa !9
  %784 = fneg double %783
  %785 = load double, ptr %28, align 8, !tbaa !9
  %786 = fdiv double %784, %785
  store double %786, ptr %23, align 8, !tbaa !9
  %787 = load double, ptr %26, align 8, !tbaa !9
  %788 = fneg double %787
  %789 = load double, ptr %28, align 8, !tbaa !9
  %790 = fadd double %789, 1.000000e+00
  %791 = fdiv double %788, %790
  store double %791, ptr %35, align 8, !tbaa !9
  %792 = load double, ptr %28, align 8, !tbaa !9
  %793 = fadd double %792, 1.000000e+00
  %794 = load double, ptr %37, align 8, !tbaa !9
  %795 = fmul double %794, 4.000000e+00
  %796 = load double, ptr %37, align 8, !tbaa !9
  %797 = fmul double %795, %796
  %798 = load double, ptr %30, align 8, !tbaa !9
  %799 = call double @llvm.fmuladd.f64(double %797, double %798, double %793)
  %800 = call double @sqrt(double noundef %799) #5
  %801 = load double, ptr %36, align 8, !tbaa !9
  %802 = fmul double %800, %801
  %803 = load ptr, ptr %16, align 8, !tbaa !5
  store double %802, ptr %803, align 8, !tbaa !9
  br label %804

804:                                              ; preds = %782, %721
  %805 = load double, ptr %23, align 8, !tbaa !9
  %806 = load double, ptr %23, align 8, !tbaa !9
  %807 = load double, ptr %35, align 8, !tbaa !9
  %808 = load double, ptr %35, align 8, !tbaa !9
  %809 = fmul double %807, %808
  %810 = call double @llvm.fmuladd.f64(double %805, double %806, double %809)
  %811 = call double @sqrt(double noundef %810) #5
  store double %811, ptr %38, align 8, !tbaa !9
  %812 = load double, ptr %23, align 8, !tbaa !9
  %813 = load double, ptr %38, align 8, !tbaa !9
  %814 = fdiv double %812, %813
  %815 = load ptr, ptr %17, align 8, !tbaa !5
  store double %814, ptr %815, align 8, !tbaa !9
  %816 = load double, ptr %35, align 8, !tbaa !9
  %817 = load double, ptr %38, align 8, !tbaa !9
  %818 = fdiv double %816, %817
  %819 = load ptr, ptr %18, align 8, !tbaa !5
  store double %818, ptr %819, align 8, !tbaa !9
  store i32 1, ptr %39, align 4
  br label %822

820:                                              ; preds = %394
  br label %821

821:                                              ; preds = %820
  store i32 1, ptr %39, align 4
  br label %822

822:                                              ; preds = %821, %804, %633, %508, %481, %446, %363, %318, %197, %157, %140
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 double @dlamch_(ptr noundef) #2

declare double @ddot_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

; 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 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}


; 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 [8 x i8], align 1
@c__1 = external hidden global i32, align 4
@c_b5 = external hidden local_unnamed_addr global double, align 8

; Function Attrs: nounwind uwtable
define dso_local void @dlaic1_(ptr nocapture noundef readonly %0, ptr noundef %1, ptr noundef %2, ptr nocapture noundef readonly %3, ptr noundef %4, ptr nocapture noundef readonly %5, ptr nocapture noundef writeonly %6, ptr nocapture noundef %7, ptr nocapture noundef %8) local_unnamed_addr #0 {
  %10 = tail call double @dlamch_(ptr noundef nonnull @.str) #5
  %11 = tail call double @ddot_(ptr noundef %1, ptr noundef %2, ptr noundef nonnull @c__1, ptr noundef %4, ptr noundef nonnull @c__1) #5
  %12 = fcmp oge double %11, 0.000000e+00
  %13 = fneg double %11
  %14 = select i1 %12, double %11, double %13
  %15 = load double, ptr %5, align 8, !tbaa !5
  %16 = fcmp ult double %15, 0.000000e+00
  %17 = fneg double %15
  %18 = select i1 %16, double %17, double %15
  %19 = load double, ptr %3, align 8, !tbaa !5
  %20 = fcmp ult double %19, 0.000000e+00
  %21 = fneg double %19
  %22 = select i1 %20, double %21, double %19
  %23 = load i32, ptr %0, align 4, !tbaa !9
  switch i32 %23, label %281 [
    i32 1, label %24
    i32 2, label %126
  ]

24:                                               ; preds = %9
  %25 = fcmp oeq double %19, 0.000000e+00
  br i1 %25, label %26, label %43

26:                                               ; preds = %24
  %27 = fcmp oge double %18, %14
  %28 = select i1 %27, double %18, double %14
  %29 = fcmp oeq double %28, 0.000000e+00
  br i1 %29, label %30, label %31

30:                                               ; preds = %26
  store double 0.000000e+00, ptr %7, align 8, !tbaa !5
  br label %42

31:                                               ; preds = %26
  %32 = fdiv double %11, %28
  store double %32, ptr %7, align 8, !tbaa !5
  %33 = load double, ptr %5, align 8, !tbaa !5
  %34 = fdiv double %33, %28
  store double %34, ptr %8, align 8, !tbaa !5
  %35 = load double, ptr %7, align 8, !tbaa !5
  %36 = fmul double %34, %34
  %37 = tail call double @llvm.fmuladd.f64(double %35, double %35, double %36)
  %sqrt = tail call double @llvm.sqrt.f64(double %37)
  %38 = fdiv double %35, %sqrt
  store double %38, ptr %7, align 8, !tbaa !5
  %39 = load double, ptr %8, align 8, !tbaa !5
  %40 = fdiv double %39, %sqrt
  %41 = fmul double %28, %sqrt
  br label %42

42:                                               ; preds = %31, %30
  %.sink = phi double [ 1.000000e+00, %30 ], [ %40, %31 ]
  %storemerge369 = phi double [ 0.000000e+00, %30 ], [ %41, %31 ]
  store double %.sink, ptr %8, align 8
  store double %storemerge369, ptr %6, align 8, !tbaa !5
  br label %281

43:                                               ; preds = %24
  %44 = fmul double %10, %22
  %45 = fcmp ugt double %18, %44
  br i1 %45, label %54, label %46

46:                                               ; preds = %43
  store double 1.000000e+00, ptr %7, align 8, !tbaa !5
  store double 0.000000e+00, ptr %8, align 8, !tbaa !5
  %47 = fcmp oge double %22, %14
  %48 = select i1 %47, double %22, double %14
  %49 = fdiv double %22, %48
  %50 = fdiv double %14, %48
  %51 = fmul double %50, %50
  %52 = tail call double @llvm.fmuladd.f64(double %49, double %49, double %51)
  %sqrt378 = tail call double @llvm.sqrt.f64(double %52)
  %53 = fmul double %48, %sqrt378
  store double %53, ptr %6, align 8, !tbaa !5
  br label %281

54:                                               ; preds = %43
  %55 = fcmp ugt double %14, %44
  br i1 %55, label %58, label %56

56:                                               ; preds = %54
  %57 = fcmp ugt double %18, %22
  %. = select i1 %57, double 0.000000e+00, double 1.000000e+00
  %.370 = select i1 %57, double 1.000000e+00, double 0.000000e+00
  %.371 = select i1 %57, double %18, double %22
  store double %., ptr %7, align 8, !tbaa !5
  store double %.370, ptr %8, align 8, !tbaa !5
  store double %.371, ptr %6, align 8, !tbaa !5
  br label %281

58:                                               ; preds = %54
  %59 = fmul double %10, %14
  %60 = fcmp ugt double %22, %59
  %61 = fmul double %10, %18
  %62 = fcmp ugt double %22, %61
  %or.cond = select i1 %60, i1 %62, i1 false
  br i1 %or.cond, label %103, label %63

63:                                               ; preds = %58
  %64 = fcmp ugt double %18, %14
  br i1 %64, label %84, label %65

65:                                               ; preds = %63
  %66 = fdiv double %18, %14
  %67 = tail call double @llvm.fmuladd.f64(double %66, double %66, double 1.000000e+00)
  %sqrt379 = tail call double @llvm.sqrt.f64(double %67)
  store double %sqrt379, ptr %7, align 8, !tbaa !5
  %68 = fmul double %14, %sqrt379
  store double %68, ptr %6, align 8, !tbaa !5
  %69 = load double, ptr %5, align 8, !tbaa !5
  %70 = fdiv double %69, %14
  %71 = load double, ptr %7, align 8, !tbaa !5
  %72 = fdiv double %70, %71
  store double %72, ptr %8, align 8, !tbaa !5
  %73 = load double, ptr @c_b5, align 8
  %74 = fcmp oge double %73, 0.000000e+00
  %75 = fneg double %73
  br i1 %12, label %76, label %78

76:                                               ; preds = %65
  %77 = select i1 %74, double %73, double %75
  br label %80

78:                                               ; preds = %65
  %79 = select i1 %74, double %75, double %73
  br label %80

80:                                               ; preds = %78, %76
  %81 = phi double [ %77, %76 ], [ %79, %78 ]
  %82 = load double, ptr %7, align 8, !tbaa !5
  %83 = fdiv double %81, %82
  store double %83, ptr %7, align 8, !tbaa !5
  br label %281

84:                                               ; preds = %63
  %85 = fdiv double %14, %18
  %86 = tail call double @llvm.fmuladd.f64(double %85, double %85, double 1.000000e+00)
  %sqrt380 = tail call double @llvm.sqrt.f64(double %86)
  store double %sqrt380, ptr %8, align 8, !tbaa !5
  %87 = fmul double %18, %sqrt380
  store double %87, ptr %6, align 8, !tbaa !5
  %88 = fdiv double %11, %18
  %89 = load double, ptr %8, align 8, !tbaa !5
  %90 = fdiv double %88, %89
  store double %90, ptr %7, align 8, !tbaa !5
  %91 = load double, ptr %5, align 8, !tbaa !5
  %92 = fcmp ult double %91, 0.000000e+00
  %93 = load double, ptr @c_b5, align 8
  %94 = fcmp oge double %93, 0.000000e+00
  %.neg364 = fneg double %93
  br i1 %92, label %97, label %95

95:                                               ; preds = %84
  %96 = select i1 %94, double %93, double %.neg364
  br label %99

97:                                               ; preds = %84
  %98 = select i1 %94, double %.neg364, double %93
  br label %99

99:                                               ; preds = %97, %95
  %100 = phi double [ %96, %95 ], [ %98, %97 ]
  %101 = load double, ptr %8, align 8, !tbaa !5
  %102 = fdiv double %100, %101
  store double %102, ptr %8, align 8, !tbaa !5
  br label %281

103:                                              ; preds = %58
  %104 = fdiv double %11, %22
  %105 = fdiv double %15, %22
  %106 = fneg double %104
  %107 = tail call double @llvm.fmuladd.f64(double %106, double %104, double 1.000000e+00)
  %108 = fneg double %105
  %109 = tail call double @llvm.fmuladd.f64(double %108, double %105, double %107)
  %110 = fmul double %109, 5.000000e-01
  %111 = fmul double %104, %104
  %112 = fcmp ogt double %110, 0.000000e+00
  %113 = tail call double @llvm.fmuladd.f64(double %110, double %110, double %111)
  %sqrt381 = tail call double @llvm.sqrt.f64(double %113)
  %114 = fadd double %110, %sqrt381
  %115 = fdiv double %111, %114
  %116 = fsub double %sqrt381, %110
  %.0340 = select i1 %112, double %115, double %116
  %117 = fdiv double %106, %.0340
  %118 = fadd double %.0340, 1.000000e+00
  %119 = fdiv double %108, %118
  %120 = fmul double %119, %119
  %121 = tail call double @llvm.fmuladd.f64(double %117, double %117, double %120)
  %sqrt383 = tail call double @llvm.sqrt.f64(double %121)
  %122 = fdiv double %117, %sqrt383
  store double %122, ptr %7, align 8, !tbaa !5
  %123 = fdiv double %119, %sqrt383
  store double %123, ptr %8, align 8, !tbaa !5
  %124 = tail call double @sqrt(double noundef %118) #5
  %125 = fmul double %22, %124
  store double %125, ptr %6, align 8, !tbaa !5
  br label %281

126:                                              ; preds = %9
  %127 = fcmp oeq double %19, 0.000000e+00
  br i1 %127, label %128, label %151

128:                                              ; preds = %126
  store double 0.000000e+00, ptr %6, align 8, !tbaa !5
  %129 = fcmp oge double %18, %14
  %130 = select i1 %129, double %18, double %14
  %131 = fcmp oeq double %130, 0.000000e+00
  br i1 %131, label %._crit_edge, label %132

132:                                              ; preds = %128
  %133 = load double, ptr %5, align 8, !tbaa !5
  %134 = fneg double %133
  br label %._crit_edge

._crit_edge:                                      ; preds = %128, %132
  %.0338 = phi double [ %134, %132 ], [ 1.000000e+00, %128 ]
  %.0 = phi double [ %11, %132 ], [ 0.000000e+00, %128 ]
  %135 = fcmp oge double %.0338, 0.000000e+00
  %136 = fneg double %.0338
  %137 = select i1 %135, double %.0338, double %136
  %138 = fcmp oge double %.0, 0.000000e+00
  %139 = fneg double %.0
  %140 = select i1 %138, double %.0, double %139
  %141 = fcmp oge double %137, %140
  %142 = select i1 %141, double %137, double %140
  %143 = fdiv double %.0338, %142
  store double %143, ptr %7, align 8, !tbaa !5
  %144 = fdiv double %.0, %142
  store double %144, ptr %8, align 8, !tbaa !5
  %145 = load double, ptr %7, align 8, !tbaa !5
  %146 = fmul double %144, %144
  %147 = tail call double @llvm.fmuladd.f64(double %145, double %145, double %146)
  %sqrt384 = tail call double @llvm.sqrt.f64(double %147)
  %148 = fdiv double %145, %sqrt384
  store double %148, ptr %7, align 8, !tbaa !5
  %149 = load double, ptr %8, align 8, !tbaa !5
  %150 = fdiv double %149, %sqrt384
  store double %150, ptr %8, align 8, !tbaa !5
  br label %281

151:                                              ; preds = %126
  %152 = fmul double %10, %22
  %153 = fcmp ugt double %18, %152
  br i1 %153, label %155, label %154

154:                                              ; preds = %151
  store double 0.000000e+00, ptr %7, align 8, !tbaa !5
  store double 1.000000e+00, ptr %8, align 8, !tbaa !5
  store double %18, ptr %6, align 8, !tbaa !5
  br label %281

155:                                              ; preds = %151
  %156 = fcmp ugt double %14, %152
  br i1 %156, label %159, label %157

157:                                              ; preds = %155
  %158 = fcmp ugt double %18, %22
  %.373 = select i1 %158, double 1.000000e+00, double 0.000000e+00
  %.374 = select i1 %158, double 0.000000e+00, double 1.000000e+00
  %.375 = select i1 %158, double %22, double %18
  store double %.373, ptr %7, align 8, !tbaa !5
  store double %.374, ptr %8, align 8, !tbaa !5
  store double %.375, ptr %6, align 8, !tbaa !5
  br label %281

159:                                              ; preds = %155
  %160 = fmul double %10, %14
  %161 = fcmp ugt double %22, %160
  %162 = fmul double %10, %18
  %163 = fcmp ugt double %22, %162
  %or.cond377 = select i1 %161, i1 %163, i1 false
  br i1 %or.cond377, label %207, label %164

164:                                              ; preds = %159
  %165 = fcmp ugt double %18, %14
  br i1 %165, label %187, label %166

166:                                              ; preds = %164
  %167 = fdiv double %18, %14
  %168 = tail call double @llvm.fmuladd.f64(double %167, double %167, double 1.000000e+00)
  %sqrt385 = tail call double @llvm.sqrt.f64(double %168)
  store double %sqrt385, ptr %8, align 8, !tbaa !5
  %169 = fdiv double %167, %sqrt385
  %170 = fmul double %22, %169
  store double %170, ptr %6, align 8, !tbaa !5
  %171 = load double, ptr %5, align 8, !tbaa !5
  %172 = fneg double %171
  %173 = fdiv double %172, %14
  %174 = load double, ptr %8, align 8, !tbaa !5
  %175 = fdiv double %173, %174
  store double %175, ptr %7, align 8, !tbaa !5
  %176 = load double, ptr @c_b5, align 8
  %177 = fcmp oge double %176, 0.000000e+00
  %178 = fneg double %176
  br i1 %12, label %179, label %181

179:                                              ; preds = %166
  %180 = select i1 %177, double %176, double %178
  br label %183

181:                                              ; preds = %166
  %182 = select i1 %177, double %178, double %176
  br label %183

183:                                              ; preds = %181, %179
  %184 = phi double [ %180, %179 ], [ %182, %181 ]
  %185 = load double, ptr %8, align 8, !tbaa !5
  %186 = fdiv double %184, %185
  store double %186, ptr %8, align 8, !tbaa !5
  br label %281

187:                                              ; preds = %164
  %188 = fdiv double %14, %18
  %189 = tail call double @llvm.fmuladd.f64(double %188, double %188, double 1.000000e+00)
  %sqrt386 = tail call double @llvm.sqrt.f64(double %189)
  store double %sqrt386, ptr %7, align 8, !tbaa !5
  %190 = fdiv double %22, %sqrt386
  store double %190, ptr %6, align 8, !tbaa !5
  %191 = fdiv double %11, %18
  %192 = load double, ptr %7, align 8, !tbaa !5
  %193 = fdiv double %191, %192
  store double %193, ptr %8, align 8, !tbaa !5
  %194 = load double, ptr %5, align 8, !tbaa !5
  %195 = fcmp ult double %194, 0.000000e+00
  %196 = load double, ptr @c_b5, align 8
  %197 = fcmp oge double %196, 0.000000e+00
  %.neg = fneg double %196
  br i1 %195, label %200, label %198

198:                                              ; preds = %187
  %199 = select i1 %197, double %196, double %.neg
  br label %202

200:                                              ; preds = %187
  %201 = select i1 %197, double %.neg, double %196
  br label %202

202:                                              ; preds = %200, %198
  %203 = phi double [ %199, %198 ], [ %201, %200 ]
  %204 = fneg double %203
  %205 = load double, ptr %7, align 8, !tbaa !5
  %206 = fdiv double %204, %205
  store double %206, ptr %7, align 8, !tbaa !5
  br label %281

207:                                              ; preds = %159
  %208 = insertelement <2 x double> poison, double %11, i64 0
  %209 = insertelement <2 x double> %208, double %15, i64 1
  %210 = insertelement <2 x double> poison, double %22, i64 0
  %211 = shufflevector <2 x double> %210, <2 x double> poison, <2 x i32> zeroinitializer
  %212 = fdiv <2 x double> %209, %211
  %213 = extractelement <2 x double> %212, i64 0
  %214 = tail call double @llvm.fmuladd.f64(double %213, double %213, double 1.000000e+00)
  %215 = extractelement <2 x double> %212, i64 1
  %216 = fmul double %213, %215
  %217 = fcmp oge double %216, 0.000000e+00
  %218 = fneg double %216
  %219 = select i1 %217, double %216, double %218
  %220 = fadd double %214, %219
  %221 = tail call double @llvm.fmuladd.f64(double %215, double %215, double %219)
  %222 = fcmp oge double %220, %221
  %223 = select i1 %222, double %220, double %221
  %224 = fsub double %213, %215
  %225 = fmul double %224, 2.000000e+00
  %226 = fadd double %213, %215
  %227 = tail call double @llvm.fmuladd.f64(double %225, double %226, double 1.000000e+00)
  %228 = fcmp ult double %227, 0.000000e+00
  br i1 %228, label %248, label %229

229:                                              ; preds = %207
  %230 = fmul double %215, %215
  %231 = tail call double @llvm.fmuladd.f64(double %213, double %213, double %230)
  %232 = fadd double %231, 1.000000e+00
  %233 = fmul double %232, 5.000000e-01
  %234 = fneg double %230
  %235 = tail call double @llvm.fmuladd.f64(double %233, double %233, double %234)
  %236 = fcmp oge double %235, 0.000000e+00
  %237 = fneg double %235
  %238 = select i1 %236, double %235, double %237
  %239 = tail call double @sqrt(double noundef %238) #5
  %240 = fadd double %233, %239
  %241 = fdiv double %230, %240
  %242 = fsub double 1.000000e+00, %241
  %243 = fneg <2 x double> %212
  %244 = shufflevector <2 x double> %212, <2 x double> %243, <2 x i32> <i32 0, i32 3>
  %245 = insertelement <2 x double> poison, double %242, i64 0
  %246 = insertelement <2 x double> %245, double %241, i64 1
  %247 = fdiv <2 x double> %244, %246
  br label %269

248:                                              ; preds = %207
  %249 = fmul <2 x double> %212, %212
  %250 = extractelement <2 x double> %249, i64 0
  %251 = tail call double @llvm.fmuladd.f64(double %215, double %215, double %250)
  %252 = fadd double %251, -1.000000e+00
  %253 = fmul double %252, 5.000000e-01
  %254 = fcmp ult double %253, 0.000000e+00
  br i1 %254, label %260, label %255

255:                                              ; preds = %248
  %256 = fneg double %250
  %257 = tail call double @llvm.fmuladd.f64(double %253, double %253, double %250)
  %sqrt387 = tail call double @llvm.sqrt.f64(double %257)
  %258 = fadd double %253, %sqrt387
  %259 = fdiv double %256, %258
  br label %263

260:                                              ; preds = %248
  %261 = tail call double @llvm.fmuladd.f64(double %253, double %253, double %250)
  %sqrt388 = tail call double @llvm.sqrt.f64(double %261)
  %262 = fsub double %253, %sqrt388
  br label %263

263:                                              ; preds = %260, %255
  %.1341 = phi double [ %259, %255 ], [ %262, %260 ]
  %264 = fneg <2 x double> %212
  %265 = fadd double %.1341, 1.000000e+00
  %266 = insertelement <2 x double> poison, double %.1341, i64 0
  %267 = insertelement <2 x double> %266, double %265, i64 1
  %268 = fdiv <2 x double> %264, %267
  br label %269

269:                                              ; preds = %263, %229
  %.sink392 = phi double [ %265, %263 ], [ %241, %229 ]
  %270 = phi <2 x double> [ %268, %263 ], [ %247, %229 ]
  %271 = fmul double %10, 4.000000e+00
  %272 = fmul double %10, %271
  %273 = tail call double @llvm.fmuladd.f64(double %272, double %223, double %.sink392)
  %274 = tail call double @sqrt(double noundef %273) #5
  %storemerge = fmul double %22, %274
  store double %storemerge, ptr %6, align 8, !tbaa !5
  %275 = extractelement <2 x double> %270, i64 1
  %276 = fmul double %275, %275
  %277 = extractelement <2 x double> %270, i64 0
  %278 = tail call double @llvm.fmuladd.f64(double %277, double %277, double %276)
  %sqrt389 = tail call double @llvm.sqrt.f64(double %278)
  %279 = fdiv double %277, %sqrt389
  store double %279, ptr %7, align 8, !tbaa !5
  %280 = fdiv double %275, %sqrt389
  store double %280, ptr %8, align 8, !tbaa !5
  br label %281

281:                                              ; preds = %9, %183, %202, %80, %99, %269, %157, %154, %._crit_edge, %103, %56, %46, %42
  ret void
}

declare double @dlamch_(ptr noundef) local_unnamed_addr #1

declare double @ddot_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1

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

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

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

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 = { "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 #2 = { 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 #3 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
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 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}


; Effective O3 passes: AggressiveInstCombinePass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,MergedLoadStoreMotionPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass