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

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

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i32, align 4

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

131:                                              ; preds = %25
  store i32 1, ptr %102, align 4
  br label %2082

132:                                              ; preds = %25
  %133 = load ptr, ptr %26, align 8, !tbaa !5
  %134 = call i32 @lsame_(ptr noundef %133, ptr noundef @.str)
  %135 = icmp ne i32 %134, 0
  br i1 %135, label %136, label %137

136:                                              ; preds = %132
  store i32 1, ptr %83, align 4, !tbaa !9
  br label %149

137:                                              ; preds = %132
  %138 = load ptr, ptr %26, align 8, !tbaa !5
  %139 = call i32 @lsame_(ptr noundef %138, ptr noundef @.str.1)
  %140 = icmp ne i32 %139, 0
  br i1 %140, label %141, label %142

141:                                              ; preds = %137
  store i32 3, ptr %83, align 4, !tbaa !9
  br label %148

142:                                              ; preds = %137
  %143 = load ptr, ptr %26, align 8, !tbaa !5
  %144 = call i32 @lsame_(ptr noundef %143, ptr noundef @.str.2)
  %145 = icmp ne i32 %144, 0
  br i1 %145, label %146, label %147

146:                                              ; preds = %142
  store i32 2, ptr %83, align 4, !tbaa !9
  br label %147

147:                                              ; preds = %146, %142
  br label %148

148:                                              ; preds = %147, %141
  br label %149

149:                                              ; preds = %148, %136
  %150 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 0, ptr %150, align 4, !tbaa !9
  %151 = call double @dlamch_(ptr noundef @.str.3)
  store double %151, ptr %86, align 8, !tbaa !11
  %152 = call double @dlamch_(ptr noundef @.str.4)
  store double %152, ptr %95, align 8, !tbaa !11
  %153 = load double, ptr %95, align 8, !tbaa !11
  %154 = call double @sqrt(double noundef %153) #5
  store double %154, ptr %98, align 8, !tbaa !11
  %155 = load double, ptr %95, align 8, !tbaa !11
  %156 = call double @sqrt(double noundef %155) #5
  store double %156, ptr %92, align 8, !tbaa !11
  %157 = load ptr, ptr %27, align 8, !tbaa !5
  %158 = load i32, ptr %157, align 4, !tbaa !9
  %159 = icmp eq i32 %158, 1
  br i1 %159, label %160, label %219

160:                                              ; preds = %149
  %161 = load i32, ptr %83, align 4, !tbaa !9
  %162 = icmp eq i32 %161, 1
  br i1 %162, label %191, label %163

163:                                              ; preds = %160
  %164 = load i32, ptr %83, align 4, !tbaa !9
  %165 = icmp eq i32 %164, 3
  br i1 %165, label %166, label %180

166:                                              ; preds = %163
  %167 = load ptr, ptr %32, align 8, !tbaa !5
  %168 = getelementptr inbounds double, ptr %167, i64 1
  %169 = load double, ptr %168, align 8, !tbaa !11
  %170 = load ptr, ptr %28, align 8, !tbaa !5
  %171 = load double, ptr %170, align 8, !tbaa !11
  %172 = fcmp ogt double %169, %171
  br i1 %172, label %173, label %180

173:                                              ; preds = %166
  %174 = load ptr, ptr %32, align 8, !tbaa !5
  %175 = getelementptr inbounds double, ptr %174, i64 1
  %176 = load double, ptr %175, align 8, !tbaa !11
  %177 = load ptr, ptr %29, align 8, !tbaa !5
  %178 = load double, ptr %177, align 8, !tbaa !11
  %179 = fcmp ole double %176, %178
  br i1 %179, label %191, label %180

180:                                              ; preds = %173, %166, %163
  %181 = load i32, ptr %83, align 4, !tbaa !9
  %182 = icmp eq i32 %181, 2
  br i1 %182, label %183, label %216

183:                                              ; preds = %180
  %184 = load ptr, ptr %30, align 8, !tbaa !5
  %185 = load i32, ptr %184, align 4, !tbaa !9
  %186 = icmp eq i32 %185, 1
  br i1 %186, label %187, label %216

187:                                              ; preds = %183
  %188 = load ptr, ptr %31, align 8, !tbaa !5
  %189 = load i32, ptr %188, align 4, !tbaa !9
  %190 = icmp eq i32 %189, 1
  br i1 %190, label %191, label %216

191:                                              ; preds = %187, %173, %160
  %192 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 1, ptr %192, align 4, !tbaa !9
  %193 = load ptr, ptr %32, align 8, !tbaa !5
  %194 = getelementptr inbounds double, ptr %193, i64 1
  %195 = load double, ptr %194, align 8, !tbaa !11
  %196 = load ptr, ptr %41, align 8, !tbaa !5
  %197 = getelementptr inbounds double, ptr %196, i64 1
  store double %195, ptr %197, align 8, !tbaa !11
  %198 = load ptr, ptr %42, align 8, !tbaa !5
  %199 = getelementptr inbounds double, ptr %198, i64 1
  store double 0.000000e+00, ptr %199, align 8, !tbaa !11
  %200 = load ptr, ptr %43, align 8, !tbaa !5
  %201 = getelementptr inbounds double, ptr %200, i64 1
  store double 0.000000e+00, ptr %201, align 8, !tbaa !11
  %202 = load ptr, ptr %44, align 8, !tbaa !5
  %203 = getelementptr inbounds i32, ptr %202, i64 1
  store i32 1, ptr %203, align 4, !tbaa !9
  %204 = load ptr, ptr %45, align 8, !tbaa !5
  %205 = getelementptr inbounds i32, ptr %204, i64 1
  store i32 1, ptr %205, align 4, !tbaa !9
  %206 = load ptr, ptr %32, align 8, !tbaa !5
  %207 = getelementptr inbounds double, ptr %206, i64 1
  %208 = load double, ptr %207, align 8, !tbaa !11
  %209 = load ptr, ptr %46, align 8, !tbaa !5
  %210 = getelementptr inbounds double, ptr %209, i64 1
  store double %208, ptr %210, align 8, !tbaa !11
  %211 = load ptr, ptr %32, align 8, !tbaa !5
  %212 = getelementptr inbounds double, ptr %211, i64 1
  %213 = load double, ptr %212, align 8, !tbaa !11
  %214 = load ptr, ptr %46, align 8, !tbaa !5
  %215 = getelementptr inbounds double, ptr %214, i64 2
  store double %213, ptr %215, align 8, !tbaa !11
  br label %216

216:                                              ; preds = %191, %187, %183, %180
  %217 = load ptr, ptr %33, align 8, !tbaa !5
  %218 = getelementptr inbounds double, ptr %217, i64 1
  store double 0.000000e+00, ptr %218, align 8, !tbaa !11
  store i32 1, ptr %102, align 4
  br label %2082

219:                                              ; preds = %149
  %220 = load ptr, ptr %32, align 8, !tbaa !5
  %221 = getelementptr inbounds double, ptr %220, i64 1
  %222 = load double, ptr %221, align 8, !tbaa !11
  store double %222, ptr %77, align 8, !tbaa !11
  %223 = load ptr, ptr %32, align 8, !tbaa !5
  %224 = getelementptr inbounds double, ptr %223, i64 1
  %225 = load double, ptr %224, align 8, !tbaa !11
  store double %225, ptr %80, align 8, !tbaa !11
  store double 0.000000e+00, ptr %59, align 8, !tbaa !11
  store double 0.000000e+00, ptr %62, align 8, !tbaa !11
  %226 = load ptr, ptr %33, align 8, !tbaa !5
  %227 = load ptr, ptr %27, align 8, !tbaa !5
  %228 = load i32, ptr %227, align 4, !tbaa !9
  %229 = sext i32 %228 to i64
  %230 = getelementptr inbounds double, ptr %226, i64 %229
  store double 0.000000e+00, ptr %230, align 8, !tbaa !11
  %231 = load ptr, ptr %27, align 8, !tbaa !5
  %232 = load i32, ptr %231, align 4, !tbaa !9
  store i32 %232, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %233

233:                                              ; preds = %328, %219
  %234 = load i32, ptr %67, align 4, !tbaa !9
  %235 = load i32, ptr %51, align 4, !tbaa !9
  %236 = icmp sle i32 %234, %235
  br i1 %236, label %237, label %331

237:                                              ; preds = %233
  %238 = load ptr, ptr %42, align 8, !tbaa !5
  %239 = load i32, ptr %67, align 4, !tbaa !9
  %240 = sext i32 %239 to i64
  %241 = getelementptr inbounds double, ptr %238, i64 %240
  store double 0.000000e+00, ptr %241, align 8, !tbaa !11
  %242 = load ptr, ptr %43, align 8, !tbaa !5
  %243 = load i32, ptr %67, align 4, !tbaa !9
  %244 = sext i32 %243 to i64
  %245 = getelementptr inbounds double, ptr %242, i64 %244
  store double 0.000000e+00, ptr %245, align 8, !tbaa !11
  %246 = load ptr, ptr %33, align 8, !tbaa !5
  %247 = load i32, ptr %67, align 4, !tbaa !9
  %248 = sext i32 %247 to i64
  %249 = getelementptr inbounds double, ptr %246, i64 %248
  %250 = load double, ptr %249, align 8, !tbaa !11
  store double %250, ptr %53, align 8, !tbaa !11
  %251 = load double, ptr %53, align 8, !tbaa !11
  %252 = fcmp oge double %251, 0.000000e+00
  br i1 %252, label %253, label %255

253:                                              ; preds = %237
  %254 = load double, ptr %53, align 8, !tbaa !11
  br label %258

255:                                              ; preds = %237
  %256 = load double, ptr %53, align 8, !tbaa !11
  %257 = fneg double %256
  br label %258

258:                                              ; preds = %255, %253
  %259 = phi double [ %254, %253 ], [ %257, %255 ]
  store double %259, ptr %56, align 8, !tbaa !11
  %260 = load double, ptr %56, align 8, !tbaa !11
  %261 = load double, ptr %62, align 8, !tbaa !11
  %262 = fcmp oge double %260, %261
  br i1 %262, label %263, label %265

263:                                              ; preds = %258
  %264 = load double, ptr %56, align 8, !tbaa !11
  store double %264, ptr %62, align 8, !tbaa !11
  br label %265

265:                                              ; preds = %263, %258
  %266 = load double, ptr %56, align 8, !tbaa !11
  %267 = load double, ptr %59, align 8, !tbaa !11
  %268 = fadd double %266, %267
  store double %268, ptr %101, align 8, !tbaa !11
  %269 = load ptr, ptr %32, align 8, !tbaa !5
  %270 = load i32, ptr %67, align 4, !tbaa !9
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds double, ptr %269, i64 %271
  %273 = load double, ptr %272, align 8, !tbaa !11
  %274 = load double, ptr %101, align 8, !tbaa !11
  %275 = fsub double %273, %274
  %276 = load ptr, ptr %46, align 8, !tbaa !5
  %277 = load i32, ptr %67, align 4, !tbaa !9
  %278 = shl i32 %277, 1
  %279 = sub nsw i32 %278, 1
  %280 = sext i32 %279 to i64
  %281 = getelementptr inbounds double, ptr %276, i64 %280
  store double %275, ptr %281, align 8, !tbaa !11
  %282 = load double, ptr %77, align 8, !tbaa !11
  store double %282, ptr %53, align 8, !tbaa !11
  %283 = load ptr, ptr %46, align 8, !tbaa !5
  %284 = load i32, ptr %67, align 4, !tbaa !9
  %285 = shl i32 %284, 1
  %286 = sub nsw i32 %285, 1
  %287 = sext i32 %286 to i64
  %288 = getelementptr inbounds double, ptr %283, i64 %287
  %289 = load double, ptr %288, align 8, !tbaa !11
  store double %289, ptr %54, align 8, !tbaa !11
  %290 = load double, ptr %53, align 8, !tbaa !11
  %291 = load double, ptr %54, align 8, !tbaa !11
  %292 = fcmp ole double %290, %291
  br i1 %292, label %293, label %295

293:                                              ; preds = %265
  %294 = load double, ptr %53, align 8, !tbaa !11
  br label %297

295:                                              ; preds = %265
  %296 = load double, ptr %54, align 8, !tbaa !11
  br label %297

297:                                              ; preds = %295, %293
  %298 = phi double [ %294, %293 ], [ %296, %295 ]
  store double %298, ptr %77, align 8, !tbaa !11
  %299 = load ptr, ptr %32, align 8, !tbaa !5
  %300 = load i32, ptr %67, align 4, !tbaa !9
  %301 = sext i32 %300 to i64
  %302 = getelementptr inbounds double, ptr %299, i64 %301
  %303 = load double, ptr %302, align 8, !tbaa !11
  %304 = load double, ptr %101, align 8, !tbaa !11
  %305 = fadd double %303, %304
  %306 = load ptr, ptr %46, align 8, !tbaa !5
  %307 = load i32, ptr %67, align 4, !tbaa !9
  %308 = mul nsw i32 %307, 2
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds double, ptr %306, i64 %309
  store double %305, ptr %310, align 8, !tbaa !11
  %311 = load double, ptr %80, align 8, !tbaa !11
  store double %311, ptr %53, align 8, !tbaa !11
  %312 = load ptr, ptr %46, align 8, !tbaa !5
  %313 = load i32, ptr %67, align 4, !tbaa !9
  %314 = mul nsw i32 %313, 2
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds double, ptr %312, i64 %315
  %317 = load double, ptr %316, align 8, !tbaa !11
  store double %317, ptr %54, align 8, !tbaa !11
  %318 = load double, ptr %53, align 8, !tbaa !11
  %319 = load double, ptr %54, align 8, !tbaa !11
  %320 = fcmp oge double %318, %319
  br i1 %320, label %321, label %323

321:                                              ; preds = %297
  %322 = load double, ptr %53, align 8, !tbaa !11
  br label %325

323:                                              ; preds = %297
  %324 = load double, ptr %54, align 8, !tbaa !11
  br label %325

325:                                              ; preds = %323, %321
  %326 = phi double [ %322, %321 ], [ %324, %323 ]
  store double %326, ptr %80, align 8, !tbaa !11
  %327 = load double, ptr %56, align 8, !tbaa !11
  store double %327, ptr %59, align 8, !tbaa !11
  br label %328

328:                                              ; preds = %325
  %329 = load i32, ptr %67, align 4, !tbaa !9
  %330 = add nsw i32 %329, 1
  store i32 %330, ptr %67, align 4, !tbaa !9
  br label %233, !llvm.loop !13

331:                                              ; preds = %233
  %332 = load double, ptr %62, align 8, !tbaa !11
  store double %332, ptr %55, align 8, !tbaa !11
  store double 1.000000e+00, ptr %53, align 8, !tbaa !11
  %333 = load double, ptr %55, align 8, !tbaa !11
  %334 = load double, ptr %55, align 8, !tbaa !11
  %335 = fmul double %333, %334
  store double %335, ptr %54, align 8, !tbaa !11
  %336 = load double, ptr %86, align 8, !tbaa !11
  %337 = load double, ptr %53, align 8, !tbaa !11
  %338 = load double, ptr %54, align 8, !tbaa !11
  %339 = fcmp oge double %337, %338
  br i1 %339, label %340, label %342

340:                                              ; preds = %331
  %341 = load double, ptr %53, align 8, !tbaa !11
  br label %344

342:                                              ; preds = %331
  %343 = load double, ptr %54, align 8, !tbaa !11
  br label %344

344:                                              ; preds = %342, %340
  %345 = phi double [ %341, %340 ], [ %343, %342 ]
  %346 = fmul double %336, %345
  %347 = load ptr, ptr %47, align 8, !tbaa !5
  store double %346, ptr %347, align 8, !tbaa !11
  %348 = load double, ptr %80, align 8, !tbaa !11
  %349 = load double, ptr %77, align 8, !tbaa !11
  %350 = fsub double %348, %349
  store double %350, ptr %87, align 8, !tbaa !11
  %351 = load ptr, ptr %27, align 8, !tbaa !5
  %352 = load ptr, ptr %32, align 8, !tbaa !5
  %353 = getelementptr inbounds double, ptr %352, i64 1
  %354 = load ptr, ptr %33, align 8, !tbaa !5
  %355 = getelementptr inbounds double, ptr %354, i64 1
  %356 = load ptr, ptr %34, align 8, !tbaa !5
  %357 = getelementptr inbounds double, ptr %356, i64 1
  %358 = load ptr, ptr %37, align 8, !tbaa !5
  %359 = load ptr, ptr %38, align 8, !tbaa !5
  %360 = load ptr, ptr %39, align 8, !tbaa !5
  %361 = getelementptr inbounds i32, ptr %360, i64 1
  call void @dlarra_(ptr noundef %351, ptr noundef %353, ptr noundef %355, ptr noundef %357, ptr noundef %358, ptr noundef %87, ptr noundef %359, ptr noundef %361, ptr noundef %72)
  store i32 0, ptr %82, align 4, !tbaa !9
  %362 = load i32, ptr %83, align 4, !tbaa !9
  %363 = icmp eq i32 %362, 1
  br i1 %363, label %364, label %368

364:                                              ; preds = %344
  %365 = load i32, ptr %82, align 4, !tbaa !9
  %366 = icmp ne i32 %365, 0
  %367 = xor i1 %366, true
  br label %368

368:                                              ; preds = %364, %344
  %369 = phi i1 [ false, %344 ], [ %367, %364 ]
  %370 = zext i1 %369 to i32
  store i32 %370, ptr %88, align 4, !tbaa !9
  %371 = load i32, ptr %83, align 4, !tbaa !9
  %372 = icmp eq i32 %371, 1
  br i1 %372, label %373, label %381

373:                                              ; preds = %368
  %374 = load i32, ptr %82, align 4, !tbaa !9
  %375 = icmp ne i32 %374, 0
  br i1 %375, label %381, label %376

376:                                              ; preds = %373
  %377 = load double, ptr %77, align 8, !tbaa !11
  %378 = load ptr, ptr %28, align 8, !tbaa !5
  store double %377, ptr %378, align 8, !tbaa !11
  %379 = load double, ptr %80, align 8, !tbaa !11
  %380 = load ptr, ptr %29, align 8, !tbaa !5
  store double %379, ptr %380, align 8, !tbaa !11
  br label %448

381:                                              ; preds = %373, %368
  %382 = load ptr, ptr %26, align 8, !tbaa !5
  %383 = load ptr, ptr %27, align 8, !tbaa !5
  %384 = load ptr, ptr %28, align 8, !tbaa !5
  %385 = load ptr, ptr %29, align 8, !tbaa !5
  %386 = load ptr, ptr %30, align 8, !tbaa !5
  %387 = load ptr, ptr %31, align 8, !tbaa !5
  %388 = load ptr, ptr %46, align 8, !tbaa !5
  %389 = getelementptr inbounds double, ptr %388, i64 1
  %390 = load ptr, ptr %32, align 8, !tbaa !5
  %391 = getelementptr inbounds double, ptr %390, i64 1
  %392 = load ptr, ptr %33, align 8, !tbaa !5
  %393 = getelementptr inbounds double, ptr %392, i64 1
  %394 = load ptr, ptr %34, align 8, !tbaa !5
  %395 = getelementptr inbounds double, ptr %394, i64 1
  %396 = load ptr, ptr %47, align 8, !tbaa !5
  %397 = load ptr, ptr %38, align 8, !tbaa !5
  %398 = load ptr, ptr %39, align 8, !tbaa !5
  %399 = getelementptr inbounds i32, ptr %398, i64 1
  %400 = load ptr, ptr %41, align 8, !tbaa !5
  %401 = getelementptr inbounds double, ptr %400, i64 1
  %402 = load ptr, ptr %42, align 8, !tbaa !5
  %403 = getelementptr inbounds double, ptr %402, i64 1
  %404 = load ptr, ptr %28, align 8, !tbaa !5
  %405 = load ptr, ptr %29, align 8, !tbaa !5
  %406 = load ptr, ptr %44, align 8, !tbaa !5
  %407 = getelementptr inbounds i32, ptr %406, i64 1
  %408 = load ptr, ptr %45, align 8, !tbaa !5
  %409 = getelementptr inbounds i32, ptr %408, i64 1
  %410 = load ptr, ptr %48, align 8, !tbaa !5
  %411 = getelementptr inbounds double, ptr %410, i64 1
  %412 = load ptr, ptr %49, align 8, !tbaa !5
  %413 = getelementptr inbounds i32, ptr %412, i64 1
  call void @dlarrd_(ptr noundef %382, ptr noundef @.str.5, ptr noundef %383, ptr noundef %384, ptr noundef %385, ptr noundef %386, ptr noundef %387, ptr noundef %389, ptr noundef %92, ptr noundef %391, ptr noundef %393, ptr noundef %395, ptr noundef %396, ptr noundef %397, ptr noundef %399, ptr noundef %79, ptr noundef %401, ptr noundef %403, ptr noundef %404, ptr noundef %405, ptr noundef %407, ptr noundef %409, ptr noundef %411, ptr noundef %413, ptr noundef %72)
  %414 = load i32, ptr %72, align 4, !tbaa !9
  %415 = icmp ne i32 %414, 0
  br i1 %415, label %416, label %418

416:                                              ; preds = %381
  %417 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -1, ptr %417, align 4, !tbaa !9
  store i32 1, ptr %102, align 4
  br label %2082

418:                                              ; preds = %381
  %419 = load ptr, ptr %27, align 8, !tbaa !5
  %420 = load i32, ptr %419, align 4, !tbaa !9
  store i32 %420, ptr %51, align 4, !tbaa !9
  %421 = load i32, ptr %79, align 4, !tbaa !9
  %422 = add nsw i32 %421, 1
  store i32 %422, ptr %67, align 4, !tbaa !9
  br label %423

423:                                              ; preds = %444, %418
  %424 = load i32, ptr %67, align 4, !tbaa !9
  %425 = load i32, ptr %51, align 4, !tbaa !9
  %426 = icmp sle i32 %424, %425
  br i1 %426, label %427, label %447

427:                                              ; preds = %423
  %428 = load ptr, ptr %41, align 8, !tbaa !5
  %429 = load i32, ptr %67, align 4, !tbaa !9
  %430 = sext i32 %429 to i64
  %431 = getelementptr inbounds double, ptr %428, i64 %430
  store double 0.000000e+00, ptr %431, align 8, !tbaa !11
  %432 = load ptr, ptr %42, align 8, !tbaa !5
  %433 = load i32, ptr %67, align 4, !tbaa !9
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds double, ptr %432, i64 %434
  store double 0.000000e+00, ptr %435, align 8, !tbaa !11
  %436 = load ptr, ptr %44, align 8, !tbaa !5
  %437 = load i32, ptr %67, align 4, !tbaa !9
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds i32, ptr %436, i64 %438
  store i32 0, ptr %439, align 4, !tbaa !9
  %440 = load ptr, ptr %45, align 8, !tbaa !5
  %441 = load i32, ptr %67, align 4, !tbaa !9
  %442 = sext i32 %441 to i64
  %443 = getelementptr inbounds i32, ptr %440, i64 %442
  store i32 0, ptr %443, align 4, !tbaa !9
  br label %444

444:                                              ; preds = %427
  %445 = load i32, ptr %67, align 4, !tbaa !9
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr %67, align 4, !tbaa !9
  br label %423, !llvm.loop !15

447:                                              ; preds = %423
  br label %448

448:                                              ; preds = %447, %376
  store i32 1, ptr %81, align 4, !tbaa !9
  store i32 1, ptr %85, align 4, !tbaa !9
  %449 = load ptr, ptr %38, align 8, !tbaa !5
  %450 = load i32, ptr %449, align 4, !tbaa !9
  store i32 %450, ptr %51, align 4, !tbaa !9
  store i32 1, ptr %58, align 4, !tbaa !9
  br label %451

451:                                              ; preds = %2078, %448
  %452 = load i32, ptr %58, align 4, !tbaa !9
  %453 = load i32, ptr %51, align 4, !tbaa !9
  %454 = icmp sle i32 %452, %453
  br i1 %454, label %455, label %2081

455:                                              ; preds = %451
  %456 = load ptr, ptr %39, align 8, !tbaa !5
  %457 = load i32, ptr %58, align 4, !tbaa !9
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds i32, ptr %456, i64 %458
  %460 = load i32, ptr %459, align 4, !tbaa !9
  store i32 %460, ptr %57, align 4, !tbaa !9
  %461 = load i32, ptr %57, align 4, !tbaa !9
  %462 = load i32, ptr %81, align 4, !tbaa !9
  %463 = sub nsw i32 %461, %462
  %464 = add nsw i32 %463, 1
  store i32 %464, ptr %78, align 4, !tbaa !9
  %465 = load i32, ptr %78, align 4, !tbaa !9
  %466 = icmp eq i32 %465, 1
  br i1 %466, label %467, label %546

467:                                              ; preds = %455
  %468 = load i32, ptr %83, align 4, !tbaa !9
  %469 = icmp eq i32 %468, 1
  br i1 %469, label %502, label %470

470:                                              ; preds = %467
  %471 = load i32, ptr %83, align 4, !tbaa !9
  %472 = icmp eq i32 %471, 3
  br i1 %472, label %473, label %491

473:                                              ; preds = %470
  %474 = load ptr, ptr %32, align 8, !tbaa !5
  %475 = load i32, ptr %81, align 4, !tbaa !9
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds double, ptr %474, i64 %476
  %478 = load double, ptr %477, align 8, !tbaa !11
  %479 = load ptr, ptr %28, align 8, !tbaa !5
  %480 = load double, ptr %479, align 8, !tbaa !11
  %481 = fcmp ogt double %478, %480
  br i1 %481, label %482, label %491

482:                                              ; preds = %473
  %483 = load ptr, ptr %32, align 8, !tbaa !5
  %484 = load i32, ptr %81, align 4, !tbaa !9
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds double, ptr %483, i64 %485
  %487 = load double, ptr %486, align 8, !tbaa !11
  %488 = load ptr, ptr %29, align 8, !tbaa !5
  %489 = load double, ptr %488, align 8, !tbaa !11
  %490 = fcmp ole double %487, %489
  br i1 %490, label %502, label %491

491:                                              ; preds = %482, %473, %470
  %492 = load i32, ptr %83, align 4, !tbaa !9
  %493 = icmp eq i32 %492, 2
  br i1 %493, label %494, label %539

494:                                              ; preds = %491
  %495 = load ptr, ptr %44, align 8, !tbaa !5
  %496 = load i32, ptr %85, align 4, !tbaa !9
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds i32, ptr %495, i64 %497
  %499 = load i32, ptr %498, align 4, !tbaa !9
  %500 = load i32, ptr %58, align 4, !tbaa !9
  %501 = icmp eq i32 %499, %500
  br i1 %501, label %502, label %539

502:                                              ; preds = %494, %482, %467
  %503 = load ptr, ptr %40, align 8, !tbaa !5
  %504 = load i32, ptr %503, align 4, !tbaa !9
  %505 = add nsw i32 %504, 1
  store i32 %505, ptr %503, align 4, !tbaa !9
  %506 = load ptr, ptr %32, align 8, !tbaa !5
  %507 = load i32, ptr %81, align 4, !tbaa !9
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds double, ptr %506, i64 %508
  %510 = load double, ptr %509, align 8, !tbaa !11
  %511 = load ptr, ptr %41, align 8, !tbaa !5
  %512 = load ptr, ptr %40, align 8, !tbaa !5
  %513 = load i32, ptr %512, align 4, !tbaa !9
  %514 = sext i32 %513 to i64
  %515 = getelementptr inbounds double, ptr %511, i64 %514
  store double %510, ptr %515, align 8, !tbaa !11
  %516 = load ptr, ptr %42, align 8, !tbaa !5
  %517 = load ptr, ptr %40, align 8, !tbaa !5
  %518 = load i32, ptr %517, align 4, !tbaa !9
  %519 = sext i32 %518 to i64
  %520 = getelementptr inbounds double, ptr %516, i64 %519
  store double 0.000000e+00, ptr %520, align 8, !tbaa !11
  %521 = load ptr, ptr %43, align 8, !tbaa !5
  %522 = load ptr, ptr %40, align 8, !tbaa !5
  %523 = load i32, ptr %522, align 4, !tbaa !9
  %524 = sext i32 %523 to i64
  %525 = getelementptr inbounds double, ptr %521, i64 %524
  store double 0.000000e+00, ptr %525, align 8, !tbaa !11
  %526 = load i32, ptr %58, align 4, !tbaa !9
  %527 = load ptr, ptr %44, align 8, !tbaa !5
  %528 = load ptr, ptr %40, align 8, !tbaa !5
  %529 = load i32, ptr %528, align 4, !tbaa !9
  %530 = sext i32 %529 to i64
  %531 = getelementptr inbounds i32, ptr %527, i64 %530
  store i32 %526, ptr %531, align 4, !tbaa !9
  %532 = load ptr, ptr %45, align 8, !tbaa !5
  %533 = load ptr, ptr %40, align 8, !tbaa !5
  %534 = load i32, ptr %533, align 4, !tbaa !9
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds i32, ptr %532, i64 %535
  store i32 1, ptr %536, align 4, !tbaa !9
  %537 = load i32, ptr %85, align 4, !tbaa !9
  %538 = add nsw i32 %537, 1
  store i32 %538, ptr %85, align 4, !tbaa !9
  br label %539

539:                                              ; preds = %502, %494, %491
  %540 = load ptr, ptr %33, align 8, !tbaa !5
  %541 = load i32, ptr %57, align 4, !tbaa !9
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds double, ptr %540, i64 %542
  store double 0.000000e+00, ptr %543, align 8, !tbaa !11
  %544 = load i32, ptr %57, align 4, !tbaa !9
  %545 = add nsw i32 %544, 1
  store i32 %545, ptr %81, align 4, !tbaa !9
  br label %2077

546:                                              ; preds = %455
  %547 = load ptr, ptr %33, align 8, !tbaa !5
  %548 = load i32, ptr %57, align 4, !tbaa !9
  %549 = sext i32 %548 to i64
  %550 = getelementptr inbounds double, ptr %547, i64 %549
  store double 0.000000e+00, ptr %550, align 8, !tbaa !11
  %551 = load ptr, ptr %32, align 8, !tbaa !5
  %552 = load i32, ptr %81, align 4, !tbaa !9
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds double, ptr %551, i64 %553
  %555 = load double, ptr %554, align 8, !tbaa !11
  store double %555, ptr %77, align 8, !tbaa !11
  %556 = load ptr, ptr %32, align 8, !tbaa !5
  %557 = load i32, ptr %81, align 4, !tbaa !9
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds double, ptr %556, i64 %558
  %560 = load double, ptr %559, align 8, !tbaa !11
  store double %560, ptr %80, align 8, !tbaa !11
  %561 = load i32, ptr %57, align 4, !tbaa !9
  store i32 %561, ptr %52, align 4, !tbaa !9
  %562 = load i32, ptr %81, align 4, !tbaa !9
  store i32 %562, ptr %67, align 4, !tbaa !9
  br label %563

563:                                              ; preds = %599, %546
  %564 = load i32, ptr %67, align 4, !tbaa !9
  %565 = load i32, ptr %52, align 4, !tbaa !9
  %566 = icmp sle i32 %564, %565
  br i1 %566, label %567, label %602

567:                                              ; preds = %563
  %568 = load ptr, ptr %46, align 8, !tbaa !5
  %569 = load i32, ptr %67, align 4, !tbaa !9
  %570 = shl i32 %569, 1
  %571 = sub nsw i32 %570, 1
  %572 = sext i32 %571 to i64
  %573 = getelementptr inbounds double, ptr %568, i64 %572
  %574 = load double, ptr %573, align 8, !tbaa !11
  store double %574, ptr %53, align 8, !tbaa !11
  %575 = load double, ptr %53, align 8, !tbaa !11
  %576 = load double, ptr %77, align 8, !tbaa !11
  %577 = fcmp ole double %575, %576
  br i1 %577, label %578, label %580

578:                                              ; preds = %567
  %579 = load double, ptr %53, align 8, !tbaa !11
  br label %582

580:                                              ; preds = %567
  %581 = load double, ptr %77, align 8, !tbaa !11
  br label %582

582:                                              ; preds = %580, %578
  %583 = phi double [ %579, %578 ], [ %581, %580 ]
  store double %583, ptr %77, align 8, !tbaa !11
  %584 = load ptr, ptr %46, align 8, !tbaa !5
  %585 = load i32, ptr %67, align 4, !tbaa !9
  %586 = mul nsw i32 %585, 2
  %587 = sext i32 %586 to i64
  %588 = getelementptr inbounds double, ptr %584, i64 %587
  %589 = load double, ptr %588, align 8, !tbaa !11
  store double %589, ptr %53, align 8, !tbaa !11
  %590 = load double, ptr %53, align 8, !tbaa !11
  %591 = load double, ptr %80, align 8, !tbaa !11
  %592 = fcmp oge double %590, %591
  br i1 %592, label %593, label %595

593:                                              ; preds = %582
  %594 = load double, ptr %53, align 8, !tbaa !11
  br label %597

595:                                              ; preds = %582
  %596 = load double, ptr %80, align 8, !tbaa !11
  br label %597

597:                                              ; preds = %595, %593
  %598 = phi double [ %594, %593 ], [ %596, %595 ]
  store double %598, ptr %80, align 8, !tbaa !11
  br label %599

599:                                              ; preds = %597
  %600 = load i32, ptr %67, align 4, !tbaa !9
  %601 = add nsw i32 %600, 1
  store i32 %601, ptr %67, align 4, !tbaa !9
  br label %563, !llvm.loop !16

602:                                              ; preds = %563
  %603 = load double, ptr %80, align 8, !tbaa !11
  %604 = load double, ptr %77, align 8, !tbaa !11
  %605 = fsub double %603, %604
  store double %605, ptr %87, align 8, !tbaa !11
  %606 = load i32, ptr %83, align 4, !tbaa !9
  %607 = icmp eq i32 %606, 1
  br i1 %607, label %608, label %611

608:                                              ; preds = %602
  %609 = load i32, ptr %82, align 4, !tbaa !9
  %610 = icmp ne i32 %609, 0
  br i1 %610, label %611, label %753

611:                                              ; preds = %608, %602
  store i32 0, ptr %76, align 4, !tbaa !9
  %612 = load i32, ptr %79, align 4, !tbaa !9
  store i32 %612, ptr %52, align 4, !tbaa !9
  %613 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %613, ptr %67, align 4, !tbaa !9
  br label %614

614:                                              ; preds = %631, %611
  %615 = load i32, ptr %67, align 4, !tbaa !9
  %616 = load i32, ptr %52, align 4, !tbaa !9
  %617 = icmp sle i32 %615, %616
  br i1 %617, label %618, label %634

618:                                              ; preds = %614
  %619 = load ptr, ptr %44, align 8, !tbaa !5
  %620 = load i32, ptr %67, align 4, !tbaa !9
  %621 = sext i32 %620 to i64
  %622 = getelementptr inbounds i32, ptr %619, i64 %621
  %623 = load i32, ptr %622, align 4, !tbaa !9
  %624 = load i32, ptr %58, align 4, !tbaa !9
  %625 = icmp eq i32 %623, %624
  br i1 %625, label %626, label %629

626:                                              ; preds = %618
  %627 = load i32, ptr %76, align 4, !tbaa !9
  %628 = add nsw i32 %627, 1
  store i32 %628, ptr %76, align 4, !tbaa !9
  br label %630

629:                                              ; preds = %618
  br label %635

630:                                              ; preds = %626
  br label %631

631:                                              ; preds = %630
  %632 = load i32, ptr %67, align 4, !tbaa !9
  %633 = add nsw i32 %632, 1
  store i32 %633, ptr %67, align 4, !tbaa !9
  br label %614, !llvm.loop !17

634:                                              ; preds = %614
  br label %635

635:                                              ; preds = %634, %629
  %636 = load i32, ptr %76, align 4, !tbaa !9
  %637 = icmp eq i32 %636, 0
  br i1 %637, label %638, label %645

638:                                              ; preds = %635
  %639 = load ptr, ptr %33, align 8, !tbaa !5
  %640 = load i32, ptr %57, align 4, !tbaa !9
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds double, ptr %639, i64 %641
  store double 0.000000e+00, ptr %642, align 8, !tbaa !11
  %643 = load i32, ptr %57, align 4, !tbaa !9
  %644 = add nsw i32 %643, 1
  store i32 %644, ptr %81, align 4, !tbaa !9
  br label %2077

645:                                              ; preds = %635
  %646 = load i32, ptr %76, align 4, !tbaa !9
  %647 = sitofp i32 %646 to double
  %648 = load i32, ptr %78, align 4, !tbaa !9
  %649 = sitofp i32 %648 to double
  %650 = fmul double %649, 5.000000e-01
  %651 = fcmp ogt double %647, %650
  br i1 %651, label %652, label %656

652:                                              ; preds = %645
  %653 = load i32, ptr %82, align 4, !tbaa !9
  %654 = icmp ne i32 %653, 0
  %655 = xor i1 %654, true
  br label %656

656:                                              ; preds = %652, %645
  %657 = phi i1 [ false, %645 ], [ %655, %652 ]
  %658 = zext i1 %657 to i32
  store i32 %658, ptr %88, align 4, !tbaa !9
  %659 = load i32, ptr %85, align 4, !tbaa !9
  %660 = load i32, ptr %76, align 4, !tbaa !9
  %661 = add nsw i32 %659, %660
  %662 = sub nsw i32 %661, 1
  store i32 %662, ptr %63, align 4, !tbaa !9
  store double 0.000000e+00, ptr %71, align 8, !tbaa !11
  %663 = load i32, ptr %63, align 4, !tbaa !9
  %664 = sub nsw i32 %663, 1
  store i32 %664, ptr %52, align 4, !tbaa !9
  %665 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %665, ptr %67, align 4, !tbaa !9
  br label %666

666:                                              ; preds = %709, %656
  %667 = load i32, ptr %67, align 4, !tbaa !9
  %668 = load i32, ptr %52, align 4, !tbaa !9
  %669 = icmp sle i32 %667, %668
  br i1 %669, label %670, label %712

670:                                              ; preds = %666
  store double 0.000000e+00, ptr %53, align 8, !tbaa !11
  %671 = load ptr, ptr %41, align 8, !tbaa !5
  %672 = load i32, ptr %67, align 4, !tbaa !9
  %673 = add nsw i32 %672, 1
  %674 = sext i32 %673 to i64
  %675 = getelementptr inbounds double, ptr %671, i64 %674
  %676 = load double, ptr %675, align 8, !tbaa !11
  %677 = load ptr, ptr %42, align 8, !tbaa !5
  %678 = load i32, ptr %67, align 4, !tbaa !9
  %679 = add nsw i32 %678, 1
  %680 = sext i32 %679 to i64
  %681 = getelementptr inbounds double, ptr %677, i64 %680
  %682 = load double, ptr %681, align 8, !tbaa !11
  %683 = fsub double %676, %682
  %684 = load ptr, ptr %41, align 8, !tbaa !5
  %685 = load i32, ptr %67, align 4, !tbaa !9
  %686 = sext i32 %685 to i64
  %687 = getelementptr inbounds double, ptr %684, i64 %686
  %688 = load double, ptr %687, align 8, !tbaa !11
  %689 = load ptr, ptr %42, align 8, !tbaa !5
  %690 = load i32, ptr %67, align 4, !tbaa !9
  %691 = sext i32 %690 to i64
  %692 = getelementptr inbounds double, ptr %689, i64 %691
  %693 = load double, ptr %692, align 8, !tbaa !11
  %694 = fadd double %688, %693
  %695 = fsub double %683, %694
  store double %695, ptr %54, align 8, !tbaa !11
  %696 = load double, ptr %53, align 8, !tbaa !11
  %697 = load double, ptr %54, align 8, !tbaa !11
  %698 = fcmp oge double %696, %697
  br i1 %698, label %699, label %701

699:                                              ; preds = %670
  %700 = load double, ptr %53, align 8, !tbaa !11
  br label %703

701:                                              ; preds = %670
  %702 = load double, ptr %54, align 8, !tbaa !11
  br label %703

703:                                              ; preds = %701, %699
  %704 = phi double [ %700, %699 ], [ %702, %701 ]
  %705 = load ptr, ptr %43, align 8, !tbaa !5
  %706 = load i32, ptr %67, align 4, !tbaa !9
  %707 = sext i32 %706 to i64
  %708 = getelementptr inbounds double, ptr %705, i64 %707
  store double %704, ptr %708, align 8, !tbaa !11
  br label %709

709:                                              ; preds = %703
  %710 = load i32, ptr %67, align 4, !tbaa !9
  %711 = add nsw i32 %710, 1
  store i32 %711, ptr %67, align 4, !tbaa !9
  br label %666, !llvm.loop !18

712:                                              ; preds = %666
  store double 0.000000e+00, ptr %53, align 8, !tbaa !11
  %713 = load ptr, ptr %29, align 8, !tbaa !5
  %714 = load double, ptr %713, align 8, !tbaa !11
  %715 = load double, ptr %71, align 8, !tbaa !11
  %716 = fsub double %714, %715
  %717 = load ptr, ptr %41, align 8, !tbaa !5
  %718 = load i32, ptr %63, align 4, !tbaa !9
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds double, ptr %717, i64 %719
  %721 = load double, ptr %720, align 8, !tbaa !11
  %722 = load ptr, ptr %42, align 8, !tbaa !5
  %723 = load i32, ptr %63, align 4, !tbaa !9
  %724 = sext i32 %723 to i64
  %725 = getelementptr inbounds double, ptr %722, i64 %724
  %726 = load double, ptr %725, align 8, !tbaa !11
  %727 = fadd double %721, %726
  %728 = fsub double %716, %727
  store double %728, ptr %54, align 8, !tbaa !11
  %729 = load double, ptr %53, align 8, !tbaa !11
  %730 = load double, ptr %54, align 8, !tbaa !11
  %731 = fcmp oge double %729, %730
  br i1 %731, label %732, label %734

732:                                              ; preds = %712
  %733 = load double, ptr %53, align 8, !tbaa !11
  br label %736

734:                                              ; preds = %712
  %735 = load double, ptr %54, align 8, !tbaa !11
  br label %736

736:                                              ; preds = %734, %732
  %737 = phi double [ %733, %732 ], [ %735, %734 ]
  %738 = load ptr, ptr %43, align 8, !tbaa !5
  %739 = load i32, ptr %63, align 4, !tbaa !9
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds double, ptr %738, i64 %740
  store double %737, ptr %741, align 8, !tbaa !11
  %742 = load ptr, ptr %45, align 8, !tbaa !5
  %743 = load i32, ptr %85, align 4, !tbaa !9
  %744 = sext i32 %743 to i64
  %745 = getelementptr inbounds i32, ptr %742, i64 %744
  %746 = load i32, ptr %745, align 4, !tbaa !9
  store i32 %746, ptr %60, align 4, !tbaa !9
  %747 = load ptr, ptr %45, align 8, !tbaa !5
  %748 = load i32, ptr %63, align 4, !tbaa !9
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds i32, ptr %747, i64 %749
  %751 = load i32, ptr %750, align 4, !tbaa !9
  store i32 %751, ptr %65, align 4, !tbaa !9
  br label %752

752:                                              ; preds = %736
  br label %753

753:                                              ; preds = %752, %608
  %754 = load i32, ptr %83, align 4, !tbaa !9
  %755 = icmp eq i32 %754, 1
  br i1 %755, label %756, label %759

756:                                              ; preds = %753
  %757 = load i32, ptr %82, align 4, !tbaa !9
  %758 = icmp ne i32 %757, 0
  br i1 %758, label %759, label %762

759:                                              ; preds = %756, %753
  %760 = load i32, ptr %88, align 4, !tbaa !9
  %761 = icmp ne i32 %760, 0
  br i1 %761, label %762, label %851

762:                                              ; preds = %759, %756
  %763 = load ptr, ptr %32, align 8, !tbaa !5
  %764 = load i32, ptr %81, align 4, !tbaa !9
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds double, ptr %763, i64 %765
  %767 = load ptr, ptr %34, align 8, !tbaa !5
  %768 = load i32, ptr %81, align 4, !tbaa !9
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds double, ptr %767, i64 %769
  %771 = load ptr, ptr %47, align 8, !tbaa !5
  call void @dlarrk_(ptr noundef %78, ptr noundef @c__1, ptr noundef %77, ptr noundef %80, ptr noundef %766, ptr noundef %770, ptr noundef %771, ptr noundef %98, ptr noundef %97, ptr noundef %101, ptr noundef %72)
  %772 = load i32, ptr %72, align 4, !tbaa !9
  %773 = icmp ne i32 %772, 0
  br i1 %773, label %774, label %776

774:                                              ; preds = %762
  %775 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -1, ptr %775, align 4, !tbaa !9
  store i32 1, ptr %102, align 4
  br label %2082

776:                                              ; preds = %762
  %777 = load double, ptr %77, align 8, !tbaa !11
  store double %777, ptr %54, align 8, !tbaa !11
  %778 = load double, ptr %97, align 8, !tbaa !11
  %779 = load double, ptr %101, align 8, !tbaa !11
  %780 = fsub double %778, %779
  %781 = load double, ptr %95, align 8, !tbaa !11
  %782 = fmul double %781, 1.000000e+02
  %783 = load double, ptr %97, align 8, !tbaa !11
  %784 = load double, ptr %101, align 8, !tbaa !11
  %785 = fsub double %783, %784
  store double %785, ptr %53, align 8, !tbaa !11
  %786 = load double, ptr %53, align 8, !tbaa !11
  %787 = fcmp oge double %786, 0.000000e+00
  br i1 %787, label %788, label %790

788:                                              ; preds = %776
  %789 = load double, ptr %53, align 8, !tbaa !11
  br label %793

790:                                              ; preds = %776
  %791 = load double, ptr %53, align 8, !tbaa !11
  %792 = fneg double %791
  br label %793

793:                                              ; preds = %790, %788
  %794 = phi double [ %789, %788 ], [ %792, %790 ]
  %795 = fneg double %782
  %796 = call double @llvm.fmuladd.f64(double %795, double %794, double %780)
  store double %796, ptr %55, align 8, !tbaa !11
  %797 = load double, ptr %54, align 8, !tbaa !11
  %798 = load double, ptr %55, align 8, !tbaa !11
  %799 = fcmp oge double %797, %798
  br i1 %799, label %800, label %802

800:                                              ; preds = %793
  %801 = load double, ptr %54, align 8, !tbaa !11
  br label %804

802:                                              ; preds = %793
  %803 = load double, ptr %55, align 8, !tbaa !11
  br label %804

804:                                              ; preds = %802, %800
  %805 = phi double [ %801, %800 ], [ %803, %802 ]
  store double %805, ptr %90, align 8, !tbaa !11
  %806 = load ptr, ptr %32, align 8, !tbaa !5
  %807 = load i32, ptr %81, align 4, !tbaa !9
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds double, ptr %806, i64 %808
  %810 = load ptr, ptr %34, align 8, !tbaa !5
  %811 = load i32, ptr %81, align 4, !tbaa !9
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds double, ptr %810, i64 %812
  %814 = load ptr, ptr %47, align 8, !tbaa !5
  call void @dlarrk_(ptr noundef %78, ptr noundef %78, ptr noundef %77, ptr noundef %80, ptr noundef %809, ptr noundef %813, ptr noundef %814, ptr noundef %98, ptr noundef %97, ptr noundef %101, ptr noundef %72)
  %815 = load i32, ptr %72, align 4, !tbaa !9
  %816 = icmp ne i32 %815, 0
  br i1 %816, label %817, label %819

817:                                              ; preds = %804
  %818 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -1, ptr %818, align 4, !tbaa !9
  store i32 1, ptr %102, align 4
  br label %2082

819:                                              ; preds = %804
  %820 = load double, ptr %80, align 8, !tbaa !11
  store double %820, ptr %54, align 8, !tbaa !11
  %821 = load double, ptr %97, align 8, !tbaa !11
  %822 = load double, ptr %101, align 8, !tbaa !11
  %823 = fadd double %821, %822
  %824 = load double, ptr %95, align 8, !tbaa !11
  %825 = fmul double %824, 1.000000e+02
  %826 = load double, ptr %97, align 8, !tbaa !11
  %827 = load double, ptr %101, align 8, !tbaa !11
  %828 = fadd double %826, %827
  store double %828, ptr %53, align 8, !tbaa !11
  %829 = load double, ptr %53, align 8, !tbaa !11
  %830 = fcmp oge double %829, 0.000000e+00
  br i1 %830, label %831, label %833

831:                                              ; preds = %819
  %832 = load double, ptr %53, align 8, !tbaa !11
  br label %836

833:                                              ; preds = %819
  %834 = load double, ptr %53, align 8, !tbaa !11
  %835 = fneg double %834
  br label %836

836:                                              ; preds = %833, %831
  %837 = phi double [ %832, %831 ], [ %835, %833 ]
  %838 = call double @llvm.fmuladd.f64(double %825, double %837, double %823)
  store double %838, ptr %55, align 8, !tbaa !11
  %839 = load double, ptr %54, align 8, !tbaa !11
  %840 = load double, ptr %55, align 8, !tbaa !11
  %841 = fcmp ole double %839, %840
  br i1 %841, label %842, label %844

842:                                              ; preds = %836
  %843 = load double, ptr %54, align 8, !tbaa !11
  br label %846

844:                                              ; preds = %836
  %845 = load double, ptr %55, align 8, !tbaa !11
  br label %846

846:                                              ; preds = %844, %842
  %847 = phi double [ %843, %842 ], [ %845, %844 ]
  store double %847, ptr %91, align 8, !tbaa !11
  %848 = load double, ptr %91, align 8, !tbaa !11
  %849 = load double, ptr %90, align 8, !tbaa !11
  %850 = fsub double %848, %849
  store double %850, ptr %87, align 8, !tbaa !11
  br label %941

851:                                              ; preds = %759
  %852 = load double, ptr %77, align 8, !tbaa !11
  store double %852, ptr %54, align 8, !tbaa !11
  %853 = load ptr, ptr %41, align 8, !tbaa !5
  %854 = load i32, ptr %85, align 4, !tbaa !9
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds double, ptr %853, i64 %855
  %857 = load double, ptr %856, align 8, !tbaa !11
  %858 = load ptr, ptr %42, align 8, !tbaa !5
  %859 = load i32, ptr %85, align 4, !tbaa !9
  %860 = sext i32 %859 to i64
  %861 = getelementptr inbounds double, ptr %858, i64 %860
  %862 = load double, ptr %861, align 8, !tbaa !11
  %863 = fsub double %857, %862
  %864 = load double, ptr %95, align 8, !tbaa !11
  %865 = fmul double %864, 1.000000e+02
  %866 = load ptr, ptr %41, align 8, !tbaa !5
  %867 = load i32, ptr %85, align 4, !tbaa !9
  %868 = sext i32 %867 to i64
  %869 = getelementptr inbounds double, ptr %866, i64 %868
  %870 = load double, ptr %869, align 8, !tbaa !11
  %871 = load ptr, ptr %42, align 8, !tbaa !5
  %872 = load i32, ptr %85, align 4, !tbaa !9
  %873 = sext i32 %872 to i64
  %874 = getelementptr inbounds double, ptr %871, i64 %873
  %875 = load double, ptr %874, align 8, !tbaa !11
  %876 = fsub double %870, %875
  store double %876, ptr %53, align 8, !tbaa !11
  %877 = load double, ptr %53, align 8, !tbaa !11
  %878 = fcmp oge double %877, 0.000000e+00
  br i1 %878, label %879, label %881

879:                                              ; preds = %851
  %880 = load double, ptr %53, align 8, !tbaa !11
  br label %884

881:                                              ; preds = %851
  %882 = load double, ptr %53, align 8, !tbaa !11
  %883 = fneg double %882
  br label %884

884:                                              ; preds = %881, %879
  %885 = phi double [ %880, %879 ], [ %883, %881 ]
  %886 = fneg double %865
  %887 = call double @llvm.fmuladd.f64(double %886, double %885, double %863)
  store double %887, ptr %55, align 8, !tbaa !11
  %888 = load double, ptr %54, align 8, !tbaa !11
  %889 = load double, ptr %55, align 8, !tbaa !11
  %890 = fcmp oge double %888, %889
  br i1 %890, label %891, label %893

891:                                              ; preds = %884
  %892 = load double, ptr %54, align 8, !tbaa !11
  br label %895

893:                                              ; preds = %884
  %894 = load double, ptr %55, align 8, !tbaa !11
  br label %895

895:                                              ; preds = %893, %891
  %896 = phi double [ %892, %891 ], [ %894, %893 ]
  store double %896, ptr %90, align 8, !tbaa !11
  %897 = load double, ptr %80, align 8, !tbaa !11
  store double %897, ptr %54, align 8, !tbaa !11
  %898 = load ptr, ptr %41, align 8, !tbaa !5
  %899 = load i32, ptr %63, align 4, !tbaa !9
  %900 = sext i32 %899 to i64
  %901 = getelementptr inbounds double, ptr %898, i64 %900
  %902 = load double, ptr %901, align 8, !tbaa !11
  %903 = load ptr, ptr %42, align 8, !tbaa !5
  %904 = load i32, ptr %63, align 4, !tbaa !9
  %905 = sext i32 %904 to i64
  %906 = getelementptr inbounds double, ptr %903, i64 %905
  %907 = load double, ptr %906, align 8, !tbaa !11
  %908 = fadd double %902, %907
  %909 = load double, ptr %95, align 8, !tbaa !11
  %910 = fmul double %909, 1.000000e+02
  %911 = load ptr, ptr %41, align 8, !tbaa !5
  %912 = load i32, ptr %63, align 4, !tbaa !9
  %913 = sext i32 %912 to i64
  %914 = getelementptr inbounds double, ptr %911, i64 %913
  %915 = load double, ptr %914, align 8, !tbaa !11
  %916 = load ptr, ptr %42, align 8, !tbaa !5
  %917 = load i32, ptr %63, align 4, !tbaa !9
  %918 = sext i32 %917 to i64
  %919 = getelementptr inbounds double, ptr %916, i64 %918
  %920 = load double, ptr %919, align 8, !tbaa !11
  %921 = fadd double %915, %920
  store double %921, ptr %53, align 8, !tbaa !11
  %922 = load double, ptr %53, align 8, !tbaa !11
  %923 = fcmp oge double %922, 0.000000e+00
  br i1 %923, label %924, label %926

924:                                              ; preds = %895
  %925 = load double, ptr %53, align 8, !tbaa !11
  br label %929

926:                                              ; preds = %895
  %927 = load double, ptr %53, align 8, !tbaa !11
  %928 = fneg double %927
  br label %929

929:                                              ; preds = %926, %924
  %930 = phi double [ %925, %924 ], [ %928, %926 ]
  %931 = call double @llvm.fmuladd.f64(double %910, double %930, double %908)
  store double %931, ptr %55, align 8, !tbaa !11
  %932 = load double, ptr %54, align 8, !tbaa !11
  %933 = load double, ptr %55, align 8, !tbaa !11
  %934 = fcmp ole double %932, %933
  br i1 %934, label %935, label %937

935:                                              ; preds = %929
  %936 = load double, ptr %54, align 8, !tbaa !11
  br label %939

937:                                              ; preds = %929
  %938 = load double, ptr %55, align 8, !tbaa !11
  br label %939

939:                                              ; preds = %937, %935
  %940 = phi double [ %936, %935 ], [ %938, %937 ]
  store double %940, ptr %91, align 8, !tbaa !11
  br label %941

941:                                              ; preds = %939, %846
  %942 = load i32, ptr %83, align 4, !tbaa !9
  %943 = icmp eq i32 %942, 1
  br i1 %943, label %944, label %961

944:                                              ; preds = %941
  %945 = load i32, ptr %82, align 4, !tbaa !9
  %946 = icmp ne i32 %945, 0
  br i1 %946, label %961, label %947

947:                                              ; preds = %944
  store i32 1, ptr %88, align 4, !tbaa !9
  store i32 1, ptr %60, align 4, !tbaa !9
  %948 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %948, ptr %65, align 4, !tbaa !9
  %949 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %949, ptr %76, align 4, !tbaa !9
  %950 = load i32, ptr %85, align 4, !tbaa !9
  %951 = load i32, ptr %76, align 4, !tbaa !9
  %952 = add nsw i32 %950, %951
  %953 = sub nsw i32 %952, 1
  store i32 %953, ptr %63, align 4, !tbaa !9
  %954 = load double, ptr %90, align 8, !tbaa !11
  %955 = load double, ptr %87, align 8, !tbaa !11
  %956 = call double @llvm.fmuladd.f64(double %955, double 2.500000e-01, double %954)
  store double %956, ptr %74, align 8, !tbaa !11
  %957 = load double, ptr %91, align 8, !tbaa !11
  %958 = load double, ptr %87, align 8, !tbaa !11
  %959 = fneg double %958
  %960 = call double @llvm.fmuladd.f64(double %959, double 2.500000e-01, double %957)
  store double %960, ptr %75, align 8, !tbaa !11
  br label %1024

961:                                              ; preds = %944, %941
  %962 = load i32, ptr %88, align 4, !tbaa !9
  %963 = icmp ne i32 %962, 0
  br i1 %963, label %964, label %972

964:                                              ; preds = %961
  %965 = load double, ptr %90, align 8, !tbaa !11
  %966 = load double, ptr %87, align 8, !tbaa !11
  %967 = call double @llvm.fmuladd.f64(double %966, double 2.500000e-01, double %965)
  store double %967, ptr %74, align 8, !tbaa !11
  %968 = load double, ptr %91, align 8, !tbaa !11
  %969 = load double, ptr %87, align 8, !tbaa !11
  %970 = fneg double %969
  %971 = call double @llvm.fmuladd.f64(double %970, double 2.500000e-01, double %968)
  store double %971, ptr %75, align 8, !tbaa !11
  br label %1023

972:                                              ; preds = %961
  %973 = load double, ptr %91, align 8, !tbaa !11
  %974 = load ptr, ptr %29, align 8, !tbaa !5
  %975 = load double, ptr %974, align 8, !tbaa !11
  %976 = fcmp ole double %973, %975
  br i1 %976, label %977, label %979

977:                                              ; preds = %972
  %978 = load double, ptr %91, align 8, !tbaa !11
  br label %982

979:                                              ; preds = %972
  %980 = load ptr, ptr %29, align 8, !tbaa !5
  %981 = load double, ptr %980, align 8, !tbaa !11
  br label %982

982:                                              ; preds = %979, %977
  %983 = phi double [ %978, %977 ], [ %981, %979 ]
  %984 = load double, ptr %90, align 8, !tbaa !11
  %985 = load ptr, ptr %28, align 8, !tbaa !5
  %986 = load double, ptr %985, align 8, !tbaa !11
  %987 = fcmp oge double %984, %986
  br i1 %987, label %988, label %990

988:                                              ; preds = %982
  %989 = load double, ptr %90, align 8, !tbaa !11
  br label %993

990:                                              ; preds = %982
  %991 = load ptr, ptr %28, align 8, !tbaa !5
  %992 = load double, ptr %991, align 8, !tbaa !11
  br label %993

993:                                              ; preds = %990, %988
  %994 = phi double [ %989, %988 ], [ %992, %990 ]
  %995 = fsub double %983, %994
  store double %995, ptr %97, align 8, !tbaa !11
  %996 = load double, ptr %90, align 8, !tbaa !11
  %997 = load ptr, ptr %28, align 8, !tbaa !5
  %998 = load double, ptr %997, align 8, !tbaa !11
  %999 = fcmp oge double %996, %998
  br i1 %999, label %1000, label %1002

1000:                                             ; preds = %993
  %1001 = load double, ptr %90, align 8, !tbaa !11
  br label %1005

1002:                                             ; preds = %993
  %1003 = load ptr, ptr %28, align 8, !tbaa !5
  %1004 = load double, ptr %1003, align 8, !tbaa !11
  br label %1005

1005:                                             ; preds = %1002, %1000
  %1006 = phi double [ %1001, %1000 ], [ %1004, %1002 ]
  %1007 = load double, ptr %97, align 8, !tbaa !11
  %1008 = call double @llvm.fmuladd.f64(double %1007, double 2.500000e-01, double %1006)
  store double %1008, ptr %74, align 8, !tbaa !11
  %1009 = load double, ptr %91, align 8, !tbaa !11
  %1010 = load ptr, ptr %29, align 8, !tbaa !5
  %1011 = load double, ptr %1010, align 8, !tbaa !11
  %1012 = fcmp ole double %1009, %1011
  br i1 %1012, label %1013, label %1015

1013:                                             ; preds = %1005
  %1014 = load double, ptr %91, align 8, !tbaa !11
  br label %1018

1015:                                             ; preds = %1005
  %1016 = load ptr, ptr %29, align 8, !tbaa !5
  %1017 = load double, ptr %1016, align 8, !tbaa !11
  br label %1018

1018:                                             ; preds = %1015, %1013
  %1019 = phi double [ %1014, %1013 ], [ %1017, %1015 ]
  %1020 = load double, ptr %97, align 8, !tbaa !11
  %1021 = fneg double %1020
  %1022 = call double @llvm.fmuladd.f64(double %1021, double 2.500000e-01, double %1019)
  store double %1022, ptr %75, align 8, !tbaa !11
  br label %1023

1023:                                             ; preds = %1018, %964
  br label %1024

1024:                                             ; preds = %1023, %947
  %1025 = load i32, ptr %76, align 4, !tbaa !9
  %1026 = icmp sgt i32 %1025, 1
  br i1 %1026, label %1027, label %1037

1027:                                             ; preds = %1024
  %1028 = load ptr, ptr %32, align 8, !tbaa !5
  %1029 = load i32, ptr %81, align 4, !tbaa !9
  %1030 = sext i32 %1029 to i64
  %1031 = getelementptr inbounds double, ptr %1028, i64 %1030
  %1032 = load ptr, ptr %33, align 8, !tbaa !5
  %1033 = load i32, ptr %81, align 4, !tbaa !9
  %1034 = sext i32 %1033 to i64
  %1035 = getelementptr inbounds double, ptr %1032, i64 %1034
  %1036 = load ptr, ptr %47, align 8, !tbaa !5
  call void @dlarrc_(ptr noundef @.str.6, ptr noundef %78, ptr noundef %74, ptr noundef %75, ptr noundef %1031, ptr noundef %1035, ptr noundef %1036, ptr noundef %94, ptr noundef %99, ptr noundef %100, ptr noundef %72)
  br label %1037

1037:                                             ; preds = %1027, %1024
  %1038 = load i32, ptr %76, align 4, !tbaa !9
  %1039 = icmp eq i32 %1038, 1
  br i1 %1039, label %1040, label %1042

1040:                                             ; preds = %1037
  %1041 = load double, ptr %77, align 8, !tbaa !11
  store double %1041, ptr %71, align 8, !tbaa !11
  store double 1.000000e+00, ptr %84, align 8, !tbaa !11
  br label %1121

1042:                                             ; preds = %1037
  %1043 = load i32, ptr %99, align 4, !tbaa !9
  %1044 = load i32, ptr %60, align 4, !tbaa !9
  %1045 = sub nsw i32 %1043, %1044
  %1046 = load i32, ptr %65, align 4, !tbaa !9
  %1047 = load i32, ptr %100, align 4, !tbaa !9
  %1048 = sub nsw i32 %1046, %1047
  %1049 = icmp sge i32 %1045, %1048
  br i1 %1049, label %1050, label %1085

1050:                                             ; preds = %1042
  %1051 = load i32, ptr %83, align 4, !tbaa !9
  %1052 = icmp eq i32 %1051, 1
  br i1 %1052, label %1053, label %1066

1053:                                             ; preds = %1050
  %1054 = load i32, ptr %82, align 4, !tbaa !9
  %1055 = icmp ne i32 %1054, 0
  br i1 %1055, label %1066, label %1056

1056:                                             ; preds = %1053
  %1057 = load double, ptr %90, align 8, !tbaa !11
  %1058 = load double, ptr %77, align 8, !tbaa !11
  %1059 = fcmp oge double %1057, %1058
  br i1 %1059, label %1060, label %1062

1060:                                             ; preds = %1056
  %1061 = load double, ptr %90, align 8, !tbaa !11
  br label %1064

1062:                                             ; preds = %1056
  %1063 = load double, ptr %77, align 8, !tbaa !11
  br label %1064

1064:                                             ; preds = %1062, %1060
  %1065 = phi double [ %1061, %1060 ], [ %1063, %1062 ]
  store double %1065, ptr %71, align 8, !tbaa !11
  br label %1084

1066:                                             ; preds = %1053, %1050
  %1067 = load i32, ptr %88, align 4, !tbaa !9
  %1068 = icmp ne i32 %1067, 0
  br i1 %1068, label %1069, label %1071

1069:                                             ; preds = %1066
  %1070 = load double, ptr %90, align 8, !tbaa !11
  store double %1070, ptr %71, align 8, !tbaa !11
  br label %1083

1071:                                             ; preds = %1066
  %1072 = load double, ptr %90, align 8, !tbaa !11
  %1073 = load ptr, ptr %28, align 8, !tbaa !5
  %1074 = load double, ptr %1073, align 8, !tbaa !11
  %1075 = fcmp oge double %1072, %1074
  br i1 %1075, label %1076, label %1078

1076:                                             ; preds = %1071
  %1077 = load double, ptr %90, align 8, !tbaa !11
  br label %1081

1078:                                             ; preds = %1071
  %1079 = load ptr, ptr %28, align 8, !tbaa !5
  %1080 = load double, ptr %1079, align 8, !tbaa !11
  br label %1081

1081:                                             ; preds = %1078, %1076
  %1082 = phi double [ %1077, %1076 ], [ %1080, %1078 ]
  store double %1082, ptr %71, align 8, !tbaa !11
  br label %1083

1083:                                             ; preds = %1081, %1069
  br label %1084

1084:                                             ; preds = %1083, %1064
  store double 1.000000e+00, ptr %84, align 8, !tbaa !11
  br label %1120

1085:                                             ; preds = %1042
  %1086 = load i32, ptr %83, align 4, !tbaa !9
  %1087 = icmp eq i32 %1086, 1
  br i1 %1087, label %1088, label %1101

1088:                                             ; preds = %1085
  %1089 = load i32, ptr %82, align 4, !tbaa !9
  %1090 = icmp ne i32 %1089, 0
  br i1 %1090, label %1101, label %1091

1091:                                             ; preds = %1088
  %1092 = load double, ptr %91, align 8, !tbaa !11
  %1093 = load double, ptr %80, align 8, !tbaa !11
  %1094 = fcmp ole double %1092, %1093
  br i1 %1094, label %1095, label %1097

1095:                                             ; preds = %1091
  %1096 = load double, ptr %91, align 8, !tbaa !11
  br label %1099

1097:                                             ; preds = %1091
  %1098 = load double, ptr %80, align 8, !tbaa !11
  br label %1099

1099:                                             ; preds = %1097, %1095
  %1100 = phi double [ %1096, %1095 ], [ %1098, %1097 ]
  store double %1100, ptr %71, align 8, !tbaa !11
  br label %1119

1101:                                             ; preds = %1088, %1085
  %1102 = load i32, ptr %88, align 4, !tbaa !9
  %1103 = icmp ne i32 %1102, 0
  br i1 %1103, label %1104, label %1106

1104:                                             ; preds = %1101
  %1105 = load double, ptr %91, align 8, !tbaa !11
  store double %1105, ptr %71, align 8, !tbaa !11
  br label %1118

1106:                                             ; preds = %1101
  %1107 = load double, ptr %91, align 8, !tbaa !11
  %1108 = load ptr, ptr %29, align 8, !tbaa !5
  %1109 = load double, ptr %1108, align 8, !tbaa !11
  %1110 = fcmp ole double %1107, %1109
  br i1 %1110, label %1111, label %1113

1111:                                             ; preds = %1106
  %1112 = load double, ptr %91, align 8, !tbaa !11
  br label %1116

1113:                                             ; preds = %1106
  %1114 = load ptr, ptr %29, align 8, !tbaa !5
  %1115 = load double, ptr %1114, align 8, !tbaa !11
  br label %1116

1116:                                             ; preds = %1113, %1111
  %1117 = phi double [ %1112, %1111 ], [ %1115, %1113 ]
  store double %1117, ptr %71, align 8, !tbaa !11
  br label %1118

1118:                                             ; preds = %1116, %1104
  br label %1119

1119:                                             ; preds = %1118, %1099
  store double -1.000000e+00, ptr %84, align 8, !tbaa !11
  br label %1120

1120:                                             ; preds = %1119, %1084
  br label %1121

1121:                                             ; preds = %1120, %1040
  %1122 = load i32, ptr %88, align 4, !tbaa !9
  %1123 = icmp ne i32 %1122, 0
  br i1 %1123, label %1124, label %1157

1124:                                             ; preds = %1121
  %1125 = load double, ptr %87, align 8, !tbaa !11
  %1126 = load double, ptr %95, align 8, !tbaa !11
  %1127 = fmul double %1125, %1126
  %1128 = load ptr, ptr %27, align 8, !tbaa !5
  %1129 = load i32, ptr %1128, align 4, !tbaa !9
  %1130 = sitofp i32 %1129 to double
  %1131 = load ptr, ptr %47, align 8, !tbaa !5
  %1132 = load double, ptr %1131, align 8, !tbaa !11
  %1133 = fmul double %1132, 2.000000e+00
  %1134 = call double @llvm.fmuladd.f64(double %1127, double %1130, double %1133)
  store double %1134, ptr %96, align 8, !tbaa !11
  %1135 = load double, ptr %96, align 8, !tbaa !11
  store double %1135, ptr %53, align 8, !tbaa !11
  %1136 = load double, ptr %95, align 8, !tbaa !11
  %1137 = fmul double %1136, 2.000000e+00
  %1138 = load double, ptr %71, align 8, !tbaa !11
  %1139 = fcmp oge double %1138, 0.000000e+00
  br i1 %1139, label %1140, label %1142

1140:                                             ; preds = %1124
  %1141 = load double, ptr %71, align 8, !tbaa !11
  br label %1145

1142:                                             ; preds = %1124
  %1143 = load double, ptr %71, align 8, !tbaa !11
  %1144 = fneg double %1143
  br label %1145

1145:                                             ; preds = %1142, %1140
  %1146 = phi double [ %1141, %1140 ], [ %1144, %1142 ]
  %1147 = fmul double %1137, %1146
  store double %1147, ptr %54, align 8, !tbaa !11
  %1148 = load double, ptr %53, align 8, !tbaa !11
  %1149 = load double, ptr %54, align 8, !tbaa !11
  %1150 = fcmp oge double %1148, %1149
  br i1 %1150, label %1151, label %1153

1151:                                             ; preds = %1145
  %1152 = load double, ptr %53, align 8, !tbaa !11
  br label %1155

1153:                                             ; preds = %1145
  %1154 = load double, ptr %54, align 8, !tbaa !11
  br label %1155

1155:                                             ; preds = %1153, %1151
  %1156 = phi double [ %1152, %1151 ], [ %1154, %1153 ]
  store double %1156, ptr %96, align 8, !tbaa !11
  br label %1272

1157:                                             ; preds = %1121
  %1158 = load i32, ptr %76, align 4, !tbaa !9
  %1159 = icmp sgt i32 %1158, 1
  br i1 %1159, label %1160, label %1265

1160:                                             ; preds = %1157
  %1161 = load ptr, ptr %41, align 8, !tbaa !5
  %1162 = load i32, ptr %63, align 4, !tbaa !9
  %1163 = sext i32 %1162 to i64
  %1164 = getelementptr inbounds double, ptr %1161, i64 %1163
  %1165 = load double, ptr %1164, align 8, !tbaa !11
  %1166 = load ptr, ptr %42, align 8, !tbaa !5
  %1167 = load i32, ptr %63, align 4, !tbaa !9
  %1168 = sext i32 %1167 to i64
  %1169 = getelementptr inbounds double, ptr %1166, i64 %1168
  %1170 = load double, ptr %1169, align 8, !tbaa !11
  %1171 = fadd double %1165, %1170
  %1172 = load ptr, ptr %41, align 8, !tbaa !5
  %1173 = load i32, ptr %85, align 4, !tbaa !9
  %1174 = sext i32 %1173 to i64
  %1175 = getelementptr inbounds double, ptr %1172, i64 %1174
  %1176 = load double, ptr %1175, align 8, !tbaa !11
  %1177 = fsub double %1171, %1176
  %1178 = load ptr, ptr %42, align 8, !tbaa !5
  %1179 = load i32, ptr %85, align 4, !tbaa !9
  %1180 = sext i32 %1179 to i64
  %1181 = getelementptr inbounds double, ptr %1178, i64 %1180
  %1182 = load double, ptr %1181, align 8, !tbaa !11
  %1183 = fsub double %1177, %1182
  store double %1183, ptr %89, align 8, !tbaa !11
  %1184 = load double, ptr %89, align 8, !tbaa !11
  %1185 = load i32, ptr %63, align 4, !tbaa !9
  %1186 = load i32, ptr %85, align 4, !tbaa !9
  %1187 = sub nsw i32 %1185, %1186
  %1188 = sitofp i32 %1187 to double
  %1189 = fdiv double %1184, %1188
  store double %1189, ptr %53, align 8, !tbaa !11
  %1190 = load double, ptr %53, align 8, !tbaa !11
  %1191 = fcmp oge double %1190, 0.000000e+00
  br i1 %1191, label %1192, label %1194

1192:                                             ; preds = %1160
  %1193 = load double, ptr %53, align 8, !tbaa !11
  br label %1197

1194:                                             ; preds = %1160
  %1195 = load double, ptr %53, align 8, !tbaa !11
  %1196 = fneg double %1195
  br label %1197

1197:                                             ; preds = %1194, %1192
  %1198 = phi double [ %1193, %1192 ], [ %1196, %1194 ]
  store double %1198, ptr %70, align 8, !tbaa !11
  %1199 = load double, ptr %84, align 8, !tbaa !11
  %1200 = fcmp oeq double %1199, 1.000000e+00
  br i1 %1200, label %1201, label %1232

1201:                                             ; preds = %1197
  %1202 = load ptr, ptr %43, align 8, !tbaa !5
  %1203 = load i32, ptr %85, align 4, !tbaa !9
  %1204 = sext i32 %1203 to i64
  %1205 = getelementptr inbounds double, ptr %1202, i64 %1204
  %1206 = load double, ptr %1205, align 8, !tbaa !11
  store double %1206, ptr %53, align 8, !tbaa !11
  %1207 = load double, ptr %53, align 8, !tbaa !11
  %1208 = load double, ptr %70, align 8, !tbaa !11
  %1209 = fcmp oge double %1207, %1208
  br i1 %1209, label %1210, label %1212

1210:                                             ; preds = %1201
  %1211 = load double, ptr %53, align 8, !tbaa !11
  br label %1214

1212:                                             ; preds = %1201
  %1213 = load double, ptr %70, align 8, !tbaa !11
  br label %1214

1214:                                             ; preds = %1212, %1210
  %1215 = phi double [ %1211, %1210 ], [ %1213, %1212 ]
  %1216 = fmul double %1215, 5.000000e-01
  store double %1216, ptr %96, align 8, !tbaa !11
  %1217 = load double, ptr %96, align 8, !tbaa !11
  store double %1217, ptr %53, align 8, !tbaa !11
  %1218 = load ptr, ptr %42, align 8, !tbaa !5
  %1219 = load i32, ptr %85, align 4, !tbaa !9
  %1220 = sext i32 %1219 to i64
  %1221 = getelementptr inbounds double, ptr %1218, i64 %1220
  %1222 = load double, ptr %1221, align 8, !tbaa !11
  store double %1222, ptr %54, align 8, !tbaa !11
  %1223 = load double, ptr %53, align 8, !tbaa !11
  %1224 = load double, ptr %54, align 8, !tbaa !11
  %1225 = fcmp oge double %1223, %1224
  br i1 %1225, label %1226, label %1228

1226:                                             ; preds = %1214
  %1227 = load double, ptr %53, align 8, !tbaa !11
  br label %1230

1228:                                             ; preds = %1214
  %1229 = load double, ptr %54, align 8, !tbaa !11
  br label %1230

1230:                                             ; preds = %1228, %1226
  %1231 = phi double [ %1227, %1226 ], [ %1229, %1228 ]
  store double %1231, ptr %96, align 8, !tbaa !11
  br label %1264

1232:                                             ; preds = %1197
  %1233 = load ptr, ptr %43, align 8, !tbaa !5
  %1234 = load i32, ptr %63, align 4, !tbaa !9
  %1235 = sub nsw i32 %1234, 1
  %1236 = sext i32 %1235 to i64
  %1237 = getelementptr inbounds double, ptr %1233, i64 %1236
  %1238 = load double, ptr %1237, align 8, !tbaa !11
  store double %1238, ptr %53, align 8, !tbaa !11
  %1239 = load double, ptr %53, align 8, !tbaa !11
  %1240 = load double, ptr %70, align 8, !tbaa !11
  %1241 = fcmp oge double %1239, %1240
  br i1 %1241, label %1242, label %1244

1242:                                             ; preds = %1232
  %1243 = load double, ptr %53, align 8, !tbaa !11
  br label %1246

1244:                                             ; preds = %1232
  %1245 = load double, ptr %70, align 8, !tbaa !11
  br label %1246

1246:                                             ; preds = %1244, %1242
  %1247 = phi double [ %1243, %1242 ], [ %1245, %1244 ]
  %1248 = fmul double %1247, 5.000000e-01
  store double %1248, ptr %96, align 8, !tbaa !11
  %1249 = load double, ptr %96, align 8, !tbaa !11
  store double %1249, ptr %53, align 8, !tbaa !11
  %1250 = load ptr, ptr %42, align 8, !tbaa !5
  %1251 = load i32, ptr %63, align 4, !tbaa !9
  %1252 = sext i32 %1251 to i64
  %1253 = getelementptr inbounds double, ptr %1250, i64 %1252
  %1254 = load double, ptr %1253, align 8, !tbaa !11
  store double %1254, ptr %54, align 8, !tbaa !11
  %1255 = load double, ptr %53, align 8, !tbaa !11
  %1256 = load double, ptr %54, align 8, !tbaa !11
  %1257 = fcmp oge double %1255, %1256
  br i1 %1257, label %1258, label %1260

1258:                                             ; preds = %1246
  %1259 = load double, ptr %53, align 8, !tbaa !11
  br label %1262

1260:                                             ; preds = %1246
  %1261 = load double, ptr %54, align 8, !tbaa !11
  br label %1262

1262:                                             ; preds = %1260, %1258
  %1263 = phi double [ %1259, %1258 ], [ %1261, %1260 ]
  store double %1263, ptr %96, align 8, !tbaa !11
  br label %1264

1264:                                             ; preds = %1262, %1230
  br label %1271

1265:                                             ; preds = %1157
  %1266 = load ptr, ptr %42, align 8, !tbaa !5
  %1267 = load i32, ptr %85, align 4, !tbaa !9
  %1268 = sext i32 %1267 to i64
  %1269 = getelementptr inbounds double, ptr %1266, i64 %1268
  %1270 = load double, ptr %1269, align 8, !tbaa !11
  store double %1270, ptr %96, align 8, !tbaa !11
  br label %1271

1271:                                             ; preds = %1265, %1264
  br label %1272

1272:                                             ; preds = %1271, %1155
  store i32 1, ptr %64, align 4, !tbaa !9
  br label %1273

1273:                                             ; preds = %1474, %1272
  %1274 = load i32, ptr %64, align 4, !tbaa !9
  %1275 = icmp sle i32 %1274, 6
  br i1 %1275, label %1276, label %1477

1276:                                             ; preds = %1273
  %1277 = load ptr, ptr %32, align 8, !tbaa !5
  %1278 = load i32, ptr %81, align 4, !tbaa !9
  %1279 = sext i32 %1278 to i64
  %1280 = getelementptr inbounds double, ptr %1277, i64 %1279
  %1281 = load double, ptr %1280, align 8, !tbaa !11
  %1282 = load double, ptr %71, align 8, !tbaa !11
  %1283 = fsub double %1281, %1282
  store double %1283, ptr %93, align 8, !tbaa !11
  %1284 = load double, ptr %93, align 8, !tbaa !11
  %1285 = load ptr, ptr %48, align 8, !tbaa !5
  %1286 = getelementptr inbounds double, ptr %1285, i64 1
  store double %1284, ptr %1286, align 8, !tbaa !11
  %1287 = load ptr, ptr %48, align 8, !tbaa !5
  %1288 = getelementptr inbounds double, ptr %1287, i64 1
  %1289 = load double, ptr %1288, align 8, !tbaa !11
  %1290 = fcmp oge double %1289, 0.000000e+00
  br i1 %1290, label %1291, label %1295

1291:                                             ; preds = %1276
  %1292 = load ptr, ptr %48, align 8, !tbaa !5
  %1293 = getelementptr inbounds double, ptr %1292, i64 1
  %1294 = load double, ptr %1293, align 8, !tbaa !11
  br label %1300

1295:                                             ; preds = %1276
  %1296 = load ptr, ptr %48, align 8, !tbaa !5
  %1297 = getelementptr inbounds double, ptr %1296, i64 1
  %1298 = load double, ptr %1297, align 8, !tbaa !11
  %1299 = fneg double %1298
  br label %1300

1300:                                             ; preds = %1295, %1291
  %1301 = phi double [ %1294, %1291 ], [ %1299, %1295 ]
  store double %1301, ptr %61, align 8, !tbaa !11
  %1302 = load i32, ptr %81, align 4, !tbaa !9
  store i32 %1302, ptr %68, align 4, !tbaa !9
  %1303 = load i32, ptr %78, align 4, !tbaa !9
  %1304 = sub nsw i32 %1303, 1
  store i32 %1304, ptr %52, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1305

1305:                                             ; preds = %1387, %1300
  %1306 = load i32, ptr %67, align 4, !tbaa !9
  %1307 = load i32, ptr %52, align 4, !tbaa !9
  %1308 = icmp sle i32 %1306, %1307
  br i1 %1308, label %1309, label %1390

1309:                                             ; preds = %1305
  %1310 = load ptr, ptr %48, align 8, !tbaa !5
  %1311 = load i32, ptr %67, align 4, !tbaa !9
  %1312 = sext i32 %1311 to i64
  %1313 = getelementptr inbounds double, ptr %1310, i64 %1312
  %1314 = load double, ptr %1313, align 8, !tbaa !11
  %1315 = fdiv double 1.000000e+00, %1314
  %1316 = load ptr, ptr %48, align 8, !tbaa !5
  %1317 = load i32, ptr %78, align 4, !tbaa !9
  %1318 = shl i32 %1317, 1
  %1319 = load i32, ptr %67, align 4, !tbaa !9
  %1320 = add nsw i32 %1318, %1319
  %1321 = sext i32 %1320 to i64
  %1322 = getelementptr inbounds double, ptr %1316, i64 %1321
  store double %1315, ptr %1322, align 8, !tbaa !11
  %1323 = load ptr, ptr %33, align 8, !tbaa !5
  %1324 = load i32, ptr %68, align 4, !tbaa !9
  %1325 = sext i32 %1324 to i64
  %1326 = getelementptr inbounds double, ptr %1323, i64 %1325
  %1327 = load double, ptr %1326, align 8, !tbaa !11
  %1328 = load ptr, ptr %48, align 8, !tbaa !5
  %1329 = load i32, ptr %78, align 4, !tbaa !9
  %1330 = shl i32 %1329, 1
  %1331 = load i32, ptr %67, align 4, !tbaa !9
  %1332 = add nsw i32 %1330, %1331
  %1333 = sext i32 %1332 to i64
  %1334 = getelementptr inbounds double, ptr %1328, i64 %1333
  %1335 = load double, ptr %1334, align 8, !tbaa !11
  %1336 = fmul double %1327, %1335
  store double %1336, ptr %97, align 8, !tbaa !11
  %1337 = load double, ptr %97, align 8, !tbaa !11
  %1338 = load ptr, ptr %48, align 8, !tbaa !5
  %1339 = load i32, ptr %78, align 4, !tbaa !9
  %1340 = load i32, ptr %67, align 4, !tbaa !9
  %1341 = add nsw i32 %1339, %1340
  %1342 = sext i32 %1341 to i64
  %1343 = getelementptr inbounds double, ptr %1338, i64 %1342
  store double %1337, ptr %1343, align 8, !tbaa !11
  %1344 = load ptr, ptr %32, align 8, !tbaa !5
  %1345 = load i32, ptr %68, align 4, !tbaa !9
  %1346 = add nsw i32 %1345, 1
  %1347 = sext i32 %1346 to i64
  %1348 = getelementptr inbounds double, ptr %1344, i64 %1347
  %1349 = load double, ptr %1348, align 8, !tbaa !11
  %1350 = load double, ptr %71, align 8, !tbaa !11
  %1351 = fsub double %1349, %1350
  %1352 = load double, ptr %97, align 8, !tbaa !11
  %1353 = load ptr, ptr %33, align 8, !tbaa !5
  %1354 = load i32, ptr %68, align 4, !tbaa !9
  %1355 = sext i32 %1354 to i64
  %1356 = getelementptr inbounds double, ptr %1353, i64 %1355
  %1357 = load double, ptr %1356, align 8, !tbaa !11
  %1358 = fneg double %1352
  %1359 = call double @llvm.fmuladd.f64(double %1358, double %1357, double %1351)
  store double %1359, ptr %93, align 8, !tbaa !11
  %1360 = load double, ptr %93, align 8, !tbaa !11
  %1361 = load ptr, ptr %48, align 8, !tbaa !5
  %1362 = load i32, ptr %67, align 4, !tbaa !9
  %1363 = add nsw i32 %1362, 1
  %1364 = sext i32 %1363 to i64
  %1365 = getelementptr inbounds double, ptr %1361, i64 %1364
  store double %1360, ptr %1365, align 8, !tbaa !11
  %1366 = load double, ptr %61, align 8, !tbaa !11
  store double %1366, ptr %53, align 8, !tbaa !11
  %1367 = load double, ptr %93, align 8, !tbaa !11
  %1368 = fcmp oge double %1367, 0.000000e+00
  br i1 %1368, label %1369, label %1371

1369:                                             ; preds = %1309
  %1370 = load double, ptr %93, align 8, !tbaa !11
  br label %1374

1371:                                             ; preds = %1309
  %1372 = load double, ptr %93, align 8, !tbaa !11
  %1373 = fneg double %1372
  br label %1374

1374:                                             ; preds = %1371, %1369
  %1375 = phi double [ %1370, %1369 ], [ %1373, %1371 ]
  store double %1375, ptr %54, align 8, !tbaa !11
  %1376 = load double, ptr %53, align 8, !tbaa !11
  %1377 = load double, ptr %54, align 8, !tbaa !11
  %1378 = fcmp oge double %1376, %1377
  br i1 %1378, label %1379, label %1381

1379:                                             ; preds = %1374
  %1380 = load double, ptr %53, align 8, !tbaa !11
  br label %1383

1381:                                             ; preds = %1374
  %1382 = load double, ptr %54, align 8, !tbaa !11
  br label %1383

1383:                                             ; preds = %1381, %1379
  %1384 = phi double [ %1380, %1379 ], [ %1382, %1381 ]
  store double %1384, ptr %61, align 8, !tbaa !11
  %1385 = load i32, ptr %68, align 4, !tbaa !9
  %1386 = add nsw i32 %1385, 1
  store i32 %1386, ptr %68, align 4, !tbaa !9
  br label %1387

1387:                                             ; preds = %1383
  %1388 = load i32, ptr %67, align 4, !tbaa !9
  %1389 = add nsw i32 %1388, 1
  store i32 %1389, ptr %67, align 4, !tbaa !9
  br label %1305, !llvm.loop !19

1390:                                             ; preds = %1305
  %1391 = load double, ptr %61, align 8, !tbaa !11
  %1392 = load double, ptr %87, align 8, !tbaa !11
  %1393 = fmul double %1392, 6.400000e+01
  %1394 = fcmp ogt double %1391, %1393
  br i1 %1394, label %1395, label %1396

1395:                                             ; preds = %1390
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %1397

1396:                                             ; preds = %1390
  store i32 0, ptr %73, align 4, !tbaa !9
  br label %1397

1397:                                             ; preds = %1396, %1395
  %1398 = load i32, ptr %88, align 4, !tbaa !9
  %1399 = icmp ne i32 %1398, 0
  br i1 %1399, label %1400, label %1425

1400:                                             ; preds = %1397
  %1401 = load i32, ptr %73, align 4, !tbaa !9
  %1402 = icmp ne i32 %1401, 0
  br i1 %1402, label %1425, label %1403

1403:                                             ; preds = %1400
  %1404 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %1404, ptr %52, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1405

1405:                                             ; preds = %1421, %1403
  %1406 = load i32, ptr %67, align 4, !tbaa !9
  %1407 = load i32, ptr %52, align 4, !tbaa !9
  %1408 = icmp sle i32 %1406, %1407
  br i1 %1408, label %1409, label %1424

1409:                                             ; preds = %1405
  %1410 = load double, ptr %84, align 8, !tbaa !11
  %1411 = load ptr, ptr %48, align 8, !tbaa !5
  %1412 = load i32, ptr %67, align 4, !tbaa !9
  %1413 = sext i32 %1412 to i64
  %1414 = getelementptr inbounds double, ptr %1411, i64 %1413
  %1415 = load double, ptr %1414, align 8, !tbaa !11
  %1416 = fmul double %1410, %1415
  store double %1416, ptr %97, align 8, !tbaa !11
  %1417 = load double, ptr %97, align 8, !tbaa !11
  %1418 = fcmp olt double %1417, 0.000000e+00
  br i1 %1418, label %1419, label %1420

1419:                                             ; preds = %1409
  store i32 1, ptr %73, align 4, !tbaa !9
  br label %1420

1420:                                             ; preds = %1419, %1409
  br label %1421

1421:                                             ; preds = %1420
  %1422 = load i32, ptr %67, align 4, !tbaa !9
  %1423 = add nsw i32 %1422, 1
  store i32 %1423, ptr %67, align 4, !tbaa !9
  br label %1405, !llvm.loop !20

1424:                                             ; preds = %1405
  br label %1425

1425:                                             ; preds = %1424, %1400, %1397
  %1426 = load i32, ptr %73, align 4, !tbaa !9
  %1427 = icmp ne i32 %1426, 0
  br i1 %1427, label %1428, label %1472

1428:                                             ; preds = %1425
  %1429 = load i32, ptr %64, align 4, !tbaa !9
  %1430 = icmp eq i32 %1429, 5
  br i1 %1430, label %1431, label %1463

1431:                                             ; preds = %1428
  %1432 = load double, ptr %84, align 8, !tbaa !11
  %1433 = fcmp oeq double %1432, 1.000000e+00
  br i1 %1433, label %1434, label %1449

1434:                                             ; preds = %1431
  %1435 = load double, ptr %77, align 8, !tbaa !11
  %1436 = load double, ptr %87, align 8, !tbaa !11
  %1437 = fmul double %1436, 2.000000e+00
  %1438 = load double, ptr %95, align 8, !tbaa !11
  %1439 = fmul double %1437, %1438
  %1440 = load ptr, ptr %27, align 8, !tbaa !5
  %1441 = load i32, ptr %1440, align 4, !tbaa !9
  %1442 = sitofp i32 %1441 to double
  %1443 = fneg double %1439
  %1444 = call double @llvm.fmuladd.f64(double %1443, double %1442, double %1435)
  %1445 = load ptr, ptr %47, align 8, !tbaa !5
  %1446 = load double, ptr %1445, align 8, !tbaa !11
  %1447 = fneg double %1446
  %1448 = call double @llvm.fmuladd.f64(double %1447, double 4.000000e+00, double %1444)
  store double %1448, ptr %71, align 8, !tbaa !11
  br label %1462

1449:                                             ; preds = %1431
  %1450 = load double, ptr %80, align 8, !tbaa !11
  %1451 = load double, ptr %87, align 8, !tbaa !11
  %1452 = fmul double %1451, 2.000000e+00
  %1453 = load double, ptr %95, align 8, !tbaa !11
  %1454 = fmul double %1452, %1453
  %1455 = load ptr, ptr %27, align 8, !tbaa !5
  %1456 = load i32, ptr %1455, align 4, !tbaa !9
  %1457 = sitofp i32 %1456 to double
  %1458 = call double @llvm.fmuladd.f64(double %1454, double %1457, double %1450)
  %1459 = load ptr, ptr %47, align 8, !tbaa !5
  %1460 = load double, ptr %1459, align 8, !tbaa !11
  %1461 = call double @llvm.fmuladd.f64(double %1460, double 4.000000e+00, double %1458)
  store double %1461, ptr %71, align 8, !tbaa !11
  br label %1462

1462:                                             ; preds = %1449, %1434
  br label %1471

1463:                                             ; preds = %1428
  %1464 = load double, ptr %84, align 8, !tbaa !11
  %1465 = load double, ptr %96, align 8, !tbaa !11
  %1466 = load double, ptr %71, align 8, !tbaa !11
  %1467 = fneg double %1464
  %1468 = call double @llvm.fmuladd.f64(double %1467, double %1465, double %1466)
  store double %1468, ptr %71, align 8, !tbaa !11
  %1469 = load double, ptr %96, align 8, !tbaa !11
  %1470 = fmul double %1469, 2.000000e+00
  store double %1470, ptr %96, align 8, !tbaa !11
  br label %1471

1471:                                             ; preds = %1463, %1462
  br label %1473

1472:                                             ; preds = %1425
  br label %1479

1473:                                             ; preds = %1471
  br label %1474

1474:                                             ; preds = %1473
  %1475 = load i32, ptr %64, align 4, !tbaa !9
  %1476 = add nsw i32 %1475, 1
  store i32 %1476, ptr %64, align 4, !tbaa !9
  br label %1273, !llvm.loop !21

1477:                                             ; preds = %1273
  %1478 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 2, ptr %1478, align 4, !tbaa !9
  store i32 1, ptr %102, align 4
  br label %2082

1479:                                             ; preds = %1472
  %1480 = load double, ptr %71, align 8, !tbaa !11
  %1481 = load ptr, ptr %33, align 8, !tbaa !5
  %1482 = load i32, ptr %57, align 4, !tbaa !9
  %1483 = sext i32 %1482 to i64
  %1484 = getelementptr inbounds double, ptr %1481, i64 %1483
  store double %1480, ptr %1484, align 8, !tbaa !11
  %1485 = load ptr, ptr %48, align 8, !tbaa !5
  %1486 = getelementptr inbounds double, ptr %1485, i64 1
  %1487 = load ptr, ptr %32, align 8, !tbaa !5
  %1488 = load i32, ptr %81, align 4, !tbaa !9
  %1489 = sext i32 %1488 to i64
  %1490 = getelementptr inbounds double, ptr %1487, i64 %1489
  call void @dcopy_(ptr noundef %78, ptr noundef %1486, ptr noundef @c__1, ptr noundef %1490, ptr noundef @c__1)
  %1491 = load i32, ptr %78, align 4, !tbaa !9
  %1492 = sub nsw i32 %1491, 1
  store i32 %1492, ptr %52, align 4, !tbaa !9
  %1493 = load ptr, ptr %48, align 8, !tbaa !5
  %1494 = load i32, ptr %78, align 4, !tbaa !9
  %1495 = add nsw i32 %1494, 1
  %1496 = sext i32 %1495 to i64
  %1497 = getelementptr inbounds double, ptr %1493, i64 %1496
  %1498 = load ptr, ptr %33, align 8, !tbaa !5
  %1499 = load i32, ptr %81, align 4, !tbaa !9
  %1500 = sext i32 %1499 to i64
  %1501 = getelementptr inbounds double, ptr %1498, i64 %1500
  call void @dcopy_(ptr noundef %52, ptr noundef %1497, ptr noundef @c__1, ptr noundef %1501, ptr noundef @c__1)
  %1502 = load i32, ptr %76, align 4, !tbaa !9
  %1503 = icmp sgt i32 %1502, 1
  br i1 %1503, label %1504, label %1584

1504:                                             ; preds = %1479
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1505

1505:                                             ; preds = %1513, %1504
  %1506 = load i32, ptr %67, align 4, !tbaa !9
  %1507 = icmp sle i32 %1506, 4
  br i1 %1507, label %1508, label %1516

1508:                                             ; preds = %1505
  %1509 = load i32, ptr %67, align 4, !tbaa !9
  %1510 = sub nsw i32 %1509, 1
  %1511 = sext i32 %1510 to i64
  %1512 = getelementptr inbounds [4 x i32], ptr %69, i64 0, i64 %1511
  store i32 1, ptr %1512, align 4, !tbaa !9
  br label %1513

1513:                                             ; preds = %1508
  %1514 = load i32, ptr %67, align 4, !tbaa !9
  %1515 = add nsw i32 %1514, 1
  store i32 %1515, ptr %67, align 4, !tbaa !9
  br label %1505, !llvm.loop !22

1516:                                             ; preds = %1505
  %1517 = load i32, ptr %78, align 4, !tbaa !9
  %1518 = shl i32 %1517, 1
  %1519 = sub nsw i32 %1518, 1
  store i32 %1519, ptr %52, align 4, !tbaa !9
  %1520 = getelementptr inbounds [4 x i32], ptr %69, i64 0, i64 0
  %1521 = load ptr, ptr %48, align 8, !tbaa !5
  %1522 = getelementptr inbounds double, ptr %1521, i64 1
  call void @dlarnv_(ptr noundef @c__2, ptr noundef %1520, ptr noundef %52, ptr noundef %1522)
  %1523 = load i32, ptr %78, align 4, !tbaa !9
  %1524 = sub nsw i32 %1523, 1
  store i32 %1524, ptr %52, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1525

1525:                                             ; preds = %1566, %1516
  %1526 = load i32, ptr %67, align 4, !tbaa !9
  %1527 = load i32, ptr %52, align 4, !tbaa !9
  %1528 = icmp sle i32 %1526, %1527
  br i1 %1528, label %1529, label %1569

1529:                                             ; preds = %1525
  %1530 = load double, ptr %95, align 8, !tbaa !11
  %1531 = fmul double %1530, 8.000000e+00
  %1532 = load ptr, ptr %48, align 8, !tbaa !5
  %1533 = load i32, ptr %67, align 4, !tbaa !9
  %1534 = sext i32 %1533 to i64
  %1535 = getelementptr inbounds double, ptr %1532, i64 %1534
  %1536 = load double, ptr %1535, align 8, !tbaa !11
  %1537 = call double @llvm.fmuladd.f64(double %1531, double %1536, double 1.000000e+00)
  %1538 = load ptr, ptr %32, align 8, !tbaa !5
  %1539 = load i32, ptr %81, align 4, !tbaa !9
  %1540 = load i32, ptr %67, align 4, !tbaa !9
  %1541 = add nsw i32 %1539, %1540
  %1542 = sub nsw i32 %1541, 1
  %1543 = sext i32 %1542 to i64
  %1544 = getelementptr inbounds double, ptr %1538, i64 %1543
  %1545 = load double, ptr %1544, align 8, !tbaa !11
  %1546 = fmul double %1545, %1537
  store double %1546, ptr %1544, align 8, !tbaa !11
  %1547 = load double, ptr %95, align 8, !tbaa !11
  %1548 = fmul double %1547, 8.000000e+00
  %1549 = load ptr, ptr %48, align 8, !tbaa !5
  %1550 = load i32, ptr %78, align 4, !tbaa !9
  %1551 = load i32, ptr %67, align 4, !tbaa !9
  %1552 = add nsw i32 %1550, %1551
  %1553 = sext i32 %1552 to i64
  %1554 = getelementptr inbounds double, ptr %1549, i64 %1553
  %1555 = load double, ptr %1554, align 8, !tbaa !11
  %1556 = call double @llvm.fmuladd.f64(double %1548, double %1555, double 1.000000e+00)
  %1557 = load ptr, ptr %33, align 8, !tbaa !5
  %1558 = load i32, ptr %81, align 4, !tbaa !9
  %1559 = load i32, ptr %67, align 4, !tbaa !9
  %1560 = add nsw i32 %1558, %1559
  %1561 = sub nsw i32 %1560, 1
  %1562 = sext i32 %1561 to i64
  %1563 = getelementptr inbounds double, ptr %1557, i64 %1562
  %1564 = load double, ptr %1563, align 8, !tbaa !11
  %1565 = fmul double %1564, %1556
  store double %1565, ptr %1563, align 8, !tbaa !11
  br label %1566

1566:                                             ; preds = %1529
  %1567 = load i32, ptr %67, align 4, !tbaa !9
  %1568 = add nsw i32 %1567, 1
  store i32 %1568, ptr %67, align 4, !tbaa !9
  br label %1525, !llvm.loop !23

1569:                                             ; preds = %1525
  %1570 = load double, ptr %95, align 8, !tbaa !11
  %1571 = fmul double %1570, 4.000000e+00
  %1572 = load ptr, ptr %48, align 8, !tbaa !5
  %1573 = load i32, ptr %78, align 4, !tbaa !9
  %1574 = sext i32 %1573 to i64
  %1575 = getelementptr inbounds double, ptr %1572, i64 %1574
  %1576 = load double, ptr %1575, align 8, !tbaa !11
  %1577 = call double @llvm.fmuladd.f64(double %1571, double %1576, double 1.000000e+00)
  %1578 = load ptr, ptr %32, align 8, !tbaa !5
  %1579 = load i32, ptr %57, align 4, !tbaa !9
  %1580 = sext i32 %1579 to i64
  %1581 = getelementptr inbounds double, ptr %1578, i64 %1580
  %1582 = load double, ptr %1581, align 8, !tbaa !11
  %1583 = fmul double %1582, %1577
  store double %1583, ptr %1581, align 8, !tbaa !11
  br label %1584

1584:                                             ; preds = %1569, %1479
  %1585 = load i32, ptr %88, align 4, !tbaa !9
  %1586 = icmp ne i32 %1585, 0
  br i1 %1586, label %1751, label %1587

1587:                                             ; preds = %1584
  %1588 = load i32, ptr %63, align 4, !tbaa !9
  store i32 %1588, ptr %52, align 4, !tbaa !9
  %1589 = load i32, ptr %85, align 4, !tbaa !9
  store i32 %1589, ptr %68, align 4, !tbaa !9
  br label %1590

1590:                                             ; preds = %1623, %1587
  %1591 = load i32, ptr %68, align 4, !tbaa !9
  %1592 = load i32, ptr %52, align 4, !tbaa !9
  %1593 = icmp sle i32 %1591, %1592
  br i1 %1593, label %1594, label %1626

1594:                                             ; preds = %1590
  %1595 = load double, ptr %71, align 8, !tbaa !11
  %1596 = load ptr, ptr %41, align 8, !tbaa !5
  %1597 = load i32, ptr %68, align 4, !tbaa !9
  %1598 = sext i32 %1597 to i64
  %1599 = getelementptr inbounds double, ptr %1596, i64 %1598
  %1600 = load double, ptr %1599, align 8, !tbaa !11
  %1601 = fsub double %1600, %1595
  store double %1601, ptr %1599, align 8, !tbaa !11
  %1602 = load ptr, ptr %41, align 8, !tbaa !5
  %1603 = load i32, ptr %68, align 4, !tbaa !9
  %1604 = sext i32 %1603 to i64
  %1605 = getelementptr inbounds double, ptr %1602, i64 %1604
  %1606 = load double, ptr %1605, align 8, !tbaa !11
  store double %1606, ptr %53, align 8, !tbaa !11
  %1607 = load double, ptr %53, align 8, !tbaa !11
  %1608 = fcmp oge double %1607, 0.000000e+00
  br i1 %1608, label %1609, label %1611

1609:                                             ; preds = %1594
  %1610 = load double, ptr %53, align 8, !tbaa !11
  br label %1614

1611:                                             ; preds = %1594
  %1612 = load double, ptr %53, align 8, !tbaa !11
  %1613 = fneg double %1612
  br label %1614

1614:                                             ; preds = %1611, %1609
  %1615 = phi double [ %1610, %1609 ], [ %1613, %1611 ]
  %1616 = load double, ptr %95, align 8, !tbaa !11
  %1617 = load ptr, ptr %42, align 8, !tbaa !5
  %1618 = load i32, ptr %68, align 4, !tbaa !9
  %1619 = sext i32 %1618 to i64
  %1620 = getelementptr inbounds double, ptr %1617, i64 %1619
  %1621 = load double, ptr %1620, align 8, !tbaa !11
  %1622 = call double @llvm.fmuladd.f64(double %1615, double %1616, double %1621)
  store double %1622, ptr %1620, align 8, !tbaa !11
  br label %1623

1623:                                             ; preds = %1614
  %1624 = load i32, ptr %68, align 4, !tbaa !9
  %1625 = add nsw i32 %1624, 1
  store i32 %1625, ptr %68, align 4, !tbaa !9
  br label %1590, !llvm.loop !24

1626:                                             ; preds = %1590
  %1627 = load i32, ptr %57, align 4, !tbaa !9
  %1628 = sub nsw i32 %1627, 1
  store i32 %1628, ptr %52, align 4, !tbaa !9
  %1629 = load i32, ptr %81, align 4, !tbaa !9
  store i32 %1629, ptr %67, align 4, !tbaa !9
  br label %1630

1630:                                             ; preds = %1653, %1626
  %1631 = load i32, ptr %67, align 4, !tbaa !9
  %1632 = load i32, ptr %52, align 4, !tbaa !9
  %1633 = icmp sle i32 %1631, %1632
  br i1 %1633, label %1634, label %1656

1634:                                             ; preds = %1630
  %1635 = load ptr, ptr %33, align 8, !tbaa !5
  %1636 = load i32, ptr %67, align 4, !tbaa !9
  %1637 = sext i32 %1636 to i64
  %1638 = getelementptr inbounds double, ptr %1635, i64 %1637
  %1639 = load double, ptr %1638, align 8, !tbaa !11
  store double %1639, ptr %53, align 8, !tbaa !11
  %1640 = load ptr, ptr %32, align 8, !tbaa !5
  %1641 = load i32, ptr %67, align 4, !tbaa !9
  %1642 = sext i32 %1641 to i64
  %1643 = getelementptr inbounds double, ptr %1640, i64 %1642
  %1644 = load double, ptr %1643, align 8, !tbaa !11
  %1645 = load double, ptr %53, align 8, !tbaa !11
  %1646 = load double, ptr %53, align 8, !tbaa !11
  %1647 = fmul double %1645, %1646
  %1648 = fmul double %1644, %1647
  %1649 = load ptr, ptr %48, align 8, !tbaa !5
  %1650 = load i32, ptr %67, align 4, !tbaa !9
  %1651 = sext i32 %1650 to i64
  %1652 = getelementptr inbounds double, ptr %1649, i64 %1651
  store double %1648, ptr %1652, align 8, !tbaa !11
  br label %1653

1653:                                             ; preds = %1634
  %1654 = load i32, ptr %67, align 4, !tbaa !9
  %1655 = add nsw i32 %1654, 1
  store i32 %1655, ptr %67, align 4, !tbaa !9
  br label %1630, !llvm.loop !25

1656:                                             ; preds = %1630
  %1657 = load i32, ptr %60, align 4, !tbaa !9
  %1658 = sub nsw i32 %1657, 1
  store i32 %1658, ptr %52, align 4, !tbaa !9
  %1659 = load ptr, ptr %32, align 8, !tbaa !5
  %1660 = load i32, ptr %81, align 4, !tbaa !9
  %1661 = sext i32 %1660 to i64
  %1662 = getelementptr inbounds double, ptr %1659, i64 %1661
  %1663 = load ptr, ptr %48, align 8, !tbaa !5
  %1664 = load i32, ptr %81, align 4, !tbaa !9
  %1665 = sext i32 %1664 to i64
  %1666 = getelementptr inbounds double, ptr %1663, i64 %1665
  %1667 = load ptr, ptr %35, align 8, !tbaa !5
  %1668 = load ptr, ptr %36, align 8, !tbaa !5
  %1669 = load ptr, ptr %41, align 8, !tbaa !5
  %1670 = load i32, ptr %85, align 4, !tbaa !9
  %1671 = sext i32 %1670 to i64
  %1672 = getelementptr inbounds double, ptr %1669, i64 %1671
  %1673 = load ptr, ptr %43, align 8, !tbaa !5
  %1674 = load i32, ptr %85, align 4, !tbaa !9
  %1675 = sext i32 %1674 to i64
  %1676 = getelementptr inbounds double, ptr %1673, i64 %1675
  %1677 = load ptr, ptr %42, align 8, !tbaa !5
  %1678 = load i32, ptr %85, align 4, !tbaa !9
  %1679 = sext i32 %1678 to i64
  %1680 = getelementptr inbounds double, ptr %1677, i64 %1679
  %1681 = load ptr, ptr %48, align 8, !tbaa !5
  %1682 = load ptr, ptr %27, align 8, !tbaa !5
  %1683 = load i32, ptr %1682, align 4, !tbaa !9
  %1684 = shl i32 %1683, 1
  %1685 = add nsw i32 %1684, 1
  %1686 = sext i32 %1685 to i64
  %1687 = getelementptr inbounds double, ptr %1681, i64 %1686
  %1688 = load ptr, ptr %49, align 8, !tbaa !5
  %1689 = getelementptr inbounds i32, ptr %1688, i64 1
  %1690 = load ptr, ptr %47, align 8, !tbaa !5
  call void @dlarrb_(ptr noundef %78, ptr noundef %1662, ptr noundef %1666, ptr noundef %60, ptr noundef %65, ptr noundef %1667, ptr noundef %1668, ptr noundef %52, ptr noundef %1672, ptr noundef %1676, ptr noundef %1680, ptr noundef %1687, ptr noundef %1689, ptr noundef %1690, ptr noundef %87, ptr noundef %78, ptr noundef %72)
  %1691 = load i32, ptr %72, align 4, !tbaa !9
  %1692 = icmp ne i32 %1691, 0
  br i1 %1692, label %1693, label %1695

1693:                                             ; preds = %1656
  %1694 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -4, ptr %1694, align 4, !tbaa !9
  store i32 1, ptr %102, align 4
  br label %2082

1695:                                             ; preds = %1656
  store double 0.000000e+00, ptr %53, align 8, !tbaa !11
  %1696 = load ptr, ptr %29, align 8, !tbaa !5
  %1697 = load double, ptr %1696, align 8, !tbaa !11
  %1698 = load double, ptr %71, align 8, !tbaa !11
  %1699 = fsub double %1697, %1698
  %1700 = load ptr, ptr %41, align 8, !tbaa !5
  %1701 = load i32, ptr %63, align 4, !tbaa !9
  %1702 = sext i32 %1701 to i64
  %1703 = getelementptr inbounds double, ptr %1700, i64 %1702
  %1704 = load double, ptr %1703, align 8, !tbaa !11
  %1705 = load ptr, ptr %42, align 8, !tbaa !5
  %1706 = load i32, ptr %63, align 4, !tbaa !9
  %1707 = sext i32 %1706 to i64
  %1708 = getelementptr inbounds double, ptr %1705, i64 %1707
  %1709 = load double, ptr %1708, align 8, !tbaa !11
  %1710 = fadd double %1704, %1709
  %1711 = fsub double %1699, %1710
  store double %1711, ptr %54, align 8, !tbaa !11
  %1712 = load double, ptr %53, align 8, !tbaa !11
  %1713 = load double, ptr %54, align 8, !tbaa !11
  %1714 = fcmp oge double %1712, %1713
  br i1 %1714, label %1715, label %1717

1715:                                             ; preds = %1695
  %1716 = load double, ptr %53, align 8, !tbaa !11
  br label %1719

1717:                                             ; preds = %1695
  %1718 = load double, ptr %54, align 8, !tbaa !11
  br label %1719

1719:                                             ; preds = %1717, %1715
  %1720 = phi double [ %1716, %1715 ], [ %1718, %1717 ]
  %1721 = load ptr, ptr %43, align 8, !tbaa !5
  %1722 = load i32, ptr %63, align 4, !tbaa !9
  %1723 = sext i32 %1722 to i64
  %1724 = getelementptr inbounds double, ptr %1721, i64 %1723
  store double %1720, ptr %1724, align 8, !tbaa !11
  %1725 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %1725, ptr %52, align 4, !tbaa !9
  %1726 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %1726, ptr %67, align 4, !tbaa !9
  br label %1727

1727:                                             ; preds = %1747, %1719
  %1728 = load i32, ptr %67, align 4, !tbaa !9
  %1729 = load i32, ptr %52, align 4, !tbaa !9
  %1730 = icmp sle i32 %1728, %1729
  br i1 %1730, label %1731, label %1750

1731:                                             ; preds = %1727
  %1732 = load ptr, ptr %40, align 8, !tbaa !5
  %1733 = load i32, ptr %1732, align 4, !tbaa !9
  %1734 = add nsw i32 %1733, 1
  store i32 %1734, ptr %1732, align 4, !tbaa !9
  %1735 = load i32, ptr %58, align 4, !tbaa !9
  %1736 = load ptr, ptr %44, align 8, !tbaa !5
  %1737 = load ptr, ptr %40, align 8, !tbaa !5
  %1738 = load i32, ptr %1737, align 4, !tbaa !9
  %1739 = sext i32 %1738 to i64
  %1740 = getelementptr inbounds i32, ptr %1736, i64 %1739
  store i32 %1735, ptr %1740, align 4, !tbaa !9
  %1741 = load i32, ptr %67, align 4, !tbaa !9
  %1742 = load ptr, ptr %45, align 8, !tbaa !5
  %1743 = load ptr, ptr %40, align 8, !tbaa !5
  %1744 = load i32, ptr %1743, align 4, !tbaa !9
  %1745 = sext i32 %1744 to i64
  %1746 = getelementptr inbounds i32, ptr %1742, i64 %1745
  store i32 %1741, ptr %1746, align 4, !tbaa !9
  br label %1747

1747:                                             ; preds = %1731
  %1748 = load i32, ptr %67, align 4, !tbaa !9
  %1749 = add nsw i32 %1748, 1
  store i32 %1749, ptr %67, align 4, !tbaa !9
  br label %1727, !llvm.loop !26

1750:                                             ; preds = %1727
  br label %2072

1751:                                             ; preds = %1584
  %1752 = load i32, ptr %78, align 4, !tbaa !9
  %1753 = sitofp i32 %1752 to double
  %1754 = call double @log(double noundef %1753) #5
  %1755 = fmul double %1754, 4.000000e+00
  %1756 = load double, ptr %95, align 8, !tbaa !11
  %1757 = fmul double %1755, %1756
  store double %1757, ptr %66, align 8, !tbaa !11
  %1758 = load i32, ptr %81, align 4, !tbaa !9
  store i32 %1758, ptr %68, align 4, !tbaa !9
  %1759 = load i32, ptr %78, align 4, !tbaa !9
  %1760 = sub nsw i32 %1759, 1
  store i32 %1760, ptr %52, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1761

1761:                                             ; preds = %1812, %1751
  %1762 = load i32, ptr %67, align 4, !tbaa !9
  %1763 = load i32, ptr %52, align 4, !tbaa !9
  %1764 = icmp sle i32 %1762, %1763
  br i1 %1764, label %1765, label %1815

1765:                                             ; preds = %1761
  %1766 = load ptr, ptr %32, align 8, !tbaa !5
  %1767 = load i32, ptr %68, align 4, !tbaa !9
  %1768 = sext i32 %1767 to i64
  %1769 = getelementptr inbounds double, ptr %1766, i64 %1768
  %1770 = load double, ptr %1769, align 8, !tbaa !11
  store double %1770, ptr %53, align 8, !tbaa !11
  %1771 = load double, ptr %53, align 8, !tbaa !11
  %1772 = fcmp oge double %1771, 0.000000e+00
  br i1 %1772, label %1773, label %1775

1773:                                             ; preds = %1765
  %1774 = load double, ptr %53, align 8, !tbaa !11
  br label %1778

1775:                                             ; preds = %1765
  %1776 = load double, ptr %53, align 8, !tbaa !11
  %1777 = fneg double %1776
  br label %1778

1778:                                             ; preds = %1775, %1773
  %1779 = phi double [ %1774, %1773 ], [ %1777, %1775 ]
  %1780 = load ptr, ptr %48, align 8, !tbaa !5
  %1781 = load i32, ptr %67, align 4, !tbaa !9
  %1782 = shl i32 %1781, 1
  %1783 = sub nsw i32 %1782, 1
  %1784 = sext i32 %1783 to i64
  %1785 = getelementptr inbounds double, ptr %1780, i64 %1784
  store double %1779, ptr %1785, align 8, !tbaa !11
  %1786 = load ptr, ptr %33, align 8, !tbaa !5
  %1787 = load i32, ptr %68, align 4, !tbaa !9
  %1788 = sext i32 %1787 to i64
  %1789 = getelementptr inbounds double, ptr %1786, i64 %1788
  %1790 = load double, ptr %1789, align 8, !tbaa !11
  %1791 = load ptr, ptr %33, align 8, !tbaa !5
  %1792 = load i32, ptr %68, align 4, !tbaa !9
  %1793 = sext i32 %1792 to i64
  %1794 = getelementptr inbounds double, ptr %1791, i64 %1793
  %1795 = load double, ptr %1794, align 8, !tbaa !11
  %1796 = fmul double %1790, %1795
  %1797 = load ptr, ptr %48, align 8, !tbaa !5
  %1798 = load i32, ptr %67, align 4, !tbaa !9
  %1799 = shl i32 %1798, 1
  %1800 = sub nsw i32 %1799, 1
  %1801 = sext i32 %1800 to i64
  %1802 = getelementptr inbounds double, ptr %1797, i64 %1801
  %1803 = load double, ptr %1802, align 8, !tbaa !11
  %1804 = fmul double %1796, %1803
  %1805 = load ptr, ptr %48, align 8, !tbaa !5
  %1806 = load i32, ptr %67, align 4, !tbaa !9
  %1807 = mul nsw i32 %1806, 2
  %1808 = sext i32 %1807 to i64
  %1809 = getelementptr inbounds double, ptr %1805, i64 %1808
  store double %1804, ptr %1809, align 8, !tbaa !11
  %1810 = load i32, ptr %68, align 4, !tbaa !9
  %1811 = add nsw i32 %1810, 1
  store i32 %1811, ptr %68, align 4, !tbaa !9
  br label %1812

1812:                                             ; preds = %1778
  %1813 = load i32, ptr %67, align 4, !tbaa !9
  %1814 = add nsw i32 %1813, 1
  store i32 %1814, ptr %67, align 4, !tbaa !9
  br label %1761, !llvm.loop !27

1815:                                             ; preds = %1761
  %1816 = load ptr, ptr %32, align 8, !tbaa !5
  %1817 = load i32, ptr %57, align 4, !tbaa !9
  %1818 = sext i32 %1817 to i64
  %1819 = getelementptr inbounds double, ptr %1816, i64 %1818
  %1820 = load double, ptr %1819, align 8, !tbaa !11
  store double %1820, ptr %53, align 8, !tbaa !11
  %1821 = load double, ptr %53, align 8, !tbaa !11
  %1822 = fcmp oge double %1821, 0.000000e+00
  br i1 %1822, label %1823, label %1825

1823:                                             ; preds = %1815
  %1824 = load double, ptr %53, align 8, !tbaa !11
  br label %1828

1825:                                             ; preds = %1815
  %1826 = load double, ptr %53, align 8, !tbaa !11
  %1827 = fneg double %1826
  br label %1828

1828:                                             ; preds = %1825, %1823
  %1829 = phi double [ %1824, %1823 ], [ %1827, %1825 ]
  %1830 = load ptr, ptr %48, align 8, !tbaa !5
  %1831 = load i32, ptr %78, align 4, !tbaa !9
  %1832 = shl i32 %1831, 1
  %1833 = sub nsw i32 %1832, 1
  %1834 = sext i32 %1833 to i64
  %1835 = getelementptr inbounds double, ptr %1830, i64 %1834
  store double %1829, ptr %1835, align 8, !tbaa !11
  %1836 = load ptr, ptr %48, align 8, !tbaa !5
  %1837 = load i32, ptr %78, align 4, !tbaa !9
  %1838 = mul nsw i32 %1837, 2
  %1839 = sext i32 %1838 to i64
  %1840 = getelementptr inbounds double, ptr %1836, i64 %1839
  store double 0.000000e+00, ptr %1840, align 8, !tbaa !11
  %1841 = load ptr, ptr %48, align 8, !tbaa !5
  %1842 = getelementptr inbounds double, ptr %1841, i64 1
  call void @dlasq2_(ptr noundef %78, ptr noundef %1842, ptr noundef %72)
  %1843 = load i32, ptr %72, align 4, !tbaa !9
  %1844 = icmp ne i32 %1843, 0
  br i1 %1844, label %1845, label %1847

1845:                                             ; preds = %1828
  %1846 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -5, ptr %1846, align 4, !tbaa !9
  store i32 1, ptr %102, align 4
  br label %2082

1847:                                             ; preds = %1828
  %1848 = load i32, ptr %78, align 4, !tbaa !9
  store i32 %1848, ptr %52, align 4, !tbaa !9
  store i32 1, ptr %67, align 4, !tbaa !9
  br label %1849

1849:                                             ; preds = %1863, %1847
  %1850 = load i32, ptr %67, align 4, !tbaa !9
  %1851 = load i32, ptr %52, align 4, !tbaa !9
  %1852 = icmp sle i32 %1850, %1851
  br i1 %1852, label %1853, label %1866

1853:                                             ; preds = %1849
  %1854 = load ptr, ptr %48, align 8, !tbaa !5
  %1855 = load i32, ptr %67, align 4, !tbaa !9
  %1856 = sext i32 %1855 to i64
  %1857 = getelementptr inbounds double, ptr %1854, i64 %1856
  %1858 = load double, ptr %1857, align 8, !tbaa !11
  %1859 = fcmp olt double %1858, 0.000000e+00
  br i1 %1859, label %1860, label %1862

1860:                                             ; preds = %1853
  %1861 = load ptr, ptr %50, align 8, !tbaa !5
  store i32 -6, ptr %1861, align 4, !tbaa !9
  store i32 1, ptr %102, align 4
  br label %2082

1862:                                             ; preds = %1853
  br label %1863

1863:                                             ; preds = %1862
  %1864 = load i32, ptr %67, align 4, !tbaa !9
  %1865 = add nsw i32 %1864, 1
  store i32 %1865, ptr %67, align 4, !tbaa !9
  br label %1849, !llvm.loop !28

1866:                                             ; preds = %1849
  br label %1867

1867:                                             ; preds = %1866
  %1868 = load double, ptr %84, align 8, !tbaa !11
  %1869 = fcmp ogt double %1868, 0.000000e+00
  br i1 %1869, label %1870, label %1910

1870:                                             ; preds = %1867
  %1871 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %1871, ptr %52, align 4, !tbaa !9
  %1872 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %1872, ptr %67, align 4, !tbaa !9
  br label %1873

1873:                                             ; preds = %1906, %1870
  %1874 = load i32, ptr %67, align 4, !tbaa !9
  %1875 = load i32, ptr %52, align 4, !tbaa !9
  %1876 = icmp sle i32 %1874, %1875
  br i1 %1876, label %1877, label %1909

1877:                                             ; preds = %1873
  %1878 = load ptr, ptr %40, align 8, !tbaa !5
  %1879 = load i32, ptr %1878, align 4, !tbaa !9
  %1880 = add nsw i32 %1879, 1
  store i32 %1880, ptr %1878, align 4, !tbaa !9
  %1881 = load ptr, ptr %48, align 8, !tbaa !5
  %1882 = load i32, ptr %78, align 4, !tbaa !9
  %1883 = load i32, ptr %67, align 4, !tbaa !9
  %1884 = sub nsw i32 %1882, %1883
  %1885 = add nsw i32 %1884, 1
  %1886 = sext i32 %1885 to i64
  %1887 = getelementptr inbounds double, ptr %1881, i64 %1886
  %1888 = load double, ptr %1887, align 8, !tbaa !11
  %1889 = load ptr, ptr %41, align 8, !tbaa !5
  %1890 = load ptr, ptr %40, align 8, !tbaa !5
  %1891 = load i32, ptr %1890, align 4, !tbaa !9
  %1892 = sext i32 %1891 to i64
  %1893 = getelementptr inbounds double, ptr %1889, i64 %1892
  store double %1888, ptr %1893, align 8, !tbaa !11
  %1894 = load i32, ptr %58, align 4, !tbaa !9
  %1895 = load ptr, ptr %44, align 8, !tbaa !5
  %1896 = load ptr, ptr %40, align 8, !tbaa !5
  %1897 = load i32, ptr %1896, align 4, !tbaa !9
  %1898 = sext i32 %1897 to i64
  %1899 = getelementptr inbounds i32, ptr %1895, i64 %1898
  store i32 %1894, ptr %1899, align 4, !tbaa !9
  %1900 = load i32, ptr %67, align 4, !tbaa !9
  %1901 = load ptr, ptr %45, align 8, !tbaa !5
  %1902 = load ptr, ptr %40, align 8, !tbaa !5
  %1903 = load i32, ptr %1902, align 4, !tbaa !9
  %1904 = sext i32 %1903 to i64
  %1905 = getelementptr inbounds i32, ptr %1901, i64 %1904
  store i32 %1900, ptr %1905, align 4, !tbaa !9
  br label %1906

1906:                                             ; preds = %1877
  %1907 = load i32, ptr %67, align 4, !tbaa !9
  %1908 = add nsw i32 %1907, 1
  store i32 %1908, ptr %67, align 4, !tbaa !9
  br label %1873, !llvm.loop !29

1909:                                             ; preds = %1873
  br label %1948

1910:                                             ; preds = %1867
  %1911 = load i32, ptr %65, align 4, !tbaa !9
  store i32 %1911, ptr %52, align 4, !tbaa !9
  %1912 = load i32, ptr %60, align 4, !tbaa !9
  store i32 %1912, ptr %67, align 4, !tbaa !9
  br label %1913

1913:                                             ; preds = %1944, %1910
  %1914 = load i32, ptr %67, align 4, !tbaa !9
  %1915 = load i32, ptr %52, align 4, !tbaa !9
  %1916 = icmp sle i32 %1914, %1915
  br i1 %1916, label %1917, label %1947

1917:                                             ; preds = %1913
  %1918 = load ptr, ptr %40, align 8, !tbaa !5
  %1919 = load i32, ptr %1918, align 4, !tbaa !9
  %1920 = add nsw i32 %1919, 1
  store i32 %1920, ptr %1918, align 4, !tbaa !9
  %1921 = load ptr, ptr %48, align 8, !tbaa !5
  %1922 = load i32, ptr %67, align 4, !tbaa !9
  %1923 = sext i32 %1922 to i64
  %1924 = getelementptr inbounds double, ptr %1921, i64 %1923
  %1925 = load double, ptr %1924, align 8, !tbaa !11
  %1926 = fneg double %1925
  %1927 = load ptr, ptr %41, align 8, !tbaa !5
  %1928 = load ptr, ptr %40, align 8, !tbaa !5
  %1929 = load i32, ptr %1928, align 4, !tbaa !9
  %1930 = sext i32 %1929 to i64
  %1931 = getelementptr inbounds double, ptr %1927, i64 %1930
  store double %1926, ptr %1931, align 8, !tbaa !11
  %1932 = load i32, ptr %58, align 4, !tbaa !9
  %1933 = load ptr, ptr %44, align 8, !tbaa !5
  %1934 = load ptr, ptr %40, align 8, !tbaa !5
  %1935 = load i32, ptr %1934, align 4, !tbaa !9
  %1936 = sext i32 %1935 to i64
  %1937 = getelementptr inbounds i32, ptr %1933, i64 %1936
  store i32 %1932, ptr %1937, align 4, !tbaa !9
  %1938 = load i32, ptr %67, align 4, !tbaa !9
  %1939 = load ptr, ptr %45, align 8, !tbaa !5
  %1940 = load ptr, ptr %40, align 8, !tbaa !5
  %1941 = load i32, ptr %1940, align 4, !tbaa !9
  %1942 = sext i32 %1941 to i64
  %1943 = getelementptr inbounds i32, ptr %1939, i64 %1942
  store i32 %1938, ptr %1943, align 4, !tbaa !9
  br label %1944

1944:                                             ; preds = %1917
  %1945 = load i32, ptr %67, align 4, !tbaa !9
  %1946 = add nsw i32 %1945, 1
  store i32 %1946, ptr %67, align 4, !tbaa !9
  br label %1913, !llvm.loop !30

1947:                                             ; preds = %1913
  br label %1948

1948:                                             ; preds = %1947, %1909
  %1949 = load ptr, ptr %40, align 8, !tbaa !5
  %1950 = load i32, ptr %1949, align 4, !tbaa !9
  store i32 %1950, ptr %52, align 4, !tbaa !9
  %1951 = load ptr, ptr %40, align 8, !tbaa !5
  %1952 = load i32, ptr %1951, align 4, !tbaa !9
  %1953 = load i32, ptr %76, align 4, !tbaa !9
  %1954 = sub nsw i32 %1952, %1953
  %1955 = add nsw i32 %1954, 1
  store i32 %1955, ptr %67, align 4, !tbaa !9
  br label %1956

1956:                                             ; preds = %1981, %1948
  %1957 = load i32, ptr %67, align 4, !tbaa !9
  %1958 = load i32, ptr %52, align 4, !tbaa !9
  %1959 = icmp sle i32 %1957, %1958
  br i1 %1959, label %1960, label %1984

1960:                                             ; preds = %1956
  %1961 = load double, ptr %66, align 8, !tbaa !11
  %1962 = load ptr, ptr %41, align 8, !tbaa !5
  %1963 = load i32, ptr %67, align 4, !tbaa !9
  %1964 = sext i32 %1963 to i64
  %1965 = getelementptr inbounds double, ptr %1962, i64 %1964
  %1966 = load double, ptr %1965, align 8, !tbaa !11
  store double %1966, ptr %53, align 8, !tbaa !11
  %1967 = load double, ptr %53, align 8, !tbaa !11
  %1968 = fcmp oge double %1967, 0.000000e+00
  br i1 %1968, label %1969, label %1971

1969:                                             ; preds = %1960
  %1970 = load double, ptr %53, align 8, !tbaa !11
  br label %1974

1971:                                             ; preds = %1960
  %1972 = load double, ptr %53, align 8, !tbaa !11
  %1973 = fneg double %1972
  br label %1974

1974:                                             ; preds = %1971, %1969
  %1975 = phi double [ %1970, %1969 ], [ %1973, %1971 ]
  %1976 = fmul double %1961, %1975
  %1977 = load ptr, ptr %42, align 8, !tbaa !5
  %1978 = load i32, ptr %67, align 4, !tbaa !9
  %1979 = sext i32 %1978 to i64
  %1980 = getelementptr inbounds double, ptr %1977, i64 %1979
  store double %1976, ptr %1980, align 8, !tbaa !11
  br label %1981

1981:                                             ; preds = %1974
  %1982 = load i32, ptr %67, align 4, !tbaa !9
  %1983 = add nsw i32 %1982, 1
  store i32 %1983, ptr %67, align 4, !tbaa !9
  br label %1956, !llvm.loop !31

1984:                                             ; preds = %1956
  %1985 = load ptr, ptr %40, align 8, !tbaa !5
  %1986 = load i32, ptr %1985, align 4, !tbaa !9
  %1987 = sub nsw i32 %1986, 1
  store i32 %1987, ptr %52, align 4, !tbaa !9
  %1988 = load ptr, ptr %40, align 8, !tbaa !5
  %1989 = load i32, ptr %1988, align 4, !tbaa !9
  %1990 = load i32, ptr %76, align 4, !tbaa !9
  %1991 = sub nsw i32 %1989, %1990
  %1992 = add nsw i32 %1991, 1
  store i32 %1992, ptr %67, align 4, !tbaa !9
  br label %1993

1993:                                             ; preds = %2036, %1984
  %1994 = load i32, ptr %67, align 4, !tbaa !9
  %1995 = load i32, ptr %52, align 4, !tbaa !9
  %1996 = icmp sle i32 %1994, %1995
  br i1 %1996, label %1997, label %2039

1997:                                             ; preds = %1993
  store double 0.000000e+00, ptr %53, align 8, !tbaa !11
  %1998 = load ptr, ptr %41, align 8, !tbaa !5
  %1999 = load i32, ptr %67, align 4, !tbaa !9
  %2000 = add nsw i32 %1999, 1
  %2001 = sext i32 %2000 to i64
  %2002 = getelementptr inbounds double, ptr %1998, i64 %2001
  %2003 = load double, ptr %2002, align 8, !tbaa !11
  %2004 = load ptr, ptr %42, align 8, !tbaa !5
  %2005 = load i32, ptr %67, align 4, !tbaa !9
  %2006 = add nsw i32 %2005, 1
  %2007 = sext i32 %2006 to i64
  %2008 = getelementptr inbounds double, ptr %2004, i64 %2007
  %2009 = load double, ptr %2008, align 8, !tbaa !11
  %2010 = fsub double %2003, %2009
  %2011 = load ptr, ptr %41, align 8, !tbaa !5
  %2012 = load i32, ptr %67, align 4, !tbaa !9
  %2013 = sext i32 %2012 to i64
  %2014 = getelementptr inbounds double, ptr %2011, i64 %2013
  %2015 = load double, ptr %2014, align 8, !tbaa !11
  %2016 = load ptr, ptr %42, align 8, !tbaa !5
  %2017 = load i32, ptr %67, align 4, !tbaa !9
  %2018 = sext i32 %2017 to i64
  %2019 = getelementptr inbounds double, ptr %2016, i64 %2018
  %2020 = load double, ptr %2019, align 8, !tbaa !11
  %2021 = fadd double %2015, %2020
  %2022 = fsub double %2010, %2021
  store double %2022, ptr %54, align 8, !tbaa !11
  %2023 = load double, ptr %53, align 8, !tbaa !11
  %2024 = load double, ptr %54, align 8, !tbaa !11
  %2025 = fcmp oge double %2023, %2024
  br i1 %2025, label %2026, label %2028

2026:                                             ; preds = %1997
  %2027 = load double, ptr %53, align 8, !tbaa !11
  br label %2030

2028:                                             ; preds = %1997
  %2029 = load double, ptr %54, align 8, !tbaa !11
  br label %2030

2030:                                             ; preds = %2028, %2026
  %2031 = phi double [ %2027, %2026 ], [ %2029, %2028 ]
  %2032 = load ptr, ptr %43, align 8, !tbaa !5
  %2033 = load i32, ptr %67, align 4, !tbaa !9
  %2034 = sext i32 %2033 to i64
  %2035 = getelementptr inbounds double, ptr %2032, i64 %2034
  store double %2031, ptr %2035, align 8, !tbaa !11
  br label %2036

2036:                                             ; preds = %2030
  %2037 = load i32, ptr %67, align 4, !tbaa !9
  %2038 = add nsw i32 %2037, 1
  store i32 %2038, ptr %67, align 4, !tbaa !9
  br label %1993, !llvm.loop !32

2039:                                             ; preds = %1993
  store double 0.000000e+00, ptr %53, align 8, !tbaa !11
  %2040 = load ptr, ptr %29, align 8, !tbaa !5
  %2041 = load double, ptr %2040, align 8, !tbaa !11
  %2042 = load double, ptr %71, align 8, !tbaa !11
  %2043 = fsub double %2041, %2042
  %2044 = load ptr, ptr %41, align 8, !tbaa !5
  %2045 = load ptr, ptr %40, align 8, !tbaa !5
  %2046 = load i32, ptr %2045, align 4, !tbaa !9
  %2047 = sext i32 %2046 to i64
  %2048 = getelementptr inbounds double, ptr %2044, i64 %2047
  %2049 = load double, ptr %2048, align 8, !tbaa !11
  %2050 = load ptr, ptr %42, align 8, !tbaa !5
  %2051 = load ptr, ptr %40, align 8, !tbaa !5
  %2052 = load i32, ptr %2051, align 4, !tbaa !9
  %2053 = sext i32 %2052 to i64
  %2054 = getelementptr inbounds double, ptr %2050, i64 %2053
  %2055 = load double, ptr %2054, align 8, !tbaa !11
  %2056 = fadd double %2049, %2055
  %2057 = fsub double %2043, %2056
  store double %2057, ptr %54, align 8, !tbaa !11
  %2058 = load double, ptr %53, align 8, !tbaa !11
  %2059 = load double, ptr %54, align 8, !tbaa !11
  %2060 = fcmp oge double %2058, %2059
  br i1 %2060, label %2061, label %2063

2061:                                             ; preds = %2039
  %2062 = load double, ptr %53, align 8, !tbaa !11
  br label %2065

2063:                                             ; preds = %2039
  %2064 = load double, ptr %54, align 8, !tbaa !11
  br label %2065

2065:                                             ; preds = %2063, %2061
  %2066 = phi double [ %2062, %2061 ], [ %2064, %2063 ]
  %2067 = load ptr, ptr %43, align 8, !tbaa !5
  %2068 = load ptr, ptr %40, align 8, !tbaa !5
  %2069 = load i32, ptr %2068, align 4, !tbaa !9
  %2070 = sext i32 %2069 to i64
  %2071 = getelementptr inbounds double, ptr %2067, i64 %2070
  store double %2066, ptr %2071, align 8, !tbaa !11
  br label %2072

2072:                                             ; preds = %2065, %1750
  %2073 = load i32, ptr %57, align 4, !tbaa !9
  %2074 = add nsw i32 %2073, 1
  store i32 %2074, ptr %81, align 4, !tbaa !9
  %2075 = load i32, ptr %63, align 4, !tbaa !9
  %2076 = add nsw i32 %2075, 1
  store i32 %2076, ptr %85, align 4, !tbaa !9
  br label %2077

2077:                                             ; preds = %2072, %638, %539
  br label %2078

2078:                                             ; preds = %2077
  %2079 = load i32, ptr %58, align 4, !tbaa !9
  %2080 = add nsw i32 %2079, 1
  store i32 %2080, ptr %58, align 4, !tbaa !9
  br label %451, !llvm.loop !33

2081:                                             ; preds = %451
  store i32 1, ptr %102, align 4
  br label %2082

2082:                                             ; preds = %2081, %1860, %1845, %1693, %1477, %817, %774, %416, %216, %131
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #5
  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 double @dlamch_(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !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 [2 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [2 x i8], align 1
@c__1 = external hidden global i32, align 4
@.str.6 = external hidden unnamed_addr constant [2 x i8], align 1
@c__2 = external hidden global i32, align 4

; Function Attrs: nounwind uwtable
define dso_local void @dlarre_(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr nocapture noundef %14, ptr noundef %15, ptr noundef %16, ptr noundef %17, ptr noundef %18, ptr noundef %19, ptr noundef %20, ptr noundef %21, ptr noundef %22, ptr noundef %23, ptr nocapture noundef writeonly %24) local_unnamed_addr #0 {
  %26 = ptrtoint ptr %15 to i64
  %27 = ptrtoint ptr %16 to i64
  %28 = ptrtoint ptr %6 to i64
  %29 = ptrtoint ptr %7 to i64
  %30 = ptrtoint ptr %22 to i64
  %31 = ptrtoint ptr %18 to i64
  %32 = ptrtoint ptr %19 to i64
  %33 = ptrtoint ptr %15 to i64
  %34 = ptrtoint ptr %16 to i64
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca [4 x i32], align 16
  %39 = alloca i32, align 4
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca i32, align 4
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %48) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %52) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #6
  %54 = getelementptr inbounds i8, ptr %22, i64 -8
  %55 = getelementptr inbounds i8, ptr %20, i64 -8
  %56 = getelementptr inbounds i8, ptr %19, i64 -4
  %57 = getelementptr inbounds i8, ptr %18, i64 -4
  %58 = getelementptr inbounds i8, ptr %17, i64 -8
  %59 = getelementptr inbounds i8, ptr %16, i64 -8
  %60 = getelementptr inbounds i8, ptr %15, i64 -8
  %61 = getelementptr inbounds i8, ptr %13, i64 -4
  %62 = getelementptr inbounds i8, ptr %8, i64 -8
  %63 = getelementptr inbounds i8, ptr %7, i64 -8
  %64 = getelementptr inbounds i8, ptr %6, i64 -8
  store i32 0, ptr %24, align 4, !tbaa !5
  %65 = load i32, ptr %1, align 4, !tbaa !5
  %66 = icmp slt i32 %65, 1
  br i1 %66, label %.loopexit820, label %67

67:                                               ; preds = %25
  %68 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str) #6
  %.not = icmp ne i32 %68, 0
  br i1 %.not, label %73, label %69

69:                                               ; preds = %67
  %70 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.1) #6
  %.not757 = icmp eq i32 %70, 0
  br i1 %.not757, label %71, label %73

71:                                               ; preds = %69
  %72 = tail call i32 @lsame_(ptr noundef %0, ptr noundef nonnull @.str.2) #6
  br label %73

73:                                               ; preds = %71, %69, %67
  %74 = phi i1 [ false, %67 ], [ true, %69 ], [ false, %71 ]
  %75 = phi i1 [ false, %67 ], [ false, %69 ], [ true, %71 ]
  store i32 0, ptr %14, align 4, !tbaa !5
  %76 = tail call double @dlamch_(ptr noundef nonnull @.str.3) #6
  %77 = tail call double @dlamch_(ptr noundef nonnull @.str.4) #6
  %78 = tail call double @sqrt(double noundef %77) #6
  store double %78, ptr %50, align 8, !tbaa !9
  %79 = tail call double @sqrt(double noundef %77) #6
  store double %79, ptr %47, align 8, !tbaa !9
  %80 = load i32, ptr %1, align 4, !tbaa !5
  %81 = icmp eq i32 %80, 1
  br i1 %81, label %82, label %103

82:                                               ; preds = %73
  br i1 %.not, label %98, label %83

83:                                               ; preds = %82
  br i1 %74, label %84, label %91

84:                                               ; preds = %83
  %85 = load double, ptr %6, align 8, !tbaa !9
  %86 = load double, ptr %2, align 8, !tbaa !9
  %87 = fcmp ogt double %85, %86
  br i1 %87, label %88, label %91

88:                                               ; preds = %84
  %89 = load double, ptr %3, align 8, !tbaa !9
  %90 = fcmp ugt double %85, %89
  br i1 %90, label %91, label %98

91:                                               ; preds = %88, %84, %83
  br i1 %75, label %92, label %102

92:                                               ; preds = %91
  %93 = load i32, ptr %4, align 4, !tbaa !5
  %94 = icmp eq i32 %93, 1
  br i1 %94, label %95, label %102

95:                                               ; preds = %92
  %96 = load i32, ptr %5, align 4, !tbaa !5
  %97 = icmp eq i32 %96, 1
  br i1 %97, label %98, label %102

98:                                               ; preds = %95, %88, %82
  store i32 1, ptr %14, align 4, !tbaa !5
  %99 = load double, ptr %6, align 8, !tbaa !9
  store double %99, ptr %15, align 8, !tbaa !9
  store double 0.000000e+00, ptr %16, align 8, !tbaa !9
  store double 0.000000e+00, ptr %17, align 8, !tbaa !9
  store i32 1, ptr %18, align 4, !tbaa !5
  store i32 1, ptr %19, align 4, !tbaa !5
  %100 = load double, ptr %6, align 8, !tbaa !9
  store double %100, ptr %20, align 8, !tbaa !9
  %101 = getelementptr inbounds i8, ptr %20, i64 8
  store double %100, ptr %101, align 8, !tbaa !9
  br label %102

102:                                              ; preds = %98, %95, %92, %91
  store double 0.000000e+00, ptr %7, align 8, !tbaa !9
  br label %.loopexit820

103:                                              ; preds = %73
  %104 = load double, ptr %6, align 8, !tbaa !9
  store double %104, ptr %42, align 8, !tbaa !9
  store double %104, ptr %45, align 8, !tbaa !9
  %105 = sext i32 %80 to i64
  %106 = getelementptr inbounds double, ptr %63, i64 %105
  store double 0.000000e+00, ptr %106, align 8, !tbaa !9
  %invariant.gep = getelementptr i8, ptr %20, i64 -16
  %.not759824 = icmp slt i32 %80, 1
  br i1 %.not759824, label %129, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %103
  %107 = add nuw i32 %80, 1
  %wide.trip.count = zext i32 %107 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %.lr.ph
  %indvars.iv = phi i64 [ 1, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ]
  %.0741826 = phi double [ 0.000000e+00, %.lr.ph.preheader ], [ %.1742, %.lr.ph ]
  %.0744825 = phi double [ 0.000000e+00, %.lr.ph.preheader ], [ %116, %.lr.ph ]
  %108 = phi double [ %104, %.lr.ph.preheader ], [ %123, %.lr.ph ]
  %109 = phi double [ %104, %.lr.ph.preheader ], [ %128, %.lr.ph ]
  %110 = getelementptr inbounds double, ptr %59, i64 %indvars.iv
  store double 0.000000e+00, ptr %110, align 8, !tbaa !9
  %111 = getelementptr inbounds double, ptr %58, i64 %indvars.iv
  store double 0.000000e+00, ptr %111, align 8, !tbaa !9
  %112 = getelementptr inbounds double, ptr %63, i64 %indvars.iv
  %113 = load double, ptr %112, align 8, !tbaa !9
  %114 = fcmp oge double %113, 0.000000e+00
  %115 = fneg double %113
  %116 = select i1 %114, double %113, double %115
  %.inv = fcmp oge double %116, %.0741826
  %.1742 = select i1 %.inv, double %116, double %.0741826
  %117 = fadd double %.0744825, %116
  %118 = getelementptr inbounds double, ptr %64, i64 %indvars.iv
  %119 = load double, ptr %118, align 8, !tbaa !9
  %120 = fsub double %119, %117
  %sext = shl i64 %indvars.iv, 33
  %121 = ashr exact i64 %sext, 29
  %gep = getelementptr i8, ptr %invariant.gep, i64 %121
  store double %120, ptr %gep, align 8, !tbaa !9
  %122 = fcmp ole double %108, %120
  %123 = select i1 %122, double %108, double %120
  %124 = load double, ptr %118, align 8, !tbaa !9
  %125 = fadd double %117, %124
  %.idx = shl i64 %indvars.iv, 4
  %126 = getelementptr inbounds i8, ptr %55, i64 %.idx
  store double %125, ptr %126, align 8, !tbaa !9
  %127 = fcmp oge double %109, %125
  %128 = select i1 %127, double %109, double %125
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !11

._crit_edge:                                      ; preds = %.lr.ph
  store double %117, ptr %53, align 8, !tbaa !9
  store double %123, ptr %42, align 8, !tbaa !9
  store double %128, ptr %45, align 8, !tbaa !9
  br label %129

129:                                              ; preds = %._crit_edge, %103
  %130 = phi double [ %123, %._crit_edge ], [ %104, %103 ]
  %131 = phi double [ %128, %._crit_edge ], [ %104, %103 ]
  %.0741.lcssa = phi double [ %.1742, %._crit_edge ], [ 0.000000e+00, %103 ]
  %132 = fmul double %.0741.lcssa, %.0741.lcssa
  %133 = fcmp ole double %132, 1.000000e+00
  %134 = select i1 %133, double 1.000000e+00, double %132
  %135 = fmul double %76, %134
  store double %135, ptr %21, align 8, !tbaa !9
  %136 = fsub double %131, %130
  store double %136, ptr %46, align 8, !tbaa !9
  call void @dlarra_(ptr noundef nonnull %1, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef %11, ptr noundef nonnull %46, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %39) #6
  %137 = zext i1 %.not to i32
  br i1 %.not, label %138, label %141

138:                                              ; preds = %129
  %139 = load double, ptr %42, align 8, !tbaa !9
  store double %139, ptr %2, align 8, !tbaa !9
  %140 = load double, ptr %45, align 8, !tbaa !9
  store double %140, ptr %3, align 8, !tbaa !9
  br label %.loopexit821

141:                                              ; preds = %129
  call void @dlarrd_(ptr noundef %0, ptr noundef nonnull @.str.5, ptr noundef nonnull %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %20, ptr noundef nonnull %47, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull %21, ptr noundef %12, ptr noundef %13, ptr noundef nonnull %44, ptr noundef %15, ptr noundef %16, ptr noundef %2, ptr noundef %3, ptr noundef %18, ptr noundef %19, ptr noundef %22, ptr noundef %23, ptr noundef nonnull %39) #6
  %142 = load i32, ptr %39, align 4, !tbaa !5
  %.not761 = icmp eq i32 %142, 0
  br i1 %.not761, label %144, label %143

143:                                              ; preds = %141
  store i32 -1, ptr %24, align 4, !tbaa !5
  br label %.loopexit820

144:                                              ; preds = %141
  %145 = load i32, ptr %1, align 4, !tbaa !5
  %146 = load i32, ptr %44, align 4, !tbaa !5
  %.not762.not830 = icmp slt i32 %146, %145
  br i1 %.not762.not830, label %.lr.ph833.preheader, label %.loopexit821

.lr.ph833.preheader:                              ; preds = %144
  %147 = sext i32 %146 to i64
  %wide.trip.count961 = sext i32 %145 to i64
  %148 = sub nsw i64 %wide.trip.count961, %147
  %min.iters.check = icmp ult i64 %148, 8
  br i1 %min.iters.check, label %.lr.ph833.preheader1370, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph833.preheader
  %149 = sub i64 %34, %33
  %diff.check = icmp ult i64 %149, 32
  %150 = sub i64 %32, %31
  %diff.check1102 = icmp ult i64 %150, 16
  %conflict.rdx = or i1 %diff.check, %diff.check1102
  br i1 %conflict.rdx, label %.lr.ph833.preheader1370, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %148, -4
  %ind.end = add nsw i64 %n.vec, %147
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = add i64 %index, %147
  %151 = getelementptr double, ptr %15, i64 %offset.idx
  %152 = getelementptr i8, ptr %151, i64 16
  store <2 x double> zeroinitializer, ptr %151, align 8, !tbaa !9
  store <2 x double> zeroinitializer, ptr %152, align 8, !tbaa !9
  %153 = getelementptr double, ptr %16, i64 %offset.idx
  %154 = getelementptr i8, ptr %153, i64 16
  store <2 x double> zeroinitializer, ptr %153, align 8, !tbaa !9
  store <2 x double> zeroinitializer, ptr %154, align 8, !tbaa !9
  %155 = getelementptr i32, ptr %18, i64 %offset.idx
  %156 = getelementptr i8, ptr %155, i64 8
  store <2 x i32> zeroinitializer, ptr %155, align 4, !tbaa !5
  store <2 x i32> zeroinitializer, ptr %156, align 4, !tbaa !5
  %157 = getelementptr i32, ptr %19, i64 %offset.idx
  %158 = getelementptr i8, ptr %157, i64 8
  store <2 x i32> zeroinitializer, ptr %157, align 4, !tbaa !5
  store <2 x i32> zeroinitializer, ptr %158, align 4, !tbaa !5
  %index.next = add nuw i64 %index, 4
  %159 = icmp eq i64 %index.next, %n.vec
  br i1 %159, label %middle.block, label %vector.body, !llvm.loop !13

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %148, %n.vec
  br i1 %cmp.n, label %.loopexit821, label %.lr.ph833.preheader1370

.lr.ph833.preheader1370:                          ; preds = %middle.block, %vector.memcheck, %.lr.ph833.preheader
  %indvars.iv958.ph = phi i64 [ %147, %vector.memcheck ], [ %147, %.lr.ph833.preheader ], [ %ind.end, %middle.block ]
  %160 = sub nsw i64 %wide.trip.count961, %indvars.iv958.ph
  %xtraiter = and i64 %160, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph833.prol.loopexit, label %.lr.ph833.prol

.lr.ph833.prol:                                   ; preds = %.lr.ph833.preheader1370
  %indvars.iv.next959.prol = add nsw i64 %indvars.iv958.ph, 1
  %161 = getelementptr double, ptr %15, i64 %indvars.iv958.ph
  store double 0.000000e+00, ptr %161, align 8, !tbaa !9
  %162 = getelementptr double, ptr %16, i64 %indvars.iv958.ph
  store double 0.000000e+00, ptr %162, align 8, !tbaa !9
  %163 = getelementptr i32, ptr %18, i64 %indvars.iv958.ph
  store i32 0, ptr %163, align 4, !tbaa !5
  %164 = getelementptr i32, ptr %19, i64 %indvars.iv958.ph
  store i32 0, ptr %164, align 4, !tbaa !5
  br label %.lr.ph833.prol.loopexit

.lr.ph833.prol.loopexit:                          ; preds = %.lr.ph833.prol, %.lr.ph833.preheader1370
  %indvars.iv958.unr = phi i64 [ %indvars.iv958.ph, %.lr.ph833.preheader1370 ], [ %indvars.iv.next959.prol, %.lr.ph833.prol ]
  %165 = add nsw i64 %wide.trip.count961, -1
  %166 = icmp eq i64 %indvars.iv958.ph, %165
  br i1 %166, label %.loopexit821, label %.lr.ph833

.lr.ph833:                                        ; preds = %.lr.ph833.prol.loopexit, %.lr.ph833
  %indvars.iv958 = phi i64 [ %indvars.iv.next959.1, %.lr.ph833 ], [ %indvars.iv958.unr, %.lr.ph833.prol.loopexit ]
  %indvars.iv.next959 = add nsw i64 %indvars.iv958, 1
  %167 = getelementptr double, ptr %15, i64 %indvars.iv958
  store double 0.000000e+00, ptr %167, align 8, !tbaa !9
  %168 = getelementptr double, ptr %16, i64 %indvars.iv958
  store double 0.000000e+00, ptr %168, align 8, !tbaa !9
  %169 = getelementptr i32, ptr %18, i64 %indvars.iv958
  store i32 0, ptr %169, align 4, !tbaa !5
  %170 = getelementptr i32, ptr %19, i64 %indvars.iv958
  store i32 0, ptr %170, align 4, !tbaa !5
  %indvars.iv.next959.1 = add nsw i64 %indvars.iv958, 2
  %171 = getelementptr double, ptr %15, i64 %indvars.iv.next959
  store double 0.000000e+00, ptr %171, align 8, !tbaa !9
  %172 = getelementptr double, ptr %16, i64 %indvars.iv.next959
  store double 0.000000e+00, ptr %172, align 8, !tbaa !9
  %173 = getelementptr i32, ptr %18, i64 %indvars.iv.next959
  store i32 0, ptr %173, align 4, !tbaa !5
  %174 = getelementptr i32, ptr %19, i64 %indvars.iv.next959
  store i32 0, ptr %174, align 4, !tbaa !5
  %exitcond962.not.1 = icmp eq i64 %indvars.iv.next959.1, %wide.trip.count961
  br i1 %exitcond962.not.1, label %.loopexit821, label %.lr.ph833, !llvm.loop !16

.loopexit821:                                     ; preds = %.lr.ph833.prol.loopexit, %.lr.ph833, %middle.block, %144, %138
  %175 = load i32, ptr %12, align 4, !tbaa !5
  %invariant.gep931 = getelementptr i8, ptr %17, i64 -16
  %.not763935 = icmp slt i32 %175, 1
  br i1 %.not763935, label %.loopexit820, label %.lr.ph945

.lr.ph945:                                        ; preds = %.loopexit821
  %176 = fmul double %77, 1.000000e+02
  %177 = fneg double %176
  %178 = fmul double %77, 2.000000e+00
  %179 = fmul double %77, 8.000000e+00
  %180 = fmul double %77, 4.000000e+00
  %invariant.gep884 = getelementptr i8, ptr %22, i64 -16
  %181 = add nuw i32 %175, 1
  %wide.trip.count1045 = zext i32 %181 to i64
  %182 = sub i64 %30, %29
  %183 = sub i64 %30, %28
  %scevgep = getelementptr i8, ptr %15, i64 -8
  %scevgep1126 = getelementptr i8, ptr %16, i64 -8
  %scevgep1147 = getelementptr i8, ptr %17, i64 -8
  %scevgep1150 = getelementptr i8, ptr %15, i64 -8
  %scevgep1152 = getelementptr i8, ptr %15, i64 8
  %scevgep1154 = getelementptr i8, ptr %16, i64 -8
  %scevgep1156 = getelementptr i8, ptr %16, i64 8
  %184 = sub i64 %27, %26
  %scevgep1206 = getelementptr i8, ptr %22, i64 -16
  %scevgep1208 = getelementptr i8, ptr %6, i64 -8
  %scevgep1210 = getelementptr i8, ptr %6, i64 -16
  %scevgep1212 = getelementptr i8, ptr %7, i64 -8
  %scevgep1214 = getelementptr i8, ptr %7, i64 -16
  %scevgep1244 = getelementptr i8, ptr %22, i64 -8
  %scevgep1246 = getelementptr i8, ptr %6, i64 -8
  %scevgep1248 = getelementptr i8, ptr %6, i64 -16
  %scevgep1250 = getelementptr i8, ptr %7, i64 -8
  %scevgep1252 = getelementptr i8, ptr %7, i64 -16
  %scevgep1312 = getelementptr i8, ptr %17, i64 -8
  %scevgep1315 = getelementptr i8, ptr %15, i64 -8
  %scevgep1317 = getelementptr i8, ptr %15, i64 8
  %scevgep1319 = getelementptr i8, ptr %16, i64 -8
  %scevgep1321 = getelementptr i8, ptr %16, i64 8
  %185 = insertelement <2 x double> poison, double %177, i64 0
  %186 = insertelement <2 x double> %185, double %176, i64 1
  %invariant.gep1400 = getelementptr i8, ptr %55, i64 -8
  %invariant.gep1394 = getelementptr i8, ptr %55, i64 -8
  %invariant.gep1396 = getelementptr i8, ptr %55, i64 -8
  %broadcast.splatinsert1286 = insertelement <2 x double> poison, double %179, i64 0
  %broadcast.splat1287 = shufflevector <2 x double> %broadcast.splatinsert1286, <2 x double> poison, <2 x i32> zeroinitializer
  %invariant.gep1398 = getelementptr i8, ptr %54, i64 -8
  %diff.check1187 = icmp ult i64 %184, 32
  %broadcast.splatinsert1142 = insertelement <2 x double> poison, double %77, i64 0
  %broadcast.splat1143 = shufflevector <2 x double> %broadcast.splatinsert1142, <2 x double> poison, <2 x i32> zeroinitializer
  %diff.check1104 = icmp ult i64 %182, 32
  %diff.check1105 = icmp ult i64 %183, 32
  %conflict.rdx1106 = or i1 %diff.check1104, %diff.check1105
  br label %187

187:                                              ; preds = %.lr.ph945, %950
  %indvars.iv1042 = phi i64 [ 1, %.lr.ph945 ], [ %indvars.iv.next1043, %950 ]
  %.0705943 = phi i32 [ %137, %.lr.ph945 ], [ %.3, %950 ]
  %.0708942 = phi i32 [ 1, %.lr.ph945 ], [ %.2710, %950 ]
  %.0713940 = phi i32 [ 1, %.lr.ph945 ], [ %.1714, %950 ]
  %.0715939 = phi i32 [ undef, %.lr.ph945 ], [ %.4, %950 ]
  %.0737938 = phi i32 [ undef, %.lr.ph945 ], [ %.3740, %950 ]
  %188 = getelementptr inbounds i32, ptr %61, i64 %indvars.iv1042
  %189 = load i32, ptr %188, align 4, !tbaa !5
  %190 = sub nsw i32 %189, %.0713940
  %191 = add nsw i32 %190, 1
  store i32 %191, ptr %43, align 4, !tbaa !5
  %192 = icmp eq i32 %189, %.0713940
  br i1 %192, label %193, label %230

193:                                              ; preds = %187
  br i1 %.not, label %211, label %194

194:                                              ; preds = %193
  br i1 %74, label %195, label %204

195:                                              ; preds = %194
  %196 = sext i32 %.0713940 to i64
  %197 = getelementptr inbounds double, ptr %64, i64 %196
  %198 = load double, ptr %197, align 8, !tbaa !9
  %199 = load double, ptr %2, align 8, !tbaa !9
  %200 = fcmp ogt double %198, %199
  br i1 %200, label %201, label %204

201:                                              ; preds = %195
  %202 = load double, ptr %3, align 8, !tbaa !9
  %203 = fcmp ugt double %198, %202
  br i1 %203, label %204, label %211

204:                                              ; preds = %201, %195, %194
  br i1 %75, label %205, label %227

205:                                              ; preds = %204
  %206 = sext i32 %.0708942 to i64
  %207 = getelementptr inbounds i32, ptr %57, i64 %206
  %208 = load i32, ptr %207, align 4, !tbaa !5
  %209 = zext i32 %208 to i64
  %210 = icmp eq i64 %indvars.iv1042, %209
  br i1 %210, label %211, label %227

211:                                              ; preds = %205, %201, %193
  %212 = load i32, ptr %14, align 4, !tbaa !5
  %213 = add nsw i32 %212, 1
  store i32 %213, ptr %14, align 4, !tbaa !5
  %214 = sext i32 %.0713940 to i64
  %215 = getelementptr inbounds double, ptr %64, i64 %214
  %216 = load double, ptr %215, align 8, !tbaa !9
  %217 = sext i32 %213 to i64
  %218 = getelementptr inbounds double, ptr %60, i64 %217
  store double %216, ptr %218, align 8, !tbaa !9
  %219 = getelementptr inbounds double, ptr %59, i64 %217
  store double 0.000000e+00, ptr %219, align 8, !tbaa !9
  %220 = getelementptr inbounds double, ptr %58, i64 %217
  store double 0.000000e+00, ptr %220, align 8, !tbaa !9
  %221 = getelementptr inbounds i32, ptr %57, i64 %217
  %222 = trunc nuw nsw i64 %indvars.iv1042 to i32
  store i32 %222, ptr %221, align 4, !tbaa !5
  %223 = load i32, ptr %14, align 4, !tbaa !5
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds i32, ptr %56, i64 %224
  store i32 1, ptr %225, align 4, !tbaa !5
  %226 = add nsw i32 %.0708942, 1
  br label %227

227:                                              ; preds = %211, %205, %204
  %.1709 = phi i32 [ %226, %211 ], [ %.0708942, %205 ], [ %.0708942, %204 ]
  %228 = sext i32 %.0713940 to i64
  %229 = getelementptr inbounds double, ptr %63, i64 %228
  store double 0.000000e+00, ptr %229, align 8, !tbaa !9
  br label %950

230:                                              ; preds = %187
  %231 = sext i32 %189 to i64
  %232 = getelementptr inbounds double, ptr %63, i64 %231
  store double 0.000000e+00, ptr %232, align 8, !tbaa !9
  %233 = sext i32 %.0713940 to i64
  %234 = getelementptr inbounds double, ptr %64, i64 %233
  %235 = load double, ptr %234, align 8, !tbaa !9
  store double %235, ptr %42, align 8, !tbaa !9
  store double %235, ptr %45, align 8, !tbaa !9
  store i32 %189, ptr %35, align 4, !tbaa !5
  %.not764836 = icmp sgt i32 %.0713940, %189
  %236 = insertelement <2 x double> poison, double %235, i64 0
  %237 = shufflevector <2 x double> %236, <2 x double> poison, <2 x i32> zeroinitializer
  br i1 %.not764836, label %268, label %.lr.ph839.preheader

.lr.ph839.preheader:                              ; preds = %230
  %238 = add i32 %189, 1
  %239 = sub i32 %238, %.0713940
  %xtraiter1374 = and i32 %239, 1
  %lcmp.mod1375.not = icmp eq i32 %xtraiter1374, 0
  br i1 %lcmp.mod1375.not, label %.lr.ph839.prol.loopexit, label %.lr.ph839.prol

.lr.ph839.prol:                                   ; preds = %.lr.ph839.preheader
  %240 = shl i32 %.0713940, 1
  %241 = sext i32 %240 to i64
  %gep1401 = getelementptr double, ptr %invariant.gep1400, i64 %241
  %242 = load <2 x double>, ptr %gep1401, align 8, !tbaa !9
  %243 = insertelement <2 x double> %242, double %235, i64 0
  %244 = shufflevector <2 x double> %242, <2 x double> %237, <2 x i32> <i32 0, i32 3>
  %245 = fcmp oge <2 x double> %243, %244
  %246 = select <2 x i1> %245, <2 x double> %242, <2 x double> %237
  %indvars.iv.next964.prol = add nsw i64 %233, 1
  br label %.lr.ph839.prol.loopexit

.lr.ph839.prol.loopexit:                          ; preds = %.lr.ph839.prol, %.lr.ph839.preheader
  %.lcssa.unr = phi <2 x double> [ poison, %.lr.ph839.preheader ], [ %246, %.lr.ph839.prol ]
  %indvars.iv963.unr = phi i64 [ %233, %.lr.ph839.preheader ], [ %indvars.iv.next964.prol, %.lr.ph839.prol ]
  %.unr = phi <2 x double> [ %237, %.lr.ph839.preheader ], [ %246, %.lr.ph839.prol ]
  %247 = icmp eq i32 %189, %.0713940
  br i1 %247, label %._crit_edge840, label %.lr.ph839

.lr.ph839:                                        ; preds = %.lr.ph839.prol.loopexit, %.lr.ph839
  %indvars.iv963 = phi i64 [ %indvars.iv.next964.1, %.lr.ph839 ], [ %indvars.iv963.unr, %.lr.ph839.prol.loopexit ]
  %248 = phi <2 x double> [ %265, %.lr.ph839 ], [ %.unr, %.lr.ph839.prol.loopexit ]
  %249 = trunc nsw i64 %indvars.iv963 to i32
  %250 = shl i32 %249, 1
  %251 = sext i32 %250 to i64
  %gep1395 = getelementptr double, ptr %invariant.gep1394, i64 %251
  %252 = load <2 x double>, ptr %gep1395, align 8, !tbaa !9
  %253 = shufflevector <2 x double> %248, <2 x double> %252, <2 x i32> <i32 0, i32 3>
  %254 = shufflevector <2 x double> %252, <2 x double> %248, <2 x i32> <i32 0, i32 3>
  %255 = fcmp oge <2 x double> %253, %254
  %256 = select <2 x i1> %255, <2 x double> %252, <2 x double> %248
  %257 = trunc i64 %indvars.iv963 to i32
  %258 = shl i32 %257, 1
  %259 = add i32 %258, 2
  %260 = sext i32 %259 to i64
  %gep1397 = getelementptr double, ptr %invariant.gep1396, i64 %260
  %261 = load <2 x double>, ptr %gep1397, align 8, !tbaa !9
  %262 = shufflevector <2 x double> %256, <2 x double> %261, <2 x i32> <i32 0, i32 3>
  %263 = shufflevector <2 x double> %261, <2 x double> %256, <2 x i32> <i32 0, i32 3>
  %264 = fcmp oge <2 x double> %262, %263
  %265 = select <2 x i1> %264, <2 x double> %261, <2 x double> %256
  %indvars.iv.next964.1 = add nsw i64 %indvars.iv963, 2
  %lftr.wideiv.1 = trunc i64 %indvars.iv.next964.1 to i32
  %exitcond966.not.1 = icmp eq i32 %238, %lftr.wideiv.1
  br i1 %exitcond966.not.1, label %._crit_edge840, label %.lr.ph839, !llvm.loop !17

._crit_edge840:                                   ; preds = %.lr.ph839, %.lr.ph839.prol.loopexit
  %.lcssa = phi <2 x double> [ %.lcssa.unr, %.lr.ph839.prol.loopexit ], [ %265, %.lr.ph839 ]
  %266 = extractelement <2 x double> %.lcssa, i64 0
  store double %266, ptr %42, align 8, !tbaa !9
  %267 = extractelement <2 x double> %.lcssa, i64 1
  store double %267, ptr %45, align 8, !tbaa !9
  br label %268

268:                                              ; preds = %._crit_edge840, %230
  %269 = phi <2 x double> [ %.lcssa, %._crit_edge840 ], [ %237, %230 ]
  %shift = shufflevector <2 x double> %269, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %270 = fsub <2 x double> %shift, %269
  %271 = extractelement <2 x double> %270, i64 0
  store double %271, ptr %46, align 8, !tbaa !9
  br i1 %.not, label %.thread, label %273

.thread:                                          ; preds = %268
  %272 = icmp ne i32 %.0705943, 0
  br label %354

273:                                              ; preds = %268
  %274 = load i32, ptr %44, align 4, !tbaa !5
  store i32 %274, ptr %35, align 4, !tbaa !5
  %.not765843 = icmp sgt i32 %.0708942, %274
  br i1 %.not765843, label %._crit_edge848.thread, label %.lr.ph847.preheader

.lr.ph847.preheader:                              ; preds = %273
  %275 = sext i32 %.0708942 to i64
  %276 = sext i32 %274 to i64
  %277 = add i32 %274, 1
  %278 = sub i32 %277, %.0708942
  br label %.lr.ph847

.lr.ph847:                                        ; preds = %.lr.ph847.preheader, %283
  %indvars.iv967 = phi i64 [ %275, %.lr.ph847.preheader ], [ %indvars.iv.next968, %283 ]
  %.1716845 = phi i32 [ 0, %.lr.ph847.preheader ], [ %284, %283 ]
  %279 = getelementptr inbounds i32, ptr %57, i64 %indvars.iv967
  %280 = load i32, ptr %279, align 4, !tbaa !5
  %281 = zext i32 %280 to i64
  %282 = icmp eq i64 %indvars.iv1042, %281
  br i1 %282, label %283, label %._crit_edge848

283:                                              ; preds = %.lr.ph847
  %284 = add nuw nsw i32 %.1716845, 1
  %indvars.iv.next968 = add nsw i64 %indvars.iv967, 1
  %.not765.not = icmp slt i64 %indvars.iv967, %276
  br i1 %.not765.not, label %.lr.ph847, label %._crit_edge848, !llvm.loop !18

._crit_edge848:                                   ; preds = %.lr.ph847, %283
  %.1716.lcssa = phi i32 [ %.1716845, %.lr.ph847 ], [ %278, %283 ]
  %285 = icmp eq i32 %.1716.lcssa, 0
  br i1 %285, label %._crit_edge848.thread, label %286

._crit_edge848.thread:                            ; preds = %273, %._crit_edge848
  store double 0.000000e+00, ptr %232, align 8, !tbaa !9
  br label %950

286:                                              ; preds = %._crit_edge848
  %287 = uitofp nneg i32 %.1716.lcssa to double
  %288 = sitofp i32 %191 to double
  %289 = fmul double %288, 5.000000e-01
  %290 = fcmp olt double %289, %287
  %291 = add nsw i32 %.1716.lcssa, %.0708942
  %292 = add nsw i32 %291, -1
  %293 = add nsw i32 %291, -2
  store i32 %293, ptr %35, align 4, !tbaa !5
  %.not766852 = icmp sgt i32 %.0708942, %293
  %.pre1047 = sext i32 %.0708942 to i64
  br i1 %.not766852, label %._crit_edge856, label %.lr.ph855.preheader

.lr.ph855.preheader:                              ; preds = %286
  %294 = add i32 %.0708942, -1
  %295 = add i32 %294, %.1716.lcssa
  %296 = add i32 %.1716.lcssa, -2
  %297 = zext i32 %296 to i64
  %298 = add nuw nsw i64 %297, 1
  %min.iters.check1332 = icmp ult i32 %296, 3
  br i1 %min.iters.check1332, label %.lr.ph855.preheader1359, label %vector.memcheck1311

vector.memcheck1311:                              ; preds = %.lr.ph855.preheader
  %299 = shl nsw i64 %275, 3
  %scevgep1313 = getelementptr i8, ptr %scevgep1312, i64 %299
  %300 = add i32 %.1716.lcssa, -2
  %301 = zext i32 %300 to i64
  %302 = add nsw i64 %275, %301
  %303 = shl nsw i64 %302, 3
  %scevgep1314 = getelementptr i8, ptr %17, i64 %303
  %scevgep1316 = getelementptr i8, ptr %scevgep1315, i64 %299
  %scevgep1318 = getelementptr i8, ptr %scevgep1317, i64 %303
  %scevgep1320 = getelementptr i8, ptr %scevgep1319, i64 %299
  %scevgep1322 = getelementptr i8, ptr %scevgep1321, i64 %303
  %bound01323 = icmp ult ptr %scevgep1313, %scevgep1318
  %bound11324 = icmp ult ptr %scevgep1316, %scevgep1314
  %found.conflict1325 = and i1 %bound01323, %bound11324
  %bound01326 = icmp ult ptr %scevgep1313, %scevgep1322
  %bound11327 = icmp ult ptr %scevgep1320, %scevgep1314
  %found.conflict1328 = and i1 %bound01326, %bound11327
  %conflict.rdx1329 = or i1 %found.conflict1325, %found.conflict1328
  br i1 %conflict.rdx1329, label %.lr.ph855.preheader1359, label %vector.ph1333

vector.ph1333:                                    ; preds = %vector.memcheck1311
  %n.vec1335 = and i64 %298, 8589934588
  %ind.end1336 = add nsw i64 %n.vec1335, %.pre1047
  br label %vector.body1338

vector.body1338:                                  ; preds = %vector.body1338, %vector.ph1333
  %index1339 = phi i64 [ 0, %vector.ph1333 ], [ %index.next1349, %vector.body1338 ]
  %offset.idx1340 = add i64 %index1339, %.pre1047
  %304 = getelementptr double, ptr %15, i64 %offset.idx1340
  %305 = getelementptr i8, ptr %304, i64 16
  %wide.load1341 = load <2 x double>, ptr %304, align 8, !tbaa !9, !alias.scope !19
  %wide.load1342 = load <2 x double>, ptr %305, align 8, !tbaa !9, !alias.scope !19
  %306 = getelementptr double, ptr %16, i64 %offset.idx1340
  %307 = getelementptr i8, ptr %306, i64 16
  %wide.load1343 = load <2 x double>, ptr %306, align 8, !tbaa !9, !alias.scope !22
  %wide.load1344 = load <2 x double>, ptr %307, align 8, !tbaa !9, !alias.scope !22
  %308 = fsub <2 x double> %wide.load1341, %wide.load1343
  %309 = fsub <2 x double> %wide.load1342, %wide.load1344
  %310 = getelementptr inbounds double, ptr %60, i64 %offset.idx1340
  %311 = getelementptr inbounds i8, ptr %310, i64 16
  %wide.load1345 = load <2 x double>, ptr %310, align 8, !tbaa !9, !alias.scope !19
  %wide.load1346 = load <2 x double>, ptr %311, align 8, !tbaa !9, !alias.scope !19
  %312 = getelementptr inbounds double, ptr %59, i64 %offset.idx1340
  %313 = getelementptr inbounds i8, ptr %312, i64 16
  %wide.load1347 = load <2 x double>, ptr %312, align 8, !tbaa !9, !alias.scope !22
  %wide.load1348 = load <2 x double>, ptr %313, align 8, !tbaa !9, !alias.scope !22
  %314 = fadd <2 x double> %wide.load1345, %wide.load1347
  %315 = fadd <2 x double> %wide.load1346, %wide.load1348
  %316 = fsub <2 x double> %308, %314
  %317 = fsub <2 x double> %309, %315
  %318 = fcmp ole <2 x double> %316, zeroinitializer
  %319 = fcmp ole <2 x double> %317, zeroinitializer
  %320 = select <2 x i1> %318, <2 x double> zeroinitializer, <2 x double> %316
  %321 = select <2 x i1> %319, <2 x double> zeroinitializer, <2 x double> %317
  %322 = getelementptr inbounds double, ptr %58, i64 %offset.idx1340
  %323 = getelementptr inbounds i8, ptr %322, i64 16
  store <2 x double> %320, ptr %322, align 8, !tbaa !9, !alias.scope !24, !noalias !26
  store <2 x double> %321, ptr %323, align 8, !tbaa !9, !alias.scope !24, !noalias !26
  %index.next1349 = add nuw i64 %index1339, 4
  %324 = icmp eq i64 %index.next1349, %n.vec1335
  br i1 %324, label %middle.block1330, label %vector.body1338, !llvm.loop !27

middle.block1330:                                 ; preds = %vector.body1338
  %cmp.n1350 = icmp eq i64 %298, %n.vec1335
  br i1 %cmp.n1350, label %._crit_edge856, label %.lr.ph855.preheader1359

.lr.ph855.preheader1359:                          ; preds = %middle.block1330, %vector.memcheck1311, %.lr.ph855.preheader
  %indvars.iv970.ph = phi i64 [ %.pre1047, %vector.memcheck1311 ], [ %.pre1047, %.lr.ph855.preheader ], [ %ind.end1336, %middle.block1330 ]
  br label %.lr.ph855

.lr.ph855:                                        ; preds = %.lr.ph855.preheader1359, %.lr.ph855
  %indvars.iv970 = phi i64 [ %indvars.iv.next971, %.lr.ph855 ], [ %indvars.iv970.ph, %.lr.ph855.preheader1359 ]
  %indvars.iv.next971 = add nsw i64 %indvars.iv970, 1
  %325 = getelementptr double, ptr %15, i64 %indvars.iv970
  %326 = load double, ptr %325, align 8, !tbaa !9
  %327 = getelementptr double, ptr %16, i64 %indvars.iv970
  %328 = load double, ptr %327, align 8, !tbaa !9
  %329 = fsub double %326, %328
  %330 = getelementptr inbounds double, ptr %60, i64 %indvars.iv970
  %331 = load double, ptr %330, align 8, !tbaa !9
  %332 = getelementptr inbounds double, ptr %59, i64 %indvars.iv970
  %333 = load double, ptr %332, align 8, !tbaa !9
  %334 = fadd double %331, %333
  %335 = fsub double %329, %334
  %336 = fcmp ole double %335, 0.000000e+00
  %337 = select i1 %336, double 0.000000e+00, double %335
  %338 = getelementptr inbounds double, ptr %58, i64 %indvars.iv970
  store double %337, ptr %338, align 8, !tbaa !9
  %lftr.wideiv973 = trunc i64 %indvars.iv.next971 to i32
  %exitcond974.not = icmp eq i32 %295, %lftr.wideiv973
  br i1 %exitcond974.not, label %._crit_edge856, label %.lr.ph855, !llvm.loop !28

._crit_edge856:                                   ; preds = %.lr.ph855, %middle.block1330, %286
  %339 = load double, ptr %3, align 8, !tbaa !9
  %340 = sext i32 %292 to i64
  %341 = getelementptr inbounds double, ptr %60, i64 %340
  %342 = load double, ptr %341, align 8, !tbaa !9
  %343 = getelementptr inbounds double, ptr %59, i64 %340
  %344 = load double, ptr %343, align 8, !tbaa !9
  %345 = fadd double %342, %344
  %346 = fsub double %339, %345
  %347 = fcmp ole double %346, 0.000000e+00
  %348 = select i1 %347, double 0.000000e+00, double %346
  %349 = getelementptr inbounds double, ptr %58, i64 %340
  store double %348, ptr %349, align 8, !tbaa !9
  %350 = getelementptr inbounds i32, ptr %56, i64 %.pre1047
  %351 = load i32, ptr %350, align 4, !tbaa !5
  store i32 %351, ptr %36, align 4, !tbaa !5
  %352 = getelementptr inbounds i32, ptr %56, i64 %340
  %353 = load i32, ptr %352, align 4, !tbaa !5
  store i32 %353, ptr %37, align 4, !tbaa !5
  br i1 %290, label %354, label %.thread1052

354:                                              ; preds = %.thread, %._crit_edge856
  %355 = phi i1 [ %272, %.thread ], [ true, %._crit_edge856 ]
  %.2717796 = phi i32 [ %.0715939, %.thread ], [ %.1716.lcssa, %._crit_edge856 ]
  %.1738794 = phi i32 [ %.0737938, %.thread ], [ %292, %._crit_edge856 ]
  %356 = getelementptr inbounds double, ptr %62, i64 %233
  call void @dlarrk_(ptr noundef nonnull %43, ptr noundef nonnull @c__1, ptr noundef nonnull %42, ptr noundef nonnull %45, ptr noundef nonnull %234, ptr noundef nonnull %356, ptr noundef nonnull %21, ptr noundef nonnull %50, ptr noundef nonnull %49, ptr noundef nonnull %53, ptr noundef nonnull %39) #6
  %357 = load i32, ptr %39, align 4, !tbaa !5
  %.not767 = icmp eq i32 %357, 0
  br i1 %.not767, label %359, label %358

358:                                              ; preds = %354
  store i32 -1, ptr %24, align 4, !tbaa !5
  br label %.loopexit820

359:                                              ; preds = %354
  %360 = load double, ptr %42, align 8, !tbaa !9
  %361 = load double, ptr %49, align 8, !tbaa !9
  %362 = load double, ptr %53, align 8, !tbaa !9
  call void @dlarrk_(ptr noundef nonnull %43, ptr noundef nonnull %43, ptr noundef nonnull %42, ptr noundef nonnull %45, ptr noundef nonnull %234, ptr noundef nonnull %356, ptr noundef nonnull %21, ptr noundef nonnull %50, ptr noundef nonnull %49, ptr noundef nonnull %53, ptr noundef nonnull %39) #6
  %363 = load i32, ptr %39, align 4, !tbaa !5
  %.not768 = icmp eq i32 %363, 0
  br i1 %.not768, label %365, label %364

364:                                              ; preds = %359
  store i32 -1, ptr %24, align 4, !tbaa !5
  br label %.loopexit820

365:                                              ; preds = %359
  %366 = fsub double %361, %362
  %367 = load double, ptr %45, align 8, !tbaa !9
  %368 = load double, ptr %49, align 8, !tbaa !9
  %369 = load double, ptr %53, align 8, !tbaa !9
  %370 = fadd double %368, %369
  %371 = insertelement <2 x double> poison, double %366, i64 0
  %372 = insertelement <2 x double> %371, double %370, i64 1
  %373 = fcmp oge <2 x double> %372, zeroinitializer
  %374 = fneg <2 x double> %372
  %375 = select <2 x i1> %373, <2 x double> %372, <2 x double> %374
  %376 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %186, <2 x double> %375, <2 x double> %372)
  %377 = insertelement <2 x double> %376, double %367, i64 1
  %378 = insertelement <2 x double> %376, double %360, i64 0
  %379 = fcmp ole <2 x double> %377, %378
  %380 = insertelement <2 x double> poison, double %360, i64 0
  %381 = insertelement <2 x double> %380, double %367, i64 1
  %382 = select <2 x i1> %379, <2 x double> %381, <2 x double> %376
  %383 = extractelement <2 x double> %382, i64 0
  %384 = extractelement <2 x double> %382, i64 1
  %385 = fsub double %384, %383
  store double %385, ptr %46, align 8, !tbaa !9
  br i1 %.not, label %404, label %415

.thread1052:                                      ; preds = %._crit_edge856
  %386 = getelementptr inbounds double, ptr %60, i64 %.pre1047
  %387 = load double, ptr %386, align 8, !tbaa !9
  %388 = getelementptr inbounds double, ptr %59, i64 %.pre1047
  %389 = load double, ptr %388, align 8, !tbaa !9
  %390 = fsub double %387, %389
  %391 = load double, ptr %341, align 8, !tbaa !9
  %392 = load double, ptr %343, align 8, !tbaa !9
  %393 = fadd double %391, %392
  %394 = insertelement <2 x double> poison, double %390, i64 0
  %395 = insertelement <2 x double> %394, double %393, i64 1
  %396 = fcmp oge <2 x double> %395, zeroinitializer
  %397 = fneg <2 x double> %395
  %398 = select <2 x i1> %396, <2 x double> %395, <2 x double> %397
  %399 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %186, <2 x double> %398, <2 x double> %395)
  %400 = shufflevector <2 x double> %399, <2 x double> %269, <2 x i32> <i32 0, i32 3>
  %401 = shufflevector <2 x double> %269, <2 x double> %399, <2 x i32> <i32 0, i32 3>
  %402 = fcmp ole <2 x double> %400, %401
  %403 = select <2 x i1> %402, <2 x double> %269, <2 x double> %399
  br i1 %.not, label %404, label %.thread1065

404:                                              ; preds = %.thread1052, %365
  %405 = phi double [ %271, %.thread1052 ], [ %385, %365 ]
  %406 = phi <2 x double> [ %403, %.thread1052 ], [ %382, %365 ]
  store i32 1, ptr %36, align 4, !tbaa !5
  %407 = load i32, ptr %43, align 4, !tbaa !5
  store i32 %407, ptr %37, align 4, !tbaa !5
  %408 = add i32 %.0708942, -1
  %409 = add i32 %408, %407
  %410 = extractelement <2 x double> %406, i64 0
  %411 = call double @llvm.fmuladd.f64(double %405, double 2.500000e-01, double %410)
  store double %411, ptr %40, align 8, !tbaa !9
  %412 = fneg double %405
  %413 = extractelement <2 x double> %406, i64 1
  %414 = call double @llvm.fmuladd.f64(double %412, double 2.500000e-01, double %413)
  store double %414, ptr %41, align 8, !tbaa !9
  br label %430

415:                                              ; preds = %365
  br i1 %355, label %416, label %.thread1065

416:                                              ; preds = %415
  %417 = call double @llvm.fmuladd.f64(double %385, double 2.500000e-01, double %383)
  store double %417, ptr %40, align 8, !tbaa !9
  %418 = fneg double %385
  %419 = call double @llvm.fmuladd.f64(double %418, double 2.500000e-01, double %384)
  store double %419, ptr %41, align 8, !tbaa !9
  br label %430

.thread1065:                                      ; preds = %.thread1052, %415
  %.271779510571073 = phi i32 [ %.2717796, %415 ], [ %.1716.lcssa, %.thread1052 ]
  %.173879310581072 = phi i32 [ %.1738794, %415 ], [ %292, %.thread1052 ]
  %420 = phi <2 x double> [ %382, %415 ], [ %403, %.thread1052 ]
  %421 = load double, ptr %3, align 8, !tbaa !9
  %422 = extractelement <2 x double> %420, i64 1
  %.inv813 = fcmp ole double %422, %421
  %..0703 = select i1 %.inv813, double %422, double %421
  %423 = load double, ptr %2, align 8, !tbaa !9
  %424 = extractelement <2 x double> %420, i64 0
  %.inv814 = fcmp oge double %424, %423
  %425 = select i1 %.inv814, double %424, double %423
  %426 = fsub double %..0703, %425
  store double %426, ptr %49, align 8, !tbaa !9
  %427 = call double @llvm.fmuladd.f64(double %426, double 2.500000e-01, double %425)
  store double %427, ptr %40, align 8, !tbaa !9
  %428 = fneg double %426
  %429 = call double @llvm.fmuladd.f64(double %428, double 2.500000e-01, double %..0703)
  store double %429, ptr %41, align 8, !tbaa !9
  br label %430

430:                                              ; preds = %416, %.thread1065, %404
  %.2739 = phi i32 [ %.1738794, %416 ], [ %.173879310581072, %.thread1065 ], [ %409, %404 ]
  %.3718 = phi i32 [ %.2717796, %416 ], [ %.271779510571073, %.thread1065 ], [ %407, %404 ]
  %.not770 = phi i1 [ false, %416 ], [ true, %.thread1065 ], [ false, %404 ]
  %.2707 = phi i32 [ 1, %416 ], [ 0, %.thread1065 ], [ 1, %404 ]
  %431 = phi <2 x double> [ %382, %416 ], [ %420, %.thread1065 ], [ %406, %404 ]
  %432 = icmp sgt i32 %.3718, 1
  br i1 %432, label %.thread797, label %434

.thread797:                                       ; preds = %430
  %433 = getelementptr inbounds double, ptr %63, i64 %233
  call void @dlarrc_(ptr noundef nonnull @.str.6, ptr noundef nonnull %43, ptr noundef nonnull %40, ptr noundef nonnull %41, ptr noundef nonnull %234, ptr noundef nonnull %433, ptr noundef nonnull %21, ptr noundef nonnull %48, ptr noundef nonnull %51, ptr noundef nonnull %52, ptr noundef nonnull %39) #6
  br label %438

434:                                              ; preds = %430
  %435 = icmp eq i32 %.3718, 1
  br i1 %435, label %436, label %438

436:                                              ; preds = %434
  %437 = load double, ptr %42, align 8, !tbaa !9
  br label %465

438:                                              ; preds = %.thread797, %434
  %439 = load i32, ptr %51, align 4, !tbaa !5
  %440 = load i32, ptr %36, align 4, !tbaa !5
  %441 = sub nsw i32 %439, %440
  %442 = load i32, ptr %37, align 4, !tbaa !5
  %443 = load i32, ptr %52, align 4, !tbaa !5
  %444 = sub nsw i32 %442, %443
  %.not769 = icmp slt i32 %441, %444
  br i1 %.not769, label %455, label %445

445:                                              ; preds = %438
  br i1 %.not, label %446, label %451

446:                                              ; preds = %445
  %447 = load double, ptr %42, align 8
  %448 = extractelement <2 x double> %431, i64 0
  %449 = fcmp oge double %448, %447
  %450 = select i1 %449, double %448, double %447
  br label %465

451:                                              ; preds = %445
  %452 = extractelement <2 x double> %431, i64 0
  br i1 %.not770, label %453, label %.thread808

453:                                              ; preds = %451
  %454 = load double, ptr %2, align 8, !tbaa !9
  %.inv815 = fcmp oge double %452, %454
  %..0704 = select i1 %.inv815, double %452, double %454
  br label %.thread798

455:                                              ; preds = %438
  br i1 %.not, label %456, label %461

456:                                              ; preds = %455
  %457 = load double, ptr %45, align 8
  %458 = extractelement <2 x double> %431, i64 1
  %459 = fcmp ole double %458, %457
  %460 = select i1 %459, double %458, double %457
  br label %465

461:                                              ; preds = %455
  %462 = extractelement <2 x double> %431, i64 1
  br i1 %.not770, label %463, label %.thread808

463:                                              ; preds = %461
  %464 = load double, ptr %3, align 8, !tbaa !9
  %.inv816 = fcmp ole double %462, %464
  %..0703788 = select i1 %.inv816, double %462, double %464
  br label %.thread798

465:                                              ; preds = %456, %446, %436
  %.2725 = phi double [ %437, %436 ], [ %450, %446 ], [ %460, %456 ]
  %.0711 = phi double [ 1.000000e+00, %436 ], [ 1.000000e+00, %446 ], [ -1.000000e+00, %456 ]
  br i1 %.not770, label %.thread798, label %.thread808

.thread808:                                       ; preds = %451, %461, %465
  %.0711812 = phi double [ %.0711, %465 ], [ -1.000000e+00, %461 ], [ 1.000000e+00, %451 ]
  %.2725811 = phi double [ %.2725, %465 ], [ %462, %461 ], [ %452, %451 ]
  %466 = load double, ptr %46, align 8, !tbaa !9
  %467 = fmul double %77, %466
  %468 = load i32, ptr %1, align 4, !tbaa !5
  %469 = sitofp i32 %468 to double
  %470 = load double, ptr %21, align 8, !tbaa !9
  %471 = fmul double %470, 2.000000e+00
  %472 = call double @llvm.fmuladd.f64(double %467, double %469, double %471)
  %473 = fcmp oge double %.2725811, 0.000000e+00
  %474 = fneg double %.2725811
  %475 = select i1 %473, double %.2725811, double %474
  %476 = fmul double %178, %475
  %477 = fcmp oge double %472, %476
  %478 = select i1 %477, double %472, double %476
  br label %519

.thread798:                                       ; preds = %453, %463, %465
  %.0711804 = phi double [ %.0711, %465 ], [ -1.000000e+00, %463 ], [ 1.000000e+00, %453 ]
  %.2725802 = phi double [ %.2725, %465 ], [ %..0703788, %463 ], [ %..0704, %453 ]
  br i1 %432, label %479, label %515

479:                                              ; preds = %.thread798
  %480 = sext i32 %.2739 to i64
  %481 = getelementptr inbounds double, ptr %60, i64 %480
  %482 = load double, ptr %481, align 8, !tbaa !9
  %483 = getelementptr inbounds double, ptr %59, i64 %480
  %484 = load double, ptr %483, align 8, !tbaa !9
  %485 = fadd double %482, %484
  %486 = sext i32 %.0708942 to i64
  %487 = getelementptr inbounds double, ptr %60, i64 %486
  %488 = load double, ptr %487, align 8, !tbaa !9
  %489 = fsub double %485, %488
  %490 = getelementptr inbounds double, ptr %59, i64 %486
  %491 = load double, ptr %490, align 8, !tbaa !9
  %492 = fsub double %489, %491
  %493 = sub nsw i32 %.2739, %.0708942
  %494 = sitofp i32 %493 to double
  %495 = fdiv double %492, %494
  %496 = fcmp oge double %495, 0.000000e+00
  %497 = fneg double %495
  %498 = select i1 %496, double %495, double %497
  %499 = fcmp oeq double %.0711804, 1.000000e+00
  br i1 %499, label %500, label %508

500:                                              ; preds = %479
  %501 = getelementptr inbounds double, ptr %58, i64 %486
  %502 = load double, ptr %501, align 8, !tbaa !9
  %503 = fcmp oge double %502, %498
  %504 = select i1 %503, double %502, double %498
  %505 = fmul double %504, 5.000000e-01
  %506 = fcmp oge double %505, %491
  %507 = select i1 %506, double %505, double %491
  br label %519

508:                                              ; preds = %479
  %gep932 = getelementptr double, ptr %invariant.gep931, i64 %480
  %509 = load double, ptr %gep932, align 8, !tbaa !9
  %510 = fcmp oge double %509, %498
  %511 = select i1 %510, double %509, double %498
  %512 = fmul double %511, 5.000000e-01
  %513 = fcmp oge double %512, %484
  %514 = select i1 %513, double %512, double %484
  br label %519

515:                                              ; preds = %.thread798
  %516 = sext i32 %.0708942 to i64
  %517 = getelementptr inbounds double, ptr %59, i64 %516
  %518 = load double, ptr %517, align 8, !tbaa !9
  br label %519

519:                                              ; preds = %515, %508, %500, %.thread808
  %.0711803 = phi double [ %.0711812, %.thread808 ], [ 1.000000e+00, %500 ], [ %.0711804, %508 ], [ %.0711804, %515 ]
  %.2725801 = phi double [ %.2725811, %.thread808 ], [ %.2725802, %500 ], [ %.2725802, %508 ], [ %.2725802, %515 ]
  %.0 = phi double [ %478, %.thread808 ], [ %507, %500 ], [ %514, %508 ], [ %518, %515 ]
  %520 = load i32, ptr %43, align 4, !tbaa !5
  %.not773.not857 = icmp sgt i32 %520, 1
  %521 = load double, ptr %46, align 8, !tbaa !9
  %522 = fmul double %521, 6.400000e+01
  %523 = shl i32 %520, 1
  %.not774866 = icmp slt i32 %520, 1
  %524 = fneg double %.0711803
  %525 = fcmp oeq double %.0711803, 1.000000e+00
  %526 = load double, ptr %45, align 8
  %527 = fmul double %521, 2.000000e+00
  %528 = fmul double %77, %527
  %529 = load double, ptr %42, align 8
  %530 = fmul double %521, -2.000000e+00
  %531 = fmul double %77, %530
  %532 = sext i32 %523 to i64
  %533 = sext i32 %520 to i64
  %534 = add i32 %520, 1
  %wide.trip.count982 = zext nneg i32 %520 to i64
  %invariant.gep1085 = getelementptr double, ptr %54, i64 %532
  %invariant.gep1087 = getelementptr double, ptr %54, i64 %533
  %wide.trip.count987 = zext i32 %534 to i64
  %535 = add nsw i64 %wide.trip.count987, -1
  %min.iters.check1295 = icmp ult i32 %534, 5
  %n.vec1298 = and i64 %535, -4
  %ind.end1299 = or disjoint i64 %n.vec1298, 1
  %broadcast.splatinsert1307 = insertelement <2 x double> poison, double %.0711803, i64 0
  %broadcast.splat1308 = shufflevector <2 x double> %broadcast.splatinsert1307, <2 x double> poison, <2 x i32> zeroinitializer
  %cmp.n1310 = icmp eq i64 %535, %n.vec1298
  br label %536

536:                                              ; preds = %519, %594
  %.1877 = phi double [ %.0, %519 ], [ %.2, %594 ]
  %.3726876 = phi double [ %.2725801, %519 ], [ %.4727, %594 ]
  %.0736875 = phi i32 [ 1, %519 ], [ %595, %594 ]
  %537 = load double, ptr %234, align 8, !tbaa !9
  %538 = fsub double %537, %.3726876
  store double %538, ptr %22, align 8, !tbaa !9
  %539 = fcmp ult double %538, 0.000000e+00
  %540 = fneg double %538
  %541 = select i1 %539, double %540, double %538
  br i1 %.not773.not857, label %.lr.ph862, label %559

.lr.ph862:                                        ; preds = %536, %.lr.ph862
  %542 = phi double [ %552, %.lr.ph862 ], [ %538, %536 ]
  %indvars.iv977 = phi i64 [ %indvars.iv.next978, %.lr.ph862 ], [ 1, %536 ]
  %indvars.iv975 = phi i64 [ %indvars.iv.next976, %.lr.ph862 ], [ %233, %536 ]
  %.0743858 = phi double [ %558, %.lr.ph862 ], [ %541, %536 ]
  %543 = fdiv double 1.000000e+00, %542
  %gep1086 = getelementptr double, ptr %invariant.gep1085, i64 %indvars.iv977
  store double %543, ptr %gep1086, align 8, !tbaa !9
  %544 = getelementptr inbounds double, ptr %63, i64 %indvars.iv975
  %545 = load double, ptr %544, align 8, !tbaa !9
  %546 = fmul double %543, %545
  %gep1088 = getelementptr double, ptr %invariant.gep1087, i64 %indvars.iv977
  store double %546, ptr %gep1088, align 8, !tbaa !9
  %indvars.iv.next976 = add nsw i64 %indvars.iv975, 1
  %547 = getelementptr double, ptr %6, i64 %indvars.iv975
  %548 = load double, ptr %547, align 8, !tbaa !9
  %549 = fsub double %548, %.3726876
  %550 = load double, ptr %544, align 8, !tbaa !9
  %551 = fneg double %546
  %552 = call double @llvm.fmuladd.f64(double %551, double %550, double %549)
  %indvars.iv.next978 = add nuw nsw i64 %indvars.iv977, 1
  %553 = getelementptr double, ptr %22, i64 %indvars.iv977
  store double %552, ptr %553, align 8, !tbaa !9
  %554 = fcmp oge double %552, 0.000000e+00
  %555 = fneg double %552
  %556 = select i1 %554, double %552, double %555
  %557 = fcmp oge double %.0743858, %556
  %558 = select i1 %557, double %.0743858, double %556
  %exitcond983.not = icmp eq i64 %indvars.iv.next978, %wide.trip.count982
  br i1 %exitcond983.not, label %._crit_edge863, label %.lr.ph862, !llvm.loop !29

._crit_edge863:                                   ; preds = %.lr.ph862
  store double %546, ptr %49, align 8, !tbaa !9
  br label %559

559:                                              ; preds = %._crit_edge863, %536
  %.0743.lcssa = phi double [ %558, %._crit_edge863 ], [ %541, %536 ]
  %560 = fcmp ogt double %.0743.lcssa, %522
  %or.cond15 = or i1 %.not770, %560
  %brmerge = or i1 %or.cond15, %.not774866
  %561 = sext i1 %or.cond15 to i32
  %.mux = add nsw i32 %520, %561
  %..mux = zext i1 %560 to i32
  br i1 %brmerge, label %.loopexit, label %.lr.ph870.preheader

.lr.ph870.preheader:                              ; preds = %559
  br i1 %min.iters.check1295, label %.lr.ph870.preheader1352, label %vector.body1301

vector.body1301:                                  ; preds = %.lr.ph870.preheader, %vector.body1301
  %index1302 = phi i64 [ %index.next1309, %vector.body1301 ], [ 0, %.lr.ph870.preheader ]
  %vec.phi = phi <2 x i1> [ %568, %vector.body1301 ], [ zeroinitializer, %.lr.ph870.preheader ]
  %vec.phi1303 = phi <2 x i1> [ %569, %vector.body1301 ], [ zeroinitializer, %.lr.ph870.preheader ]
  %562 = getelementptr double, ptr %22, i64 %index1302
  %563 = getelementptr inbounds i8, ptr %562, i64 16
  %wide.load1305 = load <2 x double>, ptr %562, align 8, !tbaa !9
  %wide.load1306 = load <2 x double>, ptr %563, align 8, !tbaa !9
  %564 = fmul <2 x double> %broadcast.splat1308, %wide.load1305
  %565 = fmul <2 x double> %broadcast.splat1308, %wide.load1306
  %566 = fcmp olt <2 x double> %564, zeroinitializer
  %567 = fcmp olt <2 x double> %565, zeroinitializer
  %568 = or <2 x i1> %vec.phi, %566
  %569 = or <2 x i1> %vec.phi1303, %567
  %index.next1309 = add nuw i64 %index1302, 4
  %570 = icmp eq i64 %index.next1309, %n.vec1298
  br i1 %570, label %middle.block1293, label %vector.body1301, !llvm.loop !30

middle.block1293:                                 ; preds = %vector.body1301
  %571 = extractelement <2 x double> %565, i64 1
  %bin.rdx = or <2 x i1> %569, %568
  %bin.rdx.fr = freeze <2 x i1> %bin.rdx
  %572 = bitcast <2 x i1> %bin.rdx.fr to i2
  %.not1351 = icmp ne i2 %572, 0
  %rdx.select = zext i1 %.not1351 to i32
  br i1 %cmp.n1310, label %..loopexit_crit_edge, label %.lr.ph870.preheader1352

.lr.ph870.preheader1352:                          ; preds = %middle.block1293, %.lr.ph870.preheader
  %indvars.iv984.ph = phi i64 [ 1, %.lr.ph870.preheader ], [ %ind.end1299, %middle.block1293 ]
  %.1720868.ph = phi i32 [ 0, %.lr.ph870.preheader ], [ %rdx.select, %middle.block1293 ]
  br label %.lr.ph870

.lr.ph870:                                        ; preds = %.lr.ph870.preheader1352, %.lr.ph870
  %indvars.iv984 = phi i64 [ %indvars.iv.next985, %.lr.ph870 ], [ %indvars.iv984.ph, %.lr.ph870.preheader1352 ]
  %.1720868 = phi i32 [ %.2721, %.lr.ph870 ], [ %.1720868.ph, %.lr.ph870.preheader1352 ]
  %573 = getelementptr inbounds double, ptr %54, i64 %indvars.iv984
  %574 = load double, ptr %573, align 8, !tbaa !9
  %575 = fmul double %.0711803, %574
  %576 = fcmp olt double %575, 0.000000e+00
  %.2721 = select i1 %576, i32 1, i32 %.1720868
  %indvars.iv.next985 = add nuw nsw i64 %indvars.iv984, 1
  %exitcond988.not = icmp eq i64 %indvars.iv.next985, %wide.trip.count987
  br i1 %exitcond988.not, label %..loopexit_crit_edge, label %.lr.ph870, !llvm.loop !31

..loopexit_crit_edge:                             ; preds = %.lr.ph870, %middle.block1293
  %.lcssa1095 = phi double [ %571, %middle.block1293 ], [ %575, %.lr.ph870 ]
  %.2721.lcssa = phi i32 [ %rdx.select, %middle.block1293 ], [ %.2721, %.lr.ph870 ]
  store double %.lcssa1095, ptr %49, align 8, !tbaa !9
  br label %.loopexit

.loopexit:                                        ; preds = %559, %..loopexit_crit_edge
  %577 = phi i32 [ %.mux, %559 ], [ %520, %..loopexit_crit_edge ]
  %.3722 = phi i32 [ %..mux, %559 ], [ %.2721.lcssa, %..loopexit_crit_edge ]
  %.not775 = icmp eq i32 %.3722, 0
  br i1 %.not775, label %597, label %578

578:                                              ; preds = %.loopexit
  %579 = icmp eq i32 %.0736875, 5
  br i1 %579, label %580, label %591

580:                                              ; preds = %578
  %581 = load i32, ptr %1, align 4, !tbaa !5
  %582 = sitofp i32 %581 to double
  %583 = load double, ptr %21, align 8, !tbaa !9
  br i1 %525, label %584, label %588

584:                                              ; preds = %580
  %585 = call double @llvm.fmuladd.f64(double %531, double %582, double %529)
  %586 = fneg double %583
  %587 = call double @llvm.fmuladd.f64(double %586, double 4.000000e+00, double %585)
  br label %594

588:                                              ; preds = %580
  %589 = call double @llvm.fmuladd.f64(double %528, double %582, double %526)
  %590 = call double @llvm.fmuladd.f64(double %583, double 4.000000e+00, double %589)
  br label %594

591:                                              ; preds = %578
  %592 = call double @llvm.fmuladd.f64(double %524, double %.1877, double %.3726876)
  %593 = fmul double %.1877, 2.000000e+00
  br label %594

594:                                              ; preds = %584, %588, %591
  %.4727 = phi double [ %587, %584 ], [ %590, %588 ], [ %592, %591 ]
  %.2 = phi double [ %.1877, %584 ], [ %.1877, %588 ], [ %593, %591 ]
  %595 = add nuw nsw i32 %.0736875, 1
  %exitcond989.not = icmp eq i32 %595, 7
  br i1 %exitcond989.not, label %596, label %536, !llvm.loop !32

596:                                              ; preds = %594
  store i32 2, ptr %24, align 4, !tbaa !5
  br label %.loopexit820

597:                                              ; preds = %.loopexit
  store i32 %577, ptr %35, align 4, !tbaa !5
  store double %.3726876, ptr %232, align 8, !tbaa !9
  call void @dcopy_(ptr noundef nonnull %43, ptr noundef nonnull %22, ptr noundef nonnull @c__1, ptr noundef nonnull %234, ptr noundef nonnull @c__1) #6
  %598 = load i32, ptr %43, align 4, !tbaa !5
  %599 = add nsw i32 %598, -1
  store i32 %599, ptr %35, align 4, !tbaa !5
  %600 = sext i32 %598 to i64
  %gep934 = getelementptr double, ptr %22, i64 %600
  %601 = getelementptr inbounds double, ptr %63, i64 %233
  call void @dcopy_(ptr noundef nonnull %35, ptr noundef %gep934, ptr noundef nonnull @c__1, ptr noundef nonnull %601, ptr noundef nonnull @c__1) #6
  br i1 %432, label %.preheader.preheader, label %652

.preheader.preheader:                             ; preds = %597
  store <4 x i32> <i32 1, i32 1, i32 1, i32 1>, ptr %38, align 16, !tbaa !5
  %602 = load i32, ptr %43, align 4, !tbaa !5
  %603 = shl i32 %602, 1
  %604 = add nsw i32 %603, -1
  store i32 %604, ptr %35, align 4, !tbaa !5
  call void @dlarnv_(ptr noundef nonnull @c__2, ptr noundef nonnull %38, ptr noundef nonnull %35, ptr noundef nonnull %22) #6
  %605 = load i32, ptr %43, align 4, !tbaa !5
  %.not776.not879 = icmp sgt i32 %605, 1
  br i1 %.not776.not879, label %.lr.ph882, label %.preheader.preheader.._crit_edge883_crit_edge

.preheader.preheader.._crit_edge883_crit_edge:    ; preds = %.preheader.preheader
  %.pre = sext i32 %605 to i64
  br label %._crit_edge883

.lr.ph882:                                        ; preds = %.preheader.preheader
  %606 = add nsw i32 %.0713940, -1
  %607 = zext nneg i32 %605 to i64
  %wide.trip.count997 = zext nneg i32 %605 to i64
  %invariant.gep1089 = getelementptr inbounds double, ptr %54, i64 %607
  %608 = add nsw i64 %wide.trip.count997, -1
  %min.iters.check1275 = icmp ult i32 %605, 9
  br i1 %min.iters.check1275, label %scalar.ph1274.preheader, label %vector.scevcheck1241

vector.scevcheck1241:                             ; preds = %.lr.ph882
  %609 = add nsw i64 %wide.trip.count997, -2
  %610 = trunc i64 %609 to i32
  %611 = add i32 %.0713940, %610
  %612 = icmp slt i32 %611, %.0713940
  %613 = icmp ugt i64 %609, 4294967295
  %614 = or i1 %612, %613
  br i1 %614, label %scalar.ph1274.preheader, label %vector.memcheck1242

vector.memcheck1242:                              ; preds = %vector.scevcheck1241
  %615 = shl nuw nsw i64 %wide.trip.count997, 3
  %scevgep1243 = getelementptr i8, ptr %22, i64 %615
  %616 = shl nuw nsw i64 %wide.trip.count997, 4
  %scevgep1245 = getelementptr i8, ptr %scevgep1244, i64 %616
  %617 = shl nsw i64 %233, 3
  %scevgep1247 = getelementptr i8, ptr %scevgep1246, i64 %617
  %618 = add nsw i64 %617, %615
  %scevgep1249 = getelementptr i8, ptr %scevgep1248, i64 %618
  %scevgep1251 = getelementptr i8, ptr %scevgep1250, i64 %617
  %scevgep1253 = getelementptr i8, ptr %scevgep1252, i64 %618
  %bound01254 = icmp ult ptr %scevgep1243, %scevgep1249
  %bound11255 = icmp ult ptr %scevgep1247, %scevgep1245
  %found.conflict1256 = and i1 %bound01254, %bound11255
  %bound01257 = icmp ult ptr %scevgep1243, %scevgep1253
  %bound11258 = icmp ult ptr %scevgep1251, %scevgep1245
  %found.conflict1259 = and i1 %bound01257, %bound11258
  %conflict.rdx1260 = or i1 %found.conflict1256, %found.conflict1259
  %bound01261 = icmp ugt ptr %scevgep1249, %22
  %bound11262 = icmp ult ptr %scevgep1247, %invariant.gep1089
  %found.conflict1263 = and i1 %bound01261, %bound11262
  %conflict.rdx1264 = or i1 %conflict.rdx1260, %found.conflict1263
  %bound01265 = icmp ugt ptr %scevgep1253, %22
  %bound11266 = icmp ult ptr %scevgep1251, %invariant.gep1089
  %found.conflict1267 = and i1 %bound01265, %bound11266
  %conflict.rdx1268 = or i1 %conflict.rdx1264, %found.conflict1267
  %bound01269 = icmp ult ptr %scevgep1247, %scevgep1253
  %bound11270 = icmp ult ptr %scevgep1251, %scevgep1249
  %found.conflict1271 = and i1 %bound01269, %bound11270
  %conflict.rdx1272 = or i1 %conflict.rdx1268, %found.conflict1271
  br i1 %conflict.rdx1272, label %scalar.ph1274.preheader, label %vector.ph1276

vector.ph1276:                                    ; preds = %vector.memcheck1242
  %n.vec1278 = and i64 %608, -2
  %ind.end1279 = or i64 %608, 1
  br label %vector.body1281

vector.body1281:                                  ; preds = %vector.body1281, %vector.ph1276
  %index1282 = phi i64 [ 0, %vector.ph1276 ], [ %index.next1291, %vector.body1281 ]
  %offset.idx1283 = or disjoint i64 %index1282, 1
  %619 = trunc i64 %index1282 to i32
  %620 = or disjoint i32 %619, 1
  %621 = getelementptr double, ptr %22, i64 %index1282
  %wide.load1285 = load <2 x double>, ptr %621, align 8, !tbaa !9, !alias.scope !33, !noalias !36
  %622 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat1287, <2 x double> %wide.load1285, <2 x double> <double 1.000000e+00, double 1.000000e+00>)
  %623 = add i32 %606, %620
  %624 = sext i32 %623 to i64
  %625 = getelementptr inbounds double, ptr %64, i64 %624
  %wide.load1288 = load <2 x double>, ptr %625, align 8, !tbaa !9, !alias.scope !39, !noalias !40
  %626 = fmul <2 x double> %wide.load1288, %622
  store <2 x double> %626, ptr %625, align 8, !tbaa !9, !alias.scope !39, !noalias !40
  %627 = getelementptr inbounds double, ptr %invariant.gep1089, i64 %offset.idx1283
  %wide.load1289 = load <2 x double>, ptr %627, align 8, !tbaa !9, !alias.scope !41, !noalias !36
  %628 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat1287, <2 x double> %wide.load1289, <2 x double> <double 1.000000e+00, double 1.000000e+00>)
  %629 = getelementptr inbounds double, ptr %63, i64 %624
  %wide.load1290 = load <2 x double>, ptr %629, align 8, !tbaa !9, !alias.scope !40
  %630 = fmul <2 x double> %wide.load1290, %628
  store <2 x double> %630, ptr %629, align 8, !tbaa !9, !alias.scope !40
  %index.next1291 = add nuw i64 %index1282, 2
  %631 = icmp eq i64 %index.next1291, %n.vec1278
  br i1 %631, label %middle.block1273, label %vector.body1281, !llvm.loop !43

middle.block1273:                                 ; preds = %vector.body1281
  %cmp.n1292 = icmp eq i64 %608, %n.vec1278
  br i1 %cmp.n1292, label %._crit_edge883, label %scalar.ph1274.preheader

scalar.ph1274.preheader:                          ; preds = %middle.block1273, %vector.memcheck1242, %vector.scevcheck1241, %.lr.ph882
  %indvars.iv994.ph = phi i64 [ 1, %vector.memcheck1242 ], [ 1, %vector.scevcheck1241 ], [ 1, %.lr.ph882 ], [ %ind.end1279, %middle.block1273 ]
  br label %scalar.ph1274

scalar.ph1274:                                    ; preds = %scalar.ph1274.preheader, %scalar.ph1274
  %indvars.iv994 = phi i64 [ %indvars.iv.next995, %scalar.ph1274 ], [ %indvars.iv994.ph, %scalar.ph1274.preheader ]
  %632 = getelementptr inbounds double, ptr %54, i64 %indvars.iv994
  %633 = load double, ptr %632, align 8, !tbaa !9
  %634 = call double @llvm.fmuladd.f64(double %179, double %633, double 1.000000e+00)
  %635 = trunc nuw nsw i64 %indvars.iv994 to i32
  %636 = add i32 %606, %635
  %637 = sext i32 %636 to i64
  %638 = getelementptr inbounds double, ptr %64, i64 %637
  %639 = load double, ptr %638, align 8, !tbaa !9
  %640 = fmul double %639, %634
  store double %640, ptr %638, align 8, !tbaa !9
  %gep1090 = getelementptr inbounds double, ptr %invariant.gep1089, i64 %indvars.iv994
  %641 = load double, ptr %gep1090, align 8, !tbaa !9
  %642 = call double @llvm.fmuladd.f64(double %179, double %641, double 1.000000e+00)
  %643 = getelementptr inbounds double, ptr %63, i64 %637
  %644 = load double, ptr %643, align 8, !tbaa !9
  %645 = fmul double %644, %642
  store double %645, ptr %643, align 8, !tbaa !9
  %indvars.iv.next995 = add nuw nsw i64 %indvars.iv994, 1
  %exitcond998.not = icmp eq i64 %indvars.iv.next995, %wide.trip.count997
  br i1 %exitcond998.not, label %._crit_edge883, label %scalar.ph1274, !llvm.loop !44

._crit_edge883:                                   ; preds = %scalar.ph1274, %middle.block1273, %.preheader.preheader.._crit_edge883_crit_edge
  %.pre-phi = phi i64 [ %.pre, %.preheader.preheader.._crit_edge883_crit_edge ], [ %607, %middle.block1273 ], [ %607, %scalar.ph1274 ]
  %646 = getelementptr inbounds double, ptr %54, i64 %.pre-phi
  %647 = load double, ptr %646, align 8, !tbaa !9
  %648 = call double @llvm.fmuladd.f64(double %180, double %647, double 1.000000e+00)
  %649 = getelementptr inbounds double, ptr %64, i64 %231
  %650 = load double, ptr %649, align 8, !tbaa !9
  %651 = fmul double %650, %648
  store double %651, ptr %649, align 8, !tbaa !9
  br label %652

652:                                              ; preds = %._crit_edge883, %597
  br i1 %.not770, label %653, label %774

653:                                              ; preds = %652
  %.not777917 = icmp sgt i32 %.0708942, %.2739
  br i1 %.not777917, label %._crit_edge921, label %.lr.ph920.preheader

.lr.ph920.preheader:                              ; preds = %653
  %654 = sext i32 %.0708942 to i64
  %655 = add i32 %.2739, 1
  %656 = sub i32 %.2739, %.0708942
  %657 = zext i32 %656 to i64
  %658 = add nuw nsw i64 %657, 1
  %min.iters.check1131 = icmp eq i32 %.2739, %.0708942
  br i1 %min.iters.check1131, label %.lr.ph920.preheader1354, label %vector.memcheck1123

vector.memcheck1123:                              ; preds = %.lr.ph920.preheader
  %659 = shl nsw i64 %654, 3
  %scevgep1124 = getelementptr i8, ptr %scevgep, i64 %659
  %660 = sub i32 %.2739, %.0708942
  %661 = zext i32 %660 to i64
  %662 = add nsw i64 %654, %661
  %663 = shl nsw i64 %662, 3
  %scevgep1125 = getelementptr i8, ptr %15, i64 %663
  %scevgep1127 = getelementptr i8, ptr %scevgep1126, i64 %659
  %scevgep1128 = getelementptr i8, ptr %16, i64 %663
  %bound0 = icmp ult ptr %scevgep1124, %scevgep1128
  %bound1 = icmp ult ptr %scevgep1127, %scevgep1125
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %.lr.ph920.preheader1354, label %vector.ph1132

vector.ph1132:                                    ; preds = %vector.memcheck1123
  %n.vec1134 = and i64 %658, 8589934590
  %ind.end1135 = add nsw i64 %n.vec1134, %654
  %broadcast.splatinsert = insertelement <2 x double> poison, double %.3726876, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body1137

vector.body1137:                                  ; preds = %vector.body1137, %vector.ph1132
  %index1138 = phi i64 [ 0, %vector.ph1132 ], [ %index.next1144, %vector.body1137 ]
  %offset.idx1139 = add i64 %index1138, %654
  %664 = getelementptr inbounds double, ptr %60, i64 %offset.idx1139
  %wide.load1140 = load <2 x double>, ptr %664, align 8, !tbaa !9, !alias.scope !45, !noalias !48
  %665 = fsub <2 x double> %wide.load1140, %broadcast.splat
  store <2 x double> %665, ptr %664, align 8, !tbaa !9, !alias.scope !45, !noalias !48
  %666 = fcmp oge <2 x double> %665, zeroinitializer
  %667 = fneg <2 x double> %665
  %668 = select <2 x i1> %666, <2 x double> %665, <2 x double> %667
  %669 = getelementptr inbounds double, ptr %59, i64 %offset.idx1139
  %wide.load1141 = load <2 x double>, ptr %669, align 8, !tbaa !9, !alias.scope !48
  %670 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %668, <2 x double> %broadcast.splat1143, <2 x double> %wide.load1141)
  store <2 x double> %670, ptr %669, align 8, !tbaa !9, !alias.scope !48
  %index.next1144 = add nuw i64 %index1138, 2
  %671 = icmp eq i64 %index.next1144, %n.vec1134
  br i1 %671, label %middle.block1129, label %vector.body1137, !llvm.loop !50

middle.block1129:                                 ; preds = %vector.body1137
  %cmp.n1145 = icmp eq i64 %658, %n.vec1134
  br i1 %cmp.n1145, label %._crit_edge921, label %.lr.ph920.preheader1354

.lr.ph920.preheader1354:                          ; preds = %middle.block1129, %vector.memcheck1123, %.lr.ph920.preheader
  %indvars.iv1031.ph = phi i64 [ %654, %vector.memcheck1123 ], [ %654, %.lr.ph920.preheader ], [ %ind.end1135, %middle.block1129 ]
  br label %.lr.ph920

.lr.ph920:                                        ; preds = %.lr.ph920.preheader1354, %.lr.ph920
  %indvars.iv1031 = phi i64 [ %indvars.iv.next1032, %.lr.ph920 ], [ %indvars.iv1031.ph, %.lr.ph920.preheader1354 ]
  %672 = getelementptr inbounds double, ptr %60, i64 %indvars.iv1031
  %673 = load double, ptr %672, align 8, !tbaa !9
  %674 = fsub double %673, %.3726876
  store double %674, ptr %672, align 8, !tbaa !9
  %675 = fcmp oge double %674, 0.000000e+00
  %676 = fneg double %674
  %677 = select i1 %675, double %674, double %676
  %678 = getelementptr inbounds double, ptr %59, i64 %indvars.iv1031
  %679 = load double, ptr %678, align 8, !tbaa !9
  %680 = call double @llvm.fmuladd.f64(double %677, double %77, double %679)
  store double %680, ptr %678, align 8, !tbaa !9
  %indvars.iv.next1032 = add nsw i64 %indvars.iv1031, 1
  %lftr.wideiv1034 = trunc i64 %indvars.iv.next1032 to i32
  %exitcond1035.not = icmp eq i32 %655, %lftr.wideiv1034
  br i1 %exitcond1035.not, label %._crit_edge921, label %.lr.ph920, !llvm.loop !51

._crit_edge921:                                   ; preds = %.lr.ph920, %middle.block1129, %653
  %.not778.not922 = icmp slt i32 %.0713940, %189
  br i1 %.not778.not922, label %.lr.ph925.preheader, label %._crit_edge926

.lr.ph925.preheader:                              ; preds = %._crit_edge921
  %681 = sub nsw i64 %231, %233
  %min.iters.check1109 = icmp ult i64 %681, 4
  %brmerge1402 = or i1 %min.iters.check1109, %conflict.rdx1106
  br i1 %brmerge1402, label %.lr.ph925.preheader1353, label %vector.ph1110

vector.ph1110:                                    ; preds = %.lr.ph925.preheader
  %n.vec1112 = and i64 %681, -4
  %ind.end1113 = add nsw i64 %n.vec1112, %233
  br label %vector.body1115

vector.body1115:                                  ; preds = %vector.body1115, %vector.ph1110
  %index1116 = phi i64 [ 0, %vector.ph1110 ], [ %index.next1121, %vector.body1115 ]
  %offset.idx1117 = add i64 %index1116, %233
  %682 = getelementptr inbounds double, ptr %63, i64 %offset.idx1117
  %683 = getelementptr inbounds i8, ptr %682, i64 16
  %wide.load = load <2 x double>, ptr %682, align 8, !tbaa !9
  %wide.load1118 = load <2 x double>, ptr %683, align 8, !tbaa !9
  %684 = getelementptr inbounds double, ptr %64, i64 %offset.idx1117
  %685 = getelementptr inbounds i8, ptr %684, i64 16
  %wide.load1119 = load <2 x double>, ptr %684, align 8, !tbaa !9
  %wide.load1120 = load <2 x double>, ptr %685, align 8, !tbaa !9
  %686 = fmul <2 x double> %wide.load, %wide.load
  %687 = fmul <2 x double> %wide.load1118, %wide.load1118
  %688 = fmul <2 x double> %wide.load1119, %686
  %689 = fmul <2 x double> %wide.load1120, %687
  %690 = getelementptr inbounds double, ptr %54, i64 %offset.idx1117
  %691 = getelementptr inbounds i8, ptr %690, i64 16
  store <2 x double> %688, ptr %690, align 8, !tbaa !9
  store <2 x double> %689, ptr %691, align 8, !tbaa !9
  %index.next1121 = add nuw i64 %index1116, 4
  %692 = icmp eq i64 %index.next1121, %n.vec1112
  br i1 %692, label %middle.block1107, label %vector.body1115, !llvm.loop !52

middle.block1107:                                 ; preds = %vector.body1115
  %cmp.n1122 = icmp eq i64 %681, %n.vec1112
  br i1 %cmp.n1122, label %._crit_edge926, label %.lr.ph925.preheader1353

.lr.ph925.preheader1353:                          ; preds = %.lr.ph925.preheader, %middle.block1107
  %indvars.iv1036.ph = phi i64 [ %233, %.lr.ph925.preheader ], [ %ind.end1113, %middle.block1107 ]
  %693 = sub nsw i64 %231, %indvars.iv1036.ph
  %xtraiter1376 = and i64 %693, 1
  %lcmp.mod1377.not = icmp eq i64 %xtraiter1376, 0
  br i1 %lcmp.mod1377.not, label %.lr.ph925.prol.loopexit, label %.lr.ph925.prol

.lr.ph925.prol:                                   ; preds = %.lr.ph925.preheader1353
  %694 = getelementptr inbounds double, ptr %63, i64 %indvars.iv1036.ph
  %695 = load double, ptr %694, align 8, !tbaa !9
  %696 = getelementptr inbounds double, ptr %64, i64 %indvars.iv1036.ph
  %697 = load double, ptr %696, align 8, !tbaa !9
  %698 = fmul double %695, %695
  %699 = fmul double %697, %698
  %700 = getelementptr inbounds double, ptr %54, i64 %indvars.iv1036.ph
  store double %699, ptr %700, align 8, !tbaa !9
  %indvars.iv.next1037.prol = add nsw i64 %indvars.iv1036.ph, 1
  br label %.lr.ph925.prol.loopexit

.lr.ph925.prol.loopexit:                          ; preds = %.lr.ph925.prol, %.lr.ph925.preheader1353
  %indvars.iv1036.unr = phi i64 [ %indvars.iv1036.ph, %.lr.ph925.preheader1353 ], [ %indvars.iv.next1037.prol, %.lr.ph925.prol ]
  %701 = add nsw i64 %231, -1
  %702 = icmp eq i64 %indvars.iv1036.ph, %701
  br i1 %702, label %._crit_edge926, label %.lr.ph925

.lr.ph925:                                        ; preds = %.lr.ph925.prol.loopexit, %.lr.ph925
  %indvars.iv1036 = phi i64 [ %indvars.iv.next1037.1, %.lr.ph925 ], [ %indvars.iv1036.unr, %.lr.ph925.prol.loopexit ]
  %703 = getelementptr inbounds double, ptr %63, i64 %indvars.iv1036
  %704 = load double, ptr %703, align 8, !tbaa !9
  %705 = getelementptr inbounds double, ptr %64, i64 %indvars.iv1036
  %706 = load double, ptr %705, align 8, !tbaa !9
  %707 = fmul double %704, %704
  %708 = fmul double %706, %707
  %709 = getelementptr inbounds double, ptr %54, i64 %indvars.iv1036
  store double %708, ptr %709, align 8, !tbaa !9
  %710 = getelementptr double, ptr %7, i64 %indvars.iv1036
  %711 = load double, ptr %710, align 8, !tbaa !9
  %712 = getelementptr double, ptr %6, i64 %indvars.iv1036
  %713 = load double, ptr %712, align 8, !tbaa !9
  %714 = fmul double %711, %711
  %715 = fmul double %713, %714
  %716 = getelementptr double, ptr %22, i64 %indvars.iv1036
  store double %715, ptr %716, align 8, !tbaa !9
  %indvars.iv.next1037.1 = add nsw i64 %indvars.iv1036, 2
  %exitcond1040.not.1 = icmp eq i64 %indvars.iv.next1037.1, %231
  br i1 %exitcond1040.not.1, label %._crit_edge926, label %.lr.ph925, !llvm.loop !53

._crit_edge926:                                   ; preds = %.lr.ph925.prol.loopexit, %.lr.ph925, %middle.block1107, %._crit_edge921
  %717 = load i32, ptr %36, align 4, !tbaa !5
  %718 = add nsw i32 %717, -1
  store i32 %718, ptr %35, align 4, !tbaa !5
  %719 = getelementptr inbounds double, ptr %54, i64 %233
  %720 = sext i32 %.0708942 to i64
  %721 = getelementptr inbounds double, ptr %60, i64 %720
  %722 = getelementptr inbounds double, ptr %58, i64 %720
  %723 = getelementptr inbounds double, ptr %59, i64 %720
  %724 = load i32, ptr %1, align 4, !tbaa !5
  %725 = shl i32 %724, 1
  %726 = or disjoint i32 %725, 1
  %727 = sext i32 %726 to i64
  %728 = getelementptr inbounds double, ptr %54, i64 %727
  call void @dlarrb_(ptr noundef nonnull %43, ptr noundef nonnull %234, ptr noundef nonnull %719, ptr noundef nonnull %36, ptr noundef nonnull %37, ptr noundef %9, ptr noundef %10, ptr noundef nonnull %35, ptr noundef nonnull %721, ptr noundef nonnull %722, ptr noundef nonnull %723, ptr noundef nonnull %728, ptr noundef %23, ptr noundef nonnull %21, ptr noundef nonnull %46, ptr noundef nonnull %43, ptr noundef nonnull %39) #6
  %729 = load i32, ptr %39, align 4, !tbaa !5
  %.not779 = icmp eq i32 %729, 0
  br i1 %.not779, label %731, label %730

730:                                              ; preds = %._crit_edge926
  store i32 -4, ptr %24, align 4, !tbaa !5
  br label %.loopexit820

731:                                              ; preds = %._crit_edge926
  %732 = load double, ptr %3, align 8, !tbaa !9
  %733 = fsub double %732, %.3726876
  %734 = sext i32 %.2739 to i64
  %735 = getelementptr inbounds double, ptr %60, i64 %734
  %736 = load double, ptr %735, align 8, !tbaa !9
  %737 = getelementptr inbounds double, ptr %59, i64 %734
  %738 = load double, ptr %737, align 8, !tbaa !9
  %739 = fadd double %736, %738
  %740 = fsub double %733, %739
  %741 = fcmp ole double %740, 0.000000e+00
  %742 = select i1 %741, double 0.000000e+00, double %740
  %743 = getelementptr inbounds double, ptr %58, i64 %734
  store double %742, ptr %743, align 8, !tbaa !9
  %744 = load i32, ptr %37, align 4, !tbaa !5
  store i32 %744, ptr %35, align 4, !tbaa !5
  %745 = load i32, ptr %36, align 4, !tbaa !5
  %.not780927 = icmp sgt i32 %745, %744
  br i1 %.not780927, label %.loopexit817, label %.lr.ph930.preheader

.lr.ph930.preheader:                              ; preds = %731
  %746 = trunc nuw nsw i64 %indvars.iv1042 to i32
  %747 = add i32 %744, %745
  %748 = and i32 %747, 1
  %lcmp.mod1379.not.not = icmp eq i32 %748, 0
  br i1 %lcmp.mod1379.not.not, label %.lr.ph930.prol, label %.lr.ph930.prol.loopexit

.lr.ph930.prol:                                   ; preds = %.lr.ph930.preheader
  %749 = load i32, ptr %14, align 4, !tbaa !5
  %750 = add nsw i32 %749, 1
  store i32 %750, ptr %14, align 4, !tbaa !5
  %751 = sext i32 %750 to i64
  %752 = getelementptr inbounds i32, ptr %57, i64 %751
  store i32 %746, ptr %752, align 4, !tbaa !5
  %753 = load i32, ptr %14, align 4, !tbaa !5
  %754 = sext i32 %753 to i64
  %755 = getelementptr inbounds i32, ptr %56, i64 %754
  store i32 %745, ptr %755, align 4, !tbaa !5
  %756 = add i32 %745, 1
  br label %.lr.ph930.prol.loopexit

.lr.ph930.prol.loopexit:                          ; preds = %.lr.ph930.prol, %.lr.ph930.preheader
  %.10928.unr = phi i32 [ %745, %.lr.ph930.preheader ], [ %756, %.lr.ph930.prol ]
  %757 = icmp eq i32 %744, %745
  br i1 %757, label %.loopexit817, label %.lr.ph930

.lr.ph930:                                        ; preds = %.lr.ph930.prol.loopexit, %.lr.ph930
  %.10928 = phi i32 [ %773, %.lr.ph930 ], [ %.10928.unr, %.lr.ph930.prol.loopexit ]
  %758 = load i32, ptr %14, align 4, !tbaa !5
  %759 = add nsw i32 %758, 1
  store i32 %759, ptr %14, align 4, !tbaa !5
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds i32, ptr %57, i64 %760
  store i32 %746, ptr %761, align 4, !tbaa !5
  %762 = load i32, ptr %14, align 4, !tbaa !5
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds i32, ptr %56, i64 %763
  store i32 %.10928, ptr %764, align 4, !tbaa !5
  %765 = add i32 %.10928, 1
  %766 = load i32, ptr %14, align 4, !tbaa !5
  %767 = add nsw i32 %766, 1
  store i32 %767, ptr %14, align 4, !tbaa !5
  %768 = sext i32 %767 to i64
  %769 = getelementptr inbounds i32, ptr %57, i64 %768
  store i32 %746, ptr %769, align 4, !tbaa !5
  %770 = load i32, ptr %14, align 4, !tbaa !5
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds i32, ptr %56, i64 %771
  store i32 %765, ptr %772, align 4, !tbaa !5
  %773 = add i32 %.10928, 2
  %exitcond1041.not.1 = icmp eq i32 %765, %744
  br i1 %exitcond1041.not.1, label %.loopexit817, label %.lr.ph930, !llvm.loop !54

774:                                              ; preds = %652
  %775 = load i32, ptr %43, align 4, !tbaa !5
  %776 = sitofp i32 %775 to double
  %777 = call double @log(double noundef %776) #6
  %778 = fmul double %777, 4.000000e+00
  %779 = fmul double %77, %778
  %780 = load i32, ptr %43, align 4, !tbaa !5
  %781 = add nsw i32 %780, -1
  store i32 %781, ptr %35, align 4, !tbaa !5
  %.not781.not886 = icmp sgt i32 %780, 1
  br i1 %.not781.not886, label %.lr.ph890.preheader, label %._crit_edge891

.lr.ph890.preheader:                              ; preds = %774
  %wide.trip.count1006 = zext nneg i32 %780 to i64
  %782 = add nsw i64 %wide.trip.count1006, -1
  %min.iters.check1225 = icmp ult i32 %780, 9
  br i1 %min.iters.check1225, label %.lr.ph890.preheader1358, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %.lr.ph890.preheader
  %783 = add nsw i64 %wide.trip.count1006, -2
  %mul.overflow = icmp ugt i64 %783, 2147483647
  %784 = trunc i64 %783 to i31
  %785 = icmp ugt i31 %784, 1073741822
  %786 = or i1 %785, %mul.overflow
  br i1 %786, label %.lr.ph890.preheader1358, label %vector.memcheck1205

vector.memcheck1205:                              ; preds = %vector.scevcheck
  %787 = shl nuw nsw i64 %wide.trip.count1006, 4
  %scevgep1207 = getelementptr i8, ptr %scevgep1206, i64 %787
  %788 = shl nsw i64 %233, 3
  %scevgep1209 = getelementptr i8, ptr %scevgep1208, i64 %788
  %789 = add nsw i64 %233, %wide.trip.count1006
  %790 = shl nsw i64 %789, 3
  %scevgep1211 = getelementptr i8, ptr %scevgep1210, i64 %790
  %scevgep1213 = getelementptr i8, ptr %scevgep1212, i64 %788
  %scevgep1215 = getelementptr i8, ptr %scevgep1214, i64 %790
  %bound01216 = icmp ugt ptr %scevgep1211, %22
  %bound11217 = icmp ult ptr %scevgep1209, %scevgep1207
  %found.conflict1218 = and i1 %bound01216, %bound11217
  %bound01219 = icmp ugt ptr %scevgep1215, %22
  %bound11220 = icmp ult ptr %scevgep1213, %scevgep1207
  %found.conflict1221 = and i1 %bound01219, %bound11220
  %conflict.rdx1222 = or i1 %found.conflict1218, %found.conflict1221
  br i1 %conflict.rdx1222, label %.lr.ph890.preheader1358, label %vector.ph1226

vector.ph1226:                                    ; preds = %vector.memcheck1205
  %n.vec1228 = and i64 %782, -2
  %ind.end1229 = or i64 %782, 1
  %ind.end1231 = add nsw i64 %n.vec1228, %233
  br label %vector.body1233

vector.body1233:                                  ; preds = %vector.body1233, %vector.ph1226
  %index1234 = phi i64 [ 0, %vector.ph1226 ], [ %index.next1239, %vector.body1233 ]
  %offset.idx1236 = add i64 %index1234, %233
  %791 = getelementptr inbounds double, ptr %64, i64 %offset.idx1236
  %wide.load1237 = load <2 x double>, ptr %791, align 8, !tbaa !9, !alias.scope !55
  %792 = fcmp oge <2 x double> %wide.load1237, zeroinitializer
  %793 = fneg <2 x double> %wide.load1237
  %794 = select <2 x i1> %792, <2 x double> %wide.load1237, <2 x double> %793
  %795 = getelementptr inbounds double, ptr %63, i64 %offset.idx1236
  %wide.load1238 = load <2 x double>, ptr %795, align 8, !tbaa !9, !alias.scope !58
  %796 = fmul <2 x double> %wide.load1238, %wide.load1238
  %797 = fmul <2 x double> %794, %796
  %offset.idx1235 = shl i64 %index1234, 4
  %798 = or disjoint i64 %offset.idx1235, 16
  %gep1399 = getelementptr i8, ptr %invariant.gep1398, i64 %798
  %interleaved.vec = shufflevector <2 x double> %794, <2 x double> %797, <4 x i32> <i32 0, i32 2, i32 1, i32 3>
  store <4 x double> %interleaved.vec, ptr %gep1399, align 8, !tbaa !9
  %index.next1239 = add nuw i64 %index1234, 2
  %799 = icmp eq i64 %index.next1239, %n.vec1228
  br i1 %799, label %middle.block1223, label %vector.body1233, !llvm.loop !60

middle.block1223:                                 ; preds = %vector.body1233
  %cmp.n1240 = icmp eq i64 %782, %n.vec1228
  br i1 %cmp.n1240, label %._crit_edge891, label %.lr.ph890.preheader1358

.lr.ph890.preheader1358:                          ; preds = %middle.block1223, %vector.memcheck1205, %vector.scevcheck, %.lr.ph890.preheader
  %indvars.iv1001.ph = phi i64 [ 1, %vector.memcheck1205 ], [ 1, %vector.scevcheck ], [ 1, %.lr.ph890.preheader ], [ %ind.end1229, %middle.block1223 ]
  %indvars.iv999.ph = phi i64 [ %233, %vector.memcheck1205 ], [ %233, %vector.scevcheck ], [ %233, %.lr.ph890.preheader ], [ %ind.end1231, %middle.block1223 ]
  br label %.lr.ph890

.lr.ph890:                                        ; preds = %.lr.ph890.preheader1358, %.lr.ph890
  %indvars.iv1001 = phi i64 [ %indvars.iv.next1002, %.lr.ph890 ], [ %indvars.iv1001.ph, %.lr.ph890.preheader1358 ]
  %indvars.iv999 = phi i64 [ %indvars.iv.next1000, %.lr.ph890 ], [ %indvars.iv999.ph, %.lr.ph890.preheader1358 ]
  %800 = getelementptr inbounds double, ptr %64, i64 %indvars.iv999
  %801 = load double, ptr %800, align 8, !tbaa !9
  %802 = fcmp oge double %801, 0.000000e+00
  %803 = fneg double %801
  %804 = select i1 %802, double %801, double %803
  %sext1049 = shl i64 %indvars.iv1001, 33
  %805 = ashr exact i64 %sext1049, 29
  %gep885 = getelementptr i8, ptr %invariant.gep884, i64 %805
  store double %804, ptr %gep885, align 8, !tbaa !9
  %806 = getelementptr inbounds double, ptr %63, i64 %indvars.iv999
  %807 = load double, ptr %806, align 8, !tbaa !9
  %808 = fmul double %807, %807
  %809 = fmul double %804, %808
  %.idx1050 = shl i64 %indvars.iv1001, 4
  %810 = getelementptr inbounds i8, ptr %54, i64 %.idx1050
  store double %809, ptr %810, align 8, !tbaa !9
  %indvars.iv.next1000 = add nsw i64 %indvars.iv999, 1
  %indvars.iv.next1002 = add nuw nsw i64 %indvars.iv1001, 1
  %exitcond1007.not = icmp eq i64 %indvars.iv.next1002, %wide.trip.count1006
  br i1 %exitcond1007.not, label %._crit_edge891, label %.lr.ph890, !llvm.loop !61

._crit_edge891:                                   ; preds = %.lr.ph890, %middle.block1223, %774
  %811 = getelementptr inbounds double, ptr %64, i64 %231
  %812 = load double, ptr %811, align 8, !tbaa !9
  %813 = fcmp oge double %812, 0.000000e+00
  %814 = fneg double %812
  %815 = select i1 %813, double %812, double %814
  %816 = shl i32 %780, 1
  %817 = sext i32 %816 to i64
  %818 = getelementptr double, ptr %54, i64 %817
  %819 = getelementptr i8, ptr %818, i64 -8
  store double %815, ptr %819, align 8, !tbaa !9
  store double 0.000000e+00, ptr %818, align 8, !tbaa !9
  call void @dlasq2_(ptr noundef nonnull %43, ptr noundef nonnull %22, ptr noundef nonnull %39) #6
  %820 = load i32, ptr %39, align 4, !tbaa !5
  %.not782 = icmp eq i32 %820, 0
  br i1 %.not782, label %822, label %821

821:                                              ; preds = %._crit_edge891
  store i32 -5, ptr %24, align 4, !tbaa !5
  br label %.loopexit820

822:                                              ; preds = %._crit_edge891
  %823 = load i32, ptr %43, align 4, !tbaa !5
  %.not783892 = icmp slt i32 %823, 1
  br i1 %.not783892, label %._crit_edge896, label %.lr.ph895.preheader

.lr.ph895.preheader:                              ; preds = %822
  %824 = add nuw i32 %823, 1
  %wide.trip.count1011 = zext i32 %824 to i64
  br label %.lr.ph895

825:                                              ; preds = %.lr.ph895
  %indvars.iv.next1009 = add nuw nsw i64 %indvars.iv1008, 1
  %exitcond1012.not = icmp eq i64 %indvars.iv.next1009, %wide.trip.count1011
  br i1 %exitcond1012.not, label %._crit_edge896, label %.lr.ph895, !llvm.loop !62

.lr.ph895:                                        ; preds = %.lr.ph895.preheader, %825
  %indvars.iv1008 = phi i64 [ 1, %.lr.ph895.preheader ], [ %indvars.iv.next1009, %825 ]
  %826 = getelementptr inbounds double, ptr %54, i64 %indvars.iv1008
  %827 = load double, ptr %826, align 8, !tbaa !9
  %828 = fcmp olt double %827, 0.000000e+00
  br i1 %828, label %829, label %825

829:                                              ; preds = %.lr.ph895
  store i32 -6, ptr %24, align 4, !tbaa !5
  br label %.loopexit820

._crit_edge896:                                   ; preds = %825, %822
  %830 = fcmp ogt double %.0711803, 0.000000e+00
  %831 = load i32, ptr %37, align 4, !tbaa !5
  %832 = load i32, ptr %36, align 4, !tbaa !5
  %.not785903 = icmp sgt i32 %832, %831
  br i1 %830, label %833, label %849

833:                                              ; preds = %._crit_edge896
  br i1 %.not785903, label %.loopexit818, label %.lr.ph906.preheader

.lr.ph906.preheader:                              ; preds = %833
  %834 = sext i32 %832 to i64
  %835 = sext i32 %823 to i64
  %836 = add i32 %831, 1
  %837 = trunc nuw nsw i64 %indvars.iv1042 to i32
  br label %.lr.ph906

.lr.ph906:                                        ; preds = %.lr.ph906.preheader, %.lr.ph906
  %indvars.iv1018 = phi i64 [ %834, %.lr.ph906.preheader ], [ %indvars.iv.next1019, %.lr.ph906 ]
  %838 = load i32, ptr %14, align 4, !tbaa !5
  %839 = add nsw i32 %838, 1
  store i32 %839, ptr %14, align 4, !tbaa !5
  %840 = sub nsw i64 %835, %indvars.iv1018
  %gep902 = getelementptr double, ptr %22, i64 %840
  %841 = load double, ptr %gep902, align 8, !tbaa !9
  %842 = sext i32 %839 to i64
  %843 = getelementptr inbounds double, ptr %60, i64 %842
  store double %841, ptr %843, align 8, !tbaa !9
  %844 = getelementptr inbounds i32, ptr %57, i64 %842
  store i32 %837, ptr %844, align 4, !tbaa !5
  %845 = load i32, ptr %14, align 4, !tbaa !5
  %846 = sext i32 %845 to i64
  %847 = getelementptr inbounds i32, ptr %56, i64 %846
  %848 = trunc nsw i64 %indvars.iv1018 to i32
  store i32 %848, ptr %847, align 4, !tbaa !5
  %indvars.iv.next1019 = add nsw i64 %indvars.iv1018, 1
  %lftr.wideiv1021 = trunc i64 %indvars.iv.next1019 to i32
  %exitcond1022.not = icmp eq i32 %836, %lftr.wideiv1021
  br i1 %exitcond1022.not, label %.loopexit818, label %.lr.ph906, !llvm.loop !63

849:                                              ; preds = %._crit_edge896
  br i1 %.not785903, label %.loopexit818, label %.lr.ph900.preheader

.lr.ph900.preheader:                              ; preds = %849
  %850 = sext i32 %832 to i64
  %851 = add i32 %831, 1
  %852 = trunc nuw nsw i64 %indvars.iv1042 to i32
  br label %.lr.ph900

.lr.ph900:                                        ; preds = %.lr.ph900.preheader, %.lr.ph900
  %indvars.iv1013 = phi i64 [ %850, %.lr.ph900.preheader ], [ %indvars.iv.next1014, %.lr.ph900 ]
  %853 = load i32, ptr %14, align 4, !tbaa !5
  %854 = add nsw i32 %853, 1
  store i32 %854, ptr %14, align 4, !tbaa !5
  %855 = getelementptr inbounds double, ptr %54, i64 %indvars.iv1013
  %856 = load double, ptr %855, align 8, !tbaa !9
  %857 = fneg double %856
  %858 = sext i32 %854 to i64
  %859 = getelementptr inbounds double, ptr %60, i64 %858
  store double %857, ptr %859, align 8, !tbaa !9
  %860 = getelementptr inbounds i32, ptr %57, i64 %858
  store i32 %852, ptr %860, align 4, !tbaa !5
  %861 = load i32, ptr %14, align 4, !tbaa !5
  %862 = sext i32 %861 to i64
  %863 = getelementptr inbounds i32, ptr %56, i64 %862
  %864 = trunc nsw i64 %indvars.iv1013 to i32
  store i32 %864, ptr %863, align 4, !tbaa !5
  %indvars.iv.next1014 = add nsw i64 %indvars.iv1013, 1
  %lftr.wideiv1016 = trunc i64 %indvars.iv.next1014 to i32
  %exitcond1017.not = icmp eq i32 %851, %lftr.wideiv1016
  br i1 %exitcond1017.not, label %.loopexit818, label %.lr.ph900, !llvm.loop !64

.loopexit818:                                     ; preds = %.lr.ph900, %.lr.ph906, %849, %833
  %865 = load i32, ptr %14, align 4, !tbaa !5
  %866 = sub i32 %865, %.3718
  %.not786.not907 = icmp sgt i32 %.3718, 0
  br i1 %.not786.not907, label %.lr.ph910.preheader, label %._crit_edge911

.lr.ph910.preheader:                              ; preds = %.loopexit818
  %867 = sext i32 %866 to i64
  %868 = sext i32 %865 to i64
  %869 = add nsw i64 %867, 1
  %smax = call i64 @llvm.smax.i64(i64 %869, i64 %868)
  %870 = sub i64 %smax, %867
  %min.iters.check1190 = icmp ult i64 %870, 4
  %or.cond = or i1 %min.iters.check1190, %diff.check1187
  br i1 %or.cond, label %.lr.ph910.preheader1356, label %vector.ph1191

vector.ph1191:                                    ; preds = %.lr.ph910.preheader
  %n.vec1193 = and i64 %870, -4
  %ind.end1194 = add i64 %n.vec1193, %867
  %broadcast.splatinsert1201 = insertelement <2 x double> poison, double %779, i64 0
  %broadcast.splat1202 = shufflevector <2 x double> %broadcast.splatinsert1201, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body1196

vector.body1196:                                  ; preds = %vector.body1196, %vector.ph1191
  %index1197 = phi i64 [ 0, %vector.ph1191 ], [ %index.next1203, %vector.body1196 ]
  %offset.idx1198 = add i64 %index1197, %867
  %871 = getelementptr double, ptr %15, i64 %offset.idx1198
  %872 = getelementptr i8, ptr %871, i64 16
  %wide.load1199 = load <2 x double>, ptr %871, align 8, !tbaa !9
  %wide.load1200 = load <2 x double>, ptr %872, align 8, !tbaa !9
  %873 = fcmp oge <2 x double> %wide.load1199, zeroinitializer
  %874 = fcmp oge <2 x double> %wide.load1200, zeroinitializer
  %875 = fneg <2 x double> %wide.load1199
  %876 = fneg <2 x double> %wide.load1200
  %877 = select <2 x i1> %873, <2 x double> %wide.load1199, <2 x double> %875
  %878 = select <2 x i1> %874, <2 x double> %wide.load1200, <2 x double> %876
  %879 = fmul <2 x double> %broadcast.splat1202, %877
  %880 = fmul <2 x double> %broadcast.splat1202, %878
  %881 = getelementptr double, ptr %16, i64 %offset.idx1198
  %882 = getelementptr i8, ptr %881, i64 16
  store <2 x double> %879, ptr %881, align 8, !tbaa !9
  store <2 x double> %880, ptr %882, align 8, !tbaa !9
  %index.next1203 = add nuw i64 %index1197, 4
  %883 = icmp eq i64 %index.next1203, %n.vec1193
  br i1 %883, label %middle.block1188, label %vector.body1196, !llvm.loop !65

middle.block1188:                                 ; preds = %vector.body1196
  %cmp.n1204 = icmp eq i64 %870, %n.vec1193
  br i1 %cmp.n1204, label %._crit_edge911, label %.lr.ph910.preheader1356

.lr.ph910.preheader1356:                          ; preds = %middle.block1188, %.lr.ph910.preheader
  %indvars.iv1023.ph = phi i64 [ %867, %.lr.ph910.preheader ], [ %ind.end1194, %middle.block1188 ]
  br label %.lr.ph910

.lr.ph910:                                        ; preds = %.lr.ph910.preheader1356, %.lr.ph910
  %indvars.iv1023 = phi i64 [ %indvars.iv.next1024, %.lr.ph910 ], [ %indvars.iv1023.ph, %.lr.ph910.preheader1356 ]
  %indvars.iv.next1024 = add nsw i64 %indvars.iv1023, 1
  %884 = getelementptr double, ptr %15, i64 %indvars.iv1023
  %885 = load double, ptr %884, align 8, !tbaa !9
  %886 = fcmp oge double %885, 0.000000e+00
  %887 = fneg double %885
  %888 = select i1 %886, double %885, double %887
  %889 = fmul double %779, %888
  %890 = getelementptr double, ptr %16, i64 %indvars.iv1023
  store double %889, ptr %890, align 8, !tbaa !9
  %.not786.not = icmp slt i64 %indvars.iv.next1024, %868
  br i1 %.not786.not, label %.lr.ph910, label %._crit_edge911, !llvm.loop !66

._crit_edge911:                                   ; preds = %.lr.ph910, %middle.block1188, %.loopexit818
  %891 = add nsw i32 %865, -1
  store i32 %891, ptr %35, align 4, !tbaa !5
  %892 = add nsw i32 %866, 1
  %.not787.not912 = icmp slt i32 %892, %865
  br i1 %.not787.not912, label %.lr.ph915.preheader, label %._crit_edge916

.lr.ph915.preheader:                              ; preds = %._crit_edge911
  %893 = sext i32 %892 to i64
  %894 = add i32 %.3718, -2
  %895 = zext i32 %894 to i64
  %896 = add nuw nsw i64 %895, 1
  %min.iters.check1167 = icmp ult i32 %894, 3
  br i1 %min.iters.check1167, label %.lr.ph915.preheader1355, label %vector.memcheck1146

vector.memcheck1146:                              ; preds = %.lr.ph915.preheader
  %897 = shl nsw i64 %893, 3
  %scevgep1148 = getelementptr i8, ptr %scevgep1147, i64 %897
  %898 = add i32 %.3718, -2
  %899 = zext i32 %898 to i64
  %900 = add nsw i64 %893, %899
  %901 = shl nsw i64 %900, 3
  %scevgep1149 = getelementptr i8, ptr %17, i64 %901
  %scevgep1151 = getelementptr i8, ptr %scevgep1150, i64 %897
  %scevgep1153 = getelementptr i8, ptr %scevgep1152, i64 %901
  %scevgep1155 = getelementptr i8, ptr %scevgep1154, i64 %897
  %scevgep1157 = getelementptr i8, ptr %scevgep1156, i64 %901
  %bound01158 = icmp ult ptr %scevgep1148, %scevgep1153
  %bound11159 = icmp ult ptr %scevgep1151, %scevgep1149
  %found.conflict1160 = and i1 %bound01158, %bound11159
  %bound01161 = icmp ult ptr %scevgep1148, %scevgep1157
  %bound11162 = icmp ult ptr %scevgep1155, %scevgep1149
  %found.conflict1163 = and i1 %bound01161, %bound11162
  %conflict.rdx1164 = or i1 %found.conflict1160, %found.conflict1163
  br i1 %conflict.rdx1164, label %.lr.ph915.preheader1355, label %vector.ph1168

vector.ph1168:                                    ; preds = %vector.memcheck1146
  %n.vec1170 = and i64 %896, 8589934588
  %ind.end1171 = add nsw i64 %n.vec1170, %893
  br label %vector.body1173

vector.body1173:                                  ; preds = %vector.body1173, %vector.ph1168
  %index1174 = phi i64 [ 0, %vector.ph1168 ], [ %index.next1184, %vector.body1173 ]
  %offset.idx1175 = add i64 %index1174, %893
  %902 = getelementptr double, ptr %15, i64 %offset.idx1175
  %903 = getelementptr i8, ptr %902, i64 16
  %wide.load1176 = load <2 x double>, ptr %902, align 8, !tbaa !9, !alias.scope !67
  %wide.load1177 = load <2 x double>, ptr %903, align 8, !tbaa !9, !alias.scope !67
  %904 = getelementptr double, ptr %16, i64 %offset.idx1175
  %905 = getelementptr i8, ptr %904, i64 16
  %wide.load1178 = load <2 x double>, ptr %904, align 8, !tbaa !9, !alias.scope !70
  %wide.load1179 = load <2 x double>, ptr %905, align 8, !tbaa !9, !alias.scope !70
  %906 = fsub <2 x double> %wide.load1176, %wide.load1178
  %907 = fsub <2 x double> %wide.load1177, %wide.load1179
  %908 = getelementptr inbounds double, ptr %60, i64 %offset.idx1175
  %909 = getelementptr inbounds i8, ptr %908, i64 16
  %wide.load1180 = load <2 x double>, ptr %908, align 8, !tbaa !9, !alias.scope !67
  %wide.load1181 = load <2 x double>, ptr %909, align 8, !tbaa !9, !alias.scope !67
  %910 = getelementptr inbounds double, ptr %59, i64 %offset.idx1175
  %911 = getelementptr inbounds i8, ptr %910, i64 16
  %wide.load1182 = load <2 x double>, ptr %910, align 8, !tbaa !9, !alias.scope !70
  %wide.load1183 = load <2 x double>, ptr %911, align 8, !tbaa !9, !alias.scope !70
  %912 = fadd <2 x double> %wide.load1180, %wide.load1182
  %913 = fadd <2 x double> %wide.load1181, %wide.load1183
  %914 = fsub <2 x double> %906, %912
  %915 = fsub <2 x double> %907, %913
  %916 = fcmp ole <2 x double> %914, zeroinitializer
  %917 = fcmp ole <2 x double> %915, zeroinitializer
  %918 = select <2 x i1> %916, <2 x double> zeroinitializer, <2 x double> %914
  %919 = select <2 x i1> %917, <2 x double> zeroinitializer, <2 x double> %915
  %920 = getelementptr inbounds double, ptr %58, i64 %offset.idx1175
  %921 = getelementptr inbounds i8, ptr %920, i64 16
  store <2 x double> %918, ptr %920, align 8, !tbaa !9, !alias.scope !72, !noalias !74
  store <2 x double> %919, ptr %921, align 8, !tbaa !9, !alias.scope !72, !noalias !74
  %index.next1184 = add nuw i64 %index1174, 4
  %922 = icmp eq i64 %index.next1184, %n.vec1170
  br i1 %922, label %middle.block1165, label %vector.body1173, !llvm.loop !75

middle.block1165:                                 ; preds = %vector.body1173
  %cmp.n1185 = icmp eq i64 %896, %n.vec1170
  br i1 %cmp.n1185, label %._crit_edge916, label %.lr.ph915.preheader1355

.lr.ph915.preheader1355:                          ; preds = %middle.block1165, %vector.memcheck1146, %.lr.ph915.preheader
  %indvars.iv1026.ph = phi i64 [ %893, %vector.memcheck1146 ], [ %893, %.lr.ph915.preheader ], [ %ind.end1171, %middle.block1165 ]
  br label %.lr.ph915

.lr.ph915:                                        ; preds = %.lr.ph915.preheader1355, %.lr.ph915
  %indvars.iv1026 = phi i64 [ %indvars.iv.next1027, %.lr.ph915 ], [ %indvars.iv1026.ph, %.lr.ph915.preheader1355 ]
  %indvars.iv.next1027 = add nsw i64 %indvars.iv1026, 1
  %923 = getelementptr double, ptr %15, i64 %indvars.iv1026
  %924 = load double, ptr %923, align 8, !tbaa !9
  %925 = getelementptr double, ptr %16, i64 %indvars.iv1026
  %926 = load double, ptr %925, align 8, !tbaa !9
  %927 = fsub double %924, %926
  %928 = getelementptr inbounds double, ptr %60, i64 %indvars.iv1026
  %929 = load double, ptr %928, align 8, !tbaa !9
  %930 = getelementptr inbounds double, ptr %59, i64 %indvars.iv1026
  %931 = load double, ptr %930, align 8, !tbaa !9
  %932 = fadd double %929, %931
  %933 = fsub double %927, %932
  %934 = fcmp ole double %933, 0.000000e+00
  %935 = select i1 %934, double 0.000000e+00, double %933
  %936 = getelementptr inbounds double, ptr %58, i64 %indvars.iv1026
  store double %935, ptr %936, align 8, !tbaa !9
  %lftr.wideiv1029 = trunc i64 %indvars.iv.next1027 to i32
  %exitcond1030.not = icmp eq i32 %865, %lftr.wideiv1029
  br i1 %exitcond1030.not, label %._crit_edge916, label %.lr.ph915, !llvm.loop !76

._crit_edge916:                                   ; preds = %.lr.ph915, %middle.block1165, %._crit_edge911
  %937 = load double, ptr %3, align 8, !tbaa !9
  %938 = fsub double %937, %.3726876
  %939 = sext i32 %865 to i64
  %940 = getelementptr inbounds double, ptr %60, i64 %939
  %941 = load double, ptr %940, align 8, !tbaa !9
  %942 = getelementptr inbounds double, ptr %59, i64 %939
  %943 = load double, ptr %942, align 8, !tbaa !9
  %944 = fadd double %941, %943
  %945 = fsub double %938, %944
  %946 = fcmp ole double %945, 0.000000e+00
  %947 = select i1 %946, double 0.000000e+00, double %945
  %948 = getelementptr inbounds double, ptr %58, i64 %939
  store double %947, ptr %948, align 8, !tbaa !9
  br label %.loopexit817

.loopexit817:                                     ; preds = %.lr.ph930.prol.loopexit, %.lr.ph930, %731, %._crit_edge916
  %949 = add nsw i32 %.2739, 1
  br label %950

950:                                              ; preds = %227, %._crit_edge848.thread, %.loopexit817
  %.3740 = phi i32 [ %.0737938, %227 ], [ %.0737938, %._crit_edge848.thread ], [ %.2739, %.loopexit817 ]
  %.4 = phi i32 [ %.0715939, %227 ], [ 0, %._crit_edge848.thread ], [ %.3718, %.loopexit817 ]
  %.2710 = phi i32 [ %.1709, %227 ], [ %.0708942, %._crit_edge848.thread ], [ %949, %.loopexit817 ]
  %.3 = phi i32 [ %.0705943, %227 ], [ %.0705943, %._crit_edge848.thread ], [ %.2707, %.loopexit817 ]
  %.1714 = add nsw i32 %189, 1
  %indvars.iv.next1043 = add nuw nsw i64 %indvars.iv1042, 1
  %exitcond1046.not = icmp eq i64 %indvars.iv.next1043, %wide.trip.count1045
  br i1 %exitcond1046.not, label %.loopexit820, label %187, !llvm.loop !77

.loopexit820:                                     ; preds = %950, %.loopexit821, %25, %829, %821, %730, %596, %364, %358, %143, %102
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %48) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  ret void
}

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

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

declare double @dlamch_(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fmuladd.v2f64(<2 x double>, <2 x double>, <2 x double>) #5

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12, !14, !15}
!14 = !{!"llvm.loop.isvectorized", i32 1}
!15 = !{!"llvm.loop.unroll.runtime.disable"}
!16 = distinct !{!16, !12, !14}
!17 = distinct !{!17, !12}
!18 = distinct !{!18, !12}
!19 = !{!20}
!20 = distinct !{!20, !21}
!21 = distinct !{!21, !"LVerDomain"}
!22 = !{!23}
!23 = distinct !{!23, !21}
!24 = !{!25}
!25 = distinct !{!25, !21}
!26 = !{!20, !23}
!27 = distinct !{!27, !12, !14, !15}
!28 = distinct !{!28, !12, !14}
!29 = distinct !{!29, !12}
!30 = distinct !{!30, !12, !14, !15}
!31 = distinct !{!31, !12, !15, !14}
!32 = distinct !{!32, !12}
!33 = !{!34}
!34 = distinct !{!34, !35}
!35 = distinct !{!35, !"LVerDomain"}
!36 = !{!37, !38}
!37 = distinct !{!37, !35}
!38 = distinct !{!38, !35}
!39 = !{!37}
!40 = !{!38}
!41 = !{!42}
!42 = distinct !{!42, !35}
!43 = distinct !{!43, !12, !14, !15}
!44 = distinct !{!44, !12, !14}
!45 = !{!46}
!46 = distinct !{!46, !47}
!47 = distinct !{!47, !"LVerDomain"}
!48 = !{!49}
!49 = distinct !{!49, !47}
!50 = distinct !{!50, !12, !14, !15}
!51 = distinct !{!51, !12, !14}
!52 = distinct !{!52, !12, !14, !15}
!53 = distinct !{!53, !12, !14}
!54 = distinct !{!54, !12}
!55 = !{!56}
!56 = distinct !{!56, !57}
!57 = distinct !{!57, !"LVerDomain"}
!58 = !{!59}
!59 = distinct !{!59, !57}
!60 = distinct !{!60, !12, !14, !15}
!61 = distinct !{!61, !12, !14}
!62 = distinct !{!62, !12}
!63 = distinct !{!63, !12}
!64 = distinct !{!64, !12}
!65 = distinct !{!65, !12, !14, !15}
!66 = distinct !{!66, !12, !14}
!67 = !{!68}
!68 = distinct !{!68, !69}
!69 = distinct !{!69, !"LVerDomain"}
!70 = !{!71}
!71 = distinct !{!71, !69}
!72 = !{!73}
!73 = distinct !{!73, !69}
!74 = !{!68, !71}
!75 = distinct !{!75, !12, !14, !15}
!76 = distinct !{!76, !12, !14}
!77 = distinct !{!77, !12}


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