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

; 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 [5 x i8], align 1
@c_b5 = external hidden global double, align 8
@.str.1 = external hidden unnamed_addr constant [10 x i8], align 1
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local i32 @dlarrv_(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 i32, align 4
  %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 ptr, align 8
  %52 = alloca i64, align 8
  %53 = alloca i64, align 8
  %54 = alloca i64, align 8
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca i64, align 8
  %58 = alloca i64, align 8
  %59 = alloca double, align 8
  %60 = alloca double, align 8
  %61 = alloca i64, align 8
  %62 = alloca i64, align 8
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca i64, align 8
  %66 = alloca i64, align 8
  %67 = alloca i64, align 8
  %68 = alloca i64, align 8
  %69 = alloca i64, align 8
  %70 = alloca double, align 8
  %71 = alloca i64, align 8
  %72 = alloca i64, align 8
  %73 = alloca double, align 8
  %74 = alloca double, align 8
  %75 = alloca double, align 8
  %76 = alloca double, align 8
  %77 = alloca double, align 8
  %78 = alloca double, align 8
  %79 = alloca i64, align 8
  %80 = alloca double, align 8
  %81 = alloca i64, align 8
  %82 = alloca i64, align 8
  %83 = alloca double, align 8
  %84 = alloca i64, align 8
  %85 = alloca double, align 8
  %86 = alloca double, align 8
  %87 = alloca i64, align 8
  %88 = alloca i64, align 8
  %89 = alloca double, align 8
  %90 = alloca i64, align 8
  %91 = alloca i64, align 8
  %92 = alloca double, align 8
  %93 = alloca i64, align 8
  %94 = alloca double, align 8
  %95 = alloca i64, align 8
  %96 = alloca i64, align 8
  %97 = alloca double, align 8
  %98 = alloca i64, align 8
  %99 = alloca double, align 8
  %100 = alloca i64, align 8
  %101 = alloca i64, align 8
  %102 = alloca double, align 8
  %103 = alloca i64, align 8
  %104 = alloca i64, align 8
  %105 = alloca i64, align 8
  %106 = alloca double, align 8
  %107 = alloca i64, align 8
  %108 = alloca i64, align 8
  %109 = alloca i64, align 8
  %110 = alloca i64, align 8
  %111 = alloca double, align 8
  %112 = alloca double, align 8
  %113 = alloca i64, align 8
  %114 = alloca i64, align 8
  %115 = alloca i64, align 8
  %116 = alloca double, align 8
  %117 = alloca i64, align 8
  %118 = alloca i64, align 8
  %119 = alloca double, align 8
  %120 = alloca i64, align 8
  %121 = alloca double, align 8
  %122 = alloca i64, align 8
  %123 = alloca i64, align 8
  %124 = alloca i64, align 8
  %125 = alloca double, align 8
  %126 = alloca i64, align 8
  %127 = alloca i64, align 8
  %128 = alloca i64, align 8
  %129 = alloca i64, align 8
  %130 = alloca i64, align 8
  %131 = alloca i64, align 8
  %132 = alloca i64, align 8
  %133 = alloca i64, align 8
  %134 = alloca i64, align 8
  %135 = alloca i64, align 8
  %136 = alloca i64, align 8
  %137 = alloca i64, align 8
  %138 = alloca i64, align 8
  %139 = alloca i64, align 8
  %140 = alloca double, align 8
  %141 = alloca i64, align 8
  %142 = alloca i64, align 8
  %143 = alloca i64, align 8
  %144 = alloca double, align 8
  %145 = alloca double, align 8
  %146 = alloca i64, align 8
  %147 = alloca i64, align 8
  %148 = alloca i32, align 4
  store ptr %0, ptr %27, align 8, !tbaa !5
  store ptr %1, ptr %28, align 8, !tbaa !5
  store ptr %2, ptr %29, align 8, !tbaa !5
  store ptr %3, ptr %30, align 8, !tbaa !5
  store ptr %4, ptr %31, align 8, !tbaa !5
  store ptr %5, ptr %32, align 8, !tbaa !5
  store ptr %6, ptr %33, align 8, !tbaa !5
  store ptr %7, ptr %34, align 8, !tbaa !5
  store ptr %8, ptr %35, align 8, !tbaa !5
  store ptr %9, ptr %36, align 8, !tbaa !5
  store ptr %10, ptr %37, align 8, !tbaa !5
  store ptr %11, ptr %38, align 8, !tbaa !5
  store ptr %12, ptr %39, align 8, !tbaa !5
  store ptr %13, ptr %40, align 8, !tbaa !5
  store ptr %14, ptr %41, align 8, !tbaa !5
  store ptr %15, ptr %42, align 8, !tbaa !5
  store ptr %16, ptr %43, align 8, !tbaa !5
  store ptr %17, ptr %44, align 8, !tbaa !5
  store ptr %18, ptr %45, align 8, !tbaa !5
  store ptr %19, ptr %46, align 8, !tbaa !5
  store ptr %20, ptr %47, align 8, !tbaa !5
  store ptr %21, ptr %48, align 8, !tbaa !5
  store ptr %22, ptr %49, align 8, !tbaa !5
  store ptr %23, ptr %50, align 8, !tbaa !5
  store ptr %24, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr %57) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr %63) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr %72) #5
  call void @llvm.lifetime.start.p0(i64 8, 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 8, ptr %76) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.start.p0(i64 8, 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 8, 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 8, 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 8, ptr %99) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %142) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %143) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #5
  %149 = load ptr, ptr %30, align 8, !tbaa !5
  %150 = getelementptr inbounds double, ptr %149, i32 -1
  store ptr %150, ptr %30, align 8, !tbaa !5
  %151 = load ptr, ptr %31, align 8, !tbaa !5
  %152 = getelementptr inbounds double, ptr %151, i32 -1
  store ptr %152, ptr %31, align 8, !tbaa !5
  %153 = load ptr, ptr %33, align 8, !tbaa !5
  %154 = getelementptr inbounds i64, ptr %153, i32 -1
  store ptr %154, ptr %33, align 8, !tbaa !5
  %155 = load ptr, ptr %40, align 8, !tbaa !5
  %156 = getelementptr inbounds double, ptr %155, i32 -1
  store ptr %156, ptr %40, align 8, !tbaa !5
  %157 = load ptr, ptr %41, align 8, !tbaa !5
  %158 = getelementptr inbounds double, ptr %157, i32 -1
  store ptr %158, ptr %41, align 8, !tbaa !5
  %159 = load ptr, ptr %42, align 8, !tbaa !5
  %160 = getelementptr inbounds double, ptr %159, i32 -1
  store ptr %160, ptr %42, align 8, !tbaa !5
  %161 = load ptr, ptr %43, align 8, !tbaa !5
  %162 = getelementptr inbounds i64, ptr %161, i32 -1
  store ptr %162, ptr %43, align 8, !tbaa !5
  %163 = load ptr, ptr %44, align 8, !tbaa !5
  %164 = getelementptr inbounds i64, ptr %163, i32 -1
  store ptr %164, ptr %44, align 8, !tbaa !5
  %165 = load ptr, ptr %45, align 8, !tbaa !5
  %166 = getelementptr inbounds double, ptr %165, i32 -1
  store ptr %166, ptr %45, align 8, !tbaa !5
  %167 = load ptr, ptr %47, align 8, !tbaa !5
  %168 = load i64, ptr %167, align 8, !tbaa !9
  store i64 %168, ptr %52, align 8, !tbaa !9
  %169 = load i64, ptr %52, align 8, !tbaa !9
  %170 = add nsw i64 1, %169
  store i64 %170, ptr %53, align 8, !tbaa !9
  %171 = load i64, ptr %53, align 8, !tbaa !9
  %172 = load ptr, ptr %46, align 8, !tbaa !5
  %173 = sub i64 0, %171
  %174 = getelementptr inbounds double, ptr %172, i64 %173
  store ptr %174, ptr %46, align 8, !tbaa !5
  %175 = load ptr, ptr %48, align 8, !tbaa !5
  %176 = getelementptr inbounds i64, ptr %175, i32 -1
  store ptr %176, ptr %48, align 8, !tbaa !5
  %177 = load ptr, ptr %49, align 8, !tbaa !5
  %178 = getelementptr inbounds double, ptr %177, i32 -1
  store ptr %178, ptr %49, align 8, !tbaa !5
  %179 = load ptr, ptr %50, align 8, !tbaa !5
  %180 = getelementptr inbounds i64, ptr %179, i32 -1
  store ptr %180, ptr %50, align 8, !tbaa !5
  %181 = load ptr, ptr %27, align 8, !tbaa !5
  %182 = load i64, ptr %181, align 8, !tbaa !9
  %183 = add nsw i64 %182, 1
  store i64 %183, ptr %91, align 8, !tbaa !9
  %184 = load ptr, ptr %27, align 8, !tbaa !5
  %185 = load i64, ptr %184, align 8, !tbaa !9
  %186 = shl i64 %185, 1
  %187 = add nsw i64 %186, 1
  store i64 %187, ptr %110, align 8, !tbaa !9
  %188 = load ptr, ptr %27, align 8, !tbaa !5
  %189 = load i64, ptr %188, align 8, !tbaa !9
  %190 = mul nsw i64 %189, 3
  %191 = add nsw i64 %190, 1
  store i64 %191, ptr %128, align 8, !tbaa !9
  %192 = load ptr, ptr %27, align 8, !tbaa !5
  %193 = load i64, ptr %192, align 8, !tbaa !9
  %194 = mul nsw i64 %193, 12
  store i64 %194, ptr %62, align 8, !tbaa !9
  %195 = load i64, ptr %62, align 8, !tbaa !9
  store i64 %195, ptr %54, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %196

196:                                              ; preds = %204, %25
  %197 = load i64, ptr %63, align 8, !tbaa !9
  %198 = load i64, ptr %54, align 8, !tbaa !9
  %199 = icmp sle i64 %197, %198
  br i1 %199, label %200, label %207

200:                                              ; preds = %196
  %201 = load ptr, ptr %49, align 8, !tbaa !5
  %202 = load i64, ptr %63, align 8, !tbaa !9
  %203 = getelementptr inbounds double, ptr %201, i64 %202
  store double 0.000000e+00, ptr %203, align 8, !tbaa !11
  br label %204

204:                                              ; preds = %200
  %205 = load i64, ptr %63, align 8, !tbaa !9
  %206 = add nsw i64 %205, 1
  store i64 %206, ptr %63, align 8, !tbaa !9
  br label %196, !llvm.loop !13

207:                                              ; preds = %196
  store i64 0, ptr %96, align 8, !tbaa !9
  %208 = load ptr, ptr %27, align 8, !tbaa !5
  %209 = load i64, ptr %208, align 8, !tbaa !9
  store i64 %209, ptr %103, align 8, !tbaa !9
  %210 = load ptr, ptr %27, align 8, !tbaa !5
  %211 = load i64, ptr %210, align 8, !tbaa !9
  %212 = shl i64 %211, 1
  store i64 %212, ptr %104, align 8, !tbaa !9
  %213 = load ptr, ptr %27, align 8, !tbaa !5
  %214 = load i64, ptr %213, align 8, !tbaa !9
  %215 = mul nsw i64 %214, 3
  %216 = add nsw i64 %215, 1
  store i64 %216, ptr %123, align 8, !tbaa !9
  %217 = load ptr, ptr %27, align 8, !tbaa !5
  %218 = load i64, ptr %217, align 8, !tbaa !9
  %219 = mul nsw i64 %218, 7
  store i64 %219, ptr %68, align 8, !tbaa !9
  %220 = load i64, ptr %68, align 8, !tbaa !9
  store i64 %220, ptr %54, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %221

221:                                              ; preds = %229, %207
  %222 = load i64, ptr %63, align 8, !tbaa !9
  %223 = load i64, ptr %54, align 8, !tbaa !9
  %224 = icmp sle i64 %222, %223
  br i1 %224, label %225, label %232

225:                                              ; preds = %221
  %226 = load ptr, ptr %50, align 8, !tbaa !5
  %227 = load i64, ptr %63, align 8, !tbaa !9
  %228 = getelementptr inbounds i64, ptr %226, i64 %227
  store i64 0, ptr %228, align 8, !tbaa !9
  br label %229

229:                                              ; preds = %225
  %230 = load i64, ptr %63, align 8, !tbaa !9
  %231 = add nsw i64 %230, 1
  store i64 %231, ptr %63, align 8, !tbaa !9
  br label %221, !llvm.loop !15

232:                                              ; preds = %221
  store i64 1, ptr %139, align 8, !tbaa !9
  %233 = load ptr, ptr %35, align 8, !tbaa !5
  %234 = load i64, ptr %233, align 8, !tbaa !9
  %235 = icmp sgt i64 %234, 1
  br i1 %235, label %236, label %240

236:                                              ; preds = %232
  %237 = load ptr, ptr %35, align 8, !tbaa !5
  %238 = load i64, ptr %237, align 8, !tbaa !9
  %239 = sub nsw i64 %238, 1
  store i64 %239, ptr %139, align 8, !tbaa !9
  br label %240

240:                                              ; preds = %236, %232
  %241 = load ptr, ptr %34, align 8, !tbaa !5
  %242 = load i64, ptr %241, align 8, !tbaa !9
  store i64 %242, ptr %142, align 8, !tbaa !9
  %243 = load ptr, ptr %36, align 8, !tbaa !5
  %244 = load i64, ptr %243, align 8, !tbaa !9
  %245 = load ptr, ptr %34, align 8, !tbaa !5
  %246 = load i64, ptr %245, align 8, !tbaa !9
  %247 = icmp slt i64 %244, %246
  br i1 %247, label %248, label %252

248:                                              ; preds = %240
  %249 = load ptr, ptr %36, align 8, !tbaa !5
  %250 = load i64, ptr %249, align 8, !tbaa !9
  %251 = add nsw i64 %250, 1
  store i64 %251, ptr %142, align 8, !tbaa !9
  br label %252

252:                                              ; preds = %248, %240
  %253 = load i64, ptr %142, align 8, !tbaa !9
  %254 = load i64, ptr %139, align 8, !tbaa !9
  %255 = sub nsw i64 %253, %254
  %256 = add nsw i64 %255, 1
  store i64 %256, ptr %143, align 8, !tbaa !9
  %257 = load ptr, ptr %27, align 8, !tbaa !5
  %258 = load ptr, ptr %46, align 8, !tbaa !5
  %259 = load i64, ptr %139, align 8, !tbaa !9
  %260 = load i64, ptr %52, align 8, !tbaa !9
  %261 = mul nsw i64 %259, %260
  %262 = add nsw i64 %261, 1
  %263 = getelementptr inbounds double, ptr %258, i64 %262
  %264 = load ptr, ptr %47, align 8, !tbaa !5
  %265 = call i32 @dlaset_(ptr noundef @.str, ptr noundef %257, ptr noundef %143, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %263, ptr noundef %264)
  %266 = call double @dlamch_(ptr noundef @.str.1)
  store double %266, ptr %75, align 8, !tbaa !11
  %267 = load double, ptr %75, align 8, !tbaa !11
  %268 = fmul double %267, 2.000000e+00
  store double %268, ptr %102, align 8, !tbaa !11
  store i64 1, ptr %146, align 8, !tbaa !9
  %269 = load ptr, ptr %35, align 8, !tbaa !5
  %270 = load i64, ptr %269, align 8, !tbaa !9
  %271 = icmp eq i64 %270, 1
  br i1 %271, label %272, label %279

272:                                              ; preds = %252
  %273 = load ptr, ptr %36, align 8, !tbaa !5
  %274 = load i64, ptr %273, align 8, !tbaa !9
  %275 = load ptr, ptr %34, align 8, !tbaa !5
  %276 = load i64, ptr %275, align 8, !tbaa !9
  %277 = icmp eq i64 %274, %276
  br i1 %277, label %278, label %279

278:                                              ; preds = %272
  br label %286

279:                                              ; preds = %272, %252
  %280 = load double, ptr %75, align 8, !tbaa !11
  %281 = fmul double %280, 4.000000e+00
  %282 = load ptr, ptr %38, align 8, !tbaa !5
  store double %281, ptr %282, align 8, !tbaa !11
  %283 = load double, ptr %75, align 8, !tbaa !11
  %284 = fmul double %283, 4.000000e+00
  %285 = load ptr, ptr %39, align 8, !tbaa !5
  store double %284, ptr %285, align 8, !tbaa !11
  br label %286

286:                                              ; preds = %279, %278
  store i64 0, ptr %84, align 8, !tbaa !9
  store i64 1, ptr %107, align 8, !tbaa !9
  store i64 1, ptr %115, align 8, !tbaa !9
  %287 = load ptr, ptr %43, align 8, !tbaa !5
  %288 = load ptr, ptr %34, align 8, !tbaa !5
  %289 = load i64, ptr %288, align 8, !tbaa !9
  %290 = getelementptr inbounds i64, ptr %287, i64 %289
  %291 = load i64, ptr %290, align 8, !tbaa !9
  store i64 %291, ptr %54, align 8, !tbaa !9
  store i64 1, ptr %82, align 8, !tbaa !9
  br label %292

292:                                              ; preds = %1935, %286
  %293 = load i64, ptr %82, align 8, !tbaa !9
  %294 = load i64, ptr %54, align 8, !tbaa !9
  %295 = icmp sle i64 %293, %294
  br i1 %295, label %296, label %1938

296:                                              ; preds = %292
  %297 = load ptr, ptr %33, align 8, !tbaa !5
  %298 = load i64, ptr %82, align 8, !tbaa !9
  %299 = getelementptr inbounds i64, ptr %297, i64 %298
  %300 = load i64, ptr %299, align 8, !tbaa !9
  store i64 %300, ptr %81, align 8, !tbaa !9
  %301 = load ptr, ptr %31, align 8, !tbaa !5
  %302 = load i64, ptr %81, align 8, !tbaa !9
  %303 = getelementptr inbounds double, ptr %301, i64 %302
  %304 = load double, ptr %303, align 8, !tbaa !11
  store double %304, ptr %94, align 8, !tbaa !11
  %305 = load i64, ptr %115, align 8, !tbaa !9
  %306 = sub nsw i64 %305, 1
  store i64 %306, ptr %87, align 8, !tbaa !9
  br label %307

307:                                              ; preds = %320, %296
  %308 = load i64, ptr %87, align 8, !tbaa !9
  %309 = load ptr, ptr %34, align 8, !tbaa !5
  %310 = load i64, ptr %309, align 8, !tbaa !9
  %311 = icmp slt i64 %308, %310
  br i1 %311, label %312, label %324

312:                                              ; preds = %307
  %313 = load ptr, ptr %43, align 8, !tbaa !5
  %314 = load i64, ptr %87, align 8, !tbaa !9
  %315 = add nsw i64 %314, 1
  %316 = getelementptr inbounds i64, ptr %313, i64 %315
  %317 = load i64, ptr %316, align 8, !tbaa !9
  %318 = load i64, ptr %82, align 8, !tbaa !9
  %319 = icmp eq i64 %317, %318
  br i1 %319, label %320, label %323

320:                                              ; preds = %312
  %321 = load i64, ptr %87, align 8, !tbaa !9
  %322 = add nsw i64 %321, 1
  store i64 %322, ptr %87, align 8, !tbaa !9
  br label %307

323:                                              ; preds = %312
  br label %324

324:                                              ; preds = %323, %307
  %325 = load i64, ptr %87, align 8, !tbaa !9
  %326 = load i64, ptr %115, align 8, !tbaa !9
  %327 = icmp slt i64 %325, %326
  br i1 %327, label %328, label %331

328:                                              ; preds = %324
  %329 = load i64, ptr %81, align 8, !tbaa !9
  %330 = add nsw i64 %329, 1
  store i64 %330, ptr %107, align 8, !tbaa !9
  br label %1934

331:                                              ; preds = %324
  %332 = load i64, ptr %87, align 8, !tbaa !9
  %333 = load ptr, ptr %35, align 8, !tbaa !5
  %334 = load i64, ptr %333, align 8, !tbaa !9
  %335 = icmp slt i64 %332, %334
  br i1 %335, label %341, label %336

336:                                              ; preds = %331
  %337 = load i64, ptr %115, align 8, !tbaa !9
  %338 = load ptr, ptr %36, align 8, !tbaa !5
  %339 = load i64, ptr %338, align 8, !tbaa !9
  %340 = icmp sgt i64 %337, %339
  br i1 %340, label %341, label %346

341:                                              ; preds = %336, %331
  %342 = load i64, ptr %81, align 8, !tbaa !9
  %343 = add nsw i64 %342, 1
  store i64 %343, ptr %107, align 8, !tbaa !9
  %344 = load i64, ptr %87, align 8, !tbaa !9
  %345 = add nsw i64 %344, 1
  store i64 %345, ptr %115, align 8, !tbaa !9
  br label %1934

346:                                              ; preds = %336
  br label %347

347:                                              ; preds = %346
  %348 = load ptr, ptr %45, align 8, !tbaa !5
  %349 = load i64, ptr %107, align 8, !tbaa !9
  %350 = shl i64 %349, 1
  %351 = sub nsw i64 %350, 1
  %352 = getelementptr inbounds double, ptr %348, i64 %351
  %353 = load double, ptr %352, align 8, !tbaa !11
  store double %353, ptr %70, align 8, !tbaa !11
  %354 = load ptr, ptr %45, align 8, !tbaa !5
  %355 = load i64, ptr %107, align 8, !tbaa !9
  %356 = mul nsw i64 %355, 2
  %357 = getelementptr inbounds double, ptr %354, i64 %356
  %358 = load double, ptr %357, align 8, !tbaa !11
  store double %358, ptr %73, align 8, !tbaa !11
  %359 = load i64, ptr %81, align 8, !tbaa !9
  store i64 %359, ptr %55, align 8, !tbaa !9
  %360 = load i64, ptr %107, align 8, !tbaa !9
  %361 = add nsw i64 %360, 1
  store i64 %361, ptr %63, align 8, !tbaa !9
  br label %362

362:                                              ; preds = %396, %347
  %363 = load i64, ptr %63, align 8, !tbaa !9
  %364 = load i64, ptr %55, align 8, !tbaa !9
  %365 = icmp sle i64 %363, %364
  br i1 %365, label %366, label %399

366:                                              ; preds = %362
  %367 = load ptr, ptr %45, align 8, !tbaa !5
  %368 = load i64, ptr %63, align 8, !tbaa !9
  %369 = shl i64 %368, 1
  %370 = sub nsw i64 %369, 1
  %371 = getelementptr inbounds double, ptr %367, i64 %370
  %372 = load double, ptr %371, align 8, !tbaa !11
  store double %372, ptr %59, align 8, !tbaa !11
  %373 = load double, ptr %59, align 8, !tbaa !11
  %374 = load double, ptr %70, align 8, !tbaa !11
  %375 = fcmp ole double %373, %374
  br i1 %375, label %376, label %378

376:                                              ; preds = %366
  %377 = load double, ptr %59, align 8, !tbaa !11
  br label %380

378:                                              ; preds = %366
  %379 = load double, ptr %70, align 8, !tbaa !11
  br label %380

380:                                              ; preds = %378, %376
  %381 = phi double [ %377, %376 ], [ %379, %378 ]
  store double %381, ptr %70, align 8, !tbaa !11
  %382 = load ptr, ptr %45, align 8, !tbaa !5
  %383 = load i64, ptr %63, align 8, !tbaa !9
  %384 = mul nsw i64 %383, 2
  %385 = getelementptr inbounds double, ptr %382, i64 %384
  %386 = load double, ptr %385, align 8, !tbaa !11
  store double %386, ptr %59, align 8, !tbaa !11
  %387 = load double, ptr %59, align 8, !tbaa !11
  %388 = load double, ptr %73, align 8, !tbaa !11
  %389 = fcmp oge double %387, %388
  br i1 %389, label %390, label %392

390:                                              ; preds = %380
  %391 = load double, ptr %59, align 8, !tbaa !11
  br label %394

392:                                              ; preds = %380
  %393 = load double, ptr %73, align 8, !tbaa !11
  br label %394

394:                                              ; preds = %392, %390
  %395 = phi double [ %391, %390 ], [ %393, %392 ]
  store double %395, ptr %73, align 8, !tbaa !11
  br label %396

396:                                              ; preds = %394
  %397 = load i64, ptr %63, align 8, !tbaa !9
  %398 = add nsw i64 %397, 1
  store i64 %398, ptr %63, align 8, !tbaa !9
  br label %362, !llvm.loop !16

399:                                              ; preds = %362
  %400 = load double, ptr %73, align 8, !tbaa !11
  %401 = load double, ptr %70, align 8, !tbaa !11
  %402 = fsub double %400, %401
  store double %402, ptr %116, align 8, !tbaa !11
  %403 = load i64, ptr %107, align 8, !tbaa !9
  %404 = sub nsw i64 %403, 1
  store i64 %404, ptr %113, align 8, !tbaa !9
  %405 = load i64, ptr %81, align 8, !tbaa !9
  %406 = load i64, ptr %107, align 8, !tbaa !9
  %407 = sub nsw i64 %405, %406
  %408 = add nsw i64 %407, 1
  store i64 %408, ptr %72, align 8, !tbaa !9
  %409 = load i64, ptr %87, align 8, !tbaa !9
  %410 = load i64, ptr %115, align 8, !tbaa !9
  %411 = sub nsw i64 %409, %410
  %412 = add nsw i64 %411, 1
  store i64 %412, ptr %71, align 8, !tbaa !9
  %413 = load i64, ptr %107, align 8, !tbaa !9
  %414 = load i64, ptr %81, align 8, !tbaa !9
  %415 = icmp eq i64 %413, %414
  br i1 %415, label %416, label %454

416:                                              ; preds = %399
  %417 = load i64, ptr %84, align 8, !tbaa !9
  %418 = add nsw i64 %417, 1
  store i64 %418, ptr %84, align 8, !tbaa !9
  %419 = load ptr, ptr %46, align 8, !tbaa !5
  %420 = load i64, ptr %107, align 8, !tbaa !9
  %421 = load i64, ptr %115, align 8, !tbaa !9
  %422 = load i64, ptr %52, align 8, !tbaa !9
  %423 = mul nsw i64 %421, %422
  %424 = add nsw i64 %420, %423
  %425 = getelementptr inbounds double, ptr %419, i64 %424
  store double 1.000000e+00, ptr %425, align 8, !tbaa !11
  %426 = load i64, ptr %107, align 8, !tbaa !9
  %427 = load ptr, ptr %48, align 8, !tbaa !5
  %428 = load i64, ptr %115, align 8, !tbaa !9
  %429 = shl i64 %428, 1
  %430 = sub nsw i64 %429, 1
  %431 = getelementptr inbounds i64, ptr %427, i64 %430
  store i64 %426, ptr %431, align 8, !tbaa !9
  %432 = load i64, ptr %107, align 8, !tbaa !9
  %433 = load ptr, ptr %48, align 8, !tbaa !5
  %434 = load i64, ptr %115, align 8, !tbaa !9
  %435 = mul nsw i64 %434, 2
  %436 = getelementptr inbounds i64, ptr %433, i64 %435
  store i64 %432, ptr %436, align 8, !tbaa !9
  %437 = load double, ptr %94, align 8, !tbaa !11
  %438 = load ptr, ptr %40, align 8, !tbaa !5
  %439 = load i64, ptr %115, align 8, !tbaa !9
  %440 = getelementptr inbounds double, ptr %438, i64 %439
  %441 = load double, ptr %440, align 8, !tbaa !11
  %442 = fadd double %441, %437
  store double %442, ptr %440, align 8, !tbaa !11
  %443 = load ptr, ptr %40, align 8, !tbaa !5
  %444 = load i64, ptr %115, align 8, !tbaa !9
  %445 = getelementptr inbounds double, ptr %443, i64 %444
  %446 = load double, ptr %445, align 8, !tbaa !11
  %447 = load ptr, ptr %49, align 8, !tbaa !5
  %448 = load i64, ptr %115, align 8, !tbaa !9
  %449 = getelementptr inbounds double, ptr %447, i64 %448
  store double %446, ptr %449, align 8, !tbaa !11
  %450 = load i64, ptr %81, align 8, !tbaa !9
  %451 = add nsw i64 %450, 1
  store i64 %451, ptr %107, align 8, !tbaa !9
  %452 = load i64, ptr %115, align 8, !tbaa !9
  %453 = add nsw i64 %452, 1
  store i64 %453, ptr %115, align 8, !tbaa !9
  br label %1934

454:                                              ; preds = %399
  %455 = load ptr, ptr %40, align 8, !tbaa !5
  %456 = load i64, ptr %115, align 8, !tbaa !9
  %457 = getelementptr inbounds double, ptr %455, i64 %456
  %458 = load ptr, ptr %49, align 8, !tbaa !5
  %459 = load i64, ptr %115, align 8, !tbaa !9
  %460 = getelementptr inbounds double, ptr %458, i64 %459
  %461 = call i32 @f2c_dcopy(ptr noundef %71, ptr noundef %457, ptr noundef @c__1, ptr noundef %460, ptr noundef @c__1)
  %462 = load i64, ptr %71, align 8, !tbaa !9
  store i64 %462, ptr %55, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %463

463:                                              ; preds = %477, %454
  %464 = load i64, ptr %63, align 8, !tbaa !9
  %465 = load i64, ptr %55, align 8, !tbaa !9
  %466 = icmp sle i64 %464, %465
  br i1 %466, label %467, label %480

467:                                              ; preds = %463
  %468 = load double, ptr %94, align 8, !tbaa !11
  %469 = load ptr, ptr %40, align 8, !tbaa !5
  %470 = load i64, ptr %115, align 8, !tbaa !9
  %471 = load i64, ptr %63, align 8, !tbaa !9
  %472 = add nsw i64 %470, %471
  %473 = sub nsw i64 %472, 1
  %474 = getelementptr inbounds double, ptr %469, i64 %473
  %475 = load double, ptr %474, align 8, !tbaa !11
  %476 = fadd double %475, %468
  store double %476, ptr %474, align 8, !tbaa !11
  br label %477

477:                                              ; preds = %467
  %478 = load i64, ptr %63, align 8, !tbaa !9
  %479 = add nsw i64 %478, 1
  store i64 %479, ptr %63, align 8, !tbaa !9
  br label %463, !llvm.loop !17

480:                                              ; preds = %463
  store i64 0, ptr %120, align 8, !tbaa !9
  store i64 1, ptr %134, align 8, !tbaa !9
  store i64 1, ptr %100, align 8, !tbaa !9
  %481 = load ptr, ptr %50, align 8, !tbaa !5
  %482 = load i64, ptr %103, align 8, !tbaa !9
  %483 = add nsw i64 %482, 1
  %484 = getelementptr inbounds i64, ptr %481, i64 %483
  store i64 1, ptr %484, align 8, !tbaa !9
  %485 = load i64, ptr %71, align 8, !tbaa !9
  %486 = load ptr, ptr %50, align 8, !tbaa !5
  %487 = load i64, ptr %103, align 8, !tbaa !9
  %488 = add nsw i64 %487, 2
  %489 = getelementptr inbounds i64, ptr %486, i64 %488
  store i64 %485, ptr %489, align 8, !tbaa !9
  store i64 0, ptr %93, align 8, !tbaa !9
  br label %490

490:                                              ; preds = %1926, %480
  %491 = load i64, ptr %93, align 8, !tbaa !9
  %492 = load i64, ptr %71, align 8, !tbaa !9
  %493 = icmp slt i64 %491, %492
  br i1 %493, label %494, label %1929

494:                                              ; preds = %490
  %495 = load i64, ptr %120, align 8, !tbaa !9
  %496 = load ptr, ptr %34, align 8, !tbaa !5
  %497 = load i64, ptr %496, align 8, !tbaa !9
  %498 = icmp sgt i64 %495, %497
  br i1 %498, label %499, label %501

499:                                              ; preds = %494
  %500 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -2, ptr %500, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %148, align 4
  br label %1939

501:                                              ; preds = %494
  %502 = load i64, ptr %100, align 8, !tbaa !9
  store i64 %502, ptr %114, align 8, !tbaa !9
  store i64 0, ptr %100, align 8, !tbaa !9
  %503 = load i64, ptr %134, align 8, !tbaa !9
  %504 = sub nsw i64 1, %503
  store i64 %504, ptr %134, align 8, !tbaa !9
  %505 = load i64, ptr %134, align 8, !tbaa !9
  %506 = icmp eq i64 %505, 0
  br i1 %506, label %507, label %510

507:                                              ; preds = %501
  %508 = load i64, ptr %103, align 8, !tbaa !9
  store i64 %508, ptr %118, align 8, !tbaa !9
  %509 = load i64, ptr %104, align 8, !tbaa !9
  store i64 %509, ptr %126, align 8, !tbaa !9
  br label %513

510:                                              ; preds = %501
  %511 = load i64, ptr %104, align 8, !tbaa !9
  store i64 %511, ptr %118, align 8, !tbaa !9
  %512 = load i64, ptr %103, align 8, !tbaa !9
  store i64 %512, ptr %126, align 8, !tbaa !9
  br label %513

513:                                              ; preds = %510, %507
  %514 = load i64, ptr %114, align 8, !tbaa !9
  store i64 %514, ptr %55, align 8, !tbaa !9
  store i64 1, ptr %63, align 8, !tbaa !9
  br label %515

515:                                              ; preds = %1923, %513
  %516 = load i64, ptr %63, align 8, !tbaa !9
  %517 = load i64, ptr %55, align 8, !tbaa !9
  %518 = icmp sle i64 %516, %517
  br i1 %518, label %519, label %1926

519:                                              ; preds = %515
  %520 = load i64, ptr %118, align 8, !tbaa !9
  %521 = load i64, ptr %63, align 8, !tbaa !9
  %522 = shl i64 %521, 1
  %523 = add nsw i64 %520, %522
  store i64 %523, ptr %64, align 8, !tbaa !9
  %524 = load ptr, ptr %50, align 8, !tbaa !5
  %525 = load i64, ptr %64, align 8, !tbaa !9
  %526 = sub nsw i64 %525, 1
  %527 = getelementptr inbounds i64, ptr %524, i64 %526
  %528 = load i64, ptr %527, align 8, !tbaa !9
  store i64 %528, ptr %127, align 8, !tbaa !9
  %529 = load ptr, ptr %50, align 8, !tbaa !5
  %530 = load i64, ptr %64, align 8, !tbaa !9
  %531 = getelementptr inbounds i64, ptr %529, i64 %530
  %532 = load i64, ptr %531, align 8, !tbaa !9
  store i64 %532, ptr %130, align 8, !tbaa !9
  %533 = load i64, ptr %120, align 8, !tbaa !9
  %534 = icmp sgt i64 %533, 0
  br i1 %534, label %535, label %624

535:                                              ; preds = %519
  %536 = load ptr, ptr %35, align 8, !tbaa !5
  %537 = load i64, ptr %536, align 8, !tbaa !9
  %538 = icmp eq i64 %537, 1
  br i1 %538, label %539, label %550

539:                                              ; preds = %535
  %540 = load ptr, ptr %36, align 8, !tbaa !5
  %541 = load i64, ptr %540, align 8, !tbaa !9
  %542 = load ptr, ptr %34, align 8, !tbaa !5
  %543 = load i64, ptr %542, align 8, !tbaa !9
  %544 = icmp eq i64 %541, %543
  br i1 %544, label %545, label %550

545:                                              ; preds = %539
  %546 = load i64, ptr %115, align 8, !tbaa !9
  %547 = load i64, ptr %127, align 8, !tbaa !9
  %548 = add nsw i64 %546, %547
  %549 = sub nsw i64 %548, 1
  store i64 %549, ptr %64, align 8, !tbaa !9
  br label %580

550:                                              ; preds = %539, %535
  %551 = load i64, ptr %115, align 8, !tbaa !9
  %552 = load i64, ptr %127, align 8, !tbaa !9
  %553 = add nsw i64 %551, %552
  %554 = sub nsw i64 %553, 1
  %555 = load ptr, ptr %35, align 8, !tbaa !5
  %556 = load i64, ptr %555, align 8, !tbaa !9
  %557 = icmp slt i64 %554, %556
  br i1 %557, label %558, label %562

558:                                              ; preds = %550
  %559 = load ptr, ptr %35, align 8, !tbaa !5
  %560 = load i64, ptr %559, align 8, !tbaa !9
  %561 = sub nsw i64 %560, 1
  store i64 %561, ptr %64, align 8, !tbaa !9
  br label %579

562:                                              ; preds = %550
  %563 = load i64, ptr %115, align 8, !tbaa !9
  %564 = load i64, ptr %127, align 8, !tbaa !9
  %565 = add nsw i64 %563, %564
  %566 = sub nsw i64 %565, 1
  %567 = load ptr, ptr %36, align 8, !tbaa !5
  %568 = load i64, ptr %567, align 8, !tbaa !9
  %569 = icmp sgt i64 %566, %568
  br i1 %569, label %570, label %573

570:                                              ; preds = %562
  %571 = load ptr, ptr %36, align 8, !tbaa !5
  %572 = load i64, ptr %571, align 8, !tbaa !9
  store i64 %572, ptr %64, align 8, !tbaa !9
  br label %578

573:                                              ; preds = %562
  %574 = load i64, ptr %115, align 8, !tbaa !9
  %575 = load i64, ptr %127, align 8, !tbaa !9
  %576 = add nsw i64 %574, %575
  %577 = sub nsw i64 %576, 1
  store i64 %577, ptr %64, align 8, !tbaa !9
  br label %578

578:                                              ; preds = %573, %570
  br label %579

579:                                              ; preds = %578, %558
  br label %580

580:                                              ; preds = %579, %545
  %581 = load ptr, ptr %46, align 8, !tbaa !5
  %582 = load i64, ptr %107, align 8, !tbaa !9
  %583 = load i64, ptr %64, align 8, !tbaa !9
  %584 = load i64, ptr %52, align 8, !tbaa !9
  %585 = mul nsw i64 %583, %584
  %586 = add nsw i64 %582, %585
  %587 = getelementptr inbounds double, ptr %581, i64 %586
  %588 = load ptr, ptr %30, align 8, !tbaa !5
  %589 = load i64, ptr %107, align 8, !tbaa !9
  %590 = getelementptr inbounds double, ptr %588, i64 %589
  %591 = call i32 @f2c_dcopy(ptr noundef %72, ptr noundef %587, ptr noundef @c__1, ptr noundef %590, ptr noundef @c__1)
  %592 = load i64, ptr %72, align 8, !tbaa !9
  %593 = sub nsw i64 %592, 1
  store i64 %593, ptr %56, align 8, !tbaa !9
  %594 = load ptr, ptr %46, align 8, !tbaa !5
  %595 = load i64, ptr %107, align 8, !tbaa !9
  %596 = load i64, ptr %64, align 8, !tbaa !9
  %597 = add nsw i64 %596, 1
  %598 = load i64, ptr %52, align 8, !tbaa !9
  %599 = mul nsw i64 %597, %598
  %600 = add nsw i64 %595, %599
  %601 = getelementptr inbounds double, ptr %594, i64 %600
  %602 = load ptr, ptr %31, align 8, !tbaa !5
  %603 = load i64, ptr %107, align 8, !tbaa !9
  %604 = getelementptr inbounds double, ptr %602, i64 %603
  %605 = call i32 @f2c_dcopy(ptr noundef %56, ptr noundef %601, ptr noundef @c__1, ptr noundef %604, ptr noundef @c__1)
  %606 = load ptr, ptr %46, align 8, !tbaa !5
  %607 = load i64, ptr %81, align 8, !tbaa !9
  %608 = load i64, ptr %64, align 8, !tbaa !9
  %609 = add nsw i64 %608, 1
  %610 = load i64, ptr %52, align 8, !tbaa !9
  %611 = mul nsw i64 %609, %610
  %612 = add nsw i64 %607, %611
  %613 = getelementptr inbounds double, ptr %606, i64 %612
  %614 = load double, ptr %613, align 8, !tbaa !11
  store double %614, ptr %94, align 8, !tbaa !11
  %615 = load ptr, ptr %46, align 8, !tbaa !5
  %616 = load i64, ptr %107, align 8, !tbaa !9
  %617 = load i64, ptr %64, align 8, !tbaa !9
  %618 = load i64, ptr %52, align 8, !tbaa !9
  %619 = mul nsw i64 %617, %618
  %620 = add nsw i64 %616, %619
  %621 = getelementptr inbounds double, ptr %615, i64 %620
  %622 = load ptr, ptr %47, align 8, !tbaa !5
  %623 = call i32 @dlaset_(ptr noundef @.str, ptr noundef %72, ptr noundef @c__2, ptr noundef @c_b5, ptr noundef @c_b5, ptr noundef %621, ptr noundef %622)
  br label %624

624:                                              ; preds = %580, %519
  %625 = load i64, ptr %81, align 8, !tbaa !9
  %626 = sub nsw i64 %625, 1
  store i64 %626, ptr %56, align 8, !tbaa !9
  %627 = load i64, ptr %107, align 8, !tbaa !9
  store i64 %627, ptr %64, align 8, !tbaa !9
  br label %628

628:                                              ; preds = %661, %624
  %629 = load i64, ptr %64, align 8, !tbaa !9
  %630 = load i64, ptr %56, align 8, !tbaa !9
  %631 = icmp sle i64 %629, %630
  br i1 %631, label %632, label %664

632:                                              ; preds = %628
  %633 = load ptr, ptr %30, align 8, !tbaa !5
  %634 = load i64, ptr %64, align 8, !tbaa !9
  %635 = getelementptr inbounds double, ptr %633, i64 %634
  %636 = load double, ptr %635, align 8, !tbaa !11
  %637 = load ptr, ptr %31, align 8, !tbaa !5
  %638 = load i64, ptr %64, align 8, !tbaa !9
  %639 = getelementptr inbounds double, ptr %637, i64 %638
  %640 = load double, ptr %639, align 8, !tbaa !11
  %641 = fmul double %636, %640
  store double %641, ptr %78, align 8, !tbaa !11
  %642 = load double, ptr %78, align 8, !tbaa !11
  %643 = load ptr, ptr %49, align 8, !tbaa !5
  %644 = load i64, ptr %91, align 8, !tbaa !9
  %645 = sub nsw i64 %644, 1
  %646 = load i64, ptr %64, align 8, !tbaa !9
  %647 = add nsw i64 %645, %646
  %648 = getelementptr inbounds double, ptr %643, i64 %647
  store double %642, ptr %648, align 8, !tbaa !11
  %649 = load double, ptr %78, align 8, !tbaa !11
  %650 = load ptr, ptr %31, align 8, !tbaa !5
  %651 = load i64, ptr %64, align 8, !tbaa !9
  %652 = getelementptr inbounds double, ptr %650, i64 %651
  %653 = load double, ptr %652, align 8, !tbaa !11
  %654 = fmul double %649, %653
  %655 = load ptr, ptr %49, align 8, !tbaa !5
  %656 = load i64, ptr %110, align 8, !tbaa !9
  %657 = sub nsw i64 %656, 1
  %658 = load i64, ptr %64, align 8, !tbaa !9
  %659 = add nsw i64 %657, %658
  %660 = getelementptr inbounds double, ptr %655, i64 %659
  store double %654, ptr %660, align 8, !tbaa !11
  br label %661

661:                                              ; preds = %632
  %662 = load i64, ptr %64, align 8, !tbaa !9
  %663 = add nsw i64 %662, 1
  store i64 %663, ptr %64, align 8, !tbaa !9
  br label %628, !llvm.loop !18

664:                                              ; preds = %628
  %665 = load i64, ptr %120, align 8, !tbaa !9
  %666 = icmp sgt i64 %665, 0
  br i1 %666, label %667, label %862

667:                                              ; preds = %664
  %668 = load ptr, ptr %44, align 8, !tbaa !5
  %669 = load i64, ptr %115, align 8, !tbaa !9
  %670 = sub nsw i64 %669, 1
  %671 = load i64, ptr %127, align 8, !tbaa !9
  %672 = add nsw i64 %670, %671
  %673 = getelementptr inbounds i64, ptr %668, i64 %672
  %674 = load i64, ptr %673, align 8, !tbaa !9
  store i64 %674, ptr %66, align 8, !tbaa !9
  %675 = load ptr, ptr %44, align 8, !tbaa !5
  %676 = load i64, ptr %115, align 8, !tbaa !9
  %677 = sub nsw i64 %676, 1
  %678 = load i64, ptr %130, align 8, !tbaa !9
  %679 = add nsw i64 %677, %678
  %680 = getelementptr inbounds i64, ptr %675, i64 %679
  %681 = load i64, ptr %680, align 8, !tbaa !9
  store i64 %681, ptr %67, align 8, !tbaa !9
  %682 = load ptr, ptr %44, align 8, !tbaa !5
  %683 = load i64, ptr %115, align 8, !tbaa !9
  %684 = getelementptr inbounds i64, ptr %682, i64 %683
  %685 = load i64, ptr %684, align 8, !tbaa !9
  %686 = sub nsw i64 %685, 1
  store i64 %686, ptr %124, align 8, !tbaa !9
  %687 = load ptr, ptr %30, align 8, !tbaa !5
  %688 = load i64, ptr %107, align 8, !tbaa !9
  %689 = getelementptr inbounds double, ptr %687, i64 %688
  %690 = load ptr, ptr %49, align 8, !tbaa !5
  %691 = load i64, ptr %110, align 8, !tbaa !9
  %692 = load i64, ptr %107, align 8, !tbaa !9
  %693 = add nsw i64 %691, %692
  %694 = sub nsw i64 %693, 1
  %695 = getelementptr inbounds double, ptr %690, i64 %694
  %696 = load ptr, ptr %38, align 8, !tbaa !5
  %697 = load ptr, ptr %39, align 8, !tbaa !5
  %698 = load ptr, ptr %49, align 8, !tbaa !5
  %699 = load i64, ptr %115, align 8, !tbaa !9
  %700 = getelementptr inbounds double, ptr %698, i64 %699
  %701 = load ptr, ptr %42, align 8, !tbaa !5
  %702 = load i64, ptr %115, align 8, !tbaa !9
  %703 = getelementptr inbounds double, ptr %701, i64 %702
  %704 = load ptr, ptr %41, align 8, !tbaa !5
  %705 = load i64, ptr %115, align 8, !tbaa !9
  %706 = getelementptr inbounds double, ptr %704, i64 %705
  %707 = load ptr, ptr %49, align 8, !tbaa !5
  %708 = load i64, ptr %128, align 8, !tbaa !9
  %709 = getelementptr inbounds double, ptr %707, i64 %708
  %710 = load ptr, ptr %50, align 8, !tbaa !5
  %711 = load i64, ptr %123, align 8, !tbaa !9
  %712 = getelementptr inbounds i64, ptr %710, i64 %711
  %713 = load ptr, ptr %32, align 8, !tbaa !5
  %714 = call i32 @dlarrb_(ptr noundef %72, ptr noundef %689, ptr noundef %695, ptr noundef %66, ptr noundef %67, ptr noundef %696, ptr noundef %697, ptr noundef %124, ptr noundef %700, ptr noundef %703, ptr noundef %706, ptr noundef %709, ptr noundef %712, ptr noundef %713, ptr noundef %116, ptr noundef %72, ptr noundef %95)
  %715 = load i64, ptr %95, align 8, !tbaa !9
  %716 = icmp ne i64 %715, 0
  br i1 %716, label %717, label %719

717:                                              ; preds = %667
  %718 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -1, ptr %718, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %148, align 4
  br label %1939

719:                                              ; preds = %667
  %720 = load i64, ptr %127, align 8, !tbaa !9
  %721 = icmp sgt i64 %720, 1
  br i1 %721, label %722, label %776

722:                                              ; preds = %719
  %723 = load ptr, ptr %42, align 8, !tbaa !5
  %724 = load i64, ptr %115, align 8, !tbaa !9
  %725 = load i64, ptr %127, align 8, !tbaa !9
  %726 = add nsw i64 %724, %725
  %727 = sub nsw i64 %726, 2
  %728 = getelementptr inbounds double, ptr %723, i64 %727
  %729 = load double, ptr %728, align 8, !tbaa !11
  store double %729, ptr %59, align 8, !tbaa !11
  %730 = load ptr, ptr %40, align 8, !tbaa !5
  %731 = load i64, ptr %115, align 8, !tbaa !9
  %732 = load i64, ptr %127, align 8, !tbaa !9
  %733 = add nsw i64 %731, %732
  %734 = sub nsw i64 %733, 1
  %735 = getelementptr inbounds double, ptr %730, i64 %734
  %736 = load double, ptr %735, align 8, !tbaa !11
  %737 = load ptr, ptr %41, align 8, !tbaa !5
  %738 = load i64, ptr %115, align 8, !tbaa !9
  %739 = load i64, ptr %127, align 8, !tbaa !9
  %740 = add nsw i64 %738, %739
  %741 = sub nsw i64 %740, 1
  %742 = getelementptr inbounds double, ptr %737, i64 %741
  %743 = load double, ptr %742, align 8, !tbaa !11
  %744 = fsub double %736, %743
  %745 = load ptr, ptr %40, align 8, !tbaa !5
  %746 = load i64, ptr %115, align 8, !tbaa !9
  %747 = load i64, ptr %127, align 8, !tbaa !9
  %748 = add nsw i64 %746, %747
  %749 = sub nsw i64 %748, 2
  %750 = getelementptr inbounds double, ptr %745, i64 %749
  %751 = load double, ptr %750, align 8, !tbaa !11
  %752 = fsub double %744, %751
  %753 = load ptr, ptr %41, align 8, !tbaa !5
  %754 = load i64, ptr %115, align 8, !tbaa !9
  %755 = load i64, ptr %127, align 8, !tbaa !9
  %756 = add nsw i64 %754, %755
  %757 = sub nsw i64 %756, 2
  %758 = getelementptr inbounds double, ptr %753, i64 %757
  %759 = load double, ptr %758, align 8, !tbaa !11
  %760 = fsub double %752, %759
  store double %760, ptr %60, align 8, !tbaa !11
  %761 = load double, ptr %59, align 8, !tbaa !11
  %762 = load double, ptr %60, align 8, !tbaa !11
  %763 = fcmp oge double %761, %762
  br i1 %763, label %764, label %766

764:                                              ; preds = %722
  %765 = load double, ptr %59, align 8, !tbaa !11
  br label %768

766:                                              ; preds = %722
  %767 = load double, ptr %60, align 8, !tbaa !11
  br label %768

768:                                              ; preds = %766, %764
  %769 = phi double [ %765, %764 ], [ %767, %766 ]
  %770 = load ptr, ptr %42, align 8, !tbaa !5
  %771 = load i64, ptr %115, align 8, !tbaa !9
  %772 = load i64, ptr %127, align 8, !tbaa !9
  %773 = add nsw i64 %771, %772
  %774 = sub nsw i64 %773, 2
  %775 = getelementptr inbounds double, ptr %770, i64 %774
  store double %769, ptr %775, align 8, !tbaa !11
  br label %776

776:                                              ; preds = %768, %719
  %777 = load i64, ptr %115, align 8, !tbaa !9
  %778 = load i64, ptr %130, align 8, !tbaa !9
  %779 = add nsw i64 %777, %778
  %780 = sub nsw i64 %779, 1
  %781 = load i64, ptr %87, align 8, !tbaa !9
  %782 = icmp slt i64 %780, %781
  br i1 %782, label %783, label %835

783:                                              ; preds = %776
  %784 = load ptr, ptr %42, align 8, !tbaa !5
  %785 = load i64, ptr %115, align 8, !tbaa !9
  %786 = load i64, ptr %130, align 8, !tbaa !9
  %787 = add nsw i64 %785, %786
  %788 = sub nsw i64 %787, 1
  %789 = getelementptr inbounds double, ptr %784, i64 %788
  %790 = load double, ptr %789, align 8, !tbaa !11
  store double %790, ptr %59, align 8, !tbaa !11
  %791 = load ptr, ptr %40, align 8, !tbaa !5
  %792 = load i64, ptr %115, align 8, !tbaa !9
  %793 = load i64, ptr %130, align 8, !tbaa !9
  %794 = add nsw i64 %792, %793
  %795 = getelementptr inbounds double, ptr %791, i64 %794
  %796 = load double, ptr %795, align 8, !tbaa !11
  %797 = load ptr, ptr %41, align 8, !tbaa !5
  %798 = load i64, ptr %115, align 8, !tbaa !9
  %799 = load i64, ptr %130, align 8, !tbaa !9
  %800 = add nsw i64 %798, %799
  %801 = getelementptr inbounds double, ptr %797, i64 %800
  %802 = load double, ptr %801, align 8, !tbaa !11
  %803 = fsub double %796, %802
  %804 = load ptr, ptr %40, align 8, !tbaa !5
  %805 = load i64, ptr %115, align 8, !tbaa !9
  %806 = load i64, ptr %130, align 8, !tbaa !9
  %807 = add nsw i64 %805, %806
  %808 = sub nsw i64 %807, 1
  %809 = getelementptr inbounds double, ptr %804, i64 %808
  %810 = load double, ptr %809, align 8, !tbaa !11
  %811 = fsub double %803, %810
  %812 = load ptr, ptr %41, align 8, !tbaa !5
  %813 = load i64, ptr %115, align 8, !tbaa !9
  %814 = load i64, ptr %130, align 8, !tbaa !9
  %815 = add nsw i64 %813, %814
  %816 = sub nsw i64 %815, 1
  %817 = getelementptr inbounds double, ptr %812, i64 %816
  %818 = load double, ptr %817, align 8, !tbaa !11
  %819 = fsub double %811, %818
  store double %819, ptr %60, align 8, !tbaa !11
  %820 = load double, ptr %59, align 8, !tbaa !11
  %821 = load double, ptr %60, align 8, !tbaa !11
  %822 = fcmp oge double %820, %821
  br i1 %822, label %823, label %825

823:                                              ; preds = %783
  %824 = load double, ptr %59, align 8, !tbaa !11
  br label %827

825:                                              ; preds = %783
  %826 = load double, ptr %60, align 8, !tbaa !11
  br label %827

827:                                              ; preds = %825, %823
  %828 = phi double [ %824, %823 ], [ %826, %825 ]
  %829 = load ptr, ptr %42, align 8, !tbaa !5
  %830 = load i64, ptr %115, align 8, !tbaa !9
  %831 = load i64, ptr %130, align 8, !tbaa !9
  %832 = add nsw i64 %830, %831
  %833 = sub nsw i64 %832, 1
  %834 = getelementptr inbounds double, ptr %829, i64 %833
  store double %828, ptr %834, align 8, !tbaa !11
  br label %835

835:                                              ; preds = %827, %776
  %836 = load i64, ptr %130, align 8, !tbaa !9
  store i64 %836, ptr %56, align 8, !tbaa !9
  %837 = load i64, ptr %127, align 8, !tbaa !9
  store i64 %837, ptr %64, align 8, !tbaa !9
  br label %838

838:                                              ; preds = %858, %835
  %839 = load i64, ptr %64, align 8, !tbaa !9
  %840 = load i64, ptr %56, align 8, !tbaa !9
  %841 = icmp sle i64 %839, %840
  br i1 %841, label %842, label %861

842:                                              ; preds = %838
  %843 = load ptr, ptr %49, align 8, !tbaa !5
  %844 = load i64, ptr %115, align 8, !tbaa !9
  %845 = load i64, ptr %64, align 8, !tbaa !9
  %846 = add nsw i64 %844, %845
  %847 = sub nsw i64 %846, 1
  %848 = getelementptr inbounds double, ptr %843, i64 %847
  %849 = load double, ptr %848, align 8, !tbaa !11
  %850 = load double, ptr %94, align 8, !tbaa !11
  %851 = fadd double %849, %850
  %852 = load ptr, ptr %40, align 8, !tbaa !5
  %853 = load i64, ptr %115, align 8, !tbaa !9
  %854 = load i64, ptr %64, align 8, !tbaa !9
  %855 = add nsw i64 %853, %854
  %856 = sub nsw i64 %855, 1
  %857 = getelementptr inbounds double, ptr %852, i64 %856
  store double %851, ptr %857, align 8, !tbaa !11
  br label %858

858:                                              ; preds = %842
  %859 = load i64, ptr %64, align 8, !tbaa !9
  %860 = add nsw i64 %859, 1
  store i64 %860, ptr %64, align 8, !tbaa !9
  br label %838, !llvm.loop !19

861:                                              ; preds = %838
  br label %862

862:                                              ; preds = %861, %664
  %863 = load i64, ptr %127, align 8, !tbaa !9
  store i64 %863, ptr %132, align 8, !tbaa !9
  %864 = load i64, ptr %130, align 8, !tbaa !9
  store i64 %864, ptr %56, align 8, !tbaa !9
  %865 = load i64, ptr %127, align 8, !tbaa !9
  store i64 %865, ptr %64, align 8, !tbaa !9
  br label %866

866:                                              ; preds = %1919, %862
  %867 = load i64, ptr %64, align 8, !tbaa !9
  %868 = load i64, ptr %56, align 8, !tbaa !9
  %869 = icmp sle i64 %867, %868
  br i1 %869, label %870, label %1922

870:                                              ; preds = %866
  %871 = load i64, ptr %64, align 8, !tbaa !9
  %872 = load i64, ptr %130, align 8, !tbaa !9
  %873 = icmp eq i64 %871, %872
  br i1 %873, label %874, label %876

874:                                              ; preds = %870
  %875 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %875, ptr %138, align 8, !tbaa !9
  br label %908

876:                                              ; preds = %870
  %877 = load ptr, ptr %42, align 8, !tbaa !5
  %878 = load i64, ptr %115, align 8, !tbaa !9
  %879 = load i64, ptr %64, align 8, !tbaa !9
  %880 = add nsw i64 %878, %879
  %881 = sub nsw i64 %880, 1
  %882 = getelementptr inbounds double, ptr %877, i64 %881
  %883 = load double, ptr %882, align 8, !tbaa !11
  %884 = load ptr, ptr %37, align 8, !tbaa !5
  %885 = load double, ptr %884, align 8, !tbaa !11
  %886 = load ptr, ptr %49, align 8, !tbaa !5
  %887 = load i64, ptr %115, align 8, !tbaa !9
  %888 = load i64, ptr %64, align 8, !tbaa !9
  %889 = add nsw i64 %887, %888
  %890 = sub nsw i64 %889, 1
  %891 = getelementptr inbounds double, ptr %886, i64 %890
  %892 = load double, ptr %891, align 8, !tbaa !11
  store double %892, ptr %59, align 8, !tbaa !11
  %893 = load double, ptr %59, align 8, !tbaa !11
  %894 = fcmp oge double %893, 0.000000e+00
  br i1 %894, label %895, label %897

895:                                              ; preds = %876
  %896 = load double, ptr %59, align 8, !tbaa !11
  br label %900

897:                                              ; preds = %876
  %898 = load double, ptr %59, align 8, !tbaa !11
  %899 = fneg double %898
  br label %900

900:                                              ; preds = %897, %895
  %901 = phi double [ %896, %895 ], [ %899, %897 ]
  %902 = fmul double %885, %901
  %903 = fcmp oge double %883, %902
  br i1 %903, label %904, label %906

904:                                              ; preds = %900
  %905 = load i64, ptr %64, align 8, !tbaa !9
  store i64 %905, ptr %138, align 8, !tbaa !9
  br label %907

906:                                              ; preds = %900
  br label %1918

907:                                              ; preds = %904
  br label %908

908:                                              ; preds = %907, %874
  %909 = load i64, ptr %138, align 8, !tbaa !9
  %910 = load i64, ptr %132, align 8, !tbaa !9
  %911 = sub nsw i64 %909, %910
  %912 = add nsw i64 %911, 1
  store i64 %912, ptr %141, align 8, !tbaa !9
  %913 = load ptr, ptr %35, align 8, !tbaa !5
  %914 = load i64, ptr %913, align 8, !tbaa !9
  %915 = icmp eq i64 %914, 1
  br i1 %915, label %916, label %927

916:                                              ; preds = %908
  %917 = load ptr, ptr %36, align 8, !tbaa !5
  %918 = load i64, ptr %917, align 8, !tbaa !9
  %919 = load ptr, ptr %34, align 8, !tbaa !5
  %920 = load i64, ptr %919, align 8, !tbaa !9
  %921 = icmp eq i64 %918, %920
  br i1 %921, label %922, label %927

922:                                              ; preds = %916
  %923 = load i64, ptr %115, align 8, !tbaa !9
  %924 = load i64, ptr %132, align 8, !tbaa !9
  %925 = add nsw i64 %923, %924
  %926 = sub nsw i64 %925, 1
  store i64 %926, ptr %133, align 8, !tbaa !9
  br label %957

927:                                              ; preds = %916, %908
  %928 = load i64, ptr %115, align 8, !tbaa !9
  %929 = load i64, ptr %132, align 8, !tbaa !9
  %930 = add nsw i64 %928, %929
  %931 = sub nsw i64 %930, 1
  %932 = load ptr, ptr %35, align 8, !tbaa !5
  %933 = load i64, ptr %932, align 8, !tbaa !9
  %934 = icmp slt i64 %931, %933
  br i1 %934, label %935, label %939

935:                                              ; preds = %927
  %936 = load ptr, ptr %35, align 8, !tbaa !5
  %937 = load i64, ptr %936, align 8, !tbaa !9
  %938 = sub nsw i64 %937, 1
  store i64 %938, ptr %133, align 8, !tbaa !9
  br label %956

939:                                              ; preds = %927
  %940 = load i64, ptr %115, align 8, !tbaa !9
  %941 = load i64, ptr %132, align 8, !tbaa !9
  %942 = add nsw i64 %940, %941
  %943 = sub nsw i64 %942, 1
  %944 = load ptr, ptr %36, align 8, !tbaa !5
  %945 = load i64, ptr %944, align 8, !tbaa !9
  %946 = icmp sgt i64 %943, %945
  br i1 %946, label %947, label %950

947:                                              ; preds = %939
  %948 = load ptr, ptr %36, align 8, !tbaa !5
  %949 = load i64, ptr %948, align 8, !tbaa !9
  store i64 %949, ptr %133, align 8, !tbaa !9
  br label %955

950:                                              ; preds = %939
  %951 = load i64, ptr %115, align 8, !tbaa !9
  %952 = load i64, ptr %132, align 8, !tbaa !9
  %953 = add nsw i64 %951, %952
  %954 = sub nsw i64 %953, 1
  store i64 %954, ptr %133, align 8, !tbaa !9
  br label %955

955:                                              ; preds = %950, %947
  br label %956

956:                                              ; preds = %955, %935
  br label %957

957:                                              ; preds = %956, %922
  %958 = load i64, ptr %141, align 8, !tbaa !9
  %959 = icmp sgt i64 %958, 1
  br i1 %959, label %960, label %1224

960:                                              ; preds = %957
  %961 = load i64, ptr %132, align 8, !tbaa !9
  %962 = icmp eq i64 %961, 1
  br i1 %962, label %963, label %985

963:                                              ; preds = %960
  store double 0.000000e+00, ptr %59, align 8, !tbaa !11
  %964 = load ptr, ptr %40, align 8, !tbaa !5
  %965 = load i64, ptr %115, align 8, !tbaa !9
  %966 = getelementptr inbounds double, ptr %964, i64 %965
  %967 = load double, ptr %966, align 8, !tbaa !11
  %968 = load ptr, ptr %41, align 8, !tbaa !5
  %969 = load i64, ptr %115, align 8, !tbaa !9
  %970 = getelementptr inbounds double, ptr %968, i64 %969
  %971 = load double, ptr %970, align 8, !tbaa !11
  %972 = fsub double %967, %971
  %973 = load ptr, ptr %28, align 8, !tbaa !5
  %974 = load double, ptr %973, align 8, !tbaa !11
  %975 = fsub double %972, %974
  store double %975, ptr %60, align 8, !tbaa !11
  %976 = load double, ptr %59, align 8, !tbaa !11
  %977 = load double, ptr %60, align 8, !tbaa !11
  %978 = fcmp oge double %976, %977
  br i1 %978, label %979, label %981

979:                                              ; preds = %963
  %980 = load double, ptr %59, align 8, !tbaa !11
  br label %983

981:                                              ; preds = %963
  %982 = load double, ptr %60, align 8, !tbaa !11
  br label %983

983:                                              ; preds = %981, %979
  %984 = phi double [ %980, %979 ], [ %982, %981 ]
  store double %984, ptr %83, align 8, !tbaa !11
  br label %993

985:                                              ; preds = %960
  %986 = load ptr, ptr %42, align 8, !tbaa !5
  %987 = load i64, ptr %115, align 8, !tbaa !9
  %988 = load i64, ptr %132, align 8, !tbaa !9
  %989 = add nsw i64 %987, %988
  %990 = sub nsw i64 %989, 2
  %991 = getelementptr inbounds double, ptr %986, i64 %990
  %992 = load double, ptr %991, align 8, !tbaa !11
  store double %992, ptr %83, align 8, !tbaa !11
  br label %993

993:                                              ; preds = %985, %983
  %994 = load ptr, ptr %42, align 8, !tbaa !5
  %995 = load i64, ptr %115, align 8, !tbaa !9
  %996 = load i64, ptr %138, align 8, !tbaa !9
  %997 = add nsw i64 %995, %996
  %998 = sub nsw i64 %997, 1
  %999 = getelementptr inbounds double, ptr %994, i64 %998
  %1000 = load double, ptr %999, align 8, !tbaa !11
  store double %1000, ptr %85, align 8, !tbaa !11
  store i64 1, ptr %65, align 8, !tbaa !9
  br label %1001

1001:                                             ; preds = %1055, %993
  %1002 = load i64, ptr %65, align 8, !tbaa !9
  %1003 = icmp sle i64 %1002, 2
  br i1 %1003, label %1004, label %1058

1004:                                             ; preds = %1001
  %1005 = load i64, ptr %65, align 8, !tbaa !9
  %1006 = icmp eq i64 %1005, 1
  br i1 %1006, label %1007, label %1015

1007:                                             ; preds = %1004
  %1008 = load ptr, ptr %44, align 8, !tbaa !5
  %1009 = load i64, ptr %115, align 8, !tbaa !9
  %1010 = sub nsw i64 %1009, 1
  %1011 = load i64, ptr %132, align 8, !tbaa !9
  %1012 = add nsw i64 %1010, %1011
  %1013 = getelementptr inbounds i64, ptr %1008, i64 %1012
  %1014 = load i64, ptr %1013, align 8, !tbaa !9
  store i64 %1014, ptr %66, align 8, !tbaa !9
  br label %1023

1015:                                             ; preds = %1004
  %1016 = load ptr, ptr %44, align 8, !tbaa !5
  %1017 = load i64, ptr %115, align 8, !tbaa !9
  %1018 = sub nsw i64 %1017, 1
  %1019 = load i64, ptr %138, align 8, !tbaa !9
  %1020 = add nsw i64 %1018, %1019
  %1021 = getelementptr inbounds i64, ptr %1016, i64 %1020
  %1022 = load i64, ptr %1021, align 8, !tbaa !9
  store i64 %1022, ptr %66, align 8, !tbaa !9
  br label %1023

1023:                                             ; preds = %1015, %1007
  %1024 = load ptr, ptr %44, align 8, !tbaa !5
  %1025 = load i64, ptr %115, align 8, !tbaa !9
  %1026 = getelementptr inbounds i64, ptr %1024, i64 %1025
  %1027 = load i64, ptr %1026, align 8, !tbaa !9
  %1028 = sub nsw i64 %1027, 1
  store i64 %1028, ptr %124, align 8, !tbaa !9
  %1029 = load ptr, ptr %30, align 8, !tbaa !5
  %1030 = load i64, ptr %107, align 8, !tbaa !9
  %1031 = getelementptr inbounds double, ptr %1029, i64 %1030
  %1032 = load ptr, ptr %49, align 8, !tbaa !5
  %1033 = load i64, ptr %110, align 8, !tbaa !9
  %1034 = load i64, ptr %107, align 8, !tbaa !9
  %1035 = add nsw i64 %1033, %1034
  %1036 = sub nsw i64 %1035, 1
  %1037 = getelementptr inbounds double, ptr %1032, i64 %1036
  %1038 = load ptr, ptr %49, align 8, !tbaa !5
  %1039 = load i64, ptr %115, align 8, !tbaa !9
  %1040 = getelementptr inbounds double, ptr %1038, i64 %1039
  %1041 = load ptr, ptr %42, align 8, !tbaa !5
  %1042 = load i64, ptr %115, align 8, !tbaa !9
  %1043 = getelementptr inbounds double, ptr %1041, i64 %1042
  %1044 = load ptr, ptr %41, align 8, !tbaa !5
  %1045 = load i64, ptr %115, align 8, !tbaa !9
  %1046 = getelementptr inbounds double, ptr %1044, i64 %1045
  %1047 = load ptr, ptr %49, align 8, !tbaa !5
  %1048 = load i64, ptr %128, align 8, !tbaa !9
  %1049 = getelementptr inbounds double, ptr %1047, i64 %1048
  %1050 = load ptr, ptr %50, align 8, !tbaa !5
  %1051 = load i64, ptr %123, align 8, !tbaa !9
  %1052 = getelementptr inbounds i64, ptr %1050, i64 %1051
  %1053 = load ptr, ptr %32, align 8, !tbaa !5
  %1054 = call i32 @dlarrb_(ptr noundef %72, ptr noundef %1031, ptr noundef %1037, ptr noundef %66, ptr noundef %66, ptr noundef %102, ptr noundef %102, ptr noundef %124, ptr noundef %1040, ptr noundef %1043, ptr noundef %1046, ptr noundef %1049, ptr noundef %1052, ptr noundef %1053, ptr noundef %116, ptr noundef %72, ptr noundef %95)
  br label %1055

1055:                                             ; preds = %1023
  %1056 = load i64, ptr %65, align 8, !tbaa !9
  %1057 = add nsw i64 %1056, 1
  store i64 %1057, ptr %65, align 8, !tbaa !9
  br label %1001, !llvm.loop !20

1058:                                             ; preds = %1001
  %1059 = load i64, ptr %115, align 8, !tbaa !9
  %1060 = load i64, ptr %138, align 8, !tbaa !9
  %1061 = add nsw i64 %1059, %1060
  %1062 = sub nsw i64 %1061, 1
  %1063 = load ptr, ptr %35, align 8, !tbaa !5
  %1064 = load i64, ptr %1063, align 8, !tbaa !9
  %1065 = icmp slt i64 %1062, %1064
  br i1 %1065, label %1074, label %1066

1066:                                             ; preds = %1058
  %1067 = load i64, ptr %115, align 8, !tbaa !9
  %1068 = load i64, ptr %132, align 8, !tbaa !9
  %1069 = add nsw i64 %1067, %1068
  %1070 = sub nsw i64 %1069, 1
  %1071 = load ptr, ptr %36, align 8, !tbaa !5
  %1072 = load i64, ptr %1071, align 8, !tbaa !9
  %1073 = icmp sgt i64 %1070, %1072
  br i1 %1073, label %1074, label %1081

1074:                                             ; preds = %1066, %1058
  %1075 = load i64, ptr %93, align 8, !tbaa !9
  %1076 = load i64, ptr %138, align 8, !tbaa !9
  %1077 = add nsw i64 %1075, %1076
  %1078 = load i64, ptr %132, align 8, !tbaa !9
  %1079 = sub nsw i64 %1077, %1078
  %1080 = add nsw i64 %1079, 1
  store i64 %1080, ptr %93, align 8, !tbaa !9
  br label %1915

1081:                                             ; preds = %1066
  %1082 = load ptr, ptr %30, align 8, !tbaa !5
  %1083 = load i64, ptr %107, align 8, !tbaa !9
  %1084 = getelementptr inbounds double, ptr %1082, i64 %1083
  %1085 = load ptr, ptr %31, align 8, !tbaa !5
  %1086 = load i64, ptr %107, align 8, !tbaa !9
  %1087 = getelementptr inbounds double, ptr %1085, i64 %1086
  %1088 = load ptr, ptr %49, align 8, !tbaa !5
  %1089 = load i64, ptr %91, align 8, !tbaa !9
  %1090 = load i64, ptr %107, align 8, !tbaa !9
  %1091 = add nsw i64 %1089, %1090
  %1092 = sub nsw i64 %1091, 1
  %1093 = getelementptr inbounds double, ptr %1088, i64 %1092
  %1094 = load ptr, ptr %49, align 8, !tbaa !5
  %1095 = load i64, ptr %115, align 8, !tbaa !9
  %1096 = getelementptr inbounds double, ptr %1094, i64 %1095
  %1097 = load ptr, ptr %42, align 8, !tbaa !5
  %1098 = load i64, ptr %115, align 8, !tbaa !9
  %1099 = getelementptr inbounds double, ptr %1097, i64 %1098
  %1100 = load ptr, ptr %41, align 8, !tbaa !5
  %1101 = load i64, ptr %115, align 8, !tbaa !9
  %1102 = getelementptr inbounds double, ptr %1100, i64 %1101
  %1103 = load ptr, ptr %32, align 8, !tbaa !5
  %1104 = load ptr, ptr %46, align 8, !tbaa !5
  %1105 = load i64, ptr %107, align 8, !tbaa !9
  %1106 = load i64, ptr %133, align 8, !tbaa !9
  %1107 = load i64, ptr %52, align 8, !tbaa !9
  %1108 = mul nsw i64 %1106, %1107
  %1109 = add nsw i64 %1105, %1108
  %1110 = getelementptr inbounds double, ptr %1104, i64 %1109
  %1111 = load ptr, ptr %46, align 8, !tbaa !5
  %1112 = load i64, ptr %107, align 8, !tbaa !9
  %1113 = load i64, ptr %133, align 8, !tbaa !9
  %1114 = add nsw i64 %1113, 1
  %1115 = load i64, ptr %52, align 8, !tbaa !9
  %1116 = mul nsw i64 %1114, %1115
  %1117 = add nsw i64 %1112, %1116
  %1118 = getelementptr inbounds double, ptr %1111, i64 %1117
  %1119 = load ptr, ptr %49, align 8, !tbaa !5
  %1120 = load i64, ptr %128, align 8, !tbaa !9
  %1121 = getelementptr inbounds double, ptr %1119, i64 %1120
  %1122 = call i32 @dlarrf_(ptr noundef %72, ptr noundef %1084, ptr noundef %1087, ptr noundef %1093, ptr noundef %132, ptr noundef %138, ptr noundef %1096, ptr noundef %1099, ptr noundef %1102, ptr noundef %116, ptr noundef %83, ptr noundef %85, ptr noundef %1103, ptr noundef %76, ptr noundef %1110, ptr noundef %1118, ptr noundef %1121, ptr noundef %95)
  %1123 = load i64, ptr %95, align 8, !tbaa !9
  %1124 = icmp eq i64 %1123, 0
  br i1 %1124, label %1125, label %1221

1125:                                             ; preds = %1081
  %1126 = load double, ptr %94, align 8, !tbaa !11
  %1127 = load double, ptr %76, align 8, !tbaa !11
  %1128 = fadd double %1126, %1127
  store double %1128, ptr %121, align 8, !tbaa !11
  %1129 = load double, ptr %121, align 8, !tbaa !11
  %1130 = load ptr, ptr %46, align 8, !tbaa !5
  %1131 = load i64, ptr %81, align 8, !tbaa !9
  %1132 = load i64, ptr %133, align 8, !tbaa !9
  %1133 = add nsw i64 %1132, 1
  %1134 = load i64, ptr %52, align 8, !tbaa !9
  %1135 = mul nsw i64 %1133, %1134
  %1136 = add nsw i64 %1131, %1135
  %1137 = getelementptr inbounds double, ptr %1130, i64 %1136
  store double %1129, ptr %1137, align 8, !tbaa !11
  %1138 = load i64, ptr %138, align 8, !tbaa !9
  store i64 %1138, ptr %57, align 8, !tbaa !9
  %1139 = load i64, ptr %132, align 8, !tbaa !9
  store i64 %1139, ptr %65, align 8, !tbaa !9
  br label %1140

1140:                                             ; preds = %1202, %1125
  %1141 = load i64, ptr %65, align 8, !tbaa !9
  %1142 = load i64, ptr %57, align 8, !tbaa !9
  %1143 = icmp sle i64 %1141, %1142
  br i1 %1143, label %1144, label %1205

1144:                                             ; preds = %1140
  %1145 = load double, ptr %75, align 8, !tbaa !11
  %1146 = fmul double %1145, 3.000000e+00
  %1147 = load ptr, ptr %49, align 8, !tbaa !5
  %1148 = load i64, ptr %115, align 8, !tbaa !9
  %1149 = load i64, ptr %65, align 8, !tbaa !9
  %1150 = add nsw i64 %1148, %1149
  %1151 = sub nsw i64 %1150, 1
  %1152 = getelementptr inbounds double, ptr %1147, i64 %1151
  %1153 = load double, ptr %1152, align 8, !tbaa !11
  store double %1153, ptr %59, align 8, !tbaa !11
  %1154 = load double, ptr %59, align 8, !tbaa !11
  %1155 = fcmp oge double %1154, 0.000000e+00
  br i1 %1155, label %1156, label %1158

1156:                                             ; preds = %1144
  %1157 = load double, ptr %59, align 8, !tbaa !11
  br label %1161

1158:                                             ; preds = %1144
  %1159 = load double, ptr %59, align 8, !tbaa !11
  %1160 = fneg double %1159
  br label %1161

1161:                                             ; preds = %1158, %1156
  %1162 = phi double [ %1157, %1156 ], [ %1160, %1158 ]
  %1163 = fmul double %1146, %1162
  store double %1163, ptr %92, align 8, !tbaa !11
  %1164 = load double, ptr %76, align 8, !tbaa !11
  %1165 = load ptr, ptr %49, align 8, !tbaa !5
  %1166 = load i64, ptr %115, align 8, !tbaa !9
  %1167 = load i64, ptr %65, align 8, !tbaa !9
  %1168 = add nsw i64 %1166, %1167
  %1169 = sub nsw i64 %1168, 1
  %1170 = getelementptr inbounds double, ptr %1165, i64 %1169
  %1171 = load double, ptr %1170, align 8, !tbaa !11
  %1172 = fsub double %1171, %1164
  store double %1172, ptr %1170, align 8, !tbaa !11
  %1173 = load double, ptr %75, align 8, !tbaa !11
  %1174 = fmul double %1173, 4.000000e+00
  %1175 = load ptr, ptr %49, align 8, !tbaa !5
  %1176 = load i64, ptr %115, align 8, !tbaa !9
  %1177 = load i64, ptr %65, align 8, !tbaa !9
  %1178 = add nsw i64 %1176, %1177
  %1179 = sub nsw i64 %1178, 1
  %1180 = getelementptr inbounds double, ptr %1175, i64 %1179
  %1181 = load double, ptr %1180, align 8, !tbaa !11
  store double %1181, ptr %59, align 8, !tbaa !11
  %1182 = load double, ptr %59, align 8, !tbaa !11
  %1183 = fcmp oge double %1182, 0.000000e+00
  br i1 %1183, label %1184, label %1186

1184:                                             ; preds = %1161
  %1185 = load double, ptr %59, align 8, !tbaa !11
  br label %1189

1186:                                             ; preds = %1161
  %1187 = load double, ptr %59, align 8, !tbaa !11
  %1188 = fneg double %1187
  br label %1189

1189:                                             ; preds = %1186, %1184
  %1190 = phi double [ %1185, %1184 ], [ %1188, %1186 ]
  %1191 = load double, ptr %92, align 8, !tbaa !11
  %1192 = call double @llvm.fmuladd.f64(double %1174, double %1190, double %1191)
  store double %1192, ptr %92, align 8, !tbaa !11
  %1193 = load double, ptr %92, align 8, !tbaa !11
  %1194 = load ptr, ptr %41, align 8, !tbaa !5
  %1195 = load i64, ptr %115, align 8, !tbaa !9
  %1196 = load i64, ptr %65, align 8, !tbaa !9
  %1197 = add nsw i64 %1195, %1196
  %1198 = sub nsw i64 %1197, 1
  %1199 = getelementptr inbounds double, ptr %1194, i64 %1198
  %1200 = load double, ptr %1199, align 8, !tbaa !11
  %1201 = fadd double %1200, %1193
  store double %1201, ptr %1199, align 8, !tbaa !11
  br label %1202

1202:                                             ; preds = %1189
  %1203 = load i64, ptr %65, align 8, !tbaa !9
  %1204 = add nsw i64 %1203, 1
  store i64 %1204, ptr %65, align 8, !tbaa !9
  br label %1140, !llvm.loop !21

1205:                                             ; preds = %1140
  %1206 = load i64, ptr %100, align 8, !tbaa !9
  %1207 = add nsw i64 %1206, 1
  store i64 %1207, ptr %100, align 8, !tbaa !9
  %1208 = load i64, ptr %126, align 8, !tbaa !9
  %1209 = load i64, ptr %100, align 8, !tbaa !9
  %1210 = shl i64 %1209, 1
  %1211 = add nsw i64 %1208, %1210
  store i64 %1211, ptr %65, align 8, !tbaa !9
  %1212 = load i64, ptr %132, align 8, !tbaa !9
  %1213 = load ptr, ptr %50, align 8, !tbaa !5
  %1214 = load i64, ptr %65, align 8, !tbaa !9
  %1215 = sub nsw i64 %1214, 1
  %1216 = getelementptr inbounds i64, ptr %1213, i64 %1215
  store i64 %1212, ptr %1216, align 8, !tbaa !9
  %1217 = load i64, ptr %138, align 8, !tbaa !9
  %1218 = load ptr, ptr %50, align 8, !tbaa !5
  %1219 = load i64, ptr %65, align 8, !tbaa !9
  %1220 = getelementptr inbounds i64, ptr %1218, i64 %1219
  store i64 %1217, ptr %1220, align 8, !tbaa !9
  br label %1223

1221:                                             ; preds = %1081
  %1222 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -2, ptr %1222, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %148, align 4
  br label %1939

1223:                                             ; preds = %1205
  br label %1914

1224:                                             ; preds = %957
  store i64 0, ptr %88, align 8, !tbaa !9
  %1225 = load i64, ptr %72, align 8, !tbaa !9
  %1226 = sitofp i64 %1225 to double
  %1227 = call double @log(double noundef %1226) #5
  %1228 = fmul double %1227, 4.000000e+00
  %1229 = load double, ptr %75, align 8, !tbaa !11
  %1230 = fmul double %1228, %1229
  store double %1230, ptr %77, align 8, !tbaa !11
  %1231 = load i64, ptr %132, align 8, !tbaa !9
  store i64 %1231, ptr %65, align 8, !tbaa !9
  %1232 = load i64, ptr %115, align 8, !tbaa !9
  %1233 = load i64, ptr %65, align 8, !tbaa !9
  %1234 = add nsw i64 %1232, %1233
  %1235 = sub nsw i64 %1234, 1
  store i64 %1235, ptr %129, align 8, !tbaa !9
  %1236 = load i64, ptr %129, align 8, !tbaa !9
  %1237 = sub nsw i64 %1236, 1
  store i64 %1237, ptr %57, align 8, !tbaa !9
  %1238 = load i64, ptr %57, align 8, !tbaa !9
  %1239 = icmp sge i64 %1238, 1
  br i1 %1239, label %1240, label %1242

1240:                                             ; preds = %1224
  %1241 = load i64, ptr %57, align 8, !tbaa !9
  br label %1243

1242:                                             ; preds = %1224
  br label %1243

1243:                                             ; preds = %1242, %1240
  %1244 = phi i64 [ %1241, %1240 ], [ 1, %1242 ]
  store i64 %1244, ptr %135, align 8, !tbaa !9
  %1245 = load i64, ptr %129, align 8, !tbaa !9
  %1246 = add nsw i64 %1245, 1
  store i64 %1246, ptr %57, align 8, !tbaa !9
  %1247 = load i64, ptr %57, align 8, !tbaa !9
  %1248 = load ptr, ptr %34, align 8, !tbaa !5
  %1249 = load i64, ptr %1248, align 8, !tbaa !9
  %1250 = icmp sle i64 %1247, %1249
  br i1 %1250, label %1251, label %1253

1251:                                             ; preds = %1243
  %1252 = load i64, ptr %57, align 8, !tbaa !9
  br label %1256

1253:                                             ; preds = %1243
  %1254 = load ptr, ptr %34, align 8, !tbaa !5
  %1255 = load i64, ptr %1254, align 8, !tbaa !9
  br label %1256

1256:                                             ; preds = %1253, %1251
  %1257 = phi i64 [ %1252, %1251 ], [ %1255, %1253 ]
  store i64 %1257, ptr %136, align 8, !tbaa !9
  %1258 = load ptr, ptr %49, align 8, !tbaa !5
  %1259 = load i64, ptr %129, align 8, !tbaa !9
  %1260 = getelementptr inbounds double, ptr %1258, i64 %1259
  %1261 = load double, ptr %1260, align 8, !tbaa !11
  store double %1261, ptr %106, align 8, !tbaa !11
  %1262 = load i64, ptr %84, align 8, !tbaa !9
  %1263 = add nsw i64 %1262, 1
  store i64 %1263, ptr %84, align 8, !tbaa !9
  %1264 = load i64, ptr %129, align 8, !tbaa !9
  %1265 = load ptr, ptr %35, align 8, !tbaa !5
  %1266 = load i64, ptr %1265, align 8, !tbaa !9
  %1267 = icmp slt i64 %1264, %1266
  br i1 %1267, label %1273, label %1268

1268:                                             ; preds = %1256
  %1269 = load i64, ptr %129, align 8, !tbaa !9
  %1270 = load ptr, ptr %36, align 8, !tbaa !5
  %1271 = load i64, ptr %1270, align 8, !tbaa !9
  %1272 = icmp sgt i64 %1269, %1271
  br i1 %1272, label %1273, label %1274

1273:                                             ; preds = %1268, %1256
  store i64 1, ptr %98, align 8, !tbaa !9
  br label %1825

1274:                                             ; preds = %1268
  store i64 0, ptr %98, align 8, !tbaa !9
  br label %1275

1275:                                             ; preds = %1274
  %1276 = load ptr, ptr %49, align 8, !tbaa !5
  %1277 = load i64, ptr %129, align 8, !tbaa !9
  %1278 = getelementptr inbounds double, ptr %1276, i64 %1277
  %1279 = load double, ptr %1278, align 8, !tbaa !11
  %1280 = load ptr, ptr %41, align 8, !tbaa !5
  %1281 = load i64, ptr %129, align 8, !tbaa !9
  %1282 = getelementptr inbounds double, ptr %1280, i64 %1281
  %1283 = load double, ptr %1282, align 8, !tbaa !11
  %1284 = fsub double %1279, %1283
  store double %1284, ptr %86, align 8, !tbaa !11
  %1285 = load ptr, ptr %49, align 8, !tbaa !5
  %1286 = load i64, ptr %129, align 8, !tbaa !9
  %1287 = getelementptr inbounds double, ptr %1285, i64 %1286
  %1288 = load double, ptr %1287, align 8, !tbaa !11
  %1289 = load ptr, ptr %41, align 8, !tbaa !5
  %1290 = load i64, ptr %129, align 8, !tbaa !9
  %1291 = getelementptr inbounds double, ptr %1289, i64 %1290
  %1292 = load double, ptr %1291, align 8, !tbaa !11
  %1293 = fadd double %1288, %1292
  store double %1293, ptr %99, align 8, !tbaa !11
  %1294 = load ptr, ptr %44, align 8, !tbaa !5
  %1295 = load i64, ptr %129, align 8, !tbaa !9
  %1296 = getelementptr inbounds i64, ptr %1294, i64 %1295
  %1297 = load i64, ptr %1296, align 8, !tbaa !9
  store i64 %1297, ptr %108, align 8, !tbaa !9
  %1298 = load i64, ptr %65, align 8, !tbaa !9
  %1299 = icmp eq i64 %1298, 1
  br i1 %1299, label %1300, label %1330

1300:                                             ; preds = %1275
  %1301 = load double, ptr %86, align 8, !tbaa !11
  %1302 = fcmp oge double %1301, 0.000000e+00
  br i1 %1302, label %1303, label %1305

1303:                                             ; preds = %1300
  %1304 = load double, ptr %86, align 8, !tbaa !11
  br label %1308

1305:                                             ; preds = %1300
  %1306 = load double, ptr %86, align 8, !tbaa !11
  %1307 = fneg double %1306
  br label %1308

1308:                                             ; preds = %1305, %1303
  %1309 = phi double [ %1304, %1303 ], [ %1307, %1305 ]
  store double %1309, ptr %59, align 8, !tbaa !11
  %1310 = load double, ptr %99, align 8, !tbaa !11
  %1311 = fcmp oge double %1310, 0.000000e+00
  br i1 %1311, label %1312, label %1314

1312:                                             ; preds = %1308
  %1313 = load double, ptr %99, align 8, !tbaa !11
  br label %1317

1314:                                             ; preds = %1308
  %1315 = load double, ptr %99, align 8, !tbaa !11
  %1316 = fneg double %1315
  br label %1317

1317:                                             ; preds = %1314, %1312
  %1318 = phi double [ %1313, %1312 ], [ %1316, %1314 ]
  store double %1318, ptr %60, align 8, !tbaa !11
  %1319 = load double, ptr %75, align 8, !tbaa !11
  %1320 = load double, ptr %59, align 8, !tbaa !11
  %1321 = load double, ptr %60, align 8, !tbaa !11
  %1322 = fcmp oge double %1320, %1321
  br i1 %1322, label %1323, label %1325

1323:                                             ; preds = %1317
  %1324 = load double, ptr %59, align 8, !tbaa !11
  br label %1327

1325:                                             ; preds = %1317
  %1326 = load double, ptr %60, align 8, !tbaa !11
  br label %1327

1327:                                             ; preds = %1325, %1323
  %1328 = phi double [ %1324, %1323 ], [ %1326, %1325 ]
  %1329 = fmul double %1319, %1328
  store double %1329, ptr %83, align 8, !tbaa !11
  br label %1335

1330:                                             ; preds = %1275
  %1331 = load ptr, ptr %42, align 8, !tbaa !5
  %1332 = load i64, ptr %135, align 8, !tbaa !9
  %1333 = getelementptr inbounds double, ptr %1331, i64 %1332
  %1334 = load double, ptr %1333, align 8, !tbaa !11
  store double %1334, ptr %83, align 8, !tbaa !11
  br label %1335

1335:                                             ; preds = %1330, %1327
  %1336 = load i64, ptr %65, align 8, !tbaa !9
  %1337 = load i64, ptr %71, align 8, !tbaa !9
  %1338 = icmp eq i64 %1336, %1337
  br i1 %1338, label %1339, label %1369

1339:                                             ; preds = %1335
  %1340 = load double, ptr %86, align 8, !tbaa !11
  %1341 = fcmp oge double %1340, 0.000000e+00
  br i1 %1341, label %1342, label %1344

1342:                                             ; preds = %1339
  %1343 = load double, ptr %86, align 8, !tbaa !11
  br label %1347

1344:                                             ; preds = %1339
  %1345 = load double, ptr %86, align 8, !tbaa !11
  %1346 = fneg double %1345
  br label %1347

1347:                                             ; preds = %1344, %1342
  %1348 = phi double [ %1343, %1342 ], [ %1346, %1344 ]
  store double %1348, ptr %59, align 8, !tbaa !11
  %1349 = load double, ptr %99, align 8, !tbaa !11
  %1350 = fcmp oge double %1349, 0.000000e+00
  br i1 %1350, label %1351, label %1353

1351:                                             ; preds = %1347
  %1352 = load double, ptr %99, align 8, !tbaa !11
  br label %1356

1353:                                             ; preds = %1347
  %1354 = load double, ptr %99, align 8, !tbaa !11
  %1355 = fneg double %1354
  br label %1356

1356:                                             ; preds = %1353, %1351
  %1357 = phi double [ %1352, %1351 ], [ %1355, %1353 ]
  store double %1357, ptr %60, align 8, !tbaa !11
  %1358 = load double, ptr %75, align 8, !tbaa !11
  %1359 = load double, ptr %59, align 8, !tbaa !11
  %1360 = load double, ptr %60, align 8, !tbaa !11
  %1361 = fcmp oge double %1359, %1360
  br i1 %1361, label %1362, label %1364

1362:                                             ; preds = %1356
  %1363 = load double, ptr %59, align 8, !tbaa !11
  br label %1366

1364:                                             ; preds = %1356
  %1365 = load double, ptr %60, align 8, !tbaa !11
  br label %1366

1366:                                             ; preds = %1364, %1362
  %1367 = phi double [ %1363, %1362 ], [ %1365, %1364 ]
  %1368 = fmul double %1358, %1367
  store double %1368, ptr %85, align 8, !tbaa !11
  br label %1374

1369:                                             ; preds = %1335
  %1370 = load ptr, ptr %42, align 8, !tbaa !5
  %1371 = load i64, ptr %129, align 8, !tbaa !9
  %1372 = getelementptr inbounds double, ptr %1370, i64 %1371
  %1373 = load double, ptr %1372, align 8, !tbaa !11
  store double %1373, ptr %85, align 8, !tbaa !11
  br label %1374

1374:                                             ; preds = %1369, %1366
  %1375 = load double, ptr %83, align 8, !tbaa !11
  %1376 = load double, ptr %85, align 8, !tbaa !11
  %1377 = fcmp ole double %1375, %1376
  br i1 %1377, label %1378, label %1380

1378:                                             ; preds = %1374
  %1379 = load double, ptr %83, align 8, !tbaa !11
  br label %1382

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

1382:                                             ; preds = %1380, %1378
  %1383 = phi double [ %1379, %1378 ], [ %1381, %1380 ]
  store double %1383, ptr %74, align 8, !tbaa !11
  %1384 = load i64, ptr %65, align 8, !tbaa !9
  %1385 = icmp eq i64 %1384, 1
  br i1 %1385, label %1390, label %1386

1386:                                             ; preds = %1382
  %1387 = load i64, ptr %65, align 8, !tbaa !9
  %1388 = load i64, ptr %71, align 8, !tbaa !9
  %1389 = icmp eq i64 %1387, %1388
  br i1 %1389, label %1390, label %1391

1390:                                             ; preds = %1386, %1382
  store double 0.000000e+00, ptr %125, align 8, !tbaa !11
  br label %1395

1391:                                             ; preds = %1386
  %1392 = load double, ptr %74, align 8, !tbaa !11
  %1393 = load double, ptr %75, align 8, !tbaa !11
  %1394 = fmul double %1392, %1393
  store double %1394, ptr %125, align 8, !tbaa !11
  br label %1395

1395:                                             ; preds = %1391, %1390
  %1396 = load i64, ptr %72, align 8, !tbaa !9
  store i64 %1396, ptr %137, align 8, !tbaa !9
  store i64 1, ptr %147, align 8, !tbaa !9
  %1397 = load ptr, ptr %42, align 8, !tbaa !5
  %1398 = load i64, ptr %129, align 8, !tbaa !9
  %1399 = getelementptr inbounds double, ptr %1397, i64 %1398
  %1400 = load double, ptr %1399, align 8, !tbaa !11
  store double %1400, ptr %119, align 8, !tbaa !11
  %1401 = load double, ptr %74, align 8, !tbaa !11
  %1402 = load ptr, ptr %42, align 8, !tbaa !5
  %1403 = load i64, ptr %129, align 8, !tbaa !9
  %1404 = getelementptr inbounds double, ptr %1402, i64 %1403
  store double %1401, ptr %1404, align 8, !tbaa !11
  store i64 0, ptr %122, align 8, !tbaa !9
  store i64 0, ptr %131, align 8, !tbaa !9
  %1405 = load i64, ptr %146, align 8, !tbaa !9
  %1406 = icmp ne i64 %1405, 0
  %1407 = xor i1 %1406, true
  %1408 = zext i1 %1407 to i32
  %1409 = sext i32 %1408 to i64
  store i64 %1409, ptr %109, align 8, !tbaa !9
  br label %1410

1410:                                             ; preds = %1663, %1659, %1655, %1395
  %1411 = load i64, ptr %109, align 8, !tbaa !9
  %1412 = icmp ne i64 %1411, 0
  br i1 %1412, label %1413, label %1467

1413:                                             ; preds = %1410
  store i64 1, ptr %122, align 8, !tbaa !9
  %1414 = load ptr, ptr %50, align 8, !tbaa !5
  %1415 = load i64, ptr %96, align 8, !tbaa !9
  %1416 = load i64, ptr %129, align 8, !tbaa !9
  %1417 = add nsw i64 %1415, %1416
  %1418 = getelementptr inbounds i64, ptr %1414, i64 %1417
  %1419 = load i64, ptr %1418, align 8, !tbaa !9
  store i64 %1419, ptr %90, align 8, !tbaa !9
  %1420 = load ptr, ptr %44, align 8, !tbaa !5
  %1421 = load i64, ptr %115, align 8, !tbaa !9
  %1422 = getelementptr inbounds i64, ptr %1420, i64 %1421
  %1423 = load i64, ptr %1422, align 8, !tbaa !9
  %1424 = sub nsw i64 %1423, 1
  store i64 %1424, ptr %124, align 8, !tbaa !9
  %1425 = load double, ptr %75, align 8, !tbaa !11
  %1426 = fmul double %1425, 2.000000e+00
  store double %1426, ptr %59, align 8, !tbaa !11
  %1427 = load ptr, ptr %30, align 8, !tbaa !5
  %1428 = load i64, ptr %107, align 8, !tbaa !9
  %1429 = getelementptr inbounds double, ptr %1427, i64 %1428
  %1430 = load ptr, ptr %49, align 8, !tbaa !5
  %1431 = load i64, ptr %110, align 8, !tbaa !9
  %1432 = load i64, ptr %107, align 8, !tbaa !9
  %1433 = add nsw i64 %1431, %1432
  %1434 = sub nsw i64 %1433, 1
  %1435 = getelementptr inbounds double, ptr %1430, i64 %1434
  %1436 = load ptr, ptr %49, align 8, !tbaa !5
  %1437 = load i64, ptr %115, align 8, !tbaa !9
  %1438 = getelementptr inbounds double, ptr %1436, i64 %1437
  %1439 = load ptr, ptr %42, align 8, !tbaa !5
  %1440 = load i64, ptr %115, align 8, !tbaa !9
  %1441 = getelementptr inbounds double, ptr %1439, i64 %1440
  %1442 = load ptr, ptr %41, align 8, !tbaa !5
  %1443 = load i64, ptr %115, align 8, !tbaa !9
  %1444 = getelementptr inbounds double, ptr %1442, i64 %1443
  %1445 = load ptr, ptr %49, align 8, !tbaa !5
  %1446 = load i64, ptr %128, align 8, !tbaa !9
  %1447 = getelementptr inbounds double, ptr %1445, i64 %1446
  %1448 = load ptr, ptr %50, align 8, !tbaa !5
  %1449 = load i64, ptr %123, align 8, !tbaa !9
  %1450 = getelementptr inbounds i64, ptr %1448, i64 %1449
  %1451 = load ptr, ptr %32, align 8, !tbaa !5
  %1452 = call i32 @dlarrb_(ptr noundef %72, ptr noundef %1429, ptr noundef %1435, ptr noundef %108, ptr noundef %108, ptr noundef @c_b5, ptr noundef %59, ptr noundef %124, ptr noundef %1438, ptr noundef %1441, ptr noundef %1444, ptr noundef %1447, ptr noundef %1450, ptr noundef %1451, ptr noundef %116, ptr noundef %90, ptr noundef %95)
  %1453 = load i64, ptr %95, align 8, !tbaa !9
  %1454 = icmp ne i64 %1453, 0
  br i1 %1454, label %1455, label %1457

1455:                                             ; preds = %1413
  %1456 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 -3, ptr %1456, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %148, align 4
  br label %1939

1457:                                             ; preds = %1413
  %1458 = load ptr, ptr %49, align 8, !tbaa !5
  %1459 = load i64, ptr %129, align 8, !tbaa !9
  %1460 = getelementptr inbounds double, ptr %1458, i64 %1459
  %1461 = load double, ptr %1460, align 8, !tbaa !11
  store double %1461, ptr %106, align 8, !tbaa !11
  %1462 = load ptr, ptr %50, align 8, !tbaa !5
  %1463 = load i64, ptr %96, align 8, !tbaa !9
  %1464 = load i64, ptr %129, align 8, !tbaa !9
  %1465 = add nsw i64 %1463, %1464
  %1466 = getelementptr inbounds i64, ptr %1462, i64 %1465
  store i64 0, ptr %1466, align 8, !tbaa !9
  br label %1467

1467:                                             ; preds = %1457, %1410
  %1468 = load i64, ptr %122, align 8, !tbaa !9
  %1469 = icmp ne i64 %1468, 0
  %1470 = xor i1 %1469, true
  %1471 = zext i1 %1470 to i32
  %1472 = sext i32 %1471 to i64
  store i64 %1472, ptr %61, align 8, !tbaa !9
  %1473 = load ptr, ptr %30, align 8, !tbaa !5
  %1474 = load i64, ptr %107, align 8, !tbaa !9
  %1475 = getelementptr inbounds double, ptr %1473, i64 %1474
  %1476 = load ptr, ptr %31, align 8, !tbaa !5
  %1477 = load i64, ptr %107, align 8, !tbaa !9
  %1478 = getelementptr inbounds double, ptr %1476, i64 %1477
  %1479 = load ptr, ptr %49, align 8, !tbaa !5
  %1480 = load i64, ptr %91, align 8, !tbaa !9
  %1481 = load i64, ptr %107, align 8, !tbaa !9
  %1482 = add nsw i64 %1480, %1481
  %1483 = sub nsw i64 %1482, 1
  %1484 = getelementptr inbounds double, ptr %1479, i64 %1483
  %1485 = load ptr, ptr %49, align 8, !tbaa !5
  %1486 = load i64, ptr %110, align 8, !tbaa !9
  %1487 = load i64, ptr %107, align 8, !tbaa !9
  %1488 = add nsw i64 %1486, %1487
  %1489 = sub nsw i64 %1488, 1
  %1490 = getelementptr inbounds double, ptr %1485, i64 %1489
  %1491 = load ptr, ptr %32, align 8, !tbaa !5
  %1492 = load ptr, ptr %46, align 8, !tbaa !5
  %1493 = load i64, ptr %107, align 8, !tbaa !9
  %1494 = load i64, ptr %129, align 8, !tbaa !9
  %1495 = load i64, ptr %52, align 8, !tbaa !9
  %1496 = mul nsw i64 %1494, %1495
  %1497 = add nsw i64 %1493, %1496
  %1498 = getelementptr inbounds double, ptr %1492, i64 %1497
  %1499 = load ptr, ptr %50, align 8, !tbaa !5
  %1500 = load i64, ptr %96, align 8, !tbaa !9
  %1501 = load i64, ptr %129, align 8, !tbaa !9
  %1502 = add nsw i64 %1500, %1501
  %1503 = getelementptr inbounds i64, ptr %1499, i64 %1502
  %1504 = load ptr, ptr %48, align 8, !tbaa !5
  %1505 = load i64, ptr %129, align 8, !tbaa !9
  %1506 = shl i64 %1505, 1
  %1507 = sub nsw i64 %1506, 1
  %1508 = getelementptr inbounds i64, ptr %1504, i64 %1507
  %1509 = load ptr, ptr %49, align 8, !tbaa !5
  %1510 = load i64, ptr %128, align 8, !tbaa !9
  %1511 = getelementptr inbounds double, ptr %1509, i64 %1510
  %1512 = call i32 @dlar1v_(ptr noundef %72, ptr noundef @c__1, ptr noundef %72, ptr noundef %106, ptr noundef %1475, ptr noundef %1478, ptr noundef %1484, ptr noundef %1490, ptr noundef %1491, ptr noundef %125, ptr noundef %1498, ptr noundef %61, ptr noundef %117, ptr noundef %80, ptr noundef %112, ptr noundef %1503, ptr noundef %1508, ptr noundef %144, ptr noundef %97, ptr noundef %145, ptr noundef %1511)
  %1513 = load i64, ptr %88, align 8, !tbaa !9
  %1514 = icmp eq i64 %1513, 0
  br i1 %1514, label %1515, label %1518

1515:                                             ; preds = %1467
  %1516 = load double, ptr %97, align 8, !tbaa !11
  store double %1516, ptr %140, align 8, !tbaa !11
  %1517 = load double, ptr %106, align 8, !tbaa !11
  store double %1517, ptr %89, align 8, !tbaa !11
  br label %1526

1518:                                             ; preds = %1467
  %1519 = load double, ptr %97, align 8, !tbaa !11
  %1520 = load double, ptr %140, align 8, !tbaa !11
  %1521 = fcmp olt double %1519, %1520
  br i1 %1521, label %1522, label %1525

1522:                                             ; preds = %1518
  %1523 = load double, ptr %97, align 8, !tbaa !11
  store double %1523, ptr %140, align 8, !tbaa !11
  %1524 = load double, ptr %106, align 8, !tbaa !11
  store double %1524, ptr %89, align 8, !tbaa !11
  br label %1525

1525:                                             ; preds = %1522, %1518
  br label %1526

1526:                                             ; preds = %1525, %1515
  %1527 = load i64, ptr %137, align 8, !tbaa !9
  store i64 %1527, ptr %57, align 8, !tbaa !9
  %1528 = load ptr, ptr %48, align 8, !tbaa !5
  %1529 = load i64, ptr %129, align 8, !tbaa !9
  %1530 = shl i64 %1529, 1
  %1531 = sub nsw i64 %1530, 1
  %1532 = getelementptr inbounds i64, ptr %1528, i64 %1531
  %1533 = load i64, ptr %1532, align 8, !tbaa !9
  store i64 %1533, ptr %58, align 8, !tbaa !9
  %1534 = load i64, ptr %57, align 8, !tbaa !9
  %1535 = load i64, ptr %58, align 8, !tbaa !9
  %1536 = icmp sle i64 %1534, %1535
  br i1 %1536, label %1537, label %1539

1537:                                             ; preds = %1526
  %1538 = load i64, ptr %57, align 8, !tbaa !9
  br label %1541

1539:                                             ; preds = %1526
  %1540 = load i64, ptr %58, align 8, !tbaa !9
  br label %1541

1541:                                             ; preds = %1539, %1537
  %1542 = phi i64 [ %1538, %1537 ], [ %1540, %1539 ]
  store i64 %1542, ptr %137, align 8, !tbaa !9
  %1543 = load i64, ptr %147, align 8, !tbaa !9
  store i64 %1543, ptr %57, align 8, !tbaa !9
  %1544 = load ptr, ptr %48, align 8, !tbaa !5
  %1545 = load i64, ptr %129, align 8, !tbaa !9
  %1546 = mul nsw i64 %1545, 2
  %1547 = getelementptr inbounds i64, ptr %1544, i64 %1546
  %1548 = load i64, ptr %1547, align 8, !tbaa !9
  store i64 %1548, ptr %58, align 8, !tbaa !9
  %1549 = load i64, ptr %57, align 8, !tbaa !9
  %1550 = load i64, ptr %58, align 8, !tbaa !9
  %1551 = icmp sge i64 %1549, %1550
  br i1 %1551, label %1552, label %1554

1552:                                             ; preds = %1541
  %1553 = load i64, ptr %57, align 8, !tbaa !9
  br label %1556

1554:                                             ; preds = %1541
  %1555 = load i64, ptr %58, align 8, !tbaa !9
  br label %1556

1556:                                             ; preds = %1554, %1552
  %1557 = phi i64 [ %1553, %1552 ], [ %1555, %1554 ]
  store i64 %1557, ptr %147, align 8, !tbaa !9
  %1558 = load i64, ptr %88, align 8, !tbaa !9
  %1559 = add nsw i64 %1558, 1
  store i64 %1559, ptr %88, align 8, !tbaa !9
  %1560 = load double, ptr %97, align 8, !tbaa !11
  %1561 = load double, ptr %77, align 8, !tbaa !11
  %1562 = load double, ptr %74, align 8, !tbaa !11
  %1563 = fmul double %1561, %1562
  %1564 = fcmp ogt double %1560, %1563
  br i1 %1564, label %1565, label %1666

1565:                                             ; preds = %1556
  %1566 = load double, ptr %145, align 8, !tbaa !11
  %1567 = fcmp oge double %1566, 0.000000e+00
  br i1 %1567, label %1568, label %1570

1568:                                             ; preds = %1565
  %1569 = load double, ptr %145, align 8, !tbaa !11
  br label %1573

1570:                                             ; preds = %1565
  %1571 = load double, ptr %145, align 8, !tbaa !11
  %1572 = fneg double %1571
  br label %1573

1573:                                             ; preds = %1570, %1568
  %1574 = phi double [ %1569, %1568 ], [ %1572, %1570 ]
  %1575 = load double, ptr %102, align 8, !tbaa !11
  %1576 = load double, ptr %106, align 8, !tbaa !11
  %1577 = fcmp oge double %1576, 0.000000e+00
  br i1 %1577, label %1578, label %1580

1578:                                             ; preds = %1573
  %1579 = load double, ptr %106, align 8, !tbaa !11
  br label %1583

1580:                                             ; preds = %1573
  %1581 = load double, ptr %106, align 8, !tbaa !11
  %1582 = fneg double %1581
  br label %1583

1583:                                             ; preds = %1580, %1578
  %1584 = phi double [ %1579, %1578 ], [ %1582, %1580 ]
  %1585 = fmul double %1575, %1584
  %1586 = fcmp ogt double %1574, %1585
  br i1 %1586, label %1587, label %1666

1587:                                             ; preds = %1583
  %1588 = load i64, ptr %122, align 8, !tbaa !9
  %1589 = icmp ne i64 %1588, 0
  br i1 %1589, label %1666, label %1590

1590:                                             ; preds = %1587
  %1591 = load i64, ptr %108, align 8, !tbaa !9
  %1592 = load i64, ptr %117, align 8, !tbaa !9
  %1593 = icmp sle i64 %1591, %1592
  br i1 %1593, label %1594, label %1595

1594:                                             ; preds = %1590
  store double -1.000000e+00, ptr %111, align 8, !tbaa !11
  br label %1596

1595:                                             ; preds = %1590
  store double 1.000000e+00, ptr %111, align 8, !tbaa !11
  br label %1596

1596:                                             ; preds = %1595, %1594
  %1597 = load double, ptr %145, align 8, !tbaa !11
  %1598 = load double, ptr %111, align 8, !tbaa !11
  %1599 = fmul double %1597, %1598
  %1600 = fcmp oge double %1599, 0.000000e+00
  br i1 %1600, label %1601, label %1638

1601:                                             ; preds = %1596
  %1602 = load double, ptr %106, align 8, !tbaa !11
  %1603 = load double, ptr %145, align 8, !tbaa !11
  %1604 = fadd double %1602, %1603
  %1605 = load double, ptr %99, align 8, !tbaa !11
  %1606 = fcmp ole double %1604, %1605
  br i1 %1606, label %1607, label %1638

1607:                                             ; preds = %1601
  %1608 = load double, ptr %106, align 8, !tbaa !11
  %1609 = load double, ptr %145, align 8, !tbaa !11
  %1610 = fadd double %1608, %1609
  %1611 = load double, ptr %86, align 8, !tbaa !11
  %1612 = fcmp oge double %1610, %1611
  br i1 %1612, label %1613, label %1638

1613:                                             ; preds = %1607
  store i64 1, ptr %131, align 8, !tbaa !9
  %1614 = load double, ptr %111, align 8, !tbaa !11
  %1615 = fcmp oeq double %1614, 1.000000e+00
  br i1 %1615, label %1616, label %1618

1616:                                             ; preds = %1613
  %1617 = load double, ptr %106, align 8, !tbaa !11
  store double %1617, ptr %86, align 8, !tbaa !11
  br label %1620

1618:                                             ; preds = %1613
  %1619 = load double, ptr %106, align 8, !tbaa !11
  store double %1619, ptr %99, align 8, !tbaa !11
  br label %1620

1620:                                             ; preds = %1618, %1616
  %1621 = load double, ptr %99, align 8, !tbaa !11
  %1622 = load double, ptr %86, align 8, !tbaa !11
  %1623 = fadd double %1621, %1622
  %1624 = fmul double %1623, 5.000000e-01
  %1625 = load ptr, ptr %49, align 8, !tbaa !5
  %1626 = load i64, ptr %129, align 8, !tbaa !9
  %1627 = getelementptr inbounds double, ptr %1625, i64 %1626
  store double %1624, ptr %1627, align 8, !tbaa !11
  %1628 = load double, ptr %145, align 8, !tbaa !11
  %1629 = load double, ptr %106, align 8, !tbaa !11
  %1630 = fadd double %1629, %1628
  store double %1630, ptr %106, align 8, !tbaa !11
  %1631 = load double, ptr %99, align 8, !tbaa !11
  %1632 = load double, ptr %86, align 8, !tbaa !11
  %1633 = fsub double %1631, %1632
  %1634 = fmul double %1633, 5.000000e-01
  %1635 = load ptr, ptr %41, align 8, !tbaa !5
  %1636 = load i64, ptr %129, align 8, !tbaa !9
  %1637 = getelementptr inbounds double, ptr %1635, i64 %1636
  store double %1634, ptr %1637, align 8, !tbaa !11
  br label %1639

1638:                                             ; preds = %1607, %1601, %1596
  store i64 1, ptr %109, align 8, !tbaa !9
  br label %1639

1639:                                             ; preds = %1638, %1620
  %1640 = load double, ptr %99, align 8, !tbaa !11
  %1641 = load double, ptr %86, align 8, !tbaa !11
  %1642 = fsub double %1640, %1641
  %1643 = load double, ptr %102, align 8, !tbaa !11
  %1644 = load double, ptr %106, align 8, !tbaa !11
  %1645 = fcmp oge double %1644, 0.000000e+00
  br i1 %1645, label %1646, label %1648

1646:                                             ; preds = %1639
  %1647 = load double, ptr %106, align 8, !tbaa !11
  br label %1651

1648:                                             ; preds = %1639
  %1649 = load double, ptr %106, align 8, !tbaa !11
  %1650 = fneg double %1649
  br label %1651

1651:                                             ; preds = %1648, %1646
  %1652 = phi double [ %1647, %1646 ], [ %1650, %1648 ]
  %1653 = fmul double %1643, %1652
  %1654 = fcmp olt double %1642, %1653
  br i1 %1654, label %1655, label %1656

1655:                                             ; preds = %1651
  store i64 1, ptr %122, align 8, !tbaa !9
  br label %1410

1656:                                             ; preds = %1651
  %1657 = load i64, ptr %88, align 8, !tbaa !9
  %1658 = icmp slt i64 %1657, 10
  br i1 %1658, label %1659, label %1660

1659:                                             ; preds = %1656
  br label %1410

1660:                                             ; preds = %1656
  %1661 = load i64, ptr %88, align 8, !tbaa !9
  %1662 = icmp eq i64 %1661, 10
  br i1 %1662, label %1663, label %1664

1663:                                             ; preds = %1660
  store i64 1, ptr %109, align 8, !tbaa !9
  br label %1410

1664:                                             ; preds = %1660
  %1665 = load ptr, ptr %51, align 8, !tbaa !5
  store i64 5, ptr %1665, align 8, !tbaa !9
  store i32 0, ptr %26, align 4
  store i32 1, ptr %148, align 4
  br label %1939

1666:                                             ; preds = %1587, %1583, %1556
  store i64 0, ptr %105, align 8, !tbaa !9
  %1667 = load i64, ptr %131, align 8, !tbaa !9
  %1668 = icmp ne i64 %1667, 0
  br i1 %1668, label %1669, label %1678

1669:                                             ; preds = %1666
  %1670 = load i64, ptr %122, align 8, !tbaa !9
  %1671 = icmp ne i64 %1670, 0
  br i1 %1671, label %1672, label %1678

1672:                                             ; preds = %1669
  %1673 = load double, ptr %140, align 8, !tbaa !11
  %1674 = load double, ptr %97, align 8, !tbaa !11
  %1675 = fcmp ole double %1673, %1674
  br i1 %1675, label %1676, label %1678

1676:                                             ; preds = %1672
  %1677 = load double, ptr %89, align 8, !tbaa !11
  store double %1677, ptr %106, align 8, !tbaa !11
  store i64 1, ptr %105, align 8, !tbaa !9
  br label %1678

1678:                                             ; preds = %1676, %1672, %1669, %1666
  %1679 = load i64, ptr %105, align 8, !tbaa !9
  %1680 = icmp ne i64 %1679, 0
  br i1 %1680, label %1681, label %1727

1681:                                             ; preds = %1678
  %1682 = load i64, ptr %122, align 8, !tbaa !9
  %1683 = icmp ne i64 %1682, 0
  %1684 = xor i1 %1683, true
  %1685 = zext i1 %1684 to i32
  %1686 = sext i32 %1685 to i64
  store i64 %1686, ptr %61, align 8, !tbaa !9
  %1687 = load ptr, ptr %30, align 8, !tbaa !5
  %1688 = load i64, ptr %107, align 8, !tbaa !9
  %1689 = getelementptr inbounds double, ptr %1687, i64 %1688
  %1690 = load ptr, ptr %31, align 8, !tbaa !5
  %1691 = load i64, ptr %107, align 8, !tbaa !9
  %1692 = getelementptr inbounds double, ptr %1690, i64 %1691
  %1693 = load ptr, ptr %49, align 8, !tbaa !5
  %1694 = load i64, ptr %91, align 8, !tbaa !9
  %1695 = load i64, ptr %107, align 8, !tbaa !9
  %1696 = add nsw i64 %1694, %1695
  %1697 = sub nsw i64 %1696, 1
  %1698 = getelementptr inbounds double, ptr %1693, i64 %1697
  %1699 = load ptr, ptr %49, align 8, !tbaa !5
  %1700 = load i64, ptr %110, align 8, !tbaa !9
  %1701 = load i64, ptr %107, align 8, !tbaa !9
  %1702 = add nsw i64 %1700, %1701
  %1703 = sub nsw i64 %1702, 1
  %1704 = getelementptr inbounds double, ptr %1699, i64 %1703
  %1705 = load ptr, ptr %32, align 8, !tbaa !5
  %1706 = load ptr, ptr %46, align 8, !tbaa !5
  %1707 = load i64, ptr %107, align 8, !tbaa !9
  %1708 = load i64, ptr %129, align 8, !tbaa !9
  %1709 = load i64, ptr %52, align 8, !tbaa !9
  %1710 = mul nsw i64 %1708, %1709
  %1711 = add nsw i64 %1707, %1710
  %1712 = getelementptr inbounds double, ptr %1706, i64 %1711
  %1713 = load ptr, ptr %50, align 8, !tbaa !5
  %1714 = load i64, ptr %96, align 8, !tbaa !9
  %1715 = load i64, ptr %129, align 8, !tbaa !9
  %1716 = add nsw i64 %1714, %1715
  %1717 = getelementptr inbounds i64, ptr %1713, i64 %1716
  %1718 = load ptr, ptr %48, align 8, !tbaa !5
  %1719 = load i64, ptr %129, align 8, !tbaa !9
  %1720 = shl i64 %1719, 1
  %1721 = sub nsw i64 %1720, 1
  %1722 = getelementptr inbounds i64, ptr %1718, i64 %1721
  %1723 = load ptr, ptr %49, align 8, !tbaa !5
  %1724 = load i64, ptr %128, align 8, !tbaa !9
  %1725 = getelementptr inbounds double, ptr %1723, i64 %1724
  %1726 = call i32 @dlar1v_(ptr noundef %72, ptr noundef @c__1, ptr noundef %72, ptr noundef %106, ptr noundef %1689, ptr noundef %1692, ptr noundef %1698, ptr noundef %1704, ptr noundef %1705, ptr noundef %125, ptr noundef %1712, ptr noundef %61, ptr noundef %117, ptr noundef %80, ptr noundef %112, ptr noundef %1717, ptr noundef %1722, ptr noundef %144, ptr noundef %97, ptr noundef %145, ptr noundef %1725)
  br label %1727

1727:                                             ; preds = %1681, %1678
  %1728 = load double, ptr %106, align 8, !tbaa !11
  %1729 = load ptr, ptr %49, align 8, !tbaa !5
  %1730 = load i64, ptr %129, align 8, !tbaa !9
  %1731 = getelementptr inbounds double, ptr %1729, i64 %1730
  store double %1728, ptr %1731, align 8, !tbaa !11
  br label %1732

1732:                                             ; preds = %1727
  %1733 = load i64, ptr %113, align 8, !tbaa !9
  %1734 = load ptr, ptr %48, align 8, !tbaa !5
  %1735 = load i64, ptr %129, align 8, !tbaa !9
  %1736 = shl i64 %1735, 1
  %1737 = sub nsw i64 %1736, 1
  %1738 = getelementptr inbounds i64, ptr %1734, i64 %1737
  %1739 = load i64, ptr %1738, align 8, !tbaa !9
  %1740 = add nsw i64 %1739, %1733
  store i64 %1740, ptr %1738, align 8, !tbaa !9
  %1741 = load i64, ptr %113, align 8, !tbaa !9
  %1742 = load ptr, ptr %48, align 8, !tbaa !5
  %1743 = load i64, ptr %129, align 8, !tbaa !9
  %1744 = mul nsw i64 %1743, 2
  %1745 = getelementptr inbounds i64, ptr %1742, i64 %1744
  %1746 = load i64, ptr %1745, align 8, !tbaa !9
  %1747 = add nsw i64 %1746, %1741
  store i64 %1747, ptr %1745, align 8, !tbaa !9
  %1748 = load ptr, ptr %48, align 8, !tbaa !5
  %1749 = load i64, ptr %129, align 8, !tbaa !9
  %1750 = shl i64 %1749, 1
  %1751 = sub nsw i64 %1750, 1
  %1752 = getelementptr inbounds i64, ptr %1748, i64 %1751
  %1753 = load i64, ptr %1752, align 8, !tbaa !9
  store i64 %1753, ptr %101, align 8, !tbaa !9
  %1754 = load ptr, ptr %48, align 8, !tbaa !5
  %1755 = load i64, ptr %129, align 8, !tbaa !9
  %1756 = mul nsw i64 %1755, 2
  %1757 = getelementptr inbounds i64, ptr %1754, i64 %1756
  %1758 = load i64, ptr %1757, align 8, !tbaa !9
  store i64 %1758, ptr %79, align 8, !tbaa !9
  %1759 = load i64, ptr %113, align 8, !tbaa !9
  %1760 = load i64, ptr %137, align 8, !tbaa !9
  %1761 = add nsw i64 %1760, %1759
  store i64 %1761, ptr %137, align 8, !tbaa !9
  %1762 = load i64, ptr %113, align 8, !tbaa !9
  %1763 = load i64, ptr %147, align 8, !tbaa !9
  %1764 = add nsw i64 %1763, %1762
  store i64 %1764, ptr %147, align 8, !tbaa !9
  %1765 = load i64, ptr %137, align 8, !tbaa !9
  %1766 = load i64, ptr %101, align 8, !tbaa !9
  %1767 = icmp slt i64 %1765, %1766
  br i1 %1767, label %1768, label %1788

1768:                                             ; preds = %1732
  %1769 = load i64, ptr %101, align 8, !tbaa !9
  %1770 = sub nsw i64 %1769, 1
  store i64 %1770, ptr %57, align 8, !tbaa !9
  %1771 = load i64, ptr %137, align 8, !tbaa !9
  store i64 %1771, ptr %69, align 8, !tbaa !9
  br label %1772

1772:                                             ; preds = %1784, %1768
  %1773 = load i64, ptr %69, align 8, !tbaa !9
  %1774 = load i64, ptr %57, align 8, !tbaa !9
  %1775 = icmp sle i64 %1773, %1774
  br i1 %1775, label %1776, label %1787

1776:                                             ; preds = %1772
  %1777 = load ptr, ptr %46, align 8, !tbaa !5
  %1778 = load i64, ptr %69, align 8, !tbaa !9
  %1779 = load i64, ptr %129, align 8, !tbaa !9
  %1780 = load i64, ptr %52, align 8, !tbaa !9
  %1781 = mul nsw i64 %1779, %1780
  %1782 = add nsw i64 %1778, %1781
  %1783 = getelementptr inbounds double, ptr %1777, i64 %1782
  store double 0.000000e+00, ptr %1783, align 8, !tbaa !11
  br label %1784

1784:                                             ; preds = %1776
  %1785 = load i64, ptr %69, align 8, !tbaa !9
  %1786 = add nsw i64 %1785, 1
  store i64 %1786, ptr %69, align 8, !tbaa !9
  br label %1772, !llvm.loop !22

1787:                                             ; preds = %1772
  br label %1788

1788:                                             ; preds = %1787, %1732
  %1789 = load i64, ptr %147, align 8, !tbaa !9
  %1790 = load i64, ptr %79, align 8, !tbaa !9
  %1791 = icmp sgt i64 %1789, %1790
  br i1 %1791, label %1792, label %1812

1792:                                             ; preds = %1788
  %1793 = load i64, ptr %147, align 8, !tbaa !9
  store i64 %1793, ptr %57, align 8, !tbaa !9
  %1794 = load i64, ptr %79, align 8, !tbaa !9
  %1795 = add nsw i64 %1794, 1
  store i64 %1795, ptr %69, align 8, !tbaa !9
  br label %1796

1796:                                             ; preds = %1808, %1792
  %1797 = load i64, ptr %69, align 8, !tbaa !9
  %1798 = load i64, ptr %57, align 8, !tbaa !9
  %1799 = icmp sle i64 %1797, %1798
  br i1 %1799, label %1800, label %1811

1800:                                             ; preds = %1796
  %1801 = load ptr, ptr %46, align 8, !tbaa !5
  %1802 = load i64, ptr %69, align 8, !tbaa !9
  %1803 = load i64, ptr %129, align 8, !tbaa !9
  %1804 = load i64, ptr %52, align 8, !tbaa !9
  %1805 = mul nsw i64 %1803, %1804
  %1806 = add nsw i64 %1802, %1805
  %1807 = getelementptr inbounds double, ptr %1801, i64 %1806
  store double 0.000000e+00, ptr %1807, align 8, !tbaa !11
  br label %1808

1808:                                             ; preds = %1800
  %1809 = load i64, ptr %69, align 8, !tbaa !9
  %1810 = add nsw i64 %1809, 1
  store i64 %1810, ptr %69, align 8, !tbaa !9
  br label %1796, !llvm.loop !23

1811:                                             ; preds = %1796
  br label %1812

1812:                                             ; preds = %1811, %1788
  %1813 = load i64, ptr %79, align 8, !tbaa !9
  %1814 = load i64, ptr %101, align 8, !tbaa !9
  %1815 = sub nsw i64 %1813, %1814
  %1816 = add nsw i64 %1815, 1
  store i64 %1816, ptr %57, align 8, !tbaa !9
  %1817 = load ptr, ptr %46, align 8, !tbaa !5
  %1818 = load i64, ptr %101, align 8, !tbaa !9
  %1819 = load i64, ptr %129, align 8, !tbaa !9
  %1820 = load i64, ptr %52, align 8, !tbaa !9
  %1821 = mul nsw i64 %1819, %1820
  %1822 = add nsw i64 %1818, %1821
  %1823 = getelementptr inbounds double, ptr %1817, i64 %1822
  %1824 = call i32 @f2c_dscal(ptr noundef %57, ptr noundef %144, ptr noundef %1823, ptr noundef @c__1)
  br label %1825

1825:                                             ; preds = %1812, %1273
  %1826 = load double, ptr %106, align 8, !tbaa !11
  %1827 = load double, ptr %94, align 8, !tbaa !11
  %1828 = fadd double %1826, %1827
  %1829 = load ptr, ptr %40, align 8, !tbaa !5
  %1830 = load i64, ptr %129, align 8, !tbaa !9
  %1831 = getelementptr inbounds double, ptr %1829, i64 %1830
  store double %1828, ptr %1831, align 8, !tbaa !11
  %1832 = load i64, ptr %98, align 8, !tbaa !9
  %1833 = icmp ne i64 %1832, 0
  br i1 %1833, label %1911, label %1834

1834:                                             ; preds = %1825
  %1835 = load i64, ptr %65, align 8, !tbaa !9
  %1836 = icmp sgt i64 %1835, 1
  br i1 %1836, label %1837, label %1873

1837:                                             ; preds = %1834
  %1838 = load ptr, ptr %42, align 8, !tbaa !5
  %1839 = load i64, ptr %135, align 8, !tbaa !9
  %1840 = getelementptr inbounds double, ptr %1838, i64 %1839
  %1841 = load double, ptr %1840, align 8, !tbaa !11
  store double %1841, ptr %59, align 8, !tbaa !11
  %1842 = load ptr, ptr %40, align 8, !tbaa !5
  %1843 = load i64, ptr %129, align 8, !tbaa !9
  %1844 = getelementptr inbounds double, ptr %1842, i64 %1843
  %1845 = load double, ptr %1844, align 8, !tbaa !11
  %1846 = load ptr, ptr %41, align 8, !tbaa !5
  %1847 = load i64, ptr %129, align 8, !tbaa !9
  %1848 = getelementptr inbounds double, ptr %1846, i64 %1847
  %1849 = load double, ptr %1848, align 8, !tbaa !11
  %1850 = fsub double %1845, %1849
  %1851 = load ptr, ptr %40, align 8, !tbaa !5
  %1852 = load i64, ptr %135, align 8, !tbaa !9
  %1853 = getelementptr inbounds double, ptr %1851, i64 %1852
  %1854 = load double, ptr %1853, align 8, !tbaa !11
  %1855 = fsub double %1850, %1854
  %1856 = load ptr, ptr %41, align 8, !tbaa !5
  %1857 = load i64, ptr %135, align 8, !tbaa !9
  %1858 = getelementptr inbounds double, ptr %1856, i64 %1857
  %1859 = load double, ptr %1858, align 8, !tbaa !11
  %1860 = fsub double %1855, %1859
  store double %1860, ptr %60, align 8, !tbaa !11
  %1861 = load double, ptr %59, align 8, !tbaa !11
  %1862 = load double, ptr %60, align 8, !tbaa !11
  %1863 = fcmp oge double %1861, %1862
  br i1 %1863, label %1864, label %1866

1864:                                             ; preds = %1837
  %1865 = load double, ptr %59, align 8, !tbaa !11
  br label %1868

1866:                                             ; preds = %1837
  %1867 = load double, ptr %60, align 8, !tbaa !11
  br label %1868

1868:                                             ; preds = %1866, %1864
  %1869 = phi double [ %1865, %1864 ], [ %1867, %1866 ]
  %1870 = load ptr, ptr %42, align 8, !tbaa !5
  %1871 = load i64, ptr %135, align 8, !tbaa !9
  %1872 = getelementptr inbounds double, ptr %1870, i64 %1871
  store double %1869, ptr %1872, align 8, !tbaa !11
  br label %1873

1873:                                             ; preds = %1868, %1834
  %1874 = load i64, ptr %129, align 8, !tbaa !9
  %1875 = load i64, ptr %87, align 8, !tbaa !9
  %1876 = icmp slt i64 %1874, %1875
  br i1 %1876, label %1877, label %1910

1877:                                             ; preds = %1873
  %1878 = load double, ptr %119, align 8, !tbaa !11
  store double %1878, ptr %59, align 8, !tbaa !11
  %1879 = load ptr, ptr %40, align 8, !tbaa !5
  %1880 = load i64, ptr %136, align 8, !tbaa !9
  %1881 = getelementptr inbounds double, ptr %1879, i64 %1880
  %1882 = load double, ptr %1881, align 8, !tbaa !11
  %1883 = load ptr, ptr %41, align 8, !tbaa !5
  %1884 = load i64, ptr %136, align 8, !tbaa !9
  %1885 = getelementptr inbounds double, ptr %1883, i64 %1884
  %1886 = load double, ptr %1885, align 8, !tbaa !11
  %1887 = fsub double %1882, %1886
  %1888 = load ptr, ptr %40, align 8, !tbaa !5
  %1889 = load i64, ptr %129, align 8, !tbaa !9
  %1890 = getelementptr inbounds double, ptr %1888, i64 %1889
  %1891 = load double, ptr %1890, align 8, !tbaa !11
  %1892 = fsub double %1887, %1891
  %1893 = load ptr, ptr %41, align 8, !tbaa !5
  %1894 = load i64, ptr %129, align 8, !tbaa !9
  %1895 = getelementptr inbounds double, ptr %1893, i64 %1894
  %1896 = load double, ptr %1895, align 8, !tbaa !11
  %1897 = fsub double %1892, %1896
  store double %1897, ptr %60, align 8, !tbaa !11
  %1898 = load double, ptr %59, align 8, !tbaa !11
  %1899 = load double, ptr %60, align 8, !tbaa !11
  %1900 = fcmp oge double %1898, %1899
  br i1 %1900, label %1901, label %1903

1901:                                             ; preds = %1877
  %1902 = load double, ptr %59, align 8, !tbaa !11
  br label %1905

1903:                                             ; preds = %1877
  %1904 = load double, ptr %60, align 8, !tbaa !11
  br label %1905

1905:                                             ; preds = %1903, %1901
  %1906 = phi double [ %1902, %1901 ], [ %1904, %1903 ]
  %1907 = load ptr, ptr %42, align 8, !tbaa !5
  %1908 = load i64, ptr %129, align 8, !tbaa !9
  %1909 = getelementptr inbounds double, ptr %1907, i64 %1908
  store double %1906, ptr %1909, align 8, !tbaa !11
  br label %1910

1910:                                             ; preds = %1905, %1873
  br label %1911

1911:                                             ; preds = %1910, %1825
  %1912 = load i64, ptr %93, align 8, !tbaa !9
  %1913 = add nsw i64 %1912, 1
  store i64 %1913, ptr %93, align 8, !tbaa !9
  br label %1914

1914:                                             ; preds = %1911, %1223
  br label %1915

1915:                                             ; preds = %1914, %1074
  %1916 = load i64, ptr %64, align 8, !tbaa !9
  %1917 = add nsw i64 %1916, 1
  store i64 %1917, ptr %132, align 8, !tbaa !9
  br label %1918

1918:                                             ; preds = %1915, %906
  br label %1919

1919:                                             ; preds = %1918
  %1920 = load i64, ptr %64, align 8, !tbaa !9
  %1921 = add nsw i64 %1920, 1
  store i64 %1921, ptr %64, align 8, !tbaa !9
  br label %866, !llvm.loop !24

1922:                                             ; preds = %866
  br label %1923

1923:                                             ; preds = %1922
  %1924 = load i64, ptr %63, align 8, !tbaa !9
  %1925 = add nsw i64 %1924, 1
  store i64 %1925, ptr %63, align 8, !tbaa !9
  br label %515, !llvm.loop !25

1926:                                             ; preds = %515
  %1927 = load i64, ptr %120, align 8, !tbaa !9
  %1928 = add nsw i64 %1927, 1
  store i64 %1928, ptr %120, align 8, !tbaa !9
  br label %490

1929:                                             ; preds = %490
  %1930 = load i64, ptr %81, align 8, !tbaa !9
  %1931 = add nsw i64 %1930, 1
  store i64 %1931, ptr %107, align 8, !tbaa !9
  %1932 = load i64, ptr %87, align 8, !tbaa !9
  %1933 = add nsw i64 %1932, 1
  store i64 %1933, ptr %115, align 8, !tbaa !9
  br label %1934

1934:                                             ; preds = %1929, %416, %341, %328
  br label %1935

1935:                                             ; preds = %1934
  %1936 = load i64, ptr %82, align 8, !tbaa !9
  %1937 = add nsw i64 %1936, 1
  store i64 %1937, ptr %82, align 8, !tbaa !9
  br label %292, !llvm.loop !26

1938:                                             ; preds = %292
  store i32 0, ptr %26, align 4
  store i32 1, ptr %148, align 4
  br label %1939

1939:                                             ; preds = %1938, %1664, %1455, %1221, %717, %499
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %143) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %142) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, 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 8, 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 8, ptr %85) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %73) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %69) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %60) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #5
  call void @llvm.lifetime.end.p0(i64 8, 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 8, ptr %52) #5
  %1940 = load i32, ptr %26, align 4
  ret i32 %1940
}

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

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

declare double @dlamch_(ptr noundef) #2

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

declare i32 @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

declare i32 @dlarrf_(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

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

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

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

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

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


; 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 [5 x i8], align 1
@c_b5 = external hidden global double, align 8
@.str.1 = external hidden unnamed_addr constant [10 x i8], align 1
@c__1 = external hidden global i64, align 8
@c__2 = external hidden global i64, align 8

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @dlarrv_(ptr noundef %0, ptr nocapture noundef readonly %1, ptr nocapture noundef readnone %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr nocapture noundef readonly %6, ptr nocapture noundef readonly %7, ptr nocapture noundef readonly %8, ptr nocapture noundef readonly %9, ptr nocapture noundef readonly %10, ptr noundef %11, ptr noundef %12, ptr noundef %13, ptr noundef %14, ptr noundef %15, ptr nocapture noundef readonly %16, ptr nocapture noundef readonly %17, ptr nocapture noundef readonly %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 %22 to i64
  %27 = ptrtoint ptr %13 to i64
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca double, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca i64, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca double, align 8
  %51 = alloca i64, align 8
  %52 = alloca i64, align 8
  %53 = alloca i64, align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %50) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %55) #7
  %56 = getelementptr inbounds i8, ptr %3, i64 -8
  %57 = getelementptr inbounds i8, ptr %4, i64 -8
  %58 = getelementptr inbounds i8, ptr %6, i64 -8
  %59 = getelementptr inbounds i8, ptr %13, i64 -8
  %60 = getelementptr inbounds i8, ptr %14, i64 -8
  %61 = getelementptr inbounds i8, ptr %15, i64 -8
  %62 = getelementptr inbounds i8, ptr %16, i64 -8
  %63 = getelementptr inbounds i8, ptr %17, i64 -8
  %64 = getelementptr inbounds i8, ptr %18, i64 -8
  %65 = load i64, ptr %20, align 8, !tbaa !5
  %66 = xor i64 %65, -1
  %67 = getelementptr inbounds double, ptr %19, i64 %66
  %68 = getelementptr inbounds i8, ptr %21, i64 -8
  %69 = getelementptr inbounds i8, ptr %22, i64 -8
  %70 = getelementptr inbounds i8, ptr %23, i64 -8
  %71 = load i64, ptr %0, align 8, !tbaa !5
  %72 = shl i64 %71, 1
  %73 = mul nsw i64 %71, 3
  %.not954 = icmp slt i64 %71, 1
  br i1 %.not954, label %._crit_edge960, label %.lr.ph959.preheader

.lr.ph959.preheader:                              ; preds = %25
  %74 = mul i64 %71, 12
  %smax = tail call i64 @llvm.smax.i64(i64 %74, i64 1)
  %75 = shl nuw i64 %smax, 3
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %22, i8 0, i64 %75, i1 false), !tbaa !9
  %76 = mul i64 %71, 7
  %smax1107 = tail call i64 @llvm.smax.i64(i64 %76, i64 1)
  %77 = shl nuw i64 %smax1107, 3
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %23, i8 0, i64 %77, i1 false), !tbaa !5
  br label %._crit_edge960

._crit_edge960:                                   ; preds = %25, %.lr.ph959.preheader
  %78 = load i64, ptr %8, align 8, !tbaa !5
  %79 = icmp sgt i64 %78, 1
  %80 = add nsw i64 %78, -1
  %spec.select = select i1 %79, i64 %80, i64 1
  %81 = load i64, ptr %7, align 8, !tbaa !5
  %82 = load i64, ptr %9, align 8, !tbaa !5
  %83 = icmp slt i64 %82, %81
  %84 = add nsw i64 %82, 1
  %.0683 = select i1 %83, i64 %84, i64 %81
  %reass.sub = sub i64 %.0683, %spec.select
  %85 = add i64 %reass.sub, 1
  store i64 %85, ptr %53, align 8, !tbaa !5
  %86 = mul nsw i64 %spec.select, %65
  %87 = getelementptr double, ptr %67, i64 %86
  %88 = getelementptr i8, ptr %87, i64 8
  %89 = call i32 @dlaset_(ptr noundef nonnull @.str, ptr noundef nonnull %0, ptr noundef nonnull %53, ptr noundef nonnull @c_b5, ptr noundef nonnull @c_b5, ptr noundef %88, ptr noundef nonnull %20) #7
  %90 = call double @dlamch_(ptr noundef nonnull @.str.1) #7
  %91 = fmul double %90, 2.000000e+00
  store double %91, ptr %43, align 8, !tbaa !9
  %92 = load i64, ptr %8, align 8, !tbaa !5
  %93 = icmp eq i64 %92, 1
  %.pre.pre = load i64, ptr %7, align 8, !tbaa !5
  br i1 %93, label %94, label %97

94:                                               ; preds = %._crit_edge960
  %95 = load i64, ptr %9, align 8, !tbaa !5
  %96 = icmp eq i64 %95, %.pre.pre
  br i1 %96, label %99, label %97

97:                                               ; preds = %94, %._crit_edge960
  %98 = fmul double %90, 4.000000e+00
  store double %98, ptr %11, align 8, !tbaa !9
  store double %98, ptr %12, align 8, !tbaa !9
  br label %99

99:                                               ; preds = %94, %97
  %100 = getelementptr inbounds i64, ptr %62, i64 %.pre.pre
  %101 = load i64, ptr %100, align 8, !tbaa !5
  %invariant.gep1063 = getelementptr i8, ptr %15, i64 -24
  %.not7941065 = icmp slt i64 %101, 1
  br i1 %.not7941065, label %.loopexit854, label %.lr.ph1074

.lr.ph1074:                                       ; preds = %99
  %102 = getelementptr i64, ptr %23, i64 %71
  %103 = getelementptr i64, ptr %70, i64 %71
  %104 = getelementptr i8, ptr %103, i64 16
  %105 = getelementptr double, ptr %69, i64 %71
  %106 = getelementptr double, ptr %69, i64 %72
  %107 = getelementptr double, ptr %22, i64 %72
  %invariant.gep1075 = getelementptr i8, ptr %107, i64 -8
  %108 = getelementptr double, ptr %22, i64 %73
  %109 = getelementptr i64, ptr %23, i64 %73
  %110 = fmul double %90, 3.000000e+00
  %111 = fmul double %90, 4.000000e+00
  %scevgep = getelementptr i8, ptr %19, i64 -16
  %scevgep1115 = getelementptr i8, ptr %19, i64 -8
  %scevgep1172 = getelementptr i8, ptr %22, i64 -16
  %scevgep1174 = getelementptr i8, ptr %22, i64 -8
  %scevgep1176 = getelementptr i8, ptr %14, i64 -16
  %scevgep1178 = getelementptr i8, ptr %14, i64 -8
  %112 = sub i64 %27, %26
  %113 = shl i64 %71, 3
  %114 = getelementptr i8, ptr %22, i64 %113
  %scevgep1204 = getelementptr i8, ptr %114, i64 -8
  %scevgep1206 = getelementptr i8, ptr %22, i64 -8
  %115 = shl i64 %71, 4
  %116 = add i64 %115, -8
  %scevgep1208 = getelementptr i8, ptr %22, i64 %116
  %scevgep1210 = getelementptr i8, ptr %22, i64 %116
  %scevgep1212 = getelementptr i8, ptr %3, i64 -8
  %scevgep1214 = getelementptr i8, ptr %3, i64 -8
  %scevgep1216 = getelementptr i8, ptr %4, i64 -8
  %scevgep1218 = getelementptr i8, ptr %4, i64 -8
  %diff.check = icmp ult i64 %112, 32
  %broadcast.splatinsert = insertelement <2 x double> poison, double %110, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> poison, <2 x i32> zeroinitializer
  %broadcast.splatinsert1182 = insertelement <2 x double> poison, double %111, i64 0
  %broadcast.splat1183 = shufflevector <2 x double> %broadcast.splatinsert1182, <2 x double> poison, <2 x i32> zeroinitializer
  br label %117

117:                                              ; preds = %.lr.ph1074, %726
  %.06841072 = phi double [ undef, %.lr.ph1074 ], [ %.9, %726 ]
  %.07041070 = phi i64 [ 1, %.lr.ph1074 ], [ %.1705, %726 ]
  %.07091069 = phi i64 [ 1, %.lr.ph1074 ], [ %.1710, %726 ]
  %.07381068 = phi double [ undef, %.lr.ph1074 ], [ %.9747, %726 ]
  %.07601066 = phi i64 [ 1, %.lr.ph1074 ], [ %727, %726 ]
  %118 = getelementptr inbounds i64, ptr %58, i64 %.07601066
  %119 = load i64, ptr %118, align 8, !tbaa !5
  %120 = getelementptr inbounds double, ptr %57, i64 %119
  %121 = load double, ptr %120, align 8, !tbaa !9
  %122 = add i64 %.07041070, -1
  %123 = load i64, ptr %7, align 8, !tbaa !5
  %.not = icmp sgt i64 %.07041070, %123
  br i1 %.not, label %._crit_edge964, label %.lr.ph963

.lr.ph963:                                        ; preds = %117, %127
  %.0749961 = phi i64 [ %128, %127 ], [ %122, %117 ]
  %124 = getelementptr i64, ptr %16, i64 %.0749961
  %125 = load i64, ptr %124, align 8, !tbaa !5
  %126 = icmp eq i64 %125, %.07601066
  br i1 %126, label %127, label %._crit_edge964

127:                                              ; preds = %.lr.ph963
  %128 = add i64 %.0749961, 1
  %exitcond.not = icmp eq i64 %128, %123
  br i1 %exitcond.not, label %._crit_edge964, label %.lr.ph963

._crit_edge964:                                   ; preds = %127, %.lr.ph963, %117
  %.0749.lcssa = phi i64 [ %122, %117 ], [ %.0749961, %.lr.ph963 ], [ %123, %127 ]
  %129 = icmp slt i64 %.0749.lcssa, %.07041070
  br i1 %129, label %726, label %130

130:                                              ; preds = %._crit_edge964
  %131 = load i64, ptr %8, align 8, !tbaa !5
  %132 = icmp slt i64 %.0749.lcssa, %131
  br i1 %132, label %136, label %133

133:                                              ; preds = %130
  %134 = load i64, ptr %9, align 8, !tbaa !5
  %135 = icmp sgt i64 %.07041070, %134
  br i1 %135, label %136, label %138

136:                                              ; preds = %133, %130
  %137 = add nuw nsw i64 %.0749.lcssa, 1
  br label %726

138:                                              ; preds = %133
  %.idx = shl i64 %.07091069, 4
  %139 = getelementptr i8, ptr %64, i64 %.idx
  %140 = getelementptr i8, ptr %139, i64 -8
  %141 = load double, ptr %140, align 8, !tbaa !9
  %142 = load double, ptr %139, align 8, !tbaa !9
  %.not796.not967 = icmp slt i64 %.07091069, %119
  br i1 %.not796.not967, label %.lr.ph972.preheader, label %170

.lr.ph972.preheader:                              ; preds = %138
  %143 = sub i64 %119, %.07091069
  %.neg = add i64 %.07091069, 1
  %xtraiter = and i64 %143, 1
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph972.prol.loopexit, label %.lr.ph972.prol

.lr.ph972.prol:                                   ; preds = %.lr.ph972.preheader
  %.2731.prol = add nsw i64 %.07091069, 1
  %.idx829.prol = shl i64 %.2731.prol, 4
  %144 = getelementptr i8, ptr %64, i64 %.idx829.prol
  %145 = getelementptr i8, ptr %144, i64 -8
  %146 = load double, ptr %145, align 8, !tbaa !9
  %147 = fcmp ole double %146, %141
  %148 = select i1 %147, double %146, double %141
  %149 = load double, ptr %144, align 8, !tbaa !9
  %150 = fcmp oge double %149, %142
  %151 = select i1 %150, double %149, double %142
  br label %.lr.ph972.prol.loopexit

.lr.ph972.prol.loopexit:                          ; preds = %.lr.ph972.prol, %.lr.ph972.preheader
  %.lcssa1280.unr = phi double [ poison, %.lr.ph972.preheader ], [ %148, %.lr.ph972.prol ]
  %.lcssa1279.unr = phi double [ poison, %.lr.ph972.preheader ], [ %149, %.lr.ph972.prol ]
  %.lcssa.unr = phi double [ poison, %.lr.ph972.preheader ], [ %151, %.lr.ph972.prol ]
  %.2731.in970.unr = phi i64 [ %.07091069, %.lr.ph972.preheader ], [ %.2731.prol, %.lr.ph972.prol ]
  %.0765969.unr = phi double [ %141, %.lr.ph972.preheader ], [ %148, %.lr.ph972.prol ]
  %.0766968.unr = phi double [ %142, %.lr.ph972.preheader ], [ %151, %.lr.ph972.prol ]
  %152 = icmp eq i64 %119, %.neg
  br i1 %152, label %._crit_edge973, label %.lr.ph972

.lr.ph972:                                        ; preds = %.lr.ph972.prol.loopexit, %.lr.ph972
  %.2731.in970 = phi i64 [ %.2731.1, %.lr.ph972 ], [ %.2731.in970.unr, %.lr.ph972.prol.loopexit ]
  %.0765969 = phi double [ %166, %.lr.ph972 ], [ %.0765969.unr, %.lr.ph972.prol.loopexit ]
  %.0766968 = phi double [ %169, %.lr.ph972 ], [ %.0766968.unr, %.lr.ph972.prol.loopexit ]
  %.2731 = shl i64 %.2731.in970, 4
  %153 = getelementptr i8, ptr %64, i64 %.2731
  %154 = getelementptr i8, ptr %153, i64 16
  %155 = getelementptr i8, ptr %153, i64 8
  %156 = load double, ptr %155, align 8, !tbaa !9
  %157 = fcmp ole double %156, %.0765969
  %158 = select i1 %157, double %156, double %.0765969
  %159 = load double, ptr %154, align 8, !tbaa !9
  %160 = fcmp oge double %159, %.0766968
  %161 = select i1 %160, double %159, double %.0766968
  %.2731.1 = add nsw i64 %.2731.in970, 2
  %.idx829.1 = shl i64 %.2731.1, 4
  %162 = getelementptr i8, ptr %64, i64 %.idx829.1
  %163 = getelementptr i8, ptr %162, i64 -8
  %164 = load double, ptr %163, align 8, !tbaa !9
  %165 = fcmp ole double %164, %158
  %166 = select i1 %165, double %164, double %158
  %167 = load double, ptr %162, align 8, !tbaa !9
  %168 = fcmp oge double %167, %161
  %169 = select i1 %168, double %167, double %161
  %exitcond1108.not.1 = icmp eq i64 %.2731.1, %119
  br i1 %exitcond1108.not.1, label %._crit_edge973, label %.lr.ph972, !llvm.loop !11

._crit_edge973:                                   ; preds = %.lr.ph972, %.lr.ph972.prol.loopexit
  %.lcssa1280 = phi double [ %.lcssa1280.unr, %.lr.ph972.prol.loopexit ], [ %166, %.lr.ph972 ]
  %.lcssa1279 = phi double [ %.lcssa1279.unr, %.lr.ph972.prol.loopexit ], [ %167, %.lr.ph972 ]
  %.lcssa = phi double [ %.lcssa.unr, %.lr.ph972.prol.loopexit ], [ %169, %.lr.ph972 ]
  store double %.lcssa1279, ptr %30, align 8, !tbaa !9
  br label %170

170:                                              ; preds = %._crit_edge973, %138
  %.0766.lcssa = phi double [ %.lcssa, %._crit_edge973 ], [ %142, %138 ]
  %.0765.lcssa = phi double [ %.lcssa1280, %._crit_edge973 ], [ %141, %138 ]
  %171 = fsub double %.0766.lcssa, %.0765.lcssa
  store double %171, ptr %47, align 8, !tbaa !9
  %172 = add nsw i64 %.07091069, -1
  %reass.sub1083 = sub i64 %119, %.07091069
  %173 = add i64 %reass.sub1083, 1
  store i64 %173, ptr %35, align 8, !tbaa !5
  %reass.sub1084 = sub i64 %.0749.lcssa, %.07041070
  %174 = add i64 %reass.sub1084, 1
  store i64 %174, ptr %34, align 8, !tbaa !5
  %175 = icmp eq i64 %.07091069, %119
  br i1 %175, label %176, label %187

176:                                              ; preds = %170
  %177 = mul nsw i64 %.07041070, %65
  %178 = getelementptr double, ptr %67, i64 %.07091069
  %179 = getelementptr double, ptr %178, i64 %177
  store double 1.000000e+00, ptr %179, align 8, !tbaa !9
  %.idx827 = shl i64 %.07041070, 4
  %180 = getelementptr i8, ptr %68, i64 %.idx827
  %181 = getelementptr i8, ptr %180, i64 -8
  store i64 %.07091069, ptr %181, align 8, !tbaa !5
  store i64 %.07091069, ptr %180, align 8, !tbaa !5
  %182 = getelementptr inbounds double, ptr %59, i64 %.07041070
  %183 = load double, ptr %182, align 8, !tbaa !9
  %184 = fadd double %121, %183
  store double %184, ptr %182, align 8, !tbaa !9
  %185 = getelementptr inbounds double, ptr %69, i64 %.07041070
  store double %184, ptr %185, align 8, !tbaa !9
  %186 = add nuw nsw i64 %.07041070, 1
  br label %726

187:                                              ; preds = %170
  %188 = getelementptr inbounds double, ptr %59, i64 %.07041070
  %189 = getelementptr inbounds double, ptr %69, i64 %.07041070
  %190 = call i32 @f2c_dcopy(ptr noundef nonnull %34, ptr noundef nonnull %188, ptr noundef nonnull @c__1, ptr noundef nonnull %189, ptr noundef nonnull @c__1) #7
  %191 = load i64, ptr %34, align 8, !tbaa !5
  %invariant.gep = getelementptr i8, ptr %188, i64 -8
  %.not797977 = icmp slt i64 %191, 1
  br i1 %.not797977, label %._crit_edge981.thread, label %.lr.ph980.preheader

.lr.ph980.preheader:                              ; preds = %187
  %min.iters.check1256 = icmp ult i64 %191, 4
  br i1 %min.iters.check1256, label %.lr.ph980.preheader1278, label %vector.ph1257

.lr.ph980.preheader1278:                          ; preds = %middle.block1254, %.lr.ph980.preheader
  %.3732978.ph = phi i64 [ 1, %.lr.ph980.preheader ], [ %ind.end1260, %middle.block1254 ]
  br label %.lr.ph980

vector.ph1257:                                    ; preds = %.lr.ph980.preheader
  %n.vec1259 = and i64 %191, 9223372036854775804
  %ind.end1260 = or disjoint i64 %n.vec1259, 1
  %broadcast.splatinsert1267 = insertelement <2 x double> poison, double %121, i64 0
  %broadcast.splat1268 = shufflevector <2 x double> %broadcast.splatinsert1267, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body1262

vector.body1262:                                  ; preds = %vector.body1262, %vector.ph1257
  %index1263 = phi i64 [ 0, %vector.ph1257 ], [ %index.next1269, %vector.body1262 ]
  %192 = getelementptr double, ptr %188, i64 %index1263
  %193 = getelementptr i8, ptr %192, i64 16
  %wide.load1265 = load <2 x double>, ptr %192, align 8, !tbaa !9
  %wide.load1266 = load <2 x double>, ptr %193, align 8, !tbaa !9
  %194 = fadd <2 x double> %broadcast.splat1268, %wide.load1265
  %195 = fadd <2 x double> %broadcast.splat1268, %wide.load1266
  store <2 x double> %194, ptr %192, align 8, !tbaa !9
  store <2 x double> %195, ptr %193, align 8, !tbaa !9
  %index.next1269 = add nuw i64 %index1263, 4
  %196 = icmp eq i64 %index.next1269, %n.vec1259
  br i1 %196, label %middle.block1254, label %vector.body1262, !llvm.loop !13

middle.block1254:                                 ; preds = %vector.body1262
  %cmp.n1270 = icmp eq i64 %191, %n.vec1259
  br i1 %cmp.n1270, label %._crit_edge981, label %.lr.ph980.preheader1278

._crit_edge981.thread:                            ; preds = %187
  store i64 1, ptr %102, align 8, !tbaa !5
  store i64 %191, ptr %104, align 8, !tbaa !5
  br label %._crit_edge1058

.lr.ph980:                                        ; preds = %.lr.ph980.preheader1278, %.lr.ph980
  %.3732978 = phi i64 [ %199, %.lr.ph980 ], [ %.3732978.ph, %.lr.ph980.preheader1278 ]
  %gep = getelementptr double, ptr %invariant.gep, i64 %.3732978
  %197 = load double, ptr %gep, align 8, !tbaa !9
  %198 = fadd double %121, %197
  store double %198, ptr %gep, align 8, !tbaa !9
  %199 = add nuw i64 %.3732978, 1
  %exitcond1109.not = icmp eq i64 %.3732978, %191
  br i1 %exitcond1109.not, label %._crit_edge981, label %.lr.ph980, !llvm.loop !16

._crit_edge981:                                   ; preds = %.lr.ph980, %middle.block1254
  store i64 1, ptr %102, align 8, !tbaa !5
  store i64 %191, ptr %104, align 8, !tbaa !5
  %200 = getelementptr double, ptr %67, i64 %.07091069
  %201 = getelementptr inbounds double, ptr %56, i64 %.07091069
  %202 = getelementptr inbounds double, ptr %57, i64 %.07091069
  %203 = getelementptr double, ptr %67, i64 %119
  %204 = add nsw i64 %119, -1
  %205 = getelementptr i64, ptr %63, i64 %122
  %206 = getelementptr inbounds i64, ptr %63, i64 %.07041070
  %gep1076 = getelementptr double, ptr %invariant.gep1075, i64 %.07091069
  %207 = getelementptr double, ptr %61, i64 %.07041070
  %208 = getelementptr inbounds double, ptr %60, i64 %.07041070
  %209 = getelementptr double, ptr %105, i64 %.07091069
  %gep1064 = getelementptr double, ptr %invariant.gep1063, i64 %.07041070
  %invariant.gep1026 = getelementptr i8, ptr %207, i64 -8
  %210 = shl i64 %.07091069, 3
  %scevgep1205 = getelementptr i8, ptr %scevgep1204, i64 %210
  %211 = add i64 %71, %119
  %212 = shl i64 %211, 3
  %scevgep1207 = getelementptr i8, ptr %scevgep1206, i64 %212
  %scevgep1209 = getelementptr i8, ptr %scevgep1208, i64 %210
  %213 = shl i64 %119, 3
  %scevgep1211 = getelementptr i8, ptr %scevgep1210, i64 %213
  %scevgep1213 = getelementptr i8, ptr %scevgep1212, i64 %210
  %scevgep1215 = getelementptr i8, ptr %scevgep1214, i64 %213
  %scevgep1217 = getelementptr i8, ptr %scevgep1216, i64 %210
  %scevgep1219 = getelementptr i8, ptr %scevgep1218, i64 %213
  %214 = sub i64 %119, %.07091069
  %min.iters.check1240 = icmp ult i64 %214, 10
  %bound01220 = icmp ult ptr %scevgep1205, %scevgep1211
  %bound11221 = icmp ult ptr %scevgep1209, %scevgep1207
  %found.conflict1222 = and i1 %bound01220, %bound11221
  %bound01223 = icmp ult ptr %scevgep1205, %scevgep1215
  %bound11224 = icmp ult ptr %scevgep1213, %scevgep1207
  %found.conflict1225 = and i1 %bound01223, %bound11224
  %conflict.rdx = or i1 %found.conflict1222, %found.conflict1225
  %bound01226 = icmp ult ptr %scevgep1205, %scevgep1219
  %bound11227 = icmp ult ptr %scevgep1217, %scevgep1207
  %found.conflict1228 = and i1 %bound01226, %bound11227
  %conflict.rdx1229 = or i1 %conflict.rdx, %found.conflict1228
  %bound01230 = icmp ult ptr %scevgep1209, %scevgep1215
  %bound11231 = icmp ult ptr %scevgep1213, %scevgep1211
  %found.conflict1232 = and i1 %bound01230, %bound11231
  %conflict.rdx1233 = or i1 %conflict.rdx1229, %found.conflict1232
  %bound01234 = icmp ult ptr %scevgep1209, %scevgep1219
  %bound11235 = icmp ult ptr %scevgep1217, %scevgep1211
  %found.conflict1236 = and i1 %bound01234, %bound11235
  %conflict.rdx1237 = or i1 %conflict.rdx1233, %found.conflict1236
  %n.vec1243 = and i64 %214, -2
  %ind.end1244 = add i64 %.07091069, %n.vec1243
  %cmp.n1253 = icmp eq i64 %214, %n.vec1243
  br label %215

215:                                              ; preds = %._crit_edge981, %._crit_edge1039
  %216 = phi i64 [ %191, %._crit_edge981 ], [ %722, %._crit_edge1039 ]
  %.11055 = phi double [ %.06841072, %._crit_edge981 ], [ %.2.lcssa, %._crit_edge1039 ]
  %.06871054 = phi i64 [ 1, %._crit_edge981 ], [ %220, %._crit_edge1039 ]
  %.06941053 = phi i64 [ 0, %._crit_edge981 ], [ %723, %._crit_edge1039 ]
  %.07121051 = phi i64 [ 1, %._crit_edge981 ], [ %.1713.lcssa, %._crit_edge1039 ]
  %.07211050 = phi double [ %121, %._crit_edge981 ], [ %.1722.lcssa, %._crit_edge1039 ]
  %.07241049 = phi i64 [ 0, %._crit_edge981 ], [ %.1725.lcssa, %._crit_edge1039 ]
  %.17391048 = phi double [ %.07381068, %._crit_edge981 ], [ %.2740.lcssa, %._crit_edge1039 ]
  %217 = load i64, ptr %7, align 8, !tbaa !5
  %218 = icmp sgt i64 %.06941053, %217
  br i1 %218, label %.loopexit854.sink.split, label %219

219:                                              ; preds = %215
  %220 = sub nuw nsw i64 1, %.06871054
  %.not7981028 = icmp slt i64 %.07121051, 1
  br i1 %.not7981028, label %._crit_edge1039, label %.lr.ph1038

.lr.ph1038:                                       ; preds = %219
  %221 = icmp eq i64 %.06871054, 1
  %.831 = select i1 %221, i64 %72, i64 %71
  %. = select i1 %221, i64 %71, i64 %72
  %222 = getelementptr i64, ptr %70, i64 %.
  %.not799 = icmp eq i64 %.06941053, 0
  %223 = getelementptr i64, ptr %70, i64 %.831
  br label %224

224:                                              ; preds = %.lr.ph1038, %._crit_edge1017
  %.21036 = phi double [ %.11055, %.lr.ph1038 ], [ %.3.lcssa, %._crit_edge1017 ]
  %.17131034 = phi i64 [ 0, %.lr.ph1038 ], [ %.2714.lcssa, %._crit_edge1017 ]
  %.17221033 = phi double [ %.07211050, %.lr.ph1038 ], [ %.2723, %._crit_edge1017 ]
  %.17251032 = phi i64 [ %.07241049, %.lr.ph1038 ], [ %.2726.lcssa, %._crit_edge1017 ]
  %.47331031 = phi i64 [ 1, %.lr.ph1038 ], [ %721, %._crit_edge1017 ]
  %.27401030 = phi double [ %.17391048, %.lr.ph1038 ], [ %.3741.lcssa, %._crit_edge1017 ]
  %.idx848 = shl i64 %.47331031, 4
  %225 = getelementptr i8, ptr %222, i64 %.idx848
  %226 = getelementptr i8, ptr %225, i64 -8
  %227 = load i64, ptr %226, align 8, !tbaa !5
  %228 = load i64, ptr %225, align 8, !tbaa !5
  br i1 %.not799, label %258, label %229

229:                                              ; preds = %224
  %230 = load i64, ptr %8, align 8, !tbaa !5
  %231 = icmp eq i64 %230, 1
  br i1 %231, label %232, label %238

232:                                              ; preds = %229
  %233 = load i64, ptr %9, align 8, !tbaa !5
  %234 = load i64, ptr %7, align 8, !tbaa !5
  %235 = icmp eq i64 %233, %234
  br i1 %235, label %236, label %238

236:                                              ; preds = %232
  %237 = add i64 %122, %227
  br label %245

238:                                              ; preds = %232, %229
  %239 = add nsw i64 %227, %.07041070
  %.not800 = icmp sgt i64 %239, %230
  br i1 %.not800, label %242, label %240

240:                                              ; preds = %238
  %241 = add nsw i64 %230, -1
  br label %245

242:                                              ; preds = %238
  %243 = add nsw i64 %239, -1
  %244 = load i64, ptr %9, align 8, !tbaa !5
  %.832 = call i64 @llvm.smin.i64(i64 %243, i64 %244)
  br label %245

245:                                              ; preds = %242, %240, %236
  %.0734 = phi i64 [ %237, %236 ], [ %241, %240 ], [ %.832, %242 ]
  %246 = mul nsw i64 %.0734, %65
  %247 = getelementptr double, ptr %200, i64 %246
  %248 = call i32 @f2c_dcopy(ptr noundef nonnull %35, ptr noundef %247, ptr noundef nonnull @c__1, ptr noundef nonnull %201, ptr noundef nonnull @c__1) #7
  %249 = load i64, ptr %35, align 8, !tbaa !5
  %250 = add nsw i64 %249, -1
  store i64 %250, ptr %28, align 8, !tbaa !5
  %251 = add nsw i64 %.0734, 1
  %252 = mul nsw i64 %251, %65
  %253 = getelementptr double, ptr %200, i64 %252
  %254 = call i32 @f2c_dcopy(ptr noundef nonnull %28, ptr noundef %253, ptr noundef nonnull @c__1, ptr noundef nonnull %202, ptr noundef nonnull @c__1) #7
  %255 = getelementptr double, ptr %203, i64 %252
  %256 = load double, ptr %255, align 8, !tbaa !9
  %257 = call i32 @dlaset_(ptr noundef nonnull @.str, ptr noundef nonnull %35, ptr noundef nonnull @c__2, ptr noundef nonnull @c_b5, ptr noundef nonnull @c_b5, ptr noundef %247, ptr noundef nonnull %20) #7
  br label %258

258:                                              ; preds = %245, %224
  %.2723 = phi double [ %256, %245 ], [ %.17221033, %224 ]
  store i64 %204, ptr %28, align 8, !tbaa !5
  br i1 %.not796.not967, label %.lr.ph985.preheader, label %._crit_edge986

.lr.ph985.preheader:                              ; preds = %258
  %brmerge = select i1 %min.iters.check1240, i1 true, i1 %conflict.rdx1237
  br i1 %brmerge, label %.lr.ph985.preheader1275, label %vector.body1246

vector.body1246:                                  ; preds = %.lr.ph985.preheader, %vector.body1246
  %index1247 = phi i64 [ %index.next1252, %vector.body1246 ], [ 0, %.lr.ph985.preheader ]
  %offset.idx1248 = add i64 %.07091069, %index1247
  %259 = getelementptr inbounds double, ptr %56, i64 %offset.idx1248
  %wide.load1249 = load <2 x double>, ptr %259, align 8, !tbaa !9, !alias.scope !17
  %260 = getelementptr inbounds double, ptr %57, i64 %offset.idx1248
  %wide.load1250 = load <2 x double>, ptr %260, align 8, !tbaa !9, !alias.scope !20
  %261 = fmul <2 x double> %wide.load1249, %wide.load1250
  %262 = getelementptr double, ptr %105, i64 %offset.idx1248
  store <2 x double> %261, ptr %262, align 8, !tbaa !9, !alias.scope !22, !noalias !24
  %263 = fmul <2 x double> %261, %wide.load1250
  %264 = getelementptr double, ptr %106, i64 %offset.idx1248
  store <2 x double> %263, ptr %264, align 8, !tbaa !9, !alias.scope !26, !noalias !27
  %index.next1252 = add nuw i64 %index1247, 2
  %265 = icmp eq i64 %index.next1252, %n.vec1243
  br i1 %265, label %middle.block1238, label %vector.body1246, !llvm.loop !28

middle.block1238:                                 ; preds = %vector.body1246
  br i1 %cmp.n1253, label %._crit_edge986, label %.lr.ph985.preheader1275

.lr.ph985.preheader1275:                          ; preds = %.lr.ph985.preheader, %middle.block1238
  %.1735983.ph = phi i64 [ %.07091069, %.lr.ph985.preheader ], [ %ind.end1244, %middle.block1238 ]
  %266 = sub i64 %119, %.1735983.ph
  %.neg1298 = add i64 %.1735983.ph, 1
  %xtraiter1294 = and i64 %266, 1
  %lcmp.mod1295.not = icmp eq i64 %xtraiter1294, 0
  br i1 %lcmp.mod1295.not, label %.lr.ph985.prol.loopexit, label %.lr.ph985.prol

.lr.ph985.prol:                                   ; preds = %.lr.ph985.preheader1275
  %267 = getelementptr inbounds double, ptr %56, i64 %.1735983.ph
  %268 = load double, ptr %267, align 8, !tbaa !9
  %269 = getelementptr inbounds double, ptr %57, i64 %.1735983.ph
  %270 = load double, ptr %269, align 8, !tbaa !9
  %271 = fmul double %268, %270
  %272 = getelementptr double, ptr %105, i64 %.1735983.ph
  store double %271, ptr %272, align 8, !tbaa !9
  %273 = load double, ptr %269, align 8, !tbaa !9
  %274 = fmul double %271, %273
  %275 = getelementptr double, ptr %106, i64 %.1735983.ph
  store double %274, ptr %275, align 8, !tbaa !9
  %276 = add nsw i64 %.1735983.ph, 1
  br label %.lr.ph985.prol.loopexit

.lr.ph985.prol.loopexit:                          ; preds = %.lr.ph985.prol, %.lr.ph985.preheader1275
  %.1735983.unr = phi i64 [ %.1735983.ph, %.lr.ph985.preheader1275 ], [ %276, %.lr.ph985.prol ]
  %277 = icmp eq i64 %119, %.neg1298
  br i1 %277, label %._crit_edge986, label %.lr.ph985

.lr.ph985:                                        ; preds = %.lr.ph985.prol.loopexit, %.lr.ph985
  %.1735983 = phi i64 [ %297, %.lr.ph985 ], [ %.1735983.unr, %.lr.ph985.prol.loopexit ]
  %278 = getelementptr inbounds double, ptr %56, i64 %.1735983
  %279 = load double, ptr %278, align 8, !tbaa !9
  %280 = getelementptr inbounds double, ptr %57, i64 %.1735983
  %281 = load double, ptr %280, align 8, !tbaa !9
  %282 = fmul double %279, %281
  %283 = getelementptr double, ptr %105, i64 %.1735983
  store double %282, ptr %283, align 8, !tbaa !9
  %284 = load double, ptr %280, align 8, !tbaa !9
  %285 = fmul double %282, %284
  %286 = getelementptr double, ptr %106, i64 %.1735983
  store double %285, ptr %286, align 8, !tbaa !9
  %287 = add nsw i64 %.1735983, 1
  %288 = getelementptr double, ptr %3, i64 %.1735983
  %289 = load double, ptr %288, align 8, !tbaa !9
  %290 = getelementptr double, ptr %4, i64 %.1735983
  %291 = load double, ptr %290, align 8, !tbaa !9
  %292 = fmul double %289, %291
  %293 = getelementptr double, ptr %105, i64 %287
  store double %292, ptr %293, align 8, !tbaa !9
  %294 = load double, ptr %290, align 8, !tbaa !9
  %295 = fmul double %292, %294
  %296 = getelementptr double, ptr %106, i64 %287
  store double %295, ptr %296, align 8, !tbaa !9
  %297 = add nsw i64 %.1735983, 2
  %exitcond1110.not.1 = icmp eq i64 %297, %119
  br i1 %exitcond1110.not.1, label %._crit_edge986, label %.lr.ph985, !llvm.loop !29

._crit_edge986:                                   ; preds = %.lr.ph985.prol.loopexit, %.lr.ph985, %middle.block1238, %258
  br i1 %.not799, label %.loopexit853, label %298

298:                                              ; preds = %._crit_edge986
  %299 = getelementptr i64, ptr %205, i64 %227
  %300 = load i64, ptr %299, align 8, !tbaa !5
  store i64 %300, ptr %32, align 8, !tbaa !5
  %301 = getelementptr i64, ptr %205, i64 %228
  %302 = load i64, ptr %301, align 8, !tbaa !5
  store i64 %302, ptr %33, align 8, !tbaa !5
  %303 = load i64, ptr %206, align 8, !tbaa !5
  %304 = add nsw i64 %303, -1
  store i64 %304, ptr %49, align 8, !tbaa !5
  %305 = call i32 @dlarrb_(ptr noundef nonnull %35, ptr noundef nonnull %201, ptr noundef %gep1076, ptr noundef nonnull %32, ptr noundef nonnull %33, ptr noundef %11, ptr noundef %12, ptr noundef nonnull %49, ptr noundef nonnull %189, ptr noundef nonnull %207, ptr noundef nonnull %208, ptr noundef %108, ptr noundef %109, ptr noundef %5, ptr noundef nonnull %47, ptr noundef nonnull %35, ptr noundef nonnull %41) #7
  %306 = load i64, ptr %41, align 8, !tbaa !5
  %.not802 = icmp eq i64 %306, 0
  br i1 %.not802, label %307, label %.loopexit854.sink.split

307:                                              ; preds = %298
  %308 = icmp sgt i64 %227, 1
  br i1 %308, label %309, label %328

309:                                              ; preds = %307
  %310 = add nuw nsw i64 %227, %.07041070
  %311 = add nsw i64 %310, -2
  %312 = getelementptr inbounds double, ptr %61, i64 %311
  %313 = load double, ptr %312, align 8, !tbaa !9
  store double %313, ptr %30, align 8, !tbaa !9
  %314 = add nsw i64 %310, -1
  %315 = getelementptr inbounds double, ptr %59, i64 %314
  %316 = load double, ptr %315, align 8, !tbaa !9
  %317 = getelementptr inbounds double, ptr %60, i64 %314
  %318 = load double, ptr %317, align 8, !tbaa !9
  %319 = fsub double %316, %318
  %320 = getelementptr inbounds double, ptr %59, i64 %311
  %321 = load double, ptr %320, align 8, !tbaa !9
  %322 = fsub double %319, %321
  %323 = getelementptr inbounds double, ptr %60, i64 %311
  %324 = load double, ptr %323, align 8, !tbaa !9
  %325 = fsub double %322, %324
  %326 = fcmp oge double %313, %325
  %327 = select i1 %326, double %313, double %325
  store double %327, ptr %312, align 8, !tbaa !9
  br label %328

328:                                              ; preds = %309, %307
  %329 = add nsw i64 %228, %.07041070
  %.not803 = icmp sgt i64 %329, %.0749.lcssa
  br i1 %.not803, label %347, label %330

330:                                              ; preds = %328
  %331 = add nsw i64 %329, -1
  %332 = getelementptr inbounds double, ptr %61, i64 %331
  %333 = load double, ptr %332, align 8, !tbaa !9
  store double %333, ptr %30, align 8, !tbaa !9
  %334 = getelementptr inbounds double, ptr %59, i64 %329
  %335 = load double, ptr %334, align 8, !tbaa !9
  %336 = getelementptr inbounds double, ptr %60, i64 %329
  %337 = load double, ptr %336, align 8, !tbaa !9
  %338 = fsub double %335, %337
  %339 = getelementptr inbounds double, ptr %59, i64 %331
  %340 = load double, ptr %339, align 8, !tbaa !9
  %341 = fsub double %338, %340
  %342 = getelementptr inbounds double, ptr %60, i64 %331
  %343 = load double, ptr %342, align 8, !tbaa !9
  %344 = fsub double %341, %343
  %345 = fcmp oge double %333, %344
  %346 = select i1 %345, double %333, double %344
  store double %346, ptr %332, align 8, !tbaa !9
  br label %347

347:                                              ; preds = %330, %328
  %.not804987 = icmp sgt i64 %227, %228
  br i1 %.not804987, label %.loopexit853, label %.lr.ph990.preheader

.lr.ph990.preheader:                              ; preds = %347
  %348 = add i64 %228, 1
  %349 = sub i64 %348, %227
  %min.iters.check1188 = icmp ult i64 %349, 4
  %or.cond1271 = or i1 %min.iters.check1188, %diff.check
  br i1 %or.cond1271, label %.lr.ph990.preheader1274, label %vector.ph1189

vector.ph1189:                                    ; preds = %.lr.ph990.preheader
  %n.vec1191 = and i64 %349, -4
  %ind.end1192 = add i64 %227, %n.vec1191
  %broadcast.splatinsert1199 = insertelement <2 x double> poison, double %.2723, i64 0
  %broadcast.splat1200 = shufflevector <2 x double> %broadcast.splatinsert1199, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body1194

vector.body1194:                                  ; preds = %vector.body1194, %vector.ph1189
  %index1195 = phi i64 [ 0, %vector.ph1189 ], [ %index.next1201, %vector.body1194 ]
  %offset.idx1196 = add i64 %227, %index1195
  %350 = add i64 %122, %offset.idx1196
  %351 = getelementptr inbounds double, ptr %69, i64 %350
  %352 = getelementptr inbounds i8, ptr %351, i64 16
  %wide.load1197 = load <2 x double>, ptr %351, align 8, !tbaa !9
  %wide.load1198 = load <2 x double>, ptr %352, align 8, !tbaa !9
  %353 = fadd <2 x double> %broadcast.splat1200, %wide.load1197
  %354 = fadd <2 x double> %broadcast.splat1200, %wide.load1198
  %355 = getelementptr inbounds double, ptr %59, i64 %350
  %356 = getelementptr inbounds i8, ptr %355, i64 16
  store <2 x double> %353, ptr %355, align 8, !tbaa !9
  store <2 x double> %354, ptr %356, align 8, !tbaa !9
  %index.next1201 = add nuw i64 %index1195, 4
  %357 = icmp eq i64 %index.next1201, %n.vec1191
  br i1 %357, label %middle.block1186, label %vector.body1194, !llvm.loop !30

middle.block1186:                                 ; preds = %vector.body1194
  %cmp.n1202 = icmp eq i64 %349, %n.vec1191
  br i1 %cmp.n1202, label %.loopexit853, label %.lr.ph990.preheader1274

.lr.ph990.preheader1274:                          ; preds = %middle.block1186, %.lr.ph990.preheader
  %.2736988.ph = phi i64 [ %227, %.lr.ph990.preheader ], [ %ind.end1192, %middle.block1186 ]
  %358 = add i64 %228, 1
  %359 = sub i64 %358, %.2736988.ph
  %360 = sub i64 %228, %.2736988.ph
  %xtraiter1296 = and i64 %359, 3
  %lcmp.mod1297.not = icmp eq i64 %xtraiter1296, 0
  br i1 %lcmp.mod1297.not, label %.lr.ph990.prol.loopexit, label %.lr.ph990.prol

.lr.ph990.prol:                                   ; preds = %.lr.ph990.preheader1274, %.lr.ph990.prol
  %.2736988.prol = phi i64 [ %366, %.lr.ph990.prol ], [ %.2736988.ph, %.lr.ph990.preheader1274 ]
  %prol.iter = phi i64 [ %prol.iter.next, %.lr.ph990.prol ], [ 0, %.lr.ph990.preheader1274 ]
  %361 = add i64 %122, %.2736988.prol
  %362 = getelementptr inbounds double, ptr %69, i64 %361
  %363 = load double, ptr %362, align 8, !tbaa !9
  %364 = fadd double %.2723, %363
  %365 = getelementptr inbounds double, ptr %59, i64 %361
  store double %364, ptr %365, align 8, !tbaa !9
  %366 = add i64 %.2736988.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter1296
  br i1 %prol.iter.cmp.not, label %.lr.ph990.prol.loopexit, label %.lr.ph990.prol, !llvm.loop !31

.lr.ph990.prol.loopexit:                          ; preds = %.lr.ph990.prol, %.lr.ph990.preheader1274
  %.2736988.unr = phi i64 [ %.2736988.ph, %.lr.ph990.preheader1274 ], [ %366, %.lr.ph990.prol ]
  %367 = icmp ult i64 %360, 3
  br i1 %367, label %.loopexit853, label %.lr.ph990

.lr.ph990:                                        ; preds = %.lr.ph990.prol.loopexit, %.lr.ph990
  %.2736988 = phi i64 [ %390, %.lr.ph990 ], [ %.2736988.unr, %.lr.ph990.prol.loopexit ]
  %368 = add i64 %122, %.2736988
  %369 = getelementptr inbounds double, ptr %69, i64 %368
  %370 = load double, ptr %369, align 8, !tbaa !9
  %371 = fadd double %.2723, %370
  %372 = getelementptr inbounds double, ptr %59, i64 %368
  store double %371, ptr %372, align 8, !tbaa !9
  %373 = add i64 %.07041070, %.2736988
  %374 = getelementptr inbounds double, ptr %69, i64 %373
  %375 = load double, ptr %374, align 8, !tbaa !9
  %376 = fadd double %.2723, %375
  %377 = getelementptr inbounds double, ptr %59, i64 %373
  store double %376, ptr %377, align 8, !tbaa !9
  %378 = add i64 %.2736988, 2
  %379 = add i64 %122, %378
  %380 = getelementptr inbounds double, ptr %69, i64 %379
  %381 = load double, ptr %380, align 8, !tbaa !9
  %382 = fadd double %.2723, %381
  %383 = getelementptr inbounds double, ptr %59, i64 %379
  store double %382, ptr %383, align 8, !tbaa !9
  %384 = add i64 %.2736988, 3
  %385 = add i64 %122, %384
  %386 = getelementptr inbounds double, ptr %69, i64 %385
  %387 = load double, ptr %386, align 8, !tbaa !9
  %388 = fadd double %.2723, %387
  %389 = getelementptr inbounds double, ptr %59, i64 %385
  store double %388, ptr %389, align 8, !tbaa !9
  %390 = add i64 %.2736988, 4
  %exitcond1111.not.3 = icmp eq i64 %384, %228
  br i1 %exitcond1111.not.3, label %.loopexit853, label %.lr.ph990, !llvm.loop !33

.loopexit853:                                     ; preds = %.lr.ph990.prol.loopexit, %.lr.ph990, %middle.block1186, %347, %._crit_edge986
  store i64 %227, ptr %51, align 8, !tbaa !5
  store i64 %228, ptr %28, align 8, !tbaa !5
  %.not8051007 = icmp sgt i64 %227, %228
  br i1 %.not8051007, label %._crit_edge1017, label %.lr.ph1016

.lr.ph1016:                                       ; preds = %.loopexit853, %718
  %391 = phi i64 [ %719, %718 ], [ %228, %.loopexit853 ]
  %392 = phi i64 [ %720, %718 ], [ %227, %.loopexit853 ]
  %.31014 = phi double [ %.8, %718 ], [ %.21036, %.loopexit853 ]
  %.27141012 = phi i64 [ %.4716, %718 ], [ %.17131034, %.loopexit853 ]
  %.27261011 = phi i64 [ %.4728, %718 ], [ %.17251032, %.loopexit853 ]
  %.37371010 = phi i64 [ %.pre-phi1129, %718 ], [ %227, %.loopexit853 ]
  %.37411009 = phi double [ %.8746, %718 ], [ %.27401030, %.loopexit853 ]
  %393 = icmp eq i64 %.37371010, %228
  br i1 %393, label %406, label %394

394:                                              ; preds = %.lr.ph1016
  %395 = add i64 %122, %.37371010
  %396 = getelementptr inbounds double, ptr %61, i64 %395
  %397 = load double, ptr %396, align 8, !tbaa !9
  %398 = load double, ptr %10, align 8, !tbaa !9
  %399 = getelementptr inbounds double, ptr %69, i64 %395
  %400 = load double, ptr %399, align 8, !tbaa !9
  store double %400, ptr %30, align 8, !tbaa !9
  %401 = fcmp oge double %400, 0.000000e+00
  %402 = fneg double %400
  %403 = select i1 %401, double %400, double %402
  %404 = fmul double %398, %403
  %405 = fcmp ult double %397, %404
  br i1 %405, label %._crit_edge1127, label %406

._crit_edge1127:                                  ; preds = %394
  %.pre1128 = add nsw i64 %.37371010, 1
  br label %718

406:                                              ; preds = %394, %.lr.ph1016
  store i64 %.37371010, ptr %52, align 8, !tbaa !5
  %407 = load i64, ptr %8, align 8, !tbaa !5
  %408 = icmp eq i64 %407, 1
  br i1 %408, label %409, label %415

409:                                              ; preds = %406
  %410 = load i64, ptr %9, align 8, !tbaa !5
  %411 = load i64, ptr %7, align 8, !tbaa !5
  %412 = icmp eq i64 %410, %411
  br i1 %412, label %413, label %415

413:                                              ; preds = %409
  %414 = add i64 %122, %392
  br label %422

415:                                              ; preds = %409, %406
  %416 = add nsw i64 %392, %.07041070
  %.not806 = icmp sgt i64 %416, %407
  br i1 %.not806, label %419, label %417

417:                                              ; preds = %415
  %418 = add nsw i64 %407, -1
  br label %422

419:                                              ; preds = %415
  %420 = add nsw i64 %416, -1
  %421 = load i64, ptr %9, align 8, !tbaa !5
  %.833 = call i64 @llvm.smin.i64(i64 %420, i64 %421)
  br label %422

422:                                              ; preds = %419, %417, %413
  %.0688 = phi i64 [ %414, %413 ], [ %418, %417 ], [ %.833, %419 ]
  %423 = icmp sgt i64 %.37371010, %392
  br i1 %423, label %424, label %512

424:                                              ; preds = %422
  %425 = icmp eq i64 %392, 1
  br i1 %425, label %426, label %434

426:                                              ; preds = %424
  store double 0.000000e+00, ptr %30, align 8, !tbaa !9
  %427 = load double, ptr %188, align 8, !tbaa !9
  %428 = load double, ptr %208, align 8, !tbaa !9
  %429 = fsub double %427, %428
  %430 = load double, ptr %1, align 8, !tbaa !9
  %431 = fsub double %429, %430
  %432 = fcmp ole double %431, 0.000000e+00
  %433 = select i1 %432, double 0.000000e+00, double %431
  br label %436

434:                                              ; preds = %424
  %gep1025 = getelementptr double, ptr %gep1064, i64 %392
  %435 = load double, ptr %gep1025, align 8, !tbaa !9
  br label %436

436:                                              ; preds = %434, %426
  %storemerge823 = phi double [ %435, %434 ], [ %433, %426 ]
  store double %storemerge823, ptr %38, align 8, !tbaa !9
  %gep1027 = getelementptr double, ptr %invariant.gep1026, i64 %.37371010
  %437 = load double, ptr %gep1027, align 8, !tbaa !9
  store double %437, ptr %39, align 8, !tbaa !9
  %storemerge826.in = getelementptr i64, ptr %205, i64 %392
  %storemerge826 = load i64, ptr %storemerge826.in, align 8, !tbaa !5
  store i64 %storemerge826, ptr %32, align 8, !tbaa !5
  %438 = load i64, ptr %206, align 8, !tbaa !5
  %439 = add nsw i64 %438, -1
  store i64 %439, ptr %49, align 8, !tbaa !5
  %440 = call i32 @dlarrb_(ptr noundef nonnull %35, ptr noundef nonnull %201, ptr noundef %gep1076, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef nonnull %43, ptr noundef nonnull %43, ptr noundef nonnull %49, ptr noundef nonnull %189, ptr noundef nonnull %207, ptr noundef nonnull %208, ptr noundef %108, ptr noundef %109, ptr noundef %5, ptr noundef nonnull %47, ptr noundef nonnull %35, ptr noundef nonnull %41) #7
  %441 = load i64, ptr %52, align 8
  %storemerge826.in.1 = getelementptr i64, ptr %205, i64 %441
  %storemerge826.1 = load i64, ptr %storemerge826.in.1, align 8, !tbaa !5
  store i64 %storemerge826.1, ptr %32, align 8, !tbaa !5
  %442 = load i64, ptr %206, align 8, !tbaa !5
  %443 = add nsw i64 %442, -1
  store i64 %443, ptr %49, align 8, !tbaa !5
  %444 = call i32 @dlarrb_(ptr noundef nonnull %35, ptr noundef nonnull %201, ptr noundef %gep1076, ptr noundef nonnull %32, ptr noundef nonnull %32, ptr noundef nonnull %43, ptr noundef nonnull %43, ptr noundef nonnull %49, ptr noundef nonnull %189, ptr noundef nonnull %207, ptr noundef nonnull %208, ptr noundef %108, ptr noundef %109, ptr noundef %5, ptr noundef nonnull %47, ptr noundef nonnull %35, ptr noundef nonnull %41) #7
  %445 = load i64, ptr %52, align 8, !tbaa !5
  %446 = add nsw i64 %445, %.07041070
  %447 = load i64, ptr %8, align 8, !tbaa !5
  %.not824 = icmp sgt i64 %446, %447
  %.pre1124 = load i64, ptr %51, align 8, !tbaa !5
  br i1 %.not824, label %448, label %452

448:                                              ; preds = %436
  %449 = add i64 %122, %.pre1124
  %450 = load i64, ptr %9, align 8, !tbaa !5
  %451 = icmp sgt i64 %449, %450
  br i1 %451, label %452, label %456

452:                                              ; preds = %448, %436
  %453 = add i64 %.27261011, 1
  %454 = add i64 %453, %445
  %455 = sub i64 %454, %.pre1124
  br label %716

456:                                              ; preds = %448
  %457 = mul nsw i64 %.0688, %65
  %458 = getelementptr double, ptr %200, i64 %457
  %459 = add nsw i64 %.0688, 1
  %460 = mul nsw i64 %459, %65
  %461 = getelementptr double, ptr %200, i64 %460
  %462 = call i32 @dlarrf_(ptr noundef nonnull %35, ptr noundef nonnull %201, ptr noundef nonnull %202, ptr noundef %209, ptr noundef nonnull %51, ptr noundef nonnull %52, ptr noundef nonnull %189, ptr noundef nonnull %207, ptr noundef nonnull %208, ptr noundef nonnull %47, ptr noundef nonnull %38, ptr noundef nonnull %39, ptr noundef %5, ptr noundef nonnull %36, ptr noundef %458, ptr noundef %461, ptr noundef %108, ptr noundef nonnull %41) #7
  %463 = load i64, ptr %41, align 8, !tbaa !5
  %464 = icmp eq i64 %463, 0
  br i1 %464, label %465, label %.loopexit854.sink.split

465:                                              ; preds = %456
  %466 = load double, ptr %36, align 8, !tbaa !9
  %467 = fadd double %.2723, %466
  %468 = getelementptr double, ptr %203, i64 %460
  store double %467, ptr %468, align 8, !tbaa !9
  %469 = load i64, ptr %52, align 8, !tbaa !5
  store i64 %469, ptr %29, align 8, !tbaa !5
  %470 = load i64, ptr %51, align 8, !tbaa !5
  %.not8251001 = icmp sgt i64 %470, %469
  br i1 %.not8251001, label %508, label %.lr.ph1004.preheader

.lr.ph1004.preheader:                             ; preds = %465
  %471 = add i64 %469, 1
  %472 = sub i64 %471, %470
  %min.iters.check = icmp ult i64 %472, 2
  br i1 %min.iters.check, label %.lr.ph1004.preheader1272, label %vector.memcheck

vector.memcheck:                                  ; preds = %.lr.ph1004.preheader
  %473 = add i64 %.07041070, %470
  %474 = shl i64 %473, 3
  %scevgep1173 = getelementptr i8, ptr %scevgep1172, i64 %474
  %475 = add i64 %.07041070, %469
  %476 = shl i64 %475, 3
  %scevgep1175 = getelementptr i8, ptr %scevgep1174, i64 %476
  %scevgep1177 = getelementptr i8, ptr %scevgep1176, i64 %474
  %scevgep1179 = getelementptr i8, ptr %scevgep1178, i64 %476
  %bound0 = icmp ult ptr %scevgep1173, %scevgep1179
  %bound1 = icmp ult ptr %scevgep1177, %scevgep1175
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %.lr.ph1004.preheader1272, label %vector.ph

vector.ph:                                        ; preds = %vector.memcheck
  %n.vec = and i64 %472, -2
  %ind.end = add i64 %470, %n.vec
  %broadcast.splatinsert1180 = insertelement <2 x double> poison, double %466, i64 0
  %broadcast.splat1181 = shufflevector <2 x double> %broadcast.splatinsert1180, <2 x double> poison, <2 x i32> zeroinitializer
  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 %470, %index
  %477 = add i64 %122, %offset.idx
  %478 = getelementptr inbounds double, ptr %69, i64 %477
  %wide.load = load <2 x double>, ptr %478, align 8, !tbaa !9, !alias.scope !34, !noalias !37
  %479 = fcmp oge <2 x double> %wide.load, zeroinitializer
  %480 = fneg <2 x double> %wide.load
  %481 = select <2 x i1> %479, <2 x double> %wide.load, <2 x double> %480
  %482 = fmul <2 x double> %broadcast.splat, %481
  %483 = fsub <2 x double> %wide.load, %broadcast.splat1181
  store <2 x double> %483, ptr %478, align 8, !tbaa !9, !alias.scope !34, !noalias !37
  %484 = fcmp oge <2 x double> %483, zeroinitializer
  %485 = fneg <2 x double> %483
  %486 = select <2 x i1> %484, <2 x double> %483, <2 x double> %485
  %487 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %broadcast.splat1183, <2 x double> %486, <2 x double> %482)
  %488 = getelementptr inbounds double, ptr %60, i64 %477
  %wide.load1184 = load <2 x double>, ptr %488, align 8, !tbaa !9, !alias.scope !37
  %489 = fadd <2 x double> %wide.load1184, %487
  store <2 x double> %489, ptr %488, align 8, !tbaa !9, !alias.scope !37
  %index.next = add nuw i64 %index, 2
  %490 = icmp eq i64 %index.next, %n.vec
  br i1 %490, label %middle.block, label %vector.body, !llvm.loop !39

middle.block:                                     ; preds = %vector.body
  %491 = extractelement <2 x double> %483, i64 1
  %cmp.n = icmp eq i64 %472, %n.vec
  br i1 %cmp.n, label %._crit_edge1005, label %.lr.ph1004.preheader1272

.lr.ph1004.preheader1272:                         ; preds = %middle.block, %vector.memcheck, %.lr.ph1004.preheader
  %.17621002.ph = phi i64 [ %470, %vector.memcheck ], [ %470, %.lr.ph1004.preheader ], [ %ind.end, %middle.block ]
  br label %.lr.ph1004

.lr.ph1004:                                       ; preds = %.lr.ph1004.preheader1272, %.lr.ph1004
  %.17621002 = phi i64 [ %507, %.lr.ph1004 ], [ %.17621002.ph, %.lr.ph1004.preheader1272 ]
  %492 = add i64 %122, %.17621002
  %493 = getelementptr inbounds double, ptr %69, i64 %492
  %494 = load double, ptr %493, align 8, !tbaa !9
  %495 = fcmp oge double %494, 0.000000e+00
  %496 = fneg double %494
  %497 = select i1 %495, double %494, double %496
  %498 = fmul double %110, %497
  %499 = fsub double %494, %466
  store double %499, ptr %493, align 8, !tbaa !9
  %500 = fcmp oge double %499, 0.000000e+00
  %501 = fneg double %499
  %502 = select i1 %500, double %499, double %501
  %503 = call double @llvm.fmuladd.f64(double %111, double %502, double %498)
  %504 = getelementptr inbounds double, ptr %60, i64 %492
  %505 = load double, ptr %504, align 8, !tbaa !9
  %506 = fadd double %505, %503
  store double %506, ptr %504, align 8, !tbaa !9
  %507 = add i64 %.17621002, 1
  %exitcond1118.not = icmp eq i64 %.17621002, %469
  br i1 %exitcond1118.not, label %._crit_edge1005, label %.lr.ph1004, !llvm.loop !40

._crit_edge1005:                                  ; preds = %.lr.ph1004, %middle.block
  %.lcssa1168 = phi double [ %491, %middle.block ], [ %499, %.lr.ph1004 ]
  store double %.lcssa1168, ptr %30, align 8, !tbaa !9
  br label %508

508:                                              ; preds = %._crit_edge1005, %465
  %509 = add nsw i64 %.27141012, 1
  %.idx850 = shl i64 %509, 4
  %510 = getelementptr i8, ptr %223, i64 %.idx850
  %511 = getelementptr i8, ptr %510, i64 -8
  store i64 %470, ptr %511, align 8, !tbaa !5
  store i64 %469, ptr %510, align 8, !tbaa !5
  br label %716

512:                                              ; preds = %422
  %513 = load i64, ptr %35, align 8, !tbaa !5
  %514 = sitofp i64 %513 to double
  %515 = call double @log(double noundef %514) #7
  %516 = fmul double %515, 4.000000e+00
  %517 = fmul double %90, %516
  %518 = load i64, ptr %51, align 8, !tbaa !5
  %519 = add nsw i64 %518, %.07041070
  %520 = add nsw i64 %519, -1
  %521 = add nsw i64 %519, -2
  %522 = icmp sgt i64 %519, 2
  %523 = select i1 %522, i64 %521, i64 1
  store i64 %519, ptr %29, align 8, !tbaa !5
  %524 = load i64, ptr %7, align 8, !tbaa !5
  %.834 = call i64 @llvm.smin.i64(i64 %519, i64 %524)
  %525 = getelementptr inbounds double, ptr %69, i64 %520
  %526 = load double, ptr %525, align 8, !tbaa !9
  store double %526, ptr %44, align 8, !tbaa !9
  %527 = load i64, ptr %8, align 8, !tbaa !5
  %.not808 = icmp sgt i64 %519, %527
  br i1 %.not808, label %528, label %.thread

528:                                              ; preds = %512
  %529 = load i64, ptr %9, align 8, !tbaa !5
  %530 = icmp sgt i64 %520, %529
  br i1 %530, label %.thread, label %531

531:                                              ; preds = %528
  %532 = getelementptr inbounds double, ptr %60, i64 %520
  %533 = load double, ptr %532, align 8, !tbaa !9
  %534 = fsub double %526, %533
  %535 = fadd double %526, %533
  %536 = getelementptr inbounds i64, ptr %63, i64 %520
  %537 = load i64, ptr %536, align 8, !tbaa !5
  store i64 %537, ptr %45, align 8, !tbaa !5
  %538 = icmp eq i64 %518, 1
  br i1 %538, label %539, label %550

539:                                              ; preds = %531
  %540 = insertelement <2 x double> poison, double %534, i64 0
  %541 = insertelement <2 x double> %540, double %535, i64 1
  %542 = fcmp oge <2 x double> %541, zeroinitializer
  %543 = fneg <2 x double> %541
  %544 = select <2 x i1> %542, <2 x double> %541, <2 x double> %543
  %545 = extractelement <2 x double> %544, i64 0
  store double %545, ptr %30, align 8, !tbaa !9
  %546 = extractelement <2 x double> %544, i64 1
  %547 = fcmp oge double %545, %546
  %548 = select i1 %547, double %545, double %546
  %549 = fmul double %90, %548
  br label %553

550:                                              ; preds = %531
  %551 = getelementptr inbounds double, ptr %61, i64 %523
  %552 = load double, ptr %551, align 8, !tbaa !9
  br label %553

553:                                              ; preds = %550, %539
  %storemerge = phi double [ %552, %550 ], [ %549, %539 ]
  store double %storemerge, ptr %38, align 8, !tbaa !9
  %554 = load i64, ptr %34, align 8
  %555 = icmp eq i64 %518, %554
  br i1 %555, label %556, label %567

556:                                              ; preds = %553
  %557 = insertelement <2 x double> poison, double %534, i64 0
  %558 = insertelement <2 x double> %557, double %535, i64 1
  %559 = fcmp oge <2 x double> %558, zeroinitializer
  %560 = fneg <2 x double> %558
  %561 = select <2 x i1> %559, <2 x double> %558, <2 x double> %560
  %562 = extractelement <2 x double> %561, i64 0
  store double %562, ptr %30, align 8, !tbaa !9
  %563 = extractelement <2 x double> %561, i64 1
  %564 = fcmp oge double %562, %563
  %565 = select i1 %564, double %562, double %563
  %566 = fmul double %90, %565
  %.phi.trans.insert = getelementptr inbounds double, ptr %61, i64 %520
  %.pre1121 = load double, ptr %.phi.trans.insert, align 8, !tbaa !9
  br label %570

567:                                              ; preds = %553
  %568 = getelementptr inbounds double, ptr %61, i64 %520
  %569 = load double, ptr %568, align 8, !tbaa !9
  br label %570

570:                                              ; preds = %567, %556
  %571 = phi double [ %569, %567 ], [ %.pre1121, %556 ]
  %storemerge809 = phi double [ %569, %567 ], [ %566, %556 ]
  store double %storemerge809, ptr %39, align 8, !tbaa !9
  %572 = fcmp ole double %storemerge, %storemerge809
  %573 = select i1 %572, double %storemerge, double %storemerge809
  %or.cond836 = or i1 %538, %555
  %574 = fmul double %90, %573
  %storemerge810 = select i1 %or.cond836, double 0.000000e+00, double %574
  store double %storemerge810, ptr %50, align 8, !tbaa !9
  %575 = load i64, ptr %35, align 8, !tbaa !5
  %576 = getelementptr inbounds double, ptr %61, i64 %520
  store double %573, ptr %576, align 8, !tbaa !9
  %577 = getelementptr inbounds i64, ptr %70, i64 %520
  %578 = mul nsw i64 %520, %65
  %579 = getelementptr double, ptr %200, i64 %578
  %.idx813 = shl i64 %520, 4
  %580 = getelementptr i8, ptr %68, i64 %.idx813
  %581 = getelementptr i8, ptr %580, i64 -8
  %582 = fmul double %517, %573
  br label %.backedge

.backedge:                                        ; preds = %.backedge.backedge, %570
  %.0750 = phi double [ %534, %570 ], [ %.2752, %.backedge.backedge ]
  %.0748 = phi i64 [ 0, %570 ], [ %.0748.be, %.backedge.backedge ]
  %.4742 = phi double [ %.37411009, %570 ], [ %.5743, %.backedge.backedge ]
  %.0717 = phi double [ %535, %570 ], [ %.2719, %.backedge.backedge ]
  %.0707 = phi i64 [ 0, %570 ], [ %.0707.be, %.backedge.backedge ]
  %.0692 = phi i64 [ 0, %570 ], [ %.0692.be, %.backedge.backedge ]
  %.0689 = phi i64 [ 0, %570 ], [ %.1690, %.backedge.backedge ]
  %.0686 = phi i64 [ %575, %570 ], [ %606, %.backedge.backedge ]
  %.4 = phi double [ %.31014, %570 ], [ %.5, %.backedge.backedge ]
  %.0 = phi i64 [ 1, %570 ], [ %608, %.backedge.backedge ]
  %.not811 = icmp eq i64 %.0707, 0
  br i1 %.not811, label %591, label %583

583:                                              ; preds = %.backedge
  %584 = load i64, ptr %577, align 8, !tbaa !5
  store i64 %584, ptr %40, align 8, !tbaa !5
  %585 = load i64, ptr %206, align 8, !tbaa !5
  %586 = add nsw i64 %585, -1
  store i64 %586, ptr %49, align 8, !tbaa !5
  store double %91, ptr %30, align 8, !tbaa !9
  %587 = call i32 @dlarrb_(ptr noundef nonnull %35, ptr noundef nonnull %201, ptr noundef %gep1076, ptr noundef nonnull %45, ptr noundef nonnull %45, ptr noundef nonnull @c_b5, ptr noundef nonnull %30, ptr noundef nonnull %49, ptr noundef nonnull %189, ptr noundef nonnull %207, ptr noundef nonnull %208, ptr noundef %108, ptr noundef %109, ptr noundef %5, ptr noundef nonnull %47, ptr noundef nonnull %40, ptr noundef nonnull %41) #7
  %588 = load i64, ptr %41, align 8, !tbaa !5
  %.not812 = icmp eq i64 %588, 0
  br i1 %.not812, label %589, label %.loopexit854.sink.split

589:                                              ; preds = %583
  %590 = load double, ptr %525, align 8, !tbaa !9
  store double %590, ptr %44, align 8, !tbaa !9
  store i64 0, ptr %577, align 8, !tbaa !5
  br label %591

591:                                              ; preds = %589, %.backedge
  %.1693 = phi i64 [ 1, %589 ], [ %.0692, %.backedge ]
  %592 = icmp ne i64 %.1693, 0
  %593 = xor i1 %592, true
  %594 = zext i1 %593 to i64
  store i64 %594, ptr %31, align 8, !tbaa !5
  %595 = call i32 @dlar1v_(ptr noundef nonnull %35, ptr noundef nonnull @c__1, ptr noundef nonnull %35, ptr noundef nonnull %44, ptr noundef nonnull %201, ptr noundef nonnull %202, ptr noundef %209, ptr noundef %gep1076, ptr noundef %5, ptr noundef nonnull %50, ptr noundef %579, ptr noundef nonnull %31, ptr noundef nonnull %48, ptr noundef nonnull %37, ptr noundef nonnull %46, ptr noundef nonnull %577, ptr noundef %581, ptr noundef nonnull %54, ptr noundef nonnull %42, ptr noundef nonnull %55, ptr noundef %108) #7
  %596 = icmp eq i64 %.0748, 0
  %597 = load double, ptr %42, align 8
  br i1 %596, label %598, label %600

598:                                              ; preds = %591
  %599 = load double, ptr %44, align 8, !tbaa !9
  br label %604

600:                                              ; preds = %591
  %601 = fcmp olt double %597, %.4
  br i1 %601, label %602, label %604

602:                                              ; preds = %600
  %603 = load double, ptr %44, align 8, !tbaa !9
  br label %604

604:                                              ; preds = %600, %602, %598
  %.5743 = phi double [ %599, %598 ], [ %603, %602 ], [ %.4742, %600 ]
  %.5 = phi double [ %597, %598 ], [ %597, %602 ], [ %.4, %600 ]
  %605 = load i64, ptr %581, align 8, !tbaa !5
  %606 = call i64 @llvm.smin.i64(i64 %.0686, i64 %605)
  store i64 %.0, ptr %29, align 8, !tbaa !5
  %607 = load i64, ptr %580, align 8, !tbaa !5
  %608 = call i64 @llvm.smax.i64(i64 %.0, i64 %607)
  %609 = add nsw i64 %.0748, 1
  %610 = fcmp ogt double %597, %582
  br i1 %610, label %611, label %648

611:                                              ; preds = %604
  %612 = load double, ptr %55, align 8
  %613 = fcmp oge double %612, 0.000000e+00
  %614 = fneg double %612
  %615 = select i1 %613, double %612, double %614
  %616 = load double, ptr %43, align 8, !tbaa !9
  %617 = load double, ptr %44, align 8
  %618 = fcmp oge double %617, 0.000000e+00
  %619 = fneg double %617
  %620 = select i1 %618, double %617, double %619
  %621 = fmul double %616, %620
  %622 = fcmp ule double %615, %621
  %or.cond = or i1 %592, %622
  br i1 %or.cond, label %648, label %623

623:                                              ; preds = %611
  %624 = load i64, ptr %45, align 8, !tbaa !5
  %625 = load i64, ptr %48, align 8, !tbaa !5
  %.not817 = icmp sgt i64 %624, %625
  %626 = select i1 %.not817, double %612, double %614
  %627 = fcmp ult double %626, 0.000000e+00
  br i1 %627, label %637, label %628

628:                                              ; preds = %623
  %629 = fadd double %612, %617
  %630 = fcmp ugt double %629, %.0717
  %631 = fcmp ult double %629, %.0750
  %or.cond838 = select i1 %630, i1 true, i1 %631
  br i1 %or.cond838, label %637, label %632

632:                                              ; preds = %628
  %..0750 = select i1 %.not817, double %617, double %.0750
  %.0717. = select i1 %.not817, double %.0717, double %617
  %633 = fadd double %.0717., %..0750
  %634 = fmul double %633, 5.000000e-01
  store double %634, ptr %525, align 8, !tbaa !9
  store double %629, ptr %44, align 8, !tbaa !9
  %635 = fsub double %.0717., %..0750
  %636 = fmul double %635, 5.000000e-01
  store double %636, ptr %532, align 8, !tbaa !9
  %.pre = fneg double %629
  br label %637

637:                                              ; preds = %623, %628, %632
  %.pre-phi = phi double [ %619, %623 ], [ %619, %628 ], [ %.pre, %632 ]
  %638 = phi double [ %617, %623 ], [ %617, %628 ], [ %629, %632 ]
  %.2752 = phi double [ %.0750, %623 ], [ %.0750, %628 ], [ %..0750, %632 ]
  %.2719 = phi double [ %.0717, %623 ], [ %.0717, %628 ], [ %.0717., %632 ]
  %.1708 = phi i64 [ 1, %623 ], [ 1, %628 ], [ %.0707, %632 ]
  %.1690 = phi i64 [ %.0689, %623 ], [ %.0689, %628 ], [ 1, %632 ]
  %639 = fsub double %.2719, %.2752
  %640 = fcmp oge double %638, 0.000000e+00
  %641 = select i1 %640, double %638, double %.pre-phi
  %642 = fmul double %616, %641
  %643 = fcmp olt double %639, %642
  br i1 %643, label %.backedge.backedge, label %644

644:                                              ; preds = %637
  %645 = icmp slt i64 %.0748, 9
  br i1 %645, label %.backedge.backedge, label %646

.backedge.backedge:                               ; preds = %644, %637, %646
  %.0748.be = phi i64 [ %609, %644 ], [ %609, %637 ], [ 10, %646 ]
  %.0707.be = phi i64 [ %.1708, %644 ], [ %.1708, %637 ], [ 1, %646 ]
  %.0692.be = phi i64 [ 0, %644 ], [ 1, %637 ], [ 0, %646 ]
  br label %.backedge

646:                                              ; preds = %644
  %647 = icmp eq i64 %609, 10
  br i1 %647, label %.backedge.backedge, label %.loopexit854.sink.split

648:                                              ; preds = %611, %604
  %649 = icmp ne i64 %.0689, 0
  %or.cond3 = and i1 %649, %592
  %650 = fcmp ole double %.5, %597
  %or.cond840.not = select i1 %or.cond3, i1 %650, i1 false
  br i1 %or.cond840.not, label %.critedge, label %652

.critedge:                                        ; preds = %648
  store double %.5743, ptr %44, align 8, !tbaa !9
  store i64 %594, ptr %31, align 8, !tbaa !5
  %651 = call i32 @dlar1v_(ptr noundef nonnull %35, ptr noundef nonnull @c__1, ptr noundef nonnull %35, ptr noundef nonnull %44, ptr noundef nonnull %201, ptr noundef nonnull %202, ptr noundef %209, ptr noundef %gep1076, ptr noundef %5, ptr noundef nonnull %50, ptr noundef %579, ptr noundef nonnull %31, ptr noundef nonnull %48, ptr noundef nonnull %37, ptr noundef nonnull %46, ptr noundef nonnull %577, ptr noundef nonnull %581, ptr noundef nonnull %54, ptr noundef nonnull %42, ptr noundef nonnull %55, ptr noundef %108) #7
  %.pre1122 = load i64, ptr %581, align 8, !tbaa !5
  %.pre1123 = load i64, ptr %580, align 8, !tbaa !5
  br label %652

652:                                              ; preds = %648, %.critedge
  %653 = phi i64 [ %607, %648 ], [ %.pre1123, %.critedge ]
  %654 = phi i64 [ %605, %648 ], [ %.pre1122, %.critedge ]
  %655 = load double, ptr %44, align 8, !tbaa !9
  store double %655, ptr %525, align 8, !tbaa !9
  %656 = add i64 %654, %172
  store i64 %656, ptr %581, align 8, !tbaa !5
  %657 = add nsw i64 %653, %172
  store i64 %657, ptr %580, align 8, !tbaa !5
  %658 = add nsw i64 %608, %172
  %659 = icmp slt i64 %606, %654
  br i1 %659, label %.loopexit852.loopexit, label %.loopexit852

.loopexit852.loopexit:                            ; preds = %652
  %660 = shl i64 %519, 3
  %661 = add i64 %660, -16
  %662 = mul i64 %65, %661
  %scevgep1112 = getelementptr i8, ptr %scevgep, i64 %662
  %663 = add i64 %.07091069, %606
  %664 = shl i64 %663, 3
  %scevgep1113 = getelementptr i8, ptr %scevgep1112, i64 %664
  %smax1114 = call i64 @llvm.smax.i64(i64 %656, i64 %663)
  %665 = add i64 %smax1114, 1
  %666 = sub i64 %665, %663
  %667 = shl nuw i64 %666, 3
  call void @llvm.memset.p0.i64(ptr align 8 %scevgep1113, i8 0, i64 %667, i1 false), !tbaa !9
  br label %.loopexit852

.loopexit852:                                     ; preds = %.loopexit852.loopexit, %652
  %668 = icmp sgt i64 %608, %653
  br i1 %668, label %669, label %.loopexit

669:                                              ; preds = %.loopexit852
  %670 = add i64 %653, %.07091069
  %.not820996 = icmp sgt i64 %670, %658
  br i1 %.not820996, label %.loopexit, label %.lr.ph999.preheader

.lr.ph999.preheader:                              ; preds = %669
  %671 = shl i64 %519, 3
  %672 = add i64 %671, -16
  %673 = mul i64 %65, %672
  %674 = shl i64 %670, 3
  %675 = getelementptr i8, ptr %scevgep1115, i64 %673
  %scevgep1116 = getelementptr i8, ptr %675, i64 %674
  %676 = sub i64 %608, %653
  %677 = shl i64 %676, 3
  call void @llvm.memset.p0.i64(ptr align 8 %scevgep1116, i8 0, i64 %677, i1 false), !tbaa !9
  br label %.loopexit

.thread:                                          ; preds = %528, %512
  %678 = fadd double %.2723, %526
  %679 = getelementptr inbounds double, ptr %59, i64 %520
  store double %678, ptr %679, align 8, !tbaa !9
  br label %714

.loopexit:                                        ; preds = %.lr.ph999.preheader, %669, %.loopexit852
  %reass.sub1085 = sub i64 %653, %654
  %680 = add i64 %reass.sub1085, 1
  store i64 %680, ptr %29, align 8, !tbaa !5
  %681 = getelementptr double, ptr %67, i64 %656
  %682 = getelementptr double, ptr %681, i64 %578
  %683 = call i32 @f2c_dscal(ptr noundef nonnull %29, ptr noundef nonnull %54, ptr noundef %682, ptr noundef nonnull @c__1) #7
  %684 = load double, ptr %44, align 8, !tbaa !9
  %685 = fadd double %.2723, %684
  %686 = getelementptr inbounds double, ptr %59, i64 %520
  store double %685, ptr %686, align 8, !tbaa !9
  %687 = icmp sgt i64 %518, 1
  br i1 %687, label %688, label %701

688:                                              ; preds = %.loopexit
  %689 = getelementptr inbounds double, ptr %61, i64 %523
  %690 = load double, ptr %689, align 8, !tbaa !9
  store double %690, ptr %30, align 8, !tbaa !9
  %691 = load double, ptr %532, align 8, !tbaa !9
  %692 = fsub double %685, %691
  %693 = getelementptr inbounds double, ptr %59, i64 %523
  %694 = load double, ptr %693, align 8, !tbaa !9
  %695 = fsub double %692, %694
  %696 = getelementptr inbounds double, ptr %60, i64 %523
  %697 = load double, ptr %696, align 8, !tbaa !9
  %698 = fsub double %695, %697
  %699 = fcmp oge double %690, %698
  %700 = select i1 %699, double %690, double %698
  store double %700, ptr %689, align 8, !tbaa !9
  br label %701

701:                                              ; preds = %688, %.loopexit
  %.not822 = icmp sgt i64 %519, %.0749.lcssa
  br i1 %.not822, label %714, label %702

702:                                              ; preds = %701
  store double %571, ptr %30, align 8, !tbaa !9
  %703 = getelementptr inbounds double, ptr %59, i64 %.834
  %704 = load double, ptr %703, align 8, !tbaa !9
  %705 = getelementptr inbounds double, ptr %60, i64 %.834
  %706 = load double, ptr %705, align 8, !tbaa !9
  %707 = fsub double %704, %706
  %708 = load double, ptr %686, align 8, !tbaa !9
  %709 = fsub double %707, %708
  %710 = load double, ptr %532, align 8, !tbaa !9
  %711 = fsub double %709, %710
  %712 = fcmp oge double %571, %711
  %713 = select i1 %712, double %571, double %711
  store double %713, ptr %576, align 8, !tbaa !9
  br label %714

714:                                              ; preds = %.thread, %701, %702
  %.6847 = phi double [ %.31014, %.thread ], [ %.5, %701 ], [ %.5, %702 ]
  %.6744845 = phi double [ %.37411009, %.thread ], [ %.5743, %701 ], [ %.5743, %702 ]
  %715 = add nsw i64 %.27261011, 1
  br label %716

716:                                              ; preds = %508, %714, %452
  %.7745 = phi double [ %.37411009, %452 ], [ %.37411009, %508 ], [ %.6744845, %714 ]
  %.3727 = phi i64 [ %455, %452 ], [ %.27261011, %508 ], [ %715, %714 ]
  %.3715 = phi i64 [ %.27141012, %452 ], [ %509, %508 ], [ %.27141012, %714 ]
  %.7 = phi double [ %.31014, %452 ], [ %.31014, %508 ], [ %.6847, %714 ]
  %717 = add nsw i64 %.37371010, 1
  store i64 %717, ptr %51, align 8, !tbaa !5
  %.pre1125 = load i64, ptr %28, align 8, !tbaa !5
  br label %718

718:                                              ; preds = %._crit_edge1127, %716
  %.pre-phi1129 = phi i64 [ %.pre1128, %._crit_edge1127 ], [ %717, %716 ]
  %719 = phi i64 [ %391, %._crit_edge1127 ], [ %.pre1125, %716 ]
  %720 = phi i64 [ %392, %._crit_edge1127 ], [ %717, %716 ]
  %.8746 = phi double [ %.37411009, %._crit_edge1127 ], [ %.7745, %716 ]
  %.4728 = phi i64 [ %.27261011, %._crit_edge1127 ], [ %.3727, %716 ]
  %.4716 = phi i64 [ %.27141012, %._crit_edge1127 ], [ %.3715, %716 ]
  %.8 = phi double [ %.31014, %._crit_edge1127 ], [ %.7, %716 ]
  %.not805.not = icmp slt i64 %.37371010, %719
  br i1 %.not805.not, label %.lr.ph1016, label %._crit_edge1017, !llvm.loop !41

._crit_edge1017:                                  ; preds = %718, %.loopexit853
  %.3741.lcssa = phi double [ %.27401030, %.loopexit853 ], [ %.8746, %718 ]
  %.2726.lcssa = phi i64 [ %.17251032, %.loopexit853 ], [ %.4728, %718 ]
  %.2714.lcssa = phi i64 [ %.17131034, %.loopexit853 ], [ %.4716, %718 ]
  %.3.lcssa = phi double [ %.21036, %.loopexit853 ], [ %.8, %718 ]
  %721 = add nuw i64 %.47331031, 1
  %exitcond1119.not = icmp eq i64 %.47331031, %.07121051
  br i1 %exitcond1119.not, label %._crit_edge1039.loopexit, label %224, !llvm.loop !42

._crit_edge1039.loopexit:                         ; preds = %._crit_edge1017
  %.pre1126 = load i64, ptr %34, align 8, !tbaa !5
  br label %._crit_edge1039

._crit_edge1039:                                  ; preds = %._crit_edge1039.loopexit, %219
  %722 = phi i64 [ %216, %219 ], [ %.pre1126, %._crit_edge1039.loopexit ]
  %.2740.lcssa = phi double [ %.17391048, %219 ], [ %.3741.lcssa, %._crit_edge1039.loopexit ]
  %.1725.lcssa = phi i64 [ %.07241049, %219 ], [ %.2726.lcssa, %._crit_edge1039.loopexit ]
  %.1722.lcssa = phi double [ %.07211050, %219 ], [ %.2723, %._crit_edge1039.loopexit ]
  %.1713.lcssa = phi i64 [ 0, %219 ], [ %.2714.lcssa, %._crit_edge1039.loopexit ]
  %.2.lcssa = phi double [ %.11055, %219 ], [ %.3.lcssa, %._crit_edge1039.loopexit ]
  %723 = add nuw nsw i64 %.06941053, 1
  %724 = icmp slt i64 %.1725.lcssa, %722
  br i1 %724, label %215, label %._crit_edge1058

._crit_edge1058:                                  ; preds = %._crit_edge1039, %._crit_edge981.thread
  %.1739.lcssa = phi double [ %.07381068, %._crit_edge981.thread ], [ %.2740.lcssa, %._crit_edge1039 ]
  %.1.lcssa = phi double [ %.06841072, %._crit_edge981.thread ], [ %.2.lcssa, %._crit_edge1039 ]
  %725 = add nuw nsw i64 %.0749.lcssa, 1
  br label %726

726:                                              ; preds = %._crit_edge964, %136, %176, %._crit_edge1058
  %.9747 = phi double [ %.07381068, %136 ], [ %.07381068, %176 ], [ %.1739.lcssa, %._crit_edge1058 ], [ %.07381068, %._crit_edge964 ]
  %.1705 = phi i64 [ %137, %136 ], [ %186, %176 ], [ %725, %._crit_edge1058 ], [ %.07041070, %._crit_edge964 ]
  %.9 = phi double [ %.06841072, %136 ], [ %.06841072, %176 ], [ %.1.lcssa, %._crit_edge1058 ], [ %.06841072, %._crit_edge964 ]
  %.1710 = add nsw i64 %119, 1
  %727 = add nuw i64 %.07601066, 1
  %exitcond1120.not = icmp eq i64 %.07601066, %101
  br i1 %exitcond1120.not, label %.loopexit854, label %117, !llvm.loop !43

.loopexit854.sink.split:                          ; preds = %215, %298, %456, %646, %583
  %.sink = phi i64 [ -3, %583 ], [ 5, %646 ], [ -2, %456 ], [ -1, %298 ], [ -2, %215 ]
  store i64 %.sink, ptr %24, align 8, !tbaa !5
  br label %.loopexit854

.loopexit854:                                     ; preds = %726, %.loopexit854.sink.split, %99
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  ret i32 0
}

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

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

declare double @dlamch_(ptr noundef) local_unnamed_addr #2

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

declare i32 @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

declare i32 @dlarrf_(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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !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, !15, !14}
!17 = !{!18}
!18 = distinct !{!18, !19}
!19 = distinct !{!19, !"LVerDomain"}
!20 = !{!21}
!21 = distinct !{!21, !19}
!22 = !{!23}
!23 = distinct !{!23, !19}
!24 = !{!25, !18, !21}
!25 = distinct !{!25, !19}
!26 = !{!25}
!27 = !{!18, !21}
!28 = distinct !{!28, !12, !14, !15}
!29 = distinct !{!29, !12, !14}
!30 = distinct !{!30, !12, !14, !15}
!31 = distinct !{!31, !32}
!32 = !{!"llvm.loop.unroll.disable"}
!33 = distinct !{!33, !12, !14}
!34 = !{!35}
!35 = distinct !{!35, !36}
!36 = distinct !{!36, !"LVerDomain"}
!37 = !{!38}
!38 = distinct !{!38, !36}
!39 = distinct !{!39, !12, !14, !15}
!40 = distinct !{!40, !12, !14}
!41 = distinct !{!41, !12}
!42 = distinct !{!42, !12}
!43 = distinct !{!43, !12}


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